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

 
 
> EEPROM в STM32L151
Baser
сообщение Dec 8 2017, 10:54
Сообщение #1


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Читаю описание работы с EEPROM в STM32L151 и не могу понять некоторых вещей:

1. Пишут, что очищается слово записью по нужному адресу значения 0x00000000
То есть чистая EEPROM и FLASH в серии L1 имеет нулевые значения, а не общепринятые единицы?
Нигде в документации прямого указания на это не заметил.

2. Есть команды для EEPROM очистки слова (4 байта) и двойного слова (8 байт)
и есть туча команд записи от одного байта до восьми байтов с различными вариациями.
При этом при записи одного байта или полуслова (2 байта) все равно должно стираться целое слово (4 байта).
Так зачем эти команды?
Или я не понимаю документацию и можно дозаписывать слово по одному байту?

3. Еще там есть упоминание вскользь о записи по невыровненному адресу, что длительность операции будет больше.
"When programming Data Word or Data Half-word at non-aligned addresses, the write operation may take more than 1 tprog time"
Но опять никаких подробностей.
Что будет при записи по невыровненному адресу в два слова, где часть байт уже записана, а часть чистые, и в эту чистую часть я командой быстрой записи пишу данные?
А если пишу не быстрой, а обычной командой - остальные байты сотрутся или нет?

Странная документация sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AHTOXA
сообщение Dec 8 2017, 12:15
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Baser @ Dec 8 2017, 15:54) *
Читаю описание работы с EEPROM в STM32L151 и не могу понять некоторых вещей:

1. Пишут, что очищается слово записью по нужному адресу значения 0x00000000
То есть чистая EEPROM и FLASH в серии L1 имеет нулевые значения, а не общепринятые единицы?
Нигде в документации прямого указания на это не заметил.


Её вообще не надо стирать. Просто пишите новое значение, и всё. Думаю, все эти их изыски про стирание потому, что они свалили в кучу EEPROM и FLASH. Попытались единообразно описать.

Цитата(Baser @ Dec 8 2017, 15:54) *
2. Есть команды для EEPROM очистки слова (4 байта) и двойного слова (8 байт)


Что за команды такие?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Baser
сообщение Dec 11 2017, 14:00
Сообщение #3


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(AHTOXA @ Dec 8 2017, 14:15) *
Её вообще не надо стирать. Просто пишите новое значение, и всё. Думаю, все эти их изыски про стирание потому, что они свалили в кучу EEPROM и FLASH. Попытались единообразно описать.

Разобрался, разбирая функции HAL и тестируя на реальной плате.

Действительно, они свалили в кучу описание работы с EEPROM всего семейства L1, поэтому не слишком было понятно.
Ограничение есть только для чипов Cat.1 с самым малым объемом памяти, там стирать можно только по выровненному слову (4 байта).
Для всех новых серий Cat.2 и выше никаких ограничений вообще нет, можно делать все как для обычной 8-и битной EEPROM.

Я тестил на Cat.3 (STM32L151RC). Стирания как такового нет, просто запись нулей.
Писать можно любые значения поверх любых старых, длина 1, 2, 4 байта, с любым смещением.
Из настроек оказался только один флаг, который задает обязательное стирание, даже когда там нули.

Одна печалька, errata говорит, что не получилось сделать область EEPROM лучше чем остальную FLASH.
Число перезаписей тоже только 100К+
Go to the top of the page
 
+Quote Post



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

 


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


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