Размер блока стирания / записи EEPROM микросхем PIC
Прежде всего, извините за плохой английский, так как мои навыки английского не так хороши...
Перед вопросом я хочу объяснить свою ситуацию, чтобы помочь пониманию.
Я хочу использовать EEPROM как своего рода счетчик.
Значение этого счетчика будет увеличиваться очень часто, поэтому я должен рассмотреть проблему выносливости.
Моя идея состоит в том, чтобы записать значение счетчика по нескольким адресам альтернативно, чтобы износ ячейки уменьшился на N.
например, если я использую 5x площадь для подсчета,
Счет 1 -> 1 0 0 0 0
Счет 2 -> 1 2 0 0 0
Счет 3 -> 1 2 3 0 0
Счет 4 -> 1 2 3 4 0
Счет 5 -> 1 2 3 4 5
Счет 6 -> 6 2 3 4 5
...
Таким образом, выносливость клеток может быть увеличена на коэффициент N.
Тем не менее, AFAIK, для текущей флэш-памяти NAND, стирание / запись данных выполняется группой байтов, называемой блоком. Таким образом, если все байты находятся в одном блоке записи / стирания, мой метод не будет работать.
Итак, мой главный вопрос: выполняется ли операция стирания / записи ЭСППЗУ PIC группой байтов? или сделано одним словом или байтом?
Например, если это делается группой из 8 байтов, то я должен сделать 8-байтовое смещение между каждым значением счетчика, чтобы мой метод работал правильно.
В противном случае, если это делается байтом или словом, мне не нужно думать о интервале / смещении.
1 ответ
Из таблицы данных PIC24FJ256GB110 раздел 5.0:
Пользователь может записывать данные памяти программ в блоках по 64 инструкции (192 байта) за один раз и стирать память программ в блоках по 512 инструкций (1536 байтов) за один раз.
Однако вы можете перезаписать отдельный блок несколько раз, если вы удалили оставшуюся часть блока (биты равны единице), а содержимое privius осталось прежним. Помните: вы можете очистить один бит в блоке только один.
Насколько уменьшится срок хранения данных после 8 записей в один блок FLASH, я не знаю!