|
|
  |
Запись на EEPROM |
|
|
|
Aug 26 2008, 18:48
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(Боинг749 @ Aug 26 2008, 21:23)  Вот текст ответа этого чела(нашёл в инете): Вероятно, у этого человека тест неправильно был построен. IgorKossak приводил несколько другую цифру, и она кореллирует с тем, что написано в ДШ. Сам я тоже проверял, мои цифры выше. Всяко лучше самому измерить ресурс чем доверять сомнительным источникам, тем более когда речь идет о разнице в 50 раз.
|
|
|
|
|
Aug 26 2008, 18:59
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801

|
Цитата(defunct @ Aug 26 2008, 22:48)  Вероятно, у этого человека просто тест неправильно был построен. С чего Вы взяли? Я же привёл описание теста, который проводил чел... Что в нём не правильного? P.S. Врядли Atmel при указании цифры "100000 записей" предполагал, что сбои начнутся на 100001-й записи.. Наверняка заложил какой-то запас.... 100000 он гарантирует.. А вот несколько миллионов записей потребитель должен закладывать в свой проект "на свой страх и риск".
|
|
|
|
|
Aug 26 2008, 19:51
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(defunct @ Aug 26 2008, 05:14)  Где?  В ДШ (если вы их читаете) есть цифра 100K перезаписей. Производители eeprom не настолько тупы, чтобы писать 100k там, где реально есть 5.5M. Проверить оч. легко: Код void test(void) { static volatile __eeprom char x; char cnt = 0; long cycle = 0;
do { x = ++cnt; cycle += 1; } while (x == cnt);
printf("eeprom resource is %d cycles\n", cycle); } За 10-20 минут ячейку заелозит и увидите реальное число. defunct не все так просто на самом деле..., 100000 это долговременная стабильность при НЕтепличных условиях(по температуре например) и при питании 2,7(1,8)V, то есть 100000 при любых условиях гарантированны... В какой-то момент я сам решил проверить работу своего хитрого алгоритма по сохранению данных в EEPROM, так вот у меня не хватило терпения его проверять..., в итоге пришлось на симуляторе прогнать все состояния... При 2-3 миллионах записей на AT90S2313 сбоев не было ни в одной ячейке, правда условия эксперимента были вполне тепличными. Так что миллионы записей - вполне реально, НО все рассчеты НУЖНО делать исходя из 100000...
|
|
|
|
|
Aug 26 2008, 19:59
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801

|
Цитата(singlskv @ Aug 26 2008, 23:51)  defunct не все так просто на самом деле..., 100000 это долговременная стабильность при НЕтепличных условиях(по температуре например) и при питании 2,7(1,8)V, то есть 100000 при любых условиях гарантированны...
В какой-то момент я сам решил проверить работу своего хитрого алгоритма по сохранению данных в EEPROM, так вот у меня не хватило терпения его проверять..., в итоге пришлось на симуляторе прогнать все состояния... При 2-3 миллионах записей на AT90S2313 сбоев не было ни в одной ячейке, правда условия эксперимента были вполне тепличными. Так что миллионы записей - вполне реально, НО все рассчеты НУЖНО делать исходя из 100000... Ну да.. Если у Вас MCU работает при колебаниях температуры от -40 до +125 при просадках питания и требуется сохранность данных в течении 20-ти лет, то тогда да, не следует рассчитывать что при таких условиях эксплуатации и записи инфы в EEPROM после 100000 перезаписей надеется, что инфа у Вас будет сохранна в течении 20-ти лет . А если же у Вас MCU работает при комнатной температуре и при стабильном напряжении питания 5В и данные храняться в EEPROM-е не более одного дня (например запись логов каждый день) то на цифру "3 миллиона записей" можно вполне рассчитывать
Сообщение отредактировал Боинг749 - Aug 26 2008, 20:05
|
|
|
|
|
Aug 26 2008, 20:19
|

Местный
  
Группа: Участник
Сообщений: 355
Регистрация: 27-03-07
Из: Україна, Чуднів
Пользователь №: 26 530

|
Цитата(Боинг749 @ Aug 26 2008, 22:59)  Ну да.. Если у Вас MCU работает при колебаниях температуры от -40 до +125 при просадках питания и требуется сохранность данных в течении 20-ти лет, то тогда да, не следует рассчитывать что при таких условиях эксплуатации и записи инфы в EEPROM после 100000 перезаписей надеется, что инфа у Вас будет сохранна в течении 20-ти лет .
А если же у Вас MCU работает при комнатной температуре и при стабильном напряжении питания 5В и данные храняться в EEPROM-е не более одного дня (например запись логов каждый день) то на цифру "3 миллиона записей" можно вполне рассчитывать АВР типа Industrial работает в температурном диапазоне (из ДШ мега8) -40°C to 85°C. Write/Erase Cycles: 10,000 Flash/100,000 EEPROM Data retention: 20 years at 85°C/100 years at 25°C может расскажете где взяли Вы другую цифру. Какие программы, алгоритмы использовали, какой чип?
--------------------
нельзя недооценивать предсказуемость глупости
|
|
|
|
|
Aug 26 2008, 20:27
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801

|
Цитата(sKWO @ Aug 27 2008, 00:19)  АВР типа Industrial работает в температурном диапазоне (из ДШ мега8) -40°C to 85°C. Write/Erase Cycles: 10,000 Flash/100,000 EEPROM Data retention: 20 years at 85°C/100 years at 25°C может расскажете где взяли Вы другую цифру. Какие программы, алгоритмы использовали, какой чип? "Другую цифру" (несколько миллионов записей) я взял из сообщения одного человека на форуме, информацию от которого я рассматриваю как достоверную (ибо врать ему резона не было ни какого)
|
|
|
|
|
Aug 26 2008, 20:31
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(defunct @ Aug 27 2008, 00:08)  Да причем тут хитрый алгоритм. Почти не при чем, просто я его пытался проверить в реальном железе запустив запись и потом считывание и проверку по циклу, но проверить его было не суждено..., ждать надоело... Цитата Давайте остановимся на безхитростном алгоритме - тупой счетчик, как в приведенном примере. на проверку понадобится всего 10-20 минут, максимум полчаса и одна ячейка eeprom'a любого AVR чипа. Примерно так в итоге и проверял, писал в ячейку счетчик а в соседнюю его побитовую инверсию, если при считывании ячейки оказывались битыми, переходил на след пару ячеек, при нажатии кнопки(тестил на STK500) в 4 старшие ячейки прописывал количество записей в еепром и дальше просто ждал отключения. После 5-7 часов работы количество записей в eeprom соответствовало теоритическому(по скорости записи в еепром), задействованно было только 2 первых ячейки... Тест проводил раза 3 на следующих ячейках, терпения дождаться сбоя не хватило... Если есть желание, запостите свой код для проверки под STK500 и AT90S2313 я его потестирую и потом выложу дамп еепрома.
|
|
|
|
|
Aug 27 2008, 04:37
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(singlskv @ Aug 26 2008, 23:31)  Если есть желание, запостите свой код для проверки под STK500 и AT90S2313 я его потестирую и потом выложу дамп еепрома. Поставил на ночь крутиться на m16 до первого сбоя (программка приблизительно такая же как приводил выше, инкрементируется байт и пишется в последнюю ячейку eeprom'a) Сейчас снял результаты: 77 -- ожидаемое значение 7F -- реальное значение 0x24240 - цикл итого свалилось на 148032 цикле. перезапустил тест крутиться дальше. Вечером отпишусь еще, и выложу код теста. О, уже упало, даже ждать вечера не пришлось: AD -- ожидаемое значение ED -- реальное значение 0x990A - цикл (39178) После этого упало уже на 6160-м цикле 20 - ожидаемое 62 - прочитанное А вы говорите миллионы...
|
|
|
|
|
Aug 27 2008, 06:49
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801

|
Цитата(defunct @ Aug 27 2008, 08:37)  Поставил на ночь крутиться на m16 до первого сбоя (программка приблизительно такая же как приводил выше, инкрементируется байт и пишется в последнюю ячейку eeprom'a)....
А вы говорите миллионы... Уговорили.. Пойду тоже запущу тест... Не.. всё же не буду.. Есть всего 3 девайса на руках... И каждый из них нужен... Если угроблю хотя бы один - нЕначем будет отлаживаться.. Подождём .. Мож ещё кто тест EEPROM погоняет и скажет о результатах... Кому не жалко изничтожить для таких целей проц... И будем набирать статистику.. А то пока только всего один участник заявил, что износостойкойсть EEPROM только чуть-чуть больше заявленных в даташите, и один заявил, что износостойкость EEPROM на порядок превышает те "100000 записей", о которых говорится в даташите
Сообщение отредактировал Боинг749 - Aug 27 2008, 06:50
|
|
|
|
|
Aug 29 2008, 09:31
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(defunct) А вы говорите миллионы... Ничего не понимаю... Может это мне так везет. :05: Почти час "мучал скотину" -- накрутил чуть более миллиона циклов. Проблем не было! условия испытания: -- комнатная температура (на столе), -- STK-500, -- ATMEGA48-20PU, дата изготовления 0623, снизу на брюхе три строки 6F6183 35573С 1-PЗ0623 e3 -- комп. В проге задействован пара светодиодов. Один преключается при каждой перезаписи, другой переключается через какждые 100 циклов перезаписи. Так же через каждые 100 циклов через UART отправляю в комп строку, где указываю текущий номер цикла. На каждом цикле прога записывает младший байт номера цикла в ЕЕПРОМ по адресу 0х00. Выход из цикла по ошибке записи. При этом в комп уйдет строка с номером цикла, а так же это номер будет записан в ЕЕПРОМ по адресам 0х01-0х04. Код написан CV (исходник "приартачен"). Код проги не является примером, для подражания или обучения.
|
|
|
|
|
Aug 29 2008, 09:39
|
Частый гость
 
Группа: Новичок
Сообщений: 83
Регистрация: 25-08-08
Пользователь №: 39 801

|
Цитата(zhevak @ Aug 29 2008, 13:31)  Почти час "мучал скотину" -- накрутил чуть более миллиона циклов. Проблем не было! Запись длится где-то 8,5мСек. Чтобы сделать миллион записей потребуется 2,36 часа
|
|
|
|
|
Aug 29 2008, 10:45
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(Боинг749 @ Aug 29 2008, 15:39)  Запись длится где-то 8,5мСек. Чтобы сделать миллион записей потребуется 2,36 часа Нет, нет. Я сразу же определил время записи. На Меге48 оно было 3.54-3.58 мс (LeCroy WaveJet-322). Так же определил, что запись действительная, т.е. проц мне "в уши не дует": я останавливал процесс в разное время и смотрел программатором ЕЕПРОМ, каждый раз было случайное число. После того, как убедился, что процесс записи не "липовый", запустил убивалку. Ожидал, что через 10 минут мега издохнет... крхе!
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|