Недавно случилось непоправимое. Компания в которой я работаю с ужасом обнаружила, что микросхемы Flash памяти AT45DB642D ранее выпускаемые Atmel, а теперь конторой под названием Adesto, больше не выпускаются. На замену им бравые капиталисты предлагают AT45DB641e.
По сути это тот же самый девайс, да не совсем.
В новой микросхеме флеша страницы размеров по 264/256 байт (в старой по 1056/1024 в зависимости от настроек). Кроме того ногу с сигналом BUSY выбросили (как и весь параллельный интерфейс, так что можете о нем забывать). Очень грустно но просто заменить микросхему на новую не выйдет, как раз из-за размера страниц.
В общем микросхема довольно популярная в кругах, где нужно хранить где-то 8 мегабайт данных и по возможности их менять. Так что думаю кому-то пригодится эта заметка.
Порывшись в интернетах наткнулся на репорт этого самого адесто.
В нем собственно и обнаружился метод идентификации установленной микросхемы памяти.
Вся тайна кроется в запросе идентификационных данных — 9Fh.
На этот запрос микросхема от Atmel AT45DB642D (тобеш старые микросхемы) ответит:
1Fh + 28h + 00h + 00h
А вот навая память так AT45DB641E:
1Fh + 28h + 00h + 01h + 00h
И самая вкусняха. Это стандартизированный компанией JEDEC формат идентификации. Т.е. при помощи данного механизма можно по идее наладить идентификацию флешей даже от различных производителей.
Например не менее популярная в определенных кругах флеш память компании Winbond W25Q128 также поддерживает данную операцию. И выдаст вам вот такой ответ на команду 9Fh:
9Fh + Memory Type + Capacity
Так что можно экспериментировать с различной памятью в устройствах и заодно обезопасить себя от пропадания с рынка комплектующих.
Вот такие дела.