|
Увеличение количества циклов записи в EEPROM, как правильно программно? |
|
|
|
Mar 21 2007, 07:56
|
Местный
  
Группа: Свой
Сообщений: 303
Регистрация: 3-03-05
Пользователь №: 3 044

|
... Выделяем кусок ЭПРОМ, в котором храним счетчик ... При каждом сохранении в старых ячейках пишем $FF а в новых счетчик ... При чтениии от начала ищем not $FF и тем самымым выходим на запись. ... Таким образом при счетчике в 4 байта и перезаписи с частотой 1 Гц всей памяти хватит на 148 суток. Не густо. Код FM25256 256K bit Ferroelectric Nonvolatile RAM • Organized as 32,768 x 8 bits • Virtually Unlimited Endurance (10^14 Cycles) • 10 Year Data Retention •Very Fast Serial Peripheral Interface - SPI • Up to 15 MHz Frequency
--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
|
|
|
|
|
Mar 21 2007, 09:53
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Цитата(CDT @ Mar 21 2007, 07:56)  Код FM25256 • Virtually Unlimited Endurance (10^14 Cycles) Да, ФРАМ здесь самато. Реально ресурс, коншна, гораздо меньше. На Телесиське проскакивала цыфра 1е9, вырванная с кровью из интимного места техподдержки. Кроме того, у ФРАМ чтение разрушающее. Т.е. его ресурс как ПЗУ сильно ограничен. В отличие от режима ОЗУ или ЕЕПРОМ-флэш. Там наоборот.
|
|
|
|
|
Mar 21 2007, 10:14
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(smk @ Mar 20 2007, 21:31)  В программе используется переменная "char n". Всякий раз при включении она инкременируется и по достижении определенного значения - обнуляется. Чтение-запись происходит примерно 1 раз в секунду. При количестве циклов 100 000, надолго одной ячейки не хватит. Есть необходимость писать поочередно во все ячейки EEPROM. Как это сделать правильно, при условии что между любыми двумя циклами чтения-записи контроллер отправляется в "powerdown". Кто-то делал подобное? Как это можно сделать вообще, ведь адрес тоже нужно где-то помнить? Буду крайне признателен за подсказки и примеры!  1. Обычно делают так, чтобы данные в EEPROM записывались только при выключении питания. Если питание не батарейное, то нет проблем. Если батарейное... Наверно, тоже возможно - проснуться, проверить напряжение на батарее и, если мало, то сохраниться. Только нужно сделать программнй гистерезис, чтобы не было проблем при питании близком к критическому. 2. Цитата Выделяем кусок ЭПРОМ, в котором храним счетчик ... При каждом сохранении в старых ячейках пишем $FF а в новых счетчик ... При чтениии от начала ищем not $FF и тем самымым выходим на запись.
... Таким образом при счетчике в 4 байта и перезаписи с частотой 1 Гц всей памяти хватит на 148 суток. Не густо. Это неэффективный путь, так как ресурс ячейки используется не полностью. Нужно писать не char, а int. Тогда младший байт будет перезаписан 65000 раз. Или комбинировать предложенное использование кода Грея с адресацией.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Mar 21 2007, 11:30
|

За битами по регистрам гоняюсь
  
Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446

|
Цитата(mse @ Mar 21 2007, 09:53)  ...Кроме того, у ФРАМ чтение разрушающее. Т.е. его ресурс как ПЗУ сильно ограничен. В отличие от режима ОЗУ или ЕЕПРОМ-флэш. Там наоборот. Почему это чтение с триггеров разрушающее?  И чем отличается режим ПЗУ от ОЗУ?
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Mar 21 2007, 11:59
|
Знающий
   
Группа: Свой
Сообщений: 709
Регистрация: 3-05-05
Пользователь №: 4 693

|
Цитата(Nanobyte @ Mar 21 2007, 11:30)  Почему это чтение с триггеров разрушающее?  И чем отличается режим ПЗУ от ОЗУ? Если бы там были триггера, то она бы была золотая. Проскальзывал документ ихний про кол-во считываний без регенераццыи. Давно, правда. А вот этим и отличается: в ОЗУ пишем-читаем, а из ПЗУ тока читаем.
|
|
|
|
|
Mar 21 2007, 12:30
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(mse @ Mar 21 2007, 10:59)  Если бы там были триггера, то она бы была золотая. Проскальзывал документ ихний про кол-во считываний без регенераццыи. Давно, правда. Давно, потому и забылось, видать. Принцип там такой: при записи электрическим полем сдвигается атом в кристалле ферроэлектрика. При прохождении атомом энергетического барьера возникает импульс тока. В процессе чтения также прикладывают поле. Если зарегистрирован импульс - значит бит был запрограммирован. Но атом в процессе этого чтения уже занял исходное положение, информация разрушена (отсюда название "разрушающее чтение"). Поэтому считанное значение тут же аппаратно записывается обратно. FRAM technology basicsКстати поэтому для этих памятей ограничено (раньше было, во всяком случае) не количество записей, а количество обращений к ячейке. Ибо чтение = стирание + запись.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 21 2007, 15:52
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 16-03-07
Из: Москва
Пользователь №: 26 228

|
to Сергей Борщ не в тему ветки, но про FRAM, не могли бы Вы прояснить, правильно ли я понимаю следующее: в доке на FM25256 (FRAM от Ramtron-а) написано 10^14 cycles, эти циклы складываются из числа записей х 1 + число чтений х2... При максимальной частоте доступа 15 MHz, если мы будем тупо по кругу читать один и тот же байт (я так понимаю это для FRAM хуже чем писать), выходит много лет, что бы ячейку убить.... т.е. память выходит практически вечная (в разумных пределах)... или я что-то не верно себе мыслю?
--------------------
Быстро, Дёшево, Качественно-выбери любые 2 пункта
|
|
|
|
|
Mar 21 2007, 16:16
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(rumit2000 @ Mar 21 2007, 14:52)  в доке на FM25256 (FRAM от Ramtron-а) написано 10^14 cycles, эти циклы складываются из числа записей х 1 + число чтений х2... Я так понял что число записей*1 + число чтений *1. Цитата(rumit2000 @ Mar 21 2007, 14:52)  При максимальной частоте доступа 15 MHz, если мы будем тупо по кругу читать один и тот же байт (я так понимаю это для FRAM хуже чем писать), выходит много лет, что бы ячейку убить.... т.е. память выходит практически вечная Да, они так изначально и заявляли, что число обращений теоретически ограничено, но реально быстрее сдохнет сама микросхема из-за диффузии материала корпуса в кристалл, чем исчерпается ресурс. И что именно поэтому реального ресурса никто не знает - "убить пока не удалось"  Насчет "читать хуже чем писать" - мне кажется ей что чтение, что запись - то же яйцо только вид сбоку.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Mar 21 2007, 16:19
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 16-03-07
Из: Москва
Пользователь №: 26 228

|
Цитата(Сергей Борщ @ Mar 21 2007, 16:16)  Я так понял что число записей*1 + число чтений *1. Да, они так изначально и заявляли, что число обращений теоретически ограничено, но реально быстрее сдохнет сама микросхема из-за диффузии материала корпуса в кристалл, чем исчерпается ресурс. И что именно поэтому реального ресурса никто не знает - "убить пока не удалось"  Спасибо, а то прочитав про FRAM испугался, что заложился на неё в серии...
--------------------
Быстро, Дёшево, Качественно-выбери любые 2 пункта
|
|
|
|
|
Mar 21 2007, 16:22
|
Частый гость
 
Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595

|
rumit2000 В ДШ к последним FRAM-ным м/сх указывается неограниченный срок (то есть, время истощения ресурса при непрерывном чтении превышает время хранения данных при отключенном питании). Однако с нетерпением ждём от mse новостей из интимного места техподдержки (терморектальный криптоанализ, видимо, полезная вещь). Но вот только ходят слухи, что главный бич FRAM-ок - это нестабильность в общем полупроводниковом смысле (от питания/температуры). Любопытно было бы послушать "пострадавших".
Сергей Борщ Почему при использовании кода Грея будет равномерный износ ячеек? Мне кажется, это не так, потому что в коде Грея младшие биты меняются гораздо чаще старших, в этом он ничем не отличается от двоичного кода. Это легко проверить, вспомнив формулу перевода двоичного кода в код Грея (там просто XOR соседних битов). Код Грея не даёт других преимуществ кроме "атомарности" операции, что само по себе часто бывает полезным.
Сообщение отредактировал CD_Eater - Mar 21 2007, 16:23
|
|
|
|
|
Mar 21 2007, 16:29
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 16-03-07
Из: Москва
Пользователь №: 26 228

|
Цитата(CD_Eater @ Mar 21 2007, 16:22)  Но вот только ходят слухи, что главный бич FRAM-ок - это нестабильность в общем полупроводниковом смысле (от питания/температуры). Любопытно было бы послушать "пострадавших". скоро будет год как в серии (в том числе в уличных исполнениях) работает... вроде проблем не было "тьфу-тьфу-тьфу..." Хотя конечно год совершенно не показатель... Зато вот атмеловская память AT25256 побилась в ходе тестов..... при обещаных 100.000, чесно выдержала около 250.000 циклов записи а потом благополучно перестала воспринимать запись в ячейку...
--------------------
Быстро, Дёшево, Качественно-выбери любые 2 пункта
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|