|
Пропадают значения в еепром, при откл. питания |
|
|
|
Oct 4 2008, 08:12
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(Integral @ Oct 4 2008, 03:15)  да, есть..... с утра уберу, проверю и отпешусь.... Ещё попробуйте между строчками: sbi EECR, EEMWE ; Разрешили запись в EEPROM ; ---------------------------------------------- ; не более чем 4-х тактовая проверка санкционированности записи в EEPROM ; софтом верхнего уровня ; ---------------------------------------------- sbi EECR, EEWE ; Начали аппаратную запись в EEPROMВставлять проверку условия была ли вообще санкционирована запись в EEPROM софтом верхнего уровня Например такую: ;------------------------------------------------------ lds R16 , ( EEPROM_WRITING_ENABLE_TAG ); Считали из ОЗУ тэг разрешения записи cpi R16 , $37 brne found_run_Time_Failure ;------------------------------------------------------ Не забывайте только что проверка условия должна выполняться не более 4 тактов процессора - иначе запись не будет произведена И ещё. Запись в EEPROM (т.е. последовательная установка битов EEMWE и EEWE) должна быть только в одном месте программы. Потому что чем больше будет понатыкано в программе команд записи тем больше вероятность несанкционированной записи в EEPROM
Сообщение отредактировал Николай Иванович Приходько - Oct 4 2008, 08:16
|
|
|
|
|
Oct 4 2008, 08:54
|

nofb
  
Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218

|
Цитата(Integral @ Oct 4 2008, 02:58)  Подскажите почему иногда при внезапном пропадании питания МК в еепром записываются значения 255???
Во время пропадания питания в еепром ниче не записываю.
Как устранить эту проблему?
А делаю я так.... начинаю разединять/соединять по много раз провода питания МК, после раз ~50 в некоторых ячеяках еепрома появляются значения 255. Неужели это иза помех по питанию при искрении? Кондюки на самом МК, на стабилизаторе перед и после все по 0.1мкФ.
МК мега16. Проблема не программная, а чисто аппаратная. Действительно, у всех микроконтроллеров ATMEGA, особенно у тех, что без технологии picopower наблюдается порча значений в EEPROM при нестабильном напряжении питания. Проблема проявляет себя, когда при выключении питания некоторый промежуток времени значение напряженя питания на соответствующих выводах микроконтроллера лежит в окне 0.2 ... 2.2 В. Для устранения данной проблемы предлагаеся использовать любое решение, которое позволит "мнгновенно" отключать питание на выводах питания.
--------------------
Это не то что вы подумали ...
|
|
|
|
|
Oct 4 2008, 09:05
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
Цитата(gormih @ Oct 4 2008, 11:54)  ....значение напряженя питания на соответствующих выводах микроконтроллера.... "соответствующих" - это на какие таких выводах? или на любих портах ввода/вывода? Ато у меня на некоторых портах стоят кондюки по 0.1мкФ и должно получаться точно как Вы написали.....
|
|
|
|
|
Oct 4 2008, 09:07
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(gormih @ Oct 4 2008, 12:54)  Проблема не программная, а чисто аппаратная. Действительно, у всех микроконтроллеров ATMEGA, особенно у тех, что без технологии picopower наблюдается порча значений в EEPROM при нестабильном напряжении питания. Проблема проявляет себя, когда при выключении питания некоторый промежуток времени значение напряженя питания на соответствующих выводах микроконтроллера лежит в окне 0.2 ... 2.2 В. Т.е. порча имеет место быть даже если в программе вообще нет команд записи в EEPROM?
|
|
|
|
|
Oct 4 2008, 09:10
|
Частый гость
 
Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510

|
Цитата(Integral @ Oct 4 2008, 13:05)  Ато у меня на некоторых портах стоят кондюки по 0.1мкФ Ну вот. И получили паразитноую запитку через выводы портов
|
|
|
|
|
Oct 4 2008, 11:28
|
Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519

|
Цитата(gormih @ Oct 4 2008, 12:11)  Именно. Это старый баг. Официально признаный Атмелом. В иксмеге он устранен полностью, а атмегах с пикопауэр влияние бага уменьшено... но не устранено полностью. Этот баг очень при очень маловероятный.... Уйма времени издевался над питанием МК, если в програме эсть запись в еепром то только в тех ячейках иногда появляется значение 255. Создавал большой масив который в самой програме не используется. В результате сколько не клацал ни одного сбоя ячейки. Поэтому проблема чисто програмная и очень с маленькой вероятностью апаратная. Или по крайней мере в моем случае этот баг не проявляется.
Сообщение отредактировал Integral - Oct 4 2008, 11:38
|
|
|
|
|
Oct 4 2008, 11:47
|
Местный
  
Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527

|
Цитата(gormih @ Oct 4 2008, 13:11)  Именно. Это старый баг. Официально признаный Атмелом. Официально признанные описываются в ерратах. У Мег я таких записей не встречал - что независимо от наличия/отсутствия супервизора может портиться еепром при плавном снижении/нарастании питания.
|
|
|
|
|
Oct 4 2008, 17:04
|
Участник

Группа: Участник
Сообщений: 25
Регистрация: 14-12-07
Из: г. Таганрог, Ростовская обл.
Пользователь №: 33 310

|
У меня подобный глюк наблюдался при переходе с WinAVR 2006 на 2007. Вот последнй рабочий код
#include <avr/io.h> #include <avr/interrupt.h> #include <avr/eeprom.h>
... eeprom_busy_wait(); eeprom_write_byte(&write_addrr, tmp); write_counter++; ... ... eeprom_busy_wait(); tmp=eeprom_read_byte(&read_addr); ...
|
|
|
|
|
Oct 4 2008, 17:32
|

nofb
  
Группа: Свой
Сообщений: 430
Регистрация: 18-05-06
Из: Москва, Зеленоград
Пользователь №: 17 218

|
Цитата(Integral @ Oct 4 2008, 15:28)  Этот баг очень при очень маловероятный.... Уйма времени издевался над питанием МК, если в програме эсть запись в еепром то только в тех ячейках иногда появляется значение 255. Создавал большой масив который в самой програме не используется. В результате сколько не клацал ни одного сбоя ячейки.
Поэтому проблема чисто програмная и очень с маленькой вероятностью апаратная. Или по крайней мере в моем случае этот баг не проявляется.  удачи... что я еще могу сказать. Цитата(Qwertty @ Oct 4 2008, 15:47)  Официально признанные описываются в ерратах. У Мег я таких записей не встречал - что независимо от наличия/отсутствия супервизора может портиться еепром при плавном снижении/нарастании питания. Это не является багом в обычном понимании этого слова, так как в Datasheet жестко оговариваются минимальное и максимальное значение напряжения питания, и если Вы выходите за их пределы - Атмел тут не при чем как бы. А вообще официальный ответ тутP.S: По моему опыту - в EEPROM лучше вообще ничего не хранить. Были случаи, когда прибор месяцами работал без сбоев, потом происходил сбой в EEPROM и звали разработчика ПО разбираться - в Сибирь, на объект  . При этом сама возможность записи значений в EEPROM была отключена в программе - ЕЕPROM записывалась один раз, при прошивке микроконтроллера на производстве. Прблему решили тем, что данные перенесли из EEPROM во FLASH.
--------------------
Это не то что вы подумали ...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|