Например TDA7294

Форум РадиоКот • Просмотр темы - Механизм записи и увеличение ресурса EEPROM у МК
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс июл 27, 2025 22:09:27

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 34 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Вс мар 13, 2011 21:36:36 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 163
Зарегистрирован: Вс янв 09, 2011 16:51:39
Сообщений: 2335
Откуда: Санкт-Ленинград
Рейтинг сообщения: 0
Как известно, почти все современные МК обладают встроенной EEPROM данных.
Хотя ресурс данной памяти довольно велик, он всё же ограничен, и приведён в даташитах.
А вопрос, каков механизм записи в EEPROM?
Т.е. идёт "изнашивание" всей памяти, или только той ячейки, к которой обращаются?

_________________
ICQ нет, и, в ближайшее время, не будет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пн мар 14, 2011 00:20:25 
Потрогал лапой паяльник
Аватар пользователя

Карма: -1
Рейтинг сообщений: 4
Зарегистрирован: Пт апр 17, 2009 22:45:42
Сообщений: 316
Откуда: Minsk
Рейтинг сообщения: 0
Сколько раз уже спрашивали...
Изнашивается конкретный адрес, при стирании все биты(?), при записи - биты, в которые пишется "0".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пн мар 14, 2011 09:21:58 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
maglev писал(а):
...
Изнашивается конкретный адрес...

Ну это спорный вопрос, поскольку память имеет страничную организацию...

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пн мар 14, 2011 22:00:34 
Потрогал лапой паяльник
Аватар пользователя

Карма: -1
Рейтинг сообщений: 4
Зарегистрирован: Пт апр 17, 2009 22:45:42
Сообщений: 316
Откуда: Minsk
Рейтинг сообщения: 0
Страничную организацию имеет flash-память, и для нее правила другие. EEPROM-же страниц не имеет, это одно из основных отличий от flash с т.з. пользователя.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пн мар 14, 2011 23:01:33 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 163
Зарегистрирован: Вс янв 09, 2011 16:51:39
Сообщений: 2335
Откуда: Санкт-Ленинград
Рейтинг сообщения: 0
maglev, тенкс!
Только поясните, правильно ли я понял, что с "изнашиванием", память перестаёт стираться (т.е. все биты выставляться в "1"), и при записи, нестёртые биты остаются в исходном состоянии, а те, которые программируются (в которые записывается "0"), программируются нормально?

_________________
ICQ нет, и, в ближайшее время, не будет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пн мар 14, 2011 23:13:00 
Потрогал лапой паяльник
Аватар пользователя

Карма: -1
Рейтинг сообщений: 4
Зарегистрирован: Пт апр 17, 2009 22:45:42
Сообщений: 316
Откуда: Minsk
Рейтинг сообщения: 0
Память перестает стираться (стирание это запись "1"), дохлый бит остается в нуле.
Но я-бы не рассчитывал на эти тонкости, т.к. заявленный ресурс она отрабатывает гарантированно во всем диапазоне температур и напряжений, а испорченные ячейки могут повести себя непредсказуемо. Охладишь или нагреешь - возможна спонтанная регенерация, потом опять вывалится.


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пн мар 14, 2011 23:24:38 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 163
Зарегистрирован: Вс янв 09, 2011 16:51:39
Сообщений: 2335
Откуда: Санкт-Ленинград
Рейтинг сообщения: 0
maglev писал(а):
Память перестает стираться (стирание это запись "1"), дохлый бит остается в нуле.
Ну, я так примерно и сказал. :)
Просто сейчас пишу программу, где надо периодически сохранять данные.
Данных всего один байт, поэтому сделал алгоритм проверки записи, и, при ошибке, смены адреса ячейки.

_________________
ICQ нет, и, в ближайшее время, не будет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Вт мар 15, 2011 00:11:50 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Тогда Вам EEPROM хватит на всю жизнь. :)))

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Вт мар 15, 2011 01:01:19 
Потрогал лапой паяльник
Аватар пользователя

Карма: -1
Рейтинг сообщений: 4
Зарегистрирован: Пт апр 17, 2009 22:45:42
Сообщений: 316
Откуда: Minsk
Рейтинг сообщения: 0
Dmitry Dubrovenko писал(а):
алгоритм проверки записи, и, при ошибке, смены адреса ячейки.

Я-бы так не делал, если правильно понимаю идею. Ты используешь одну ячейку до исчерпания ресурса, надеясь поймать момент, когда она умрет. Этот момент надежно поймать нельзя.
Правильнее писать каждый раз в новые адреса, размазывая (гарантированный) ресурс на количество используемых ячеек. Так обычно и делают, если имеет смысл по количеству планируемых перезаписей.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Вт мар 15, 2011 10:00:24 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 235
Зарегистрирован: Пт янв 29, 2010 10:27:40
Сообщений: 3863
Откуда: Москва
Рейтинг сообщения: 0
А какова вероятность, что новые данные не равны уже записанным? Или там случайное число 0-255? А то можно перед записью проверять, вдруг и записывать ничего не нужно, тогда еще немного ресурс сэкономится.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Ср мар 16, 2011 10:30:40 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 163
Зарегистрирован: Вс янв 09, 2011 16:51:39
Сообщений: 2335
Откуда: Санкт-Ленинград
Рейтинг сообщения: 0
maglev писал(а):
Этот момент надежно поймать нельзя.
Почему же?
Если верификация записи не проходит, вот и "момент". :wink:

maglev писал(а):
Правильнее писать каждый раз в новые адреса, размазывая (гарантированный) ресурс на количество используемых ячеек
Так бы оно, возможно, и было, но ведь адрес ячейки надо тоже куда-то записывать. :))

Engineer_Keen писал(а):
А то можно перед записью проверять, вдруг и записывать ничего не нужно
Это - само-собой, разумеется. :)

_________________
ICQ нет, и, в ближайшее время, не будет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Ср мар 16, 2011 11:29:17 
Держит паяльник хвостом
Аватар пользователя

Карма: 20
Рейтинг сообщений: 245
Зарегистрирован: Пн сен 18, 2006 11:16:05
Сообщений: 993
Откуда: Тула
Рейтинг сообщения: 0
Dmitry Dubrovenko писал(а):
maglev писал(а):
Этот момент надежно поймать нельзя.
Почему же?
Если верификация записи не проходит, вот и "момент". :wink:

Тебе правильно сказали что записывать в одну и туже ячейку ожидая что она даст сбой записи это не оптимальный вариант, по той например причине что ячейка с выработанным ресурсом может нормально записаться но например считаться неверно позже. Грубо говоря не все ошибки при записи и чтении можно отследить.
Я когда делал такую вещь использовал распределение записи. В епромке ресурс тратится при любом изменении состояния битов, так что есть вариант записывать (не стирая) например одну и туже ячейку несколько раз подряд (8 на самом деле) обнуляя биты по очереди получая для одной ячейки тот же ресурс при 8кратном увеличении количества физических записей, при этом ты можешь использовать содержимое такой ячейки как указатель. Сама схема такая, выбираешь сколько тебе нужно ячеек, разбиваешь их на две группы - указатель и данные. Указателей в 8 раз меньше чем данных. Потом при записи ты последовательно обнуляешь биты в указателях, записывая в соотв ячейку данных новые. Ресурс увеличивается пропорционально количеству ячеек под данные. Те при использовании 9 байт = 1байт указатель и 8 байт данные, ресурс будет в 8 раз больше. Количество ячеек можно рассчитать. Ресурс среднего епрома 1 миллион перезаписей, это примерно 11 дней можно записывать новые данные в одну ячейку раз в секунду. Если требуется к примеру ресурс в 5 лет то 5 лет *365 дней/ 11 дней = 165 ячеек данных + 165/8 ~ 20байт указателей. Естественно все эти расчеты будут другими если частота записи отличается от раза в секунду.

_________________
Информация по RLC mini находится >тут<


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Ср мар 16, 2011 12:49:41 
Встал на лапы

Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Пт янв 07, 2011 08:52:08
Сообщений: 93
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Простите, что влезаю. Но ведь запись в EEPROM в основном используется для спасения каких-то данных на случай пропадания питания. Может и тут такой случай и достаточно поставить конденсатор на питание МК и как то отслеживать наличие напряжения питания и в случае чего писать в EEPROM, а не периодически.
Конечно возможно, что конденсатор некуда поставить или ног не хватает для отслеживания питания. В этом случае конечно "такраканы пассуют".


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Ср мар 16, 2011 13:32:50 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6039
Откуда: Minsk
Рейтинг сообщения: 0
AndyKorg писал(а):
Но ведь запись в EEPROM в основном используется для спасения каких-то данных на случай пропадания питания.


Не обязательно. Может быть, ведется журнал событий. Если держать его в ОЗУ, а в момент пропадания питания переписывать в EEPROM, то простого конденсатора по питанию явно недостаточно - это не умозрительно, сам на этом деле долго ломал бошку. Нужен автомат питания, который четко отследит момент, начиная с которого энергии хватит только на записать в EEPROM. И если в процессе записи питание восстановилось, тем не менее закончить запись. А если не восстановилось, во избежание автколебательного процесса по питанию включить все допустимые нагрузки, и как Титаник, уйти на дно с включенной илюминацией :-) - сбросить энергию из накопительных конденсаторов. И тут еще возникает проблема работы при длительном провале питания ( например, рядом двигун мощный раскручивается ). Проблема, конечно, не из разряда неразрешимых, но в пол-пинка не делается.
Вот вариант с указателями (Neekeetos) мне нравится - красиво.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Чт мар 17, 2011 00:01:12 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
А я бы так сделал:
Данные держал бы в ОЗУ и в случае отключения питания сохранил бы в EEPROM,
но запитав МК по такой схеме:

Изображение

Отслеживать питание ногой РХ1 и после всей процедуры отключить МК от батареи, выставив лог. 0 на ноге РХ0
Ногу РХ1 можно настроить как внешнее прерывание по спадающему фронту и в обработчике произвести запись в EEPROM. В конце обработчика выставить ногу РХ0 в лог. 0
Для защиты от кратковременных отключений питания, можно повесить электролит в пару сотен мкф между ногой PX1 и массой, но наверное надо будет устранить утечку заряда из него, поставив в цепи PX1 диод и кондёр этот подключить после него.


Вложения:
MC.PNG [8.3 KiB]
Скачиваний: 1315

_________________
I am DX168B and this is my favourite forum on internet!
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Чт мар 17, 2011 00:56:33 
Потрогал лапой паяльник
Аватар пользователя

Карма: -1
Рейтинг сообщений: 4
Зарегистрирован: Пт апр 17, 2009 22:45:42
Сообщений: 316
Откуда: Minsk
Рейтинг сообщения: 0
Dmitry Dubrovenko писал(а):
maglev писал(а):
Этот момент надежно поймать нельзя.

Почему же?
Если верификация записи не проходит, вот и "момент".

А завтра форточку открыли, или солнышко с утра пригрело, или конденсатор в питателе подсох - вот и не читается.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пт мар 18, 2011 08:57:18 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 163
Зарегистрирован: Вс янв 09, 2011 16:51:39
Сообщений: 2335
Откуда: Санкт-Ленинград
Рейтинг сообщения: 0
AndyKorg писал(а):
как то отслеживать наличие напряжения питания
Как уже говорили, довольно сложная аппаратная реализация.
В моём случае, вдобавок, конструкция уже готовая, переделке не подлежит, а надо новую прошивку.

maglev писал(а):
А завтра форточку открыли, или солнышко с утра пригрело, или конденсатор в питателе подсох
Или бульдозером наехали, или кислотой облили... :)))

Jack_A писал(а):
Вот вариант с указателями (Neekeetos) мне нравится - красиво.
Допустим, теория с побитным изнашиванием верна.
Тогда поясните, что за МК такой, который позволяет запись осуществлять без стирания?


Если говорить об извращениях, могу ещё один вариант предложить.
Если достаточно семи битов данных, то восьмой можно использовать в качестве указателя. И никаких дополнительных ячеек. :)

_________________
ICQ нет, и, в ближайшее время, не будет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пт мар 18, 2011 12:55:01 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Dmitry Dubrovenko писал(а):
Тогда поясните, что за МК такой, который позволяет запись осуществлять без стирания?

ATTINY26L. Даю полную гарантию, что новые данные можно писать в EEPROM поверх старых, без предварительного стирания. А вот FLASH требует предварительного стирания.
Я уже много проектов сделал с использованием записи в EEPROM.

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пт мар 18, 2011 23:06:47 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 9
Рейтинг сообщений: 163
Зарегистрирован: Вс янв 09, 2011 16:51:39
Сообщений: 2335
Откуда: Санкт-Ленинград
Рейтинг сообщения: 0
DX168B писал(а):
ATTINY26L
"Покурил" даташит.
Что-то ничего подобного не увидел (как-раз наоборот).
Ткните носом, плиз.

_________________
ICQ нет, и, в ближайшее время, не будет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Механизм записи и увеличение ресурса EEPROM у МК
СообщениеДобавлено: Пт мар 18, 2011 23:22:32 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Вот работающие куски кода для этого МК.
Код:
.include      "tn26def.inc"
;---------- Назначение имён регистрам
.def          temp0             = R16
.def          temp1             = R17
.def          temp2             = R18
;----------
.cseg
;**********************************************
;* Векторы прерываний                         *
;**********************************************
.org          0x0000
rjmp          RESET
.org          0x0009
rjmp          EEP_RDY
.org    INT_VECTORS_SIZE
;---------- Готовность EEPROM по прерыванию
EEP_RDY:
ldi            temp2,         0x00         ;По готовности EEPROM чистим temp2
reti
;---------- Начало программы
RESET:
ldi           temp0,            RamEnd         ;Указатель стека
out           SP,               temp0
;...............
;.......................
;---------- Запись "заводского" кода и значений настроек
WRSTD:
ldi            ZL,          Low(CONFIG_IMAGE*2)
ldi            ZH,          High(CONFIG_IMAGE*2)
clr            temp1
WRSTD_LOOP:
lpm            temp0,          Z
rcall         EEWRITE1
adiw         Z,             0x01
inc            temp1
cpi            temp1,          50
brmi         WRSTD_LOOP
;----------
rcall         SUCCESS                    ; Индицируем успешную операцию.
rjmp        RESET
;---------- Универсальный загрузчик в EEPROM
EEWRITE1:
cli
sbi           EECR,             EERIE
out           EEAR,             temp1
out           EEDR,             temp0
sbi           EECR,             EEMWE
sbi           EECR,             EEWE
ldi           temp2,            0xFF
sei
EEWR2:
cpi           temp2,            0x00
brne          EEWR2
cbi           EECR,             EERIE
ret
;---------- Образ "заводских" настроек
CONFIG_IMAGE:
.db 0x01, 0x02, 0x03, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.db 0x05, 0x05, 0x05, 0x05, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.db 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
.db 0x00, 0xFF, 0xFF, 0xFF, 0x04, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF


Тут копируются байты из массива в EEPROM.
Извратов не пугайтесь. Это маленький отрывок большой программы.
По окончанию процедуры записи стоит вырубить прерывание по готовности EEPROM,
иначе оно Вас зае***т в процессе работы программы. Незнаю, как в других МК, но тут такая мелкая гадость.

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 34 ]  1,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y