Sergio66 0 28 мая, 2013 Опубликовано 28 мая, 2013 · Жалоба Доброго времени суток... Столкнулся с такой проблемой... Голову сломал в поисках причины... Может кто сталкивался с подобным... Имеется плата под управлением МЕГА32 и AT45DB041D подключены по SPI. Девайс постоянно накапливает данные с датчиков и складывает на флэш. 1 запись = 8 байт... Флэш организована таким образом: 0-я страница - служебная. В ней помимо прочего пишется и адрес первой свободной для записи данных ячейки остальной части флэш. Пока данные поступали редко - 1 запись в 2 - 3 минуты, все было нормально... Теперь данные поступают раз в 2 секунды. Соответственно, модификация 0-й страницы происходит так же часто... как только набирается 60 - 70 тысяч записей, начинают портиться данные в страницах 1,2,3... дальше не проверял... Данные в 0-й странице - в порядке. Область для данных закольцована... Это не вызывает сомнений. проверено и в отладчике, и на медленном процессе... Кроме того, данные в начальных страницах начинают портиться либо ДО перехода через начало, либо далеко после. Но НЕ в момент перехода на начало области данных... Пробовал ставить Rewrite через каждые 10 000 попыток доступа к 0-й странице. не помогает... Может кто имеет соображения по этому поводу??? Еще раз - на медленном процессе все работает нормально... Буду благодарен за любой ответ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 28 мая, 2013 Опубликовано 28 мая, 2013 · Жалоба Пробовал ставить Rewrite через каждые 10 000 попыток доступа к 0-й странице. не помогает... Как именно Вы делали rewrite? Может кто имеет соображения по этому поводу??? ИМХО: 1. Вообще не хранить данные в секторе 0a (первые восемь страниц), только служебную информацию. 2. Указатель "хвоста" размазывать по этим восьми страницам, иначе очень быстро кончится ресурс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 28 мая, 2013 Опубликовано 28 мая, 2013 · Жалоба И вообще не хранить указатель "хвоста", а определять его сканированием до первой свободной (FF....FF) зоны. Это если при включении. А пока устройство включено - в оперативной памяти, естественно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 28 мая, 2013 Опубликовано 28 мая, 2013 · Жалоба Теперь данные поступают раз в 2 секунды. Соответственно, модификация 0-й страницы происходит так же часто... как только набирается 60 - 70 тысяч записей, начинают портиться данные в страницах 1,2,3... дальше не проверял... Данные в 0-й странице - в порядке. А может флешкой уже кто то пользовался до Вас. "раз в 2 секунды" т.е. Ваше устройство работоспособно ~55.5 часов? А потом что? выбрасывать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gryphus 0 30 мая, 2013 Опубликовано 30 мая, 2013 · Жалоба А может флешкой уже кто то пользовался до Вас. "раз в 2 секунды" т.е. Ваше устройство работоспособно ~55.5 часов? А потом что? выбрасывать? Ну там ресурс же не 100000 стираний... :bb-offtopic: Сейчас хотел посмотреть у Атмела и обнаружил, что в их номенклатуре больше нет позиции DataFlash® Я что-то пропустил? Как дальше жить?! :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 30 мая, 2013 Опубликовано 30 мая, 2013 · Жалоба :bb-offtopic: Сейчас хотел посмотреть у Атмела и обнаружил, что в их номенклатуре больше нет позиции DataFlash® Я что-то пропустил? Как дальше жить?! :crying: Они продали это направление Adesto Technologies Corporation. А жить лучше вообще без DataFlash :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 30 мая, 2013 Опубликовано 30 мая, 2013 · Жалоба Ну там ресурс же не 100000 стираний... А сколько? В DS смотрю : 100,000 Program/Erase Cycles Per Page Minimum Или я чего то не догоняю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vacvvn 0 31 мая, 2013 Опубликовано 31 мая, 2013 · Жалоба Чудес не бывает, бывают трудноуловимые ошибки в программах, которые замыленный глаз автора программы в упор не видит. Ищите багу и пересмотрите порядок хранения данных - обновлять во флеше адреса головы и хвоста архива каждые 2 сек совершенно неправильно. Если девайс не выключается, то хранить адреса в оперативке, а при запуске голову и хвост сканировать. Если выключается часто и времени на сканирование нет, то придумывать что то еще. Например sram с батарейкой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gryphus 0 31 мая, 2013 Опубликовано 31 мая, 2013 · Жалоба Или я чего то не догоняю? Всё верно. Я перепутал с 24-ой серией, где эта цифра на порядок больше, но тоже мало на самом деле. Ещё есть вариант потавить отдельную ПЗУшку от Ramtron для хранения адреса. У них неограниченное число перезаписей Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
desh 0 31 мая, 2013 Опубликовано 31 мая, 2013 · Жалоба Отдельная микросхема - это неудобно. Если к данным добавить поле с ключом, значение которого увеличивается от записи к записи - можно вообще не хранить индексы, а вычислять их по старту алгоритмом, аналогичным бинарныму поиску. Получается весьма быстро. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться