Arduino UNO - какой ресурс у EEPROM?
- Войдите на сайт для отправки комментариев
Пнд, 18/02/2019 - 07:39
Использую EEPROM для хранения промежуточных данных. Данные пишутся каждую секунду. 64 байта.
Стоит вопрос - переписывать один и тот же кусок памяти или мутить кольцевой буфер.
Ответ зависит от ресурса EEPROM - сколько циклов перезаписи гарантированно выдержит внутренняя память чипа?
Использую EEPROM для хранения промежуточных данных. Данные пишутся каждую секунду. 64 байта.
Стоит вопрос - переписывать один и тот же кусок памяти или мутить кольцевой буфер.
Ответ зависит от ресурса EEPROM - сколько циклов перезаписи гарантированно выдержит внутренняя память чипа?
гарантиреуца 100`000 циклов записи на ячейку, но кольцевой буфер мутить стОит.
Зависит от того сколько лет планируется использовать ус-во. Тесты у людей показывают до 3-5 млн циклов в домашних условиях.
сколько циклов перезаписи гарантированно выдержит внутренняя память чипа?
Всегда смотрите первоисточник - даташит. Там указаны все характеристики чипа, в том числе ресурс Flash и EEPROM.
Только ДШ гарантирует при эксплуатации в диапазоне температур от и до, и питающих напряжений от и до. Ага?
Только ДШ гарантирует при эксплуатации в диапазоне температур от и до, и питающих напряжений от и до. Ага?
Вы, конечно, можете писать что хотите, но прозводитель согласно ДШ гарантирует.)
Использую EEPROM для хранения промежуточных данных. Данные пишутся каждую секунду. 64 байта.
Гарантированного ресурса ЕЕПРОМ в Уно хватит на 1.5 суток. Если спользовать буфер - примерно на месяц.
ИМХО, подумайте об оптимизации алгоритма. Скорее всего вам не нужно писать данные раз в секунду.
Данные пишутся каждую секунду. 64 байта.
Очень жестко - может стоит подумать о бесперебойном питании аппарата, а данные в EEPROM записывать раз в час или сутки?
Поставить внешнюю FRAM. Она работает как RAM с автономным питанием.
А что произойдёт при порче EEPROM из-за частой перезаписи ?
И как отследить проблему (скорее всего при очередной попытке записи) ? Данные сотрутся, останутся старые, запишутся некорректно ?
При считывании будут получены не те данные, что записаны.
И как отследить проблему (скорее всего при очередной попытке записи)
Контрольную сумму щитать умеешь?
Контрольную сумму щитать умеешь?
Нет. Но понял.
Контрольную сумму щитать умеешь?
Нет. Но понял.
Для небольших блоков данных можно пользоваться CRC8 который есть, например, в библиотеке 1-Wire
Контрольную сумму щитать умеешь?
Нет. Но понял.
у dallas ( к примеру DS18B20) есть алгоритм проверки CRC саму формулу реализовывать на ардуино не стоит, а вот использовать таблицу многие пользуют.
в этом топике вроде табличка есть, да и на гитхабе встречал табличку и библиотеку (не помню какую) с примера реализации.
Да в avr-lib уже сделаны все эти *crc*: https://www.microchip.com/webdoc/AVRLibcReferenceManual/group__util__crc_1ga37b2f691ebbd917e36e40b096f78d996.html
Достаточно изобразить что-то типа
Всем спасибо ! Буду пробовать.