Идентификация микросхем флеш памяти

Недавно случилось непоправимое. Компания в которой я работаю с ужасом обнаружила, что микросхемы 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 

Так что можно экспериментировать с различной памятью в устройствах и заодно обезопасить себя от пропадания с рынка комплектующих.
Вот такие дела.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий