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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Пропадают значения в еепром, при откл. питания
Integral
сообщение Oct 3 2008, 22:58
Сообщение #1


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

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



Подскажите почему иногда при внезапном пропадании питания МК в еепром записываются значения 255???

Во время пропадания питания в еепром ниче не записываю.

Как устранить эту проблему?

А делаю я так.... начинаю разединять/соединять по много раз провода питания МК, после раз ~50 в некоторых ячеяках еепрома появляются значения 255. Неужели это иза помех по питанию при искрении? Кондюки на самом МК, на стабилизаторе перед и после все по 0.1мкФ.

МК мега16.
Go to the top of the page
 
+Quote Post
Николай Иванович...
сообщение Oct 3 2008, 23:11
Сообщение #2


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

Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510



а ввообще есть в программе код записи в ипром? если есть, то возможно в результате случайного джампа из-за дёрганья питалова происходит переход на код записи в еепром
Go to the top of the page
 
+Quote Post
Integral
сообщение Oct 3 2008, 23:15
Сообщение #3


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

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



да, есть..... с утра уберу, проверю и отпешусь....
Go to the top of the page
 
+Quote Post
Николай Иванович...
сообщение Oct 4 2008, 08:12
Сообщение #4


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

Группа: Новичок
Сообщений: 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
Go to the top of the page
 
+Quote Post
Deka
сообщение Oct 4 2008, 08:51
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Ещё неплохо указатель записи сбрасывать на заранее определённую ячейку в которою возможна запись мусора в момент пропадания питания.
Go to the top of the page
 
+Quote Post
gormih
сообщение Oct 4 2008, 08:54
Сообщение #6


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 В. Для устранения данной проблемы предлагаеся использовать любое решение, которое позволит "мнгновенно" отключать питание на выводах питания.


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
Integral
сообщение Oct 4 2008, 09:05
Сообщение #7


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

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



Цитата(gormih @ Oct 4 2008, 11:54) *
....значение напряженя питания на соответствующих выводах микроконтроллера....


"соответствующих" - это на какие таких выводах? или на любих портах ввода/вывода? Ато у меня на некоторых портах стоят кондюки по 0.1мкФ и должно получаться точно как Вы написали.....
Go to the top of the page
 
+Quote Post
Николай Иванович...
сообщение Oct 4 2008, 09:07
Сообщение #8


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

Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510



Цитата(gormih @ Oct 4 2008, 12:54) *
Проблема не программная, а чисто аппаратная. Действительно, у всех микроконтроллеров ATMEGA, особенно у тех, что без технологии picopower наблюдается порча значений в EEPROM при нестабильном напряжении питания. Проблема проявляет себя, когда при выключении питания некоторый промежуток времени значение напряженя питания на соответствующих выводах микроконтроллера лежит в окне 0.2 ... 2.2 В.

Т.е. порча имеет место быть даже если в программе вообще нет команд записи в EEPROM? 05.gif
Go to the top of the page
 
+Quote Post
Igor26
сообщение Oct 4 2008, 09:08
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 521
Регистрация: 10-02-05
Пользователь №: 2 544



Цитата
то возможно в результате случайного джампа

ДеЖаВю.
Go to the top of the page
 
+Quote Post
Николай Иванович...
сообщение Oct 4 2008, 09:10
Сообщение #10


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

Группа: Новичок
Сообщений: 139
Регистрация: 26-09-08
Пользователь №: 40 510



Цитата(Integral @ Oct 4 2008, 13:05) *
Ато у меня на некоторых портах стоят кондюки по 0.1мкФ

Ну вот. И получили паразитноую запитку через выводы портов
Go to the top of the page
 
+Quote Post
gormih
сообщение Oct 4 2008, 09:11
Сообщение #11


nofb
***

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



Цитата(Николай Иванович Приходько @ Oct 4 2008, 13:07) *
Т.е. порча имеет место быть даже если в программе вообще нет команд записи в EEPROM? 05.gif

Именно. Это старый баг. Официально признаный Атмелом. В иксмеге он устранен полностью, а атмегах с пикопауэр влияние бага уменьшено... но не устранено полностью.


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post
Integral
сообщение Oct 4 2008, 11:28
Сообщение #12


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

Группа: Участник
Сообщений: 149
Регистрация: 9-08-08
Пользователь №: 39 519



Цитата(gormih @ Oct 4 2008, 12:11) *
Именно. Это старый баг. Официально признаный Атмелом. В иксмеге он устранен полностью, а атмегах с пикопауэр влияние бага уменьшено... но не устранено полностью.


Этот баг очень при очень маловероятный....
Уйма времени издевался над питанием МК, если в програме эсть запись в еепром то только в тех ячейках иногда появляется значение 255. Создавал большой масив который в самой програме не используется. В результате сколько не клацал ни одного сбоя ячейки.

Поэтому проблема чисто програмная и очень с маленькой вероятностью апаратная. Или по крайней мере в моем случае этот баг не проявляется.

Сообщение отредактировал Integral - Oct 4 2008, 11:38
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Oct 4 2008, 11:47
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(gormih @ Oct 4 2008, 13:11) *
Именно. Это старый баг. Официально признаный Атмелом.

Официально признанные описываются в ерратах. У Мег я таких записей не встречал - что независимо от наличия/отсутствия супервизора может портиться еепром при плавном снижении/нарастании питания.
Go to the top of the page
 
+Quote Post
Ph. Anatoliy
сообщение Oct 4 2008, 17:04
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 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);
...
Go to the top of the page
 
+Quote Post
gormih
сообщение Oct 4 2008, 17:32
Сообщение #15


nofb
***

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



Цитата(Integral @ Oct 4 2008, 15:28) *
Этот баг очень при очень маловероятный....
Уйма времени издевался над питанием МК, если в програме эсть запись в еепром то только в тех ячейках иногда появляется значение 255. Создавал большой масив который в самой програме не используется. В результате сколько не клацал ни одного сбоя ячейки.

Поэтому проблема чисто програмная и очень с маленькой вероятностью апаратная. Или по крайней мере в моем случае этот баг не проявляется.

beer.gif удачи... что я еще могу сказать.



Цитата(Qwertty @ Oct 4 2008, 15:47) *
Официально признанные описываются в ерратах. У Мег я таких записей не встречал - что независимо от наличия/отсутствия супервизора может портиться еепром при плавном снижении/нарастании питания.

Это не является багом в обычном понимании этого слова, так как в Datasheet жестко оговариваются минимальное и максимальное значение напряжения питания, и если Вы выходите за их пределы - Атмел тут не при чем как бы.

А вообще официальный ответ тут

P.S: По моему опыту - в EEPROM лучше вообще ничего не хранить. Были случаи, когда прибор месяцами работал без сбоев, потом происходил сбой в EEPROM и звали разработчика ПО разбираться - в Сибирь, на объект smile.gif. При этом сама возможность записи значений в EEPROM была отключена в программе - ЕЕPROM записывалась один раз, при прошивке микроконтроллера на производстве. Прблему решили тем, что данные перенесли из EEPROM во FLASH.


--------------------
Это не то что вы подумали ...

Go to the top of the page
 
+Quote Post

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

 


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


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