реклама на сайте
подробности

 
 
> Проблема с DataFlash AT45DB161D, Умирает память
Samel
сообщение Sep 15 2009, 06:51
Сообщение #1





Группа: Участник
Сообщений: 3
Регистрация: 17-03-07
Пользователь №: 26 260



Столкнулся с такой проблемой, после 3-х – 5-и месяцев использования перестает работать Dflash AT45DB161D. Причем выпадает вся память, даже те страницы в которые не велась запись. Память используется для хранения счетчиком, и накопления статистики; средняя частота записи 1 мин.
Кто сталкивался с такой проблемой отзовитесь плиз!!!
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
Itch
сообщение Sep 15 2009, 08:49
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



60*24*30*5 = 216000, что уже в 2 раза больше гарантируемого ресурса.
Во вторых, там есть приписка, что если писать в одну страницу больше чем 10000 раз подряд, то надо перезаписывать весь сектор
Цитата
Each page within a sector must be
updated/rewritten at least once within every 10,000 cumulative page erase/program operations
in that sector
Go to the top of the page
 
+Quote Post
uriy
сообщение Sep 15 2009, 08:53
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Itch но ведь при превышении ресурса наверно умерли бы только те страницы куда часто писали, автор утверждает что умирает вся флеш.
Samel а буферы то хоть в микросхеме продолжают работать?
Go to the top of the page
 
+Quote Post
Duhas
сообщение Sep 15 2009, 09:19
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 227
Регистрация: 13-04-07
Пользователь №: 27 018



шо там умрет при превышении одному кремнию известно )
Go to the top of the page
 
+Quote Post
xemul
сообщение Sep 15 2009, 10:00
Сообщение #5



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Топикстартер не уточнил, что означает "перестает работать" в его случае.
Из стародавнего чтения результатов тестирования на живучесть (endurance tests) разных производителей флэш-памяти осталось воспоминание, что основная причина отказов - умножитель напряжения. Т.е. отваливается запись, но не чтение.
Если такая интенсивность записи топикстартеру действительно необходима, то его спасет только что-нить вроде FRAM.
Go to the top of the page
 
+Quote Post
Itch
сообщение Sep 16 2009, 10:17
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



или взять флешку побольше и организовать циклический буфер.
Go to the top of the page
 
+Quote Post
Samel
сообщение Sep 16 2009, 12:02
Сообщение #7





Группа: Участник
Сообщений: 3
Регистрация: 17-03-07
Пользователь №: 26 260



Цитата(Itch @ Sep 16 2009, 13:17) *
или взять флешку побольше и организовать циклический буфер.

Циклический буфер там реализован, единственое что не делается так ето, что если писать в одну страницу больше чем 10000 раз подряд, то надо перезаписывать весь сектор. Насколько ето кретично и как ето делать?
Go to the top of the page
 
+Quote Post
uriy
сообщение Sep 16 2009, 14:35
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606



Цитата
Насколько ето кретично и как ето делать?
В даташите написано и даже вроде нарисовано было.
Go to the top of the page
 
+Quote Post
Itch
сообщение Sep 18 2009, 04:50
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



Если у вас циклический буфер, т.е. пишете во все страницы флешки и с примерно одинаковой частотой, то проблема 10K не должна вас волновать.
Go to the top of the page
 
+Quote Post
Prov
сообщение Sep 25 2009, 11:39
Сообщение #10





Группа: Участник
Сообщений: 6
Регистрация: 24-09-09
Пользователь №: 52 554



Цитата(xemul @ Sep 15 2009, 12:00) *
Если такая интенсивность записи топикстартеру действительно необходима, то его спасет только что-нить вроде FRAM.

Полностью поддерживаю. Для накопления большой статистики, действительно, альтернативы flash-памяти нет. Но тогда нужно помнить о необходимости erase/write достаточно больших страниц данных, которые иногда просто негде хранить на время erase. Когда лет 6 назад я предложил писать статистику во fram у меня было мало сторонников - очень высокая стоимость. Тем не менее, я настоял на fram 32K (всего, хотя это было не 5 копеек). Работает без проблем по сей день. Применяю и в новых разработках, только 64K (цена уже таже). Проще поработать над форматом действительно необходимых данных и не разрабатывать велосипедные алгоритмы перезаписи по счетчику, который тоже нужно где-то хранить. Если данные изменяются не часто, тогда flash без проблем. Есть еще и eeprom, но это зависит от конкретной задачи, правильная формулировка которой уже должна привести к оптимальному решению.
Go to the top of the page
 
+Quote Post
andron86
сообщение Sep 25 2009, 12:19
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 406
Регистрация: 1-03-06
Пользователь №: 14 821



Дааа, вот это экстрим, циклически во флэш писать, я бы на такое не решился. Думаю автору альтернативы как FRAM нету.
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Sep 25 2009, 19:58
Сообщение #12


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(andron86 @ Sep 25 2009, 15:19) *
Дааа, вот это экстрим, циклически во флэш писать, я бы на такое не решился. Думаю автору альтернативы как FRAM нету.

А что тут такого экстремального в циклической записи? Наоборот, для флеша самое то!
Если в одну и ту же страницу писать - это да, согласен...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 25 2009, 20:33
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(andron86 @ Sep 25 2009, 14:19) *
Дааа, вот это экстрим, циклически во флэш писать, я бы на такое не решился.

Никакого экстрима - FLASH побольше, благо копейки и накрутка десятков тысяч циклов наступит очень нескоро в заявленных Автором условиях.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
RW9UAO
сообщение Sep 26 2009, 13:30
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 115
Регистрация: 23-01-07
Пользователь №: 24 688



закладывал в разработку такую же флэшку и циклическую запись страниц. перезаписывал страничку каждую минуту. гонял в этом режиме неделю - ничего не дохло. в штатном режиме во флэшку пишется примерно раз в час. флэха заполнялась примерно за три месяца. умножаем на 10 тыс циклов. судя по отзывам, работает уже не первый год. срок работы закладывали три года. первые экземпляры его прошли давно.
з.ы. речь идет не о фрам, а именно о ат45dbXXX
Go to the top of the page
 
+Quote Post
Александр Куличо...
сообщение Sep 26 2009, 15:15
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 6-03-06
Из: Украина, г. Винница
Пользователь №: 15 017



Подозреваю, что andron86 неверно понимает фразу "циклическая запись в ФЛЕШ" smile.gif
2 andron86:
Циклическая запись - это не запись в цикле (в одни и те же ячейки памяти). Под циклической записью подразумевается такой метод записи в память, когда каждый обновившийся блок данных пишется не по старому адресу, а по новому, еще не занятому. По заполнению всей флеши выполняется стирание и запись начинается сначала. Т.е. цикл идет по адресам флеши. Естетственно, рзмер флеши должен быть в N раз больше размера блока данных. Таким образом мы продлеваем жизнь флеши в N раз.
Алгоритмы записи в общем случае могут различаться, но принцип остается тот же.
Go to the top of the page
 
+Quote Post
Itch
сообщение Sep 28 2009, 07:04
Сообщение #16


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



Собсна, недостаток видится только один - необходимость просканировать практически всю флешку на предмет свободного блока при инициализации.
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Sep 28 2009, 08:24
Сообщение #17


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(Itch @ Sep 28 2009, 10:04) *
Собсна, недостаток видится только один - необходимость просканировать практически всю флешку на предмет свободного блока при инициализации.

Или иметь EEPROM/Battery RAM, куда просто писать последние параметры данных во флешке. Если пропало - не беда, можно и просканировать smile.gif
Go to the top of the page
 
+Quote Post
ReAl
сообщение Sep 28 2009, 08:35
Сообщение #18


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Itch @ Sep 28 2009, 10:04) *
Собсна, недостаток видится только один - необходимость просканировать практически всю флешку на предмет свободного блока при инициализации.
Свободный блок - это тот, на котором последовательный номер записи прыгает вниз.
Т.е.
|... 521 522 105 106 107 ...| - свободный 105-ый.
Через надцать кругов работы
|50001 50002 ... 55123 55124| - свободный 50001-ый
На старте везде нули.
Такой перепад ищется не полным сканированием флешки, а методом половинного деления, для 1024 блоков прочитать придётся, если не глючу, 11.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Sep 28 2009, 18:47
Сообщение #19


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(ReAl @ Sep 28 2009, 11:35) *
Свободный блок - это тот, на котором последовательный номер записи прыгает вниз.

Только спустя некоторое время после перехода через ноль такой "прыжок" застрянет в одном месте, т. е. при
|65534 65535 0 1 ... 10 65123 ... | сканирование покажет на 0 как на свободный, а не на 65123 если подобное не учесть в алгоритме сканирования.
Go to the top of the page
 
+Quote Post
Petka
сообщение Sep 28 2009, 20:18
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(IgorKossak @ Sep 28 2009, 22:47) *
Только спустя некоторое время после перехода через ноль такой "прыжок" застрянет в одном месте, т. е. при
|65534 65535 0 1 ... 10 65123 ... | сканирование покажет на 0 как на свободный, а не на 65123 если подобное не учесть в алгоритме сканирования.


имелась ввиду конструкция вида:
Код
((A[i]+1) % max_cnt) != (A[i+1])


P.S.
Уже не один раз кидал ссылку на Атмеловский Appnote AVR101: High Endurance EEPROM Storage.
Советую всё-таки ознакомиться.
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Sep 28 2009, 20:42
Сообщение #21


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(Petka @ Sep 28 2009, 23:18) *
Уже не один раз кидал ссылку на Атмеловский Appnote AVR101: High Endurance EEPROM Storage.

Не такие уж там и откровения. Честно говоря, мне сложно представить условия для использования такой схемы.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Sep 28 2009, 20:46
Сообщение #22


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Petka @ Sep 28 2009, 23:18) *
имелась ввиду конструкция вида:
Код
((A[i]+1) % max_cnt) != (A[i+1])
Та не, имелся ввиду таки перепад вниз, при двоичном поиске для выбора половины важно именно больше/меньше. Но я не вижу проблемы в том, чтобы сделать в качестве ключа, к примеру, 32-битный unixtime, который в логе и так не помешает. При этом даже несколько записей в одну секунду не поломают алгоритм.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 00:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01567 секунд с 7
ELECTRONIX ©2004-2016