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

 
 
> EEPROM ATtiny2313, потеря данных через некоторое время
andrey videoplus
сообщение May 20 2011, 09:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 24-06-10
Из: Киев
Пользователь №: 58 123



Хорошего времени суток.
Прошу совета, подсказки и т.д. знающих людей.
Было серийно выпускаемое устройство еще на AT89C2051 которое запоминало данные во внешней флеш-памяти АТ24С256. Все было хорошо пока не решили перейти на проц по новее ATtiny2313. И часть данных решил сохранять во встроенной EEPROM.
Имеется опыт работы с ATmega, но как-то не приходилось использовать их внутренние EEPROM. Ничего не предвещало беды, но устройства начали глючить. Через некоторое время проблема была найдена - по какой-то причине данные в EEPROM сбивались. Причем - могло проработать и 2 неделе, а потом глюкнуть. А могло и сразу. Проблему решил просто - все данные опять храню во внешней флешке. Проблемы нет, но хочется понять!!!
Вот образец:
;----------- резервирование EEPROM
.ESEG
.ORG $0
zad: .byte 1
master: .byte 8

А это сами программы:
;--------------- запись байта ----------------
;адрес ячейки для записи/чтения находится work.
;результат в buf
eeprom_write:
cli
sbic EECR,EEWE ;-- ждать флаг готовности
rjmp eeprom_write
out EEAR,work ;-- установить байт адреса
out EEDR,buf ;-- копировать данные для записи
sbi EECR,EEMWE ;--
sbi EECR,EEWE ;-- начать запись
sei
ret
;--------------- чтение ----------------
eeprom_read:
cli
sbic EECR,EEWE ;-- ?ac?aoaiey ia ?oaiea
rjmp eeprom_read
out EEAR,work ;-- onoaiiaea ieaaoaai cia?aiey aa?ana
;clr buf
sbi EECR,EERE ;-- onoaiiaea i?eciaea ?oaiey
in buf,EEDR ;-- eiie?oai ?acoeuoao
sei
ret

во время выполнения этих процедур пропадание питания не наблюдалось, прерываний, которые могли бы вносить "коррективы" в адрес или менять байт информации - нет. Грешу только на питание - от 12В через 7805. Но ведь с внешней памятью работает нормально............ Думал наводка на кварц или его цепи - переключил на внутренний RC - результат тот же.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ArtemKAD
сообщение May 21 2011, 21:57
Сообщение #2


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

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата
Наверно удивительно?? Но как уже говорил со встроенной EEPROM дело иметь не приходилось. Все устройства, которые ранее приходилось проектировать - выполняли несложные задачи, имеют бесперебойное питания и выключаются раз в месяц для профилактики. Потому BOD был до фонаря.

BOD никогда не до фонаря. Он может только иногда мешать для крайне мало потребляющих устройств. В остальных случаях это крайне полезная фича позволяющая устройству предсказуемо работать при снижении напряжения. Для EEPROM он обязателен т.к. надо гарантировать, что энергии на запись после команды таки хватит. До этого вам повезло т.к. внешняя EEPROM ниже нижней границы питания (2,7В для 24С) просто не работала.
Go to the top of the page
 
+Quote Post



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

 


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


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