Механизм записи и увеличение ресурса EEPROM у МК

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение Dmitry Dubrovenko »

Слаб я в атмеловском АСМе.
И я про даташит вообще-то спрашивал. Где там сказано про отключение стандартной процедуры стирания-записи, и использования только записи?

P.S.: Насколько смог разобраться в Вашем коде, там как-раз стандартная процедура, согласно даташита.
ICQ нет, и, в ближайшее время, не будет.
Реклама
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение DX168B »

Но я же не стираю там предварительно ничего. Тот массив пишется поверх старых данных, если вдруг устройство, в котором работает этот код, решили сбросить на параметры по умолчанию.

Процедура записи проста до безобразия.
Кидаем данные в регистр 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 у МК

Сообщение Neekeetos »

Dmitry Dubrovenko писал(а):Слаб я в атмеловском АСМе.
И я про даташит вообще-то спрашивал. Где там сказано про отключение стандартной процедуры стирания-записи, и использования только записи?

P.S.: Насколько смог разобраться в Вашем коде, там как-раз стандартная процедура, согласно даташита.
Чтобы путаницы не было, в атмелках режим записи епромки задается двумя битами mode (EEPM0, EEPM1 в EECR у новых), по умолчанию это два нуля и режим записи стирание затем запись, но можно ими выбрать и отдельное стирание и отдельную запись. У ДХ именно режим по умолчанию используется, там в коде явно стирания не происходит но перед записью ячейки стираются автоматически, так что это не поверх старых данных а полноценная запись в пустую после стирания ячейку. Как то так.

ЗЫ: А еще в тини26 нету битов которые задают режим, так что он всегда там стирание-запись.
Информация по RLC mini находится >тут<
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение Dmitry Dubrovenko »

Neekeetos писал(а):в тини26 нету битов которые задают режим, так что он всегда там стирание-запись.
Так, и я об этом. :)
Neekeetos писал(а):в атмелках режим записи епромки задается двумя битами mode (EEPM0, EEPM1 в EECR у новых)
Это какого "уровня" МК? Судя по в/у примеру, в младших моделях такое не предусмотрено.
И, если можно, конкретный чип?
ICQ нет, и, в ближайшее время, не будет.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение Neekeetos »

Dmitry Dubrovenko писал(а):
Neekeetos писал(а):в атмелках режим записи епромки задается двумя битами mode (EEPM0, EEPM1 в EECR у новых)
Это какого "уровня" МК? Судя по в/у примеру, в младших моделях такое не предусмотрено.
И, если можно, конкретный чип?
Да по моему все аврки 2 и выше поколений, мега 48, 88, 168, тини13, есть и в более старых, например тини2313. Просто тини26 оч древняя.
Информация по RLC mini находится >тут<
Реклама
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение DX168B »

У меня спросили, что за МК такой, вот я и сказал. :)
Хм, почему древний МК делает всё автоматом, в то время, как в новых стирать надо вручную?
Или это там можно настроить? В 26й к EEPROM относятся всего три регистра. Это адрес, данные и регистр управления. И то, у регистра управления всего 4 бита. :)


ЗЫ: Хоть этот МК и древний, но у меня их навалом. Купаться в них можно.
Нашёл схему обработчика DSP\WOW\PINCH\REVER\ECHO для аудиоусилителей. Как раз для этой тиньки. Собираю для испытаний. :) :music:
I am DX168B and this is my favourite forum on internet!
Реклама
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение Neekeetos »

DX168B писал(а):У меня спросили, что за МК такой, вот я и сказал. :)
Хм, почему древний МК делает всё автоматом, в то время, как в новых стирать надо вручную?
Или это там можно настроить? В 26й к EEPROM относятся всего три регистра. Это адрес, данные и регистр управления. И то, у регистра управления всего 4 бита. :)
В новых в регистре управления 6 бит, и можно выбирать режим записи, в том числе есть режим стирания+записи. Он привязан на нули в добавленых битах, так что старые процедуры записи епрома даже переделывать не надо, все так работает.
Информация по RLC mini находится >тут<
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение Dmitry Dubrovenko »

DX168B писал(а):У меня спросили, что за МК такой, вот я и сказал.
Вобще-то, вопрос был, какие МК умеют записывать не стирая. :wink:
Так что ответ был совсем "не по теме". :)
ICQ нет, и, в ближайшее время, не будет.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение DX168B »

С точки зрения пользователя, как раз и происходит запись "не стирая"
На самом деле старый байт затирается в ячейке, но повторяю: Это происходит на АППАРАТНОМ УРОВНЕ и в некоторых МК, от пользователя не зависит, потому, что пользователь\программист этого не видит и вмешаться не может в этот процесс. Пользователь жахнул по биту записи и новый байт записался в ячейку. Всё. И никаких ручных процедур стирания. Ну неужели не понятно?????
Ладно, если бы это была FLASH. Там вообще целую страницу надо вручную затереть, чтобы записать новое.
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение Dmitry Dubrovenko »

DX168B писал(а):от пользователя не зависит, потому, что пользователь\программист этого не видит и вмешаться не может в этот процесс
Так в этом всё и дело, что для реализации в/у алгоритма, с битами, необходимо иметь такую возможность.
ICQ нет, и, в ближайшее время, не будет.
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение DX168B »

Ну это меняет дело. Если Вам нужно затирать старые байты, то естественно нужен МК, который имеет такую возможность. А все новые МК это имеют.
То есть Вы хотите стереть ячейку, считать её содержимое и проверить. Если там 0xFF, то ячейка исправная. Так? А если нет, то заменить указатель в начале EEPROM на эту ячейку, если Вы конечно надумываете содержать указатели. Так это уже примитивная файловая система получается.

ЗЫ: Это ещё тот изврат. :)
I am DX168B and this is my favourite forum on internet!
Аватара пользователя
Dmitry Dubrovenko
Поставщик валерьянки для Кота
Сообщения: 2360
Зарегистрирован: Вс янв 09, 2011 16:51:39
Откуда: Санкт-Ленинград
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение Dmitry Dubrovenko »

DX168B писал(а):Если Вам нужно затирать старые байты
Да не мне нужно, а Никитос выше предложил способ адресации ячейки, для которого как-раз нужно, что б байт не стирался перед записью, как в приведённом Вами примере. :)
ICQ нет, и, в ближайшее время, не будет.
Аватара пользователя
Rimsky
Грызет канифоль
Сообщения: 299
Зарегистрирован: Вт июн 15, 2010 07:16:42
Откуда: Иркутск
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение Rimsky »

Изображение

Называется, найди ляпы в атмеловском даташите. :))
Это к теме copy/paste .....
Аватара пользователя
DX168B
Друг Кота
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)
Контактная информация:

Re: Механизм записи и увеличение ресурса EEPROM у МК

Сообщение DX168B »

Частенько находил. :))) По этому, лучше читать сам даташит и писать самому. :)
I am DX168B and this is my favourite forum on internet!
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»