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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> Есть проблема EEPROM..., В третий раз сталкиваюсь со сбоями при работе с EEPROM
Old1
сообщение Dec 13 2005, 21:42
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(Volodymyr @ Dec 14 2005, 00:07) *
идея интересная :о), но боюсь муторная немного... У Petka - интересней. ИМХО.

В Application Note AVR101. описано ИМХО подобное решение. Там в EEPROM создаются два кольцевых буфера c одинаковым количеством уровней, в один записывается сохраняемый параметр, во второй индекс текущего уровня первого буфера… В результате максимальное количество циклов записи в EEPROM составляет 100000*N, где N-количесво уровней буферов…Кстати там и пример на С прилагается.
Go to the top of the page
 
+Quote Post
proba
сообщение Dec 13 2005, 22:55
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 358
Регистрация: 29-05-05
Пользователь №: 5 526



чтение-запись баита в EEPROM выглядит у меня :
- EEADR = 0 всегда
- перед записи сравниваю содаржимое ячеики, если то же самое, записи не будет

U8 ReadEEPROMByte( U16 Address )
{
U8 Data;
while( (EECR & __BIT_MASK( EEWE )) != 0 ) ;
EEAR = Address;
SetBit( EECR, __BIT_MASK( EERE ) );
Data = EEDR;
EEAR =0;
return Data;
}



void WriteEEPROMByte( U16 Address, U8 Data )
{
while( (EECR & __BIT_MASK( EEWE )) != 0 ) ;
if ( ReadEEPROMByte( Address ) != Data )
{
EEAR = Address;
if (( SREG & 0x80) !=0)
{ _CLI();
EEDR = Data;
SetBit( EECR, __BIT_MASK( EEMWE ) );
SetBit( EECR, __BIT_MASK( EEWE ) );
_SEI();
}
else {
EEDR = Data;
SetBit( EECR, __BIT_MASK( EEMWE ) );
SetBit( EECR, __BIT_MASK( EEWE ) );
}
EEAR =0;
}
}
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Dec 14 2005, 08:18
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Дело в том что я пишу на АСМ
поетому просто выдрать код - неполучиться.

В ЕЕПРОМЕ размещены счетчики
Младшие разряды обновляются чаще старших.

Поэтому для них эти уровни никчему (APNOTE)

Мой вариант эфективнее использует память
К томуже и быстродействие выше.
Go to the top of the page
 
+Quote Post
АДИКМ
сообщение Dec 14 2005, 08:49
Сообщение #19


Знающий
****

Группа: Свой
Сообщений: 630
Регистрация: 2-08-05
Пользователь №: 7 294



Если писать надо часто, лучше использовать FRAM от RAMTRONa с I2C или SPI интерфейсом. Задержек нет, ресурс огромный


--------------------
летаю на пепелаце...
Go to the top of the page
 
+Quote Post
bbg
сообщение Dec 14 2005, 10:21
Сообщение #20


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 25-06-04
Пользователь №: 179



А одни мои знакомые извратились до того, что стали писать-читать с тройной избыточностью, используя классическое мажоритирование. По их словам, за пять лет ни одного сбоя. Правда, возможно и без мажоритирования не было бы ни одного сбоя smile.gif) Кстати, интересна статистика, а как именно "вылетают" ячейки? Типа одно-несколько "нехороших" мест, или целый ряд близкорасполеженных?? По-любому, все проблемы начинаются с качества питания, imo.
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Dec 14 2005, 10:33
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Цитата(bbg @ Dec 14 2005, 14:21) *
А одни мои знакомые извратились до того, что стали писать-читать с тройной избыточностью, используя классическое мажоритирование. По их словам, за пять лет ни одного сбоя. Правда, возможно и без мажоритирования не было бы ни одного сбоя smile.gif) Кстати, интересна статистика, а как именно "вылетают" ячейки? Типа одно-несколько "нехороших" мест, или целый ряд близкорасполеженных?? По-любому, все проблемы начинаются с качества питания, imo.


Статистику раскажу как толька заказаный контроллер получу
Буду в цикле писать и жечь еепромку ему =(

Расскажите про классическое мажоритирование
Это как ??

Цитата(АДИКМ @ Dec 14 2005, 12:49) *
Если писать надо часто, лучше использовать FRAM от RAMTRONa с I2C или SPI интерфейсом. Задержек нет, ресурс огромный



Говорили уже - дорого + фиг я в Одессе куплю ее просто Недели 3 ждать придеться =(

Я слышел что если ФРАМУ коротнуть ноги питания он благополучно все забудет =(
НЕЗНАЮ ПРАВДА ЛИ ЭТО - кто работал - подскажите плиз
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 14 2005, 10:45
Сообщение #22


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(DeXteR @ Dec 14 2005, 12:33) *
Я слышел что если ФРАМУ коротнуть ноги питания он благополучно все забудет =(
НЕЗНАЮ ПРАВДА ЛИ ЭТО - кто работал - подскажите плиз

Не забудет. Враки всё это.
Работаю с ней давно и ничего подобного не замечал.
Go to the top of the page
 
+Quote Post
bbg
сообщение Dec 14 2005, 10:46
Сообщение #23


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 25-06-04
Пользователь №: 179



Цитата(DeXteR @ Dec 14 2005, 13:33) *
Расскажите про классическое мажоритирование
Это как ??


Пишем сразу в три ячейки (причем разнесенные в пространстве памяти), читаем из трех ячеек, принимаем решение - прочитали три одинаковых числа - ОК, прочитали два одинаковых, одно неодинаковое - принимаем решение в пользу двух одинаковых. Прочитали все три неодинаковых - кричим "караул!"

Сообщение отредактировал bbg - Dec 14 2005, 10:46
Go to the top of the page
 
+Quote Post
Petka
сообщение Dec 14 2005, 11:45
Сообщение #24


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(bbg @ Dec 14 2005, 13:46) *
Цитата(DeXteR @ Dec 14 2005, 13:33) *

Расскажите про классическое мажоритирование
Это как ??


Пишем сразу в три ячейки (причем разнесенные в пространстве памяти), читаем из трех ячеек, принимаем решение - прочитали три одинаковых числа - ОК, прочитали два одинаковых, одно неодинаковое - принимаем решение в пользу двух одинаковых. Прочитали все три неодинаковых - кричим "караул!"


а ещё лучше мажорировать побитно!
Go to the top of the page
 
+Quote Post
bbg
сообщение Dec 14 2005, 15:03
Сообщение #25


Участник
*

Группа: Свой
Сообщений: 63
Регистрация: 25-06-04
Пользователь №: 179



Есче про мажоритирование, если кто захочет связываться, канечна. Оффсеты рекомендуется брать нечетными и взаимно простыми, при записи/чтении чураться значений x00 и xFF (что требует некоторой изворотливости, но весьма себя окупает), - ну и, само-собой, контрольна сумма тоже считается

Сообщение отредактировал bbg - Dec 14 2005, 15:22
Go to the top of the page
 
+Quote Post
arttab
сообщение Dec 15 2005, 03:07
Сообщение #26


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

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Вариант с внешней еепром не расматриваете? Если и в ней будут сбой, то стабильность работы мк, правильность кода.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
sseett
сообщение Dec 15 2005, 03:29
Сообщение #27


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

Группа: Участник
Сообщений: 165
Регистрация: 14-01-05
Из: РФ Приморский край (рег.25)
Пользователь №: 1 939



Использую мажоритарную проверку (три копии, но можно и больше…) с восстановлением. Несколько десятков устройств работают в непрерывном режиме более трех лет, сбои не наблюдались.
Удачи!
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Dec 15 2005, 08:26
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Цитата(sseett @ Dec 15 2005, 07:29) *
Использую мажоритарную проверку (три копии, но можно и больше…) с восстановлением. Несколько десятков устройств работают в непрерывном режиме более трех лет, сбои не наблюдались.
Удачи!



Более 3х лет это конечно хорошо
Расскажите пожалуйста Как часто пишеться ЕЕПРОМ
Сдесь говоилось о повышение ресурса а не надежности процесса записи - чтения
Go to the top of the page
 
+Quote Post
Volodymyr
сообщение Dec 15 2005, 19:42
Сообщение #29





Группа: Новичок
Сообщений: 8
Регистрация: 10-12-05
Из: Gostomel
Пользователь №: 12 055



По своей проблеме. Ситуация интересная - по снятию питания кондёры еще держат напряжение около 5с. Уровень напряжения ещё достаточен для работы логики EEPROM, но уже без самого ядра МК. Здесь важно следующее - у EEPROM нет жесткой привязки к адресу, физически адрес 0х06, например, при каждом цикле вкл/выкл располагается где угодно :о) /шутка/. Это сделано для повышения ресурса и для уменьшения "загрязнения" самой памяти.
А сбой происхоит на цыкле выкл/вкл. когда возникает неопределённость между адресацией к EEPROM в ядре МК и обвязкой самого EEPROM.

Вот...
to DeXteR - мне кажется, что если у тебя посыпется EEPROM то картина будет такой же как и у меня.

P.S. Спасибо за участие, у вас тут интересно :о))
Go to the top of the page
 
+Quote Post
arttab
сообщение Dec 16 2005, 03:51
Сообщение #30


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

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Блин. Если не нужно чтобы что то работало когда мк остановлен, то ресет должен быть общий. Функция у супервизора такая: обеспечивать необходимые временные задержки при подачи, провале питания и ОДНОВРЕММЕНО СБРАСЫВАТЬ ВСЕ МС, К НЕМУ ПОДКЛЮЧЕННЫЕ! Если нет входа ресета у микрухи, то резисторы поддяжки, притяжки или ресет на управляющий вход (если логика работы микрухи позволяет).


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post

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

 


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


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