I2C EEPROM проблема с записью страницы.

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Аватара пользователя
Сообщения: 14
Зарегистрирован: Вс янв 15, 2012 01:48:39

Сообщение Scorpi »

Возникла проблема с постраничной записью в EEPROM 24C32, при попытке записать 14 байт подряд, начиная с адреса 0x001С, первые байты пишутся правильно по адресам 0x001С-0x001F, а остальные записываются с нулевого адреса. Вроде все по даташиту, после каждого байта есть подтверждение, в конце страницы условие стоп. В чем проблема, почему сбрасывается внутренний счетчик адреса не могу понять.

Знающие, подскажите пожалуйста, что я упустил!

В приложении проект 7 студии, файл протеуса, лог записи в реальную микросхему (Saleae logic), а так же файл данных прочитанных из этой микросхемы проггером.

Спасибо!

UPD - удалил файл, т.к. в библиотеке ошибки.
Последний раз редактировалось Scorpi Вс мар 19, 2017 12:14:37, всего редактировалось 1 раз.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3790
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

У этой модели размер страницы 32 байта, поэтому счетчик адреса обнуляется при переходе через 31 (=0х1F). Чтобы этого не происходило следует записать прежнюю страницу командой PAGE WRITE после записи байта по адресу 0x1F и далее начинать запись в следующую начиная с адреса 0x20.
Реклама
Родился
Аватара пользователя
Сообщения: 14
Зарегистрирован: Вс янв 15, 2012 01:48:39

Сообщение Scorpi »

Спасибо! Не внимательно прочел даташит, оказывается за пределы страницы нельзя выходить. А я полагал, что просто нельзя выходить за размеры буфера и запись можно начинать с любого адреса... оказывается не так...
Ответить

Вернуться в «AVR»