Механизм записи и увеличение ресурса EEPROM у МК
- Dmitry Dubrovenko
- Поставщик валерьянки для Кота
- Сообщения: 2360
- Зарегистрирован: Вс янв 09, 2011 16:51:39
- Откуда: Санкт-Ленинград
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Слаб я в атмеловском АСМе.
И я про даташит вообще-то спрашивал. Где там сказано про отключение стандартной процедуры стирания-записи, и использования только записи?
P.S.: Насколько смог разобраться в Вашем коде, там как-раз стандартная процедура, согласно даташита.
И я про даташит вообще-то спрашивал. Где там сказано про отключение стандартной процедуры стирания-записи, и использования только записи?
P.S.: Насколько смог разобраться в Вашем коде, там как-раз стандартная процедура, согласно даташита.
ICQ нет, и, в ближайшее время, не будет.
- Реклама
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Но я же не стираю там предварительно ничего. Тот массив пишется поверх старых данных, если вдруг устройство, в котором работает этот код, решили сбросить на параметры по умолчанию.
Процедура записи проста до безобразия.
Кидаем данные в регистр EEDR
Кидаем байт адреса ячейки EEPROM, в которую мы хотим что-либо записать, в регистр EEAR
Устанавливаем бит EEMWE в единицу в регистре EECR. Этот бит является своего рода предохранителем от случайной записи.
После этого, не позже истечения нескольких тактов, надо запустить запись байта, установив в единицу бит EEWE в регистре EECR.
И пофиг, какой был там байт до этого. Пустой, или что-то вроде 0хВА.
Нет там никаких битов управления стиранием EEPROM. Это касается МК tiny26.
Биты: EEMWE, EEWE и EERE сбрасываются автоматом, через 2-3 такта, после их установки.
Бит EERIE - бит разрешения прерывания. Больше ничего там нет.
То есть, если там и происходит затирание старого байта, перед записью нового, то это делается аппаратно, контроллером EEPROM и независит от программиста.
Процедура записи проста до безобразия.
Кидаем данные в регистр EEDR
Кидаем байт адреса ячейки EEPROM, в которую мы хотим что-либо записать, в регистр EEAR
Устанавливаем бит EEMWE в единицу в регистре EECR. Этот бит является своего рода предохранителем от случайной записи.
После этого, не позже истечения нескольких тактов, надо запустить запись байта, установив в единицу бит EEWE в регистре EECR.
И пофиг, какой был там байт до этого. Пустой, или что-то вроде 0хВА.
Нет там никаких битов управления стиранием EEPROM. Это касается МК tiny26.
Биты: EEMWE, EEWE и EERE сбрасываются автоматом, через 2-3 такта, после их установки.
Бит EERIE - бит разрешения прерывания. Больше ничего там нет.
То есть, если там и происходит затирание старого байта, перед записью нового, то это делается аппаратно, контроллером EEPROM и независит от программиста.
I am DX168B and this is my favourite forum on internet!
- Neekeetos
- Держит паяльник хвостом
- Сообщения: 993
- Зарегистрирован: Пн сен 18, 2006 11:16:05
- Откуда: Тула
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Чтобы путаницы не было, в атмелках режим записи епромки задается двумя битами mode (EEPM0, EEPM1 в EECR у новых), по умолчанию это два нуля и режим записи стирание затем запись, но можно ими выбрать и отдельное стирание и отдельную запись. У ДХ именно режим по умолчанию используется, там в коде явно стирания не происходит но перед записью ячейки стираются автоматически, так что это не поверх старых данных а полноценная запись в пустую после стирания ячейку. Как то так.Dmitry Dubrovenko писал(а):Слаб я в атмеловском АСМе.
И я про даташит вообще-то спрашивал. Где там сказано про отключение стандартной процедуры стирания-записи, и использования только записи?
P.S.: Насколько смог разобраться в Вашем коде, там как-раз стандартная процедура, согласно даташита.
ЗЫ: А еще в тини26 нету битов которые задают режим, так что он всегда там стирание-запись.
Информация по RLC mini находится >тут<
- Dmitry Dubrovenko
- Поставщик валерьянки для Кота
- Сообщения: 2360
- Зарегистрирован: Вс янв 09, 2011 16:51:39
- Откуда: Санкт-Ленинград
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Так, и я об этом.Neekeetos писал(а):в тини26 нету битов которые задают режим, так что он всегда там стирание-запись.
Это какого "уровня" МК? Судя по в/у примеру, в младших моделях такое не предусмотрено.Neekeetos писал(а):в атмелках режим записи епромки задается двумя битами mode (EEPM0, EEPM1 в EECR у новых)
И, если можно, конкретный чип?
ICQ нет, и, в ближайшее время, не будет.
- Neekeetos
- Держит паяльник хвостом
- Сообщения: 993
- Зарегистрирован: Пн сен 18, 2006 11:16:05
- Откуда: Тула
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Да по моему все аврки 2 и выше поколений, мега 48, 88, 168, тини13, есть и в более старых, например тини2313. Просто тини26 оч древняя.Dmitry Dubrovenko писал(а):Это какого "уровня" МК? Судя по в/у примеру, в младших моделях такое не предусмотрено.Neekeetos писал(а):в атмелках режим записи епромки задается двумя битами mode (EEPM0, EEPM1 в EECR у новых)
И, если можно, конкретный чип?
Информация по RLC mini находится >тут<
- Реклама
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
У меня спросили, что за МК такой, вот я и сказал.
Хм, почему древний МК делает всё автоматом, в то время, как в новых стирать надо вручную?
Или это там можно настроить? В 26й к EEPROM относятся всего три регистра. Это адрес, данные и регистр управления. И то, у регистра управления всего 4 бита.
ЗЫ: Хоть этот МК и древний, но у меня их навалом. Купаться в них можно.
Нашёл схему обработчика DSP\WOW\PINCH\REVER\ECHO для аудиоусилителей. Как раз для этой тиньки. Собираю для испытаний.

Хм, почему древний МК делает всё автоматом, в то время, как в новых стирать надо вручную?
Или это там можно настроить? В 26й к EEPROM относятся всего три регистра. Это адрес, данные и регистр управления. И то, у регистра управления всего 4 бита.
ЗЫ: Хоть этот МК и древний, но у меня их навалом. Купаться в них можно.
Нашёл схему обработчика DSP\WOW\PINCH\REVER\ECHO для аудиоусилителей. Как раз для этой тиньки. Собираю для испытаний.
I am DX168B and this is my favourite forum on internet!
- Neekeetos
- Держит паяльник хвостом
- Сообщения: 993
- Зарегистрирован: Пн сен 18, 2006 11:16:05
- Откуда: Тула
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
В новых в регистре управления 6 бит, и можно выбирать режим записи, в том числе есть режим стирания+записи. Он привязан на нули в добавленых битах, так что старые процедуры записи епрома даже переделывать не надо, все так работает.DX168B писал(а):У меня спросили, что за МК такой, вот я и сказал.![]()
Хм, почему древний МК делает всё автоматом, в то время, как в новых стирать надо вручную?
Или это там можно настроить? В 26й к EEPROM относятся всего три регистра. Это адрес, данные и регистр управления. И то, у регистра управления всего 4 бита.
Информация по RLC mini находится >тут<
- Dmitry Dubrovenko
- Поставщик валерьянки для Кота
- Сообщения: 2360
- Зарегистрирован: Вс янв 09, 2011 16:51:39
- Откуда: Санкт-Ленинград
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Вобще-то, вопрос был, какие МК умеют записывать не стирая.DX168B писал(а):У меня спросили, что за МК такой, вот я и сказал.
Так что ответ был совсем "не по теме".
ICQ нет, и, в ближайшее время, не будет.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
С точки зрения пользователя, как раз и происходит запись "не стирая"
На самом деле старый байт затирается в ячейке, но повторяю: Это происходит на АППАРАТНОМ УРОВНЕ и в некоторых МК, от пользователя не зависит, потому, что пользователь\программист этого не видит и вмешаться не может в этот процесс. Пользователь жахнул по биту записи и новый байт записался в ячейку. Всё. И никаких ручных процедур стирания. Ну неужели не понятно?????
Ладно, если бы это была FLASH. Там вообще целую страницу надо вручную затереть, чтобы записать новое.
На самом деле старый байт затирается в ячейке, но повторяю: Это происходит на АППАРАТНОМ УРОВНЕ и в некоторых МК, от пользователя не зависит, потому, что пользователь\программист этого не видит и вмешаться не может в этот процесс. Пользователь жахнул по биту записи и новый байт записался в ячейку. Всё. И никаких ручных процедур стирания. Ну неужели не понятно?????
Ладно, если бы это была FLASH. Там вообще целую страницу надо вручную затереть, чтобы записать новое.
I am DX168B and this is my favourite forum on internet!
- Dmitry Dubrovenko
- Поставщик валерьянки для Кота
- Сообщения: 2360
- Зарегистрирован: Вс янв 09, 2011 16:51:39
- Откуда: Санкт-Ленинград
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Так в этом всё и дело, что для реализации в/у алгоритма, с битами, необходимо иметь такую возможность.DX168B писал(а):от пользователя не зависит, потому, что пользователь\программист этого не видит и вмешаться не может в этот процесс
ICQ нет, и, в ближайшее время, не будет.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Ну это меняет дело. Если Вам нужно затирать старые байты, то естественно нужен МК, который имеет такую возможность. А все новые МК это имеют.
То есть Вы хотите стереть ячейку, считать её содержимое и проверить. Если там 0xFF, то ячейка исправная. Так? А если нет, то заменить указатель в начале EEPROM на эту ячейку, если Вы конечно надумываете содержать указатели. Так это уже примитивная файловая система получается.
ЗЫ: Это ещё тот изврат.
То есть Вы хотите стереть ячейку, считать её содержимое и проверить. Если там 0xFF, то ячейка исправная. Так? А если нет, то заменить указатель в начале EEPROM на эту ячейку, если Вы конечно надумываете содержать указатели. Так это уже примитивная файловая система получается.
ЗЫ: Это ещё тот изврат.
I am DX168B and this is my favourite forum on internet!
- Dmitry Dubrovenko
- Поставщик валерьянки для Кота
- Сообщения: 2360
- Зарегистрирован: Вс янв 09, 2011 16:51:39
- Откуда: Санкт-Ленинград
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Да не мне нужно, а Никитос выше предложил способ адресации ячейки, для которого как-раз нужно, что б байт не стирался перед записью, как в приведённом Вами примере.DX168B писал(а):Если Вам нужно затирать старые байты
ICQ нет, и, в ближайшее время, не будет.
- DX168B
- Друг Кота
- Сообщения: 4468
- Зарегистрирован: Вс янв 24, 2010 19:19:52
- Откуда: Главный Улей России (Moscow)
- Контактная информация:
Re: Механизм записи и увеличение ресурса EEPROM у МК
Частенько находил.
По этому, лучше читать сам даташит и писать самому. 
I am DX168B and this is my favourite forum on internet!



