Цитата
Ничего сложного там нет. Читаете даташит и строго повторяете "эпюры". В даташите кстати есть и полный рисунок всех эпюр для опроса регистра состояния.
Все так, родной, да вот незадача - на некоторых экземплярах AT45DB161D команда чтения регистра статуса не работает.
Причем в горячо любимом даташите написано, чтобы не пользовали устаревшие коды команд для режимов SPI, которые не будут поддерживаться. Т.е. для чтения статуса надо пользовать код 0xD7 в соотв. режиме (SPI Mode 0 или 3, я использую Mode 3 - CPOL = 1 и CPHA = 1), а про 0x57 - забыть.
Причем сказано, что код 0x57 все-таки поддерживается, но в микросхемах выпуска 0636 и позже.
На деле получается такая "особенность": у меня сейчас партия плат с уже впаянными датафлэшами выпуска 0647, т.е. вроде все должно быть пучком. Но нет - на некоторых экземплярах не работает ни один из вышеприведенных кодов команды чтения регистра статуса. Я даже вставлял задержки разные между посылом кода команды и чтения данных с шины - результата никакого: датафлэш отвечает либо то, что я выдаю в регистр данных в момент запуска передачи по SPI (микроконтроллер LPC2214, регистр S0SPDR), либо 0. То же самое происходит, если подать код несуществующей команды.
Так что хотелось бы снова поднять данный вопрос. Как бы гарантированно читать регистр статуса? Сигнал RDY/BUSY на внешней ноге - это хорошо, а результат сравнения откуда тогда брать?
И вообще. Коли пошла такая пьянка - а какие еще команды "могут не работать" в этих флэшках?
Сообщение отредактировал Ykidia - Mar 28 2007, 12:44