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

 
 
> SAM7s256 есть ли возможность использования програмной памяти как EEPROM?, Или придется вешать внешнюю?
Димон Безпарольн...
сообщение Mar 9 2017, 15:41
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



SAM7s256 не имеет EEPROM внутри. Есть ли возможность использования програмной памяти как EEPROM?
Go to the top of the page
 
+Quote Post
3 страниц V   1 2 3 >  
Start new topic
Ответов (1 - 33)
aaarrr
сообщение Mar 9 2017, 15:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Возможность есть. Но если речь идет об экономии $0.1, то лучше не стоит.
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 9 2017, 15:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Димон Безпарольный @ Mar 9 2017, 21:41) *
SAM7s256 не имеет EEPROM внутри. Есть ли возможность использования програмной памяти как EEPROM?

Есть в нем такая возможность. Из кода, выполняющегося из FLASH не пробовал, но из кода, выполняющегося в SRAM, программировал.
Читайте раздел Embedded Flash Controller (EFC) в мануале.


--------------------
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 9 2017, 16:37
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Как часто вы собираетесь менять данные? Это я к тому, что количество перезаписей у встроенного флеша на порядки меньше, чем у ЭСППЗУ. Стирается флеш тоже только странично в отличие от побайтового стирания у ЭСППЗУ. Если эти факторы не пугают - то можно. Но закладывать в изделие AT91SAM7 сегодня я бы в любом случае не стал.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Димон Безпарольн...
сообщение Mar 9 2017, 20:46
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



Да ничего особенного туда не планировалось писать - дни наработки. Ну видимо без геморроя не обойдется.

Сообщение отредактировал Димон Безпарольный - Mar 9 2017, 20:46
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 10 2017, 06:45
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Димон Безпарольный @ Mar 9 2017, 22:46) *
Да ничего особенного туда не планировалось писать - дни наработки. Ну видимо без геморроя не обойдется.

Осталось выяснить размер минимального записываемого элемента во FLASH этого МК.
Go to the top of the page
 
+Quote Post
Димон Безпарольн...
сообщение Mar 10 2017, 07:01
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



Кажется 16 слов - минимум. Невыгодно это.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 10 2017, 07:28
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Димон Безпарольный @ Mar 10 2017, 10:01) *
Кажется 16 слов - минимум. Невыгодно это.

32 бита. Но лучше, конечно, EEPROM sm.gif
Go to the top of the page
 
+Quote Post
Димон Безпарольн...
сообщение Mar 10 2017, 07:32
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



Да, EEPROM лучше.
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 10 2017, 07:42
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Димон Безпарольный @ Mar 10 2017, 10:32) *
Да, EEPROM лучше.

А вот такая штука ещё более лучше.
Go to the top of the page
 
+Quote Post
Obam
сообщение Mar 10 2017, 07:55
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



"unlimited endurance" они, конечно, лукавят, но умеют EEPROM с 1млн. циклов. По сему, не станем цепляться… (;
И цены у микрочипа приятные…

Сообщение отредактировал Obam - Mar 10 2017, 07:59


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
mantech
сообщение Mar 10 2017, 09:18
Сообщение #12


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(Димон Безпарольный @ Mar 9 2017, 23:46) *
Да ничего особенного туда не планировалось писать - дни наработки. Ну видимо без геморроя не обойдется.


Если используете RTC с батарейкой, пишите туда, на 10ю или 100ю запись скидывайте во флешку, при этом ресурс вырастает в разы. И если даже что-то произойдет с батарейкой или сотрутся данные в RTC, то потеряете только последнее обновление, если опять же, испортится счетчик во флеше, можно восстановить его из RTC.
Go to the top of the page
 
+Quote Post
Димон Безпарольн...
сообщение Mar 10 2017, 09:28
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



Цитата(mantech @ Mar 10 2017, 12:18) *
Если используете RTC с батарейкой, пишите туда, на 10ю или 100ю запись скидывайте во флешку, при этом ресурс вырастает в разы. И если даже что-то произойдет с батарейкой или сотрутся данные в RTC, то потеряете только последнее обновление, если опять же, испортится счетчик во флеше, можно восстановить его из RTC.

Да так и сделал. На борту есть DS1307. Только флэш хотел использовать внутри SAM7s256. Но видно не судьба. В Сети ничего подходящего не нашел, а ковырять самому пока некогда. Да и криво получится - писать по 32 слова.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 10 2017, 09:58
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Димон Безпарольный @ Mar 10 2017, 12:28) *
Да и криво получится - писать по 32 слова.

По одному слову, 32 бита.
Go to the top of the page
 
+Quote Post
Димон Безпарольн...
сообщение Mar 10 2017, 10:04
Сообщение #15


Знающий
****

Группа: Участник
Сообщений: 734
Регистрация: 29-11-10
Пользователь №: 61 247



Цитата(aaarrr @ Mar 10 2017, 12:58) *
По одному слову, 32 бита.

Это уже интересней.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 10 2017, 11:13
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Димон Безпарольный @ Mar 10 2017, 09:32) *
Да, EEPROM лучше.

А FRAM ещё лучше sm.gif

Цитата(Димон Безпарольный @ Mar 10 2017, 12:04) *
Это уже интересней.

Ещё интересней если немного подумать и поэкспериментировать.
Исходя из исходных данных задачи - во флешь нужно хранить инкрементирующийся счётчик.
Я так понял - этот МК имеет ECC-защиту программной флешь с размером страницы == 32 бита?
Пустая (стёртая) ячейка вероятно имеет значение == 0xFFFFFFFF. Примем это значение за значение счётчика ==0.
Тогда очевидно, что в пустую ячейку можно записать любое значение. Например 0xFFFFFFFE. Примем это значение за значение счётчика ==1.
Поверх него можно попробовать записать 0xFFFFFFFC, но, так как есть ECC, то скорей всего получим не 0xFFFFFFFC, а нечто другое. Ну да ладно - то что получим примем за значение счётчика ==2. rolleyes.gif
Далее - опять попробуем записать в эту же ячейку нечто другое. Если получим значение отличное от предыдущего, то примем это значение за следующее значение счётчика.
И так можно модифицировать эту ячейку до тех пор, пока значение ячейки не перестанет меняться.
Очевидно, что последовательность этих значений ячейки будет одинакова для всех ячеек флешь (если флешь ещё не изношена!!!). Отсюда следует, что можно определить значение счётчика, записанного в ячейку. А значит - увеличить максимальное кол-во записей во флешь на количество полученных значений счётчика. Таким образом - увеличив ресурс флешь.

Экспериментальным путём (или иным путём) можно определить последовательность записываемых значений в одну и ту же ячейку флешь, при которой значения ячейки будут меняться дольше всего (до конечного фиксированного значения).
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 10 2017, 11:29
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(jcxz @ Mar 10 2017, 14:13) *
Я так понял - этот МК имеет ECC-защиту программной флешь с размером страницы == 32 бита?

Нет, не имеет.
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 10 2017, 11:35
Сообщение #18


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Вот тут пишут, что можно даже отдельные биты переключать из 1 в 0.
В связи с этим перспективы открываются радужные. Правда, для надёжности нужно делать хитрую схему с двумя или более страницами. Опять же, неясно, будет ли страдать ресурс флеша, если программировать по одному биту за раз.
Go to the top of the page
 
+Quote Post
Obam
сообщение Mar 10 2017, 11:43
Сообщение #19


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



"Writing 8-bit and 16-bit data is not allowed and may lead to unpredictable data corruption."


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Mar 10 2017, 11:46
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(scifi @ Mar 10 2017, 14:35) *
Опять же, неясно, будет ли страдать ресурс флеша, если программировать по одному биту за раз.

С ресурсом не ясно, "потекут" ли соседние биты - тоже не ясно. Ненужный геморрой все это.

Цитата(Obam @ Mar 10 2017, 14:43) *
"Writing 8-bit and 16-bit data is not allowed and may lead to unpredictable data corruption."

Записать вместо 0xFFFFFFFF 0xFFFFFFFE, а затем 0xFFFFFFFC это никоим образом не мешает.
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 10 2017, 12:14
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(aaarrr @ Mar 10 2017, 14:46) *
С ресурсом не ясно, "потекут" ли соседние биты - тоже не ясно. Ненужный геморрой все это.

Между тем, вот здесь применяют именно побитовую запись во флешь. Может быть, они что-то знают. Или это просто слабоумие и отвага. Не знаю laughing.gif
Go to the top of the page
 
+Quote Post
Obam
сообщение Mar 10 2017, 12:31
Сообщение #22


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(scifi @ Mar 10 2017, 16:14) *
Между тем, вот здесь применяют именно побитовую запись во флешь. Может быть, они что-то знают. Или это просто слабоумие и отвага. Не знаю laughing.gif

Проц атмеловский!!!


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 10 2017, 12:31
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(aaarrr @ Mar 10 2017, 13:29) *
Нет, не имеет.

Если не имеет, то модифицировать можно побитно, а не по 32 бита.
Go to the top of the page
 
+Quote Post
Obam
сообщение Mar 10 2017, 12:33
Сообщение #24


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(aaarrr @ Mar 10 2017, 15:46) *
С ресурсом не ясно, "потекут" ли соседние биты - тоже не ясно. Ненужный геморрой все это.


Записать вместо 0xFFFFFFFF 0xFFFFFFFE, а затем 0xFFFFFFFC это никоим образом не мешает.

Типа счётчик Джонсона, но "заполняющий ноль" это вариант


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
scifi
сообщение Mar 10 2017, 12:43
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Obam @ Mar 10 2017, 15:31) *
Проц атмеловский!!!

Флеш - он и в Африке флеш. Но гарантий никто не даст, очевидно. Я склоняюсь к тому, что это волюнтаризм автора апноты.
Go to the top of the page
 
+Quote Post
Obam
сообщение Mar 10 2017, 12:55
Сообщение #26


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(scifi @ Mar 10 2017, 16:43) *
Флеш - он и в Африке флеш. Но гарантий никто не даст, очевидно. Я склоняюсь к тому, что это волюнтаризм автора апноты.

Ну да, ну да… (;

Сообщение отредактировал Obam - Mar 10 2017, 12:58


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
Velund
сообщение Mar 27 2017, 14:20
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



QUOTE (jcxz @ Mar 10 2017, 14:13) *
А FRAM ещё лучше sm.gif


A Serial EERAM (EEPROM-backed SRAM), который при пропадании питания на кондере пишет SRAM в EEPROM а при появлении питания автоматом восстанавливает с еепрома в SRAM - еще лучше для данного применения. Какой нибудь Microchip 47L04... 1 миллион выключений питания - а там хоть миллисекунды наработки считай. wink.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 27 2017, 19:36
Сообщение #28


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Velund @ Mar 27 2017, 16:20) *
A Serial EERAM (EEPROM-backed SRAM), который при пропадании питания на кондере пишет SRAM в EEPROM а при появлении питания автоматом восстанавливает с еепрома в SRAM - еще лучше для данного применения.

Чем лучше-то??? Тем что кондёр хороший ставить ещё нужно??
Go to the top of the page
 
+Quote Post
Velund
сообщение Mar 29 2017, 01:22
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



QUOTE (jcxz @ Mar 27 2017, 22:36) *
Чем лучше-то??? Тем что кондёр хороший ставить ещё нужно??


Если некоторое количество параметров постоянно изменяющихся надо "держать" постоянно, и особенно если батарея в устройстве недопустима, то такие чипы - самое беспроблемное решение. Есть програмные хитрости чтобы избежать проблем в случае если выключение прервет процесс обновления, но в общем меньше всего возможных засад просматривается в долговременном плане.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Mar 29 2017, 06:14
Сообщение #30


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

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Velund @ Mar 29 2017, 06:22) *
Если некоторое количество параметров постоянно изменяющихся надо "держать" постоянно, и особенно если батарея в устройстве недопустима, то такие чипы - самое беспроблемное решение.

Или просто для ленивых.
Потому как 8мс@3мA для CY14*101Q немногим менее чем 6(3)мс@5.5мА для SAM7S256 (1 страница)
Go to the top of the page
 
+Quote Post
Baser
сообщение Mar 29 2017, 10:22
Сообщение #31


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

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



Цитата(scifi @ Mar 10 2017, 15:43) *
Флеш - он и в Африке флеш. Но гарантий никто не даст, очевидно. Я склоняюсь к тому, что это волюнтаризм автора апноты.

Флеш то он всегда флеш, да вот контроллер флеша может быть разный. В STM32F0 после очистки страницы в слово можно записать только два раза. Один раз поменять единицы на любое значение, и еще раз можно записать в слово ноль.
Записывать по одному нулю в бит контроллер не разрешает, запись блокируется.
Налетел на это, когда эмуляцию eeprom писал, хотя в мануале это описано sm.gif
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 29 2017, 18:16
Сообщение #32


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Baser @ Mar 29 2017, 12:22) *
Налетел на это, когда эмуляцию eeprom писал, хотя в мануале это описано sm.gif

А если не в то же слово, а в соседнее? Или в слово в соседних 16/32/.. байтах но внутри той же страницы?
Go to the top of the page
 
+Quote Post
Baser
сообщение Mar 29 2017, 18:26
Сообщение #33


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

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



Цитата(jcxz @ Mar 29 2017, 21:16) *
А если не в то же слово, а в соседнее? Или в слово в соседних 16/32/.. байтах но внутри той же страницы?

Без проблем, можно.
Но пишется по 16 бит. И эти 16 бит можно менять только: стирание -> значение -> ноль -> стирание.
Ну, или без записи нуля.
Это Cortex-M0:
Цитата
The Flash memory interface preliminarily reads the value at the addressed main Flash memory location and checks that it has been erased. If not, the program operation is skipped and a warning is issued by the PGERR bit in FLASH_SR register. The only exception to this is when 0x0000 is programmed. In this case, the location is correctly programmed to 0x0000 and the PGERR bit is not set.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Mar 30 2017, 04:00
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Baser @ Mar 29 2017, 20:26) *
Но пишется по 16 бит. И эти 16 бит можно менять только: стирание -> значение -> ноль -> стирание.

Ну это вполне обычное дело, как и в других МК. Даже неплохо, потому что в LPC, например, можно менять только 16-байтовыми сегментами. Но даже с такими ограничениями я организовывал хранение данных с перезаписью без стирания страницы rolleyes.gif
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 Текстовая версия Сейчас: 3rd August 2025 - 11:41
Рейтинг@Mail.ru


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