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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Как сохранить пару байт во FLASH?, FLASH & MSP430
Lucky:)
сообщение Jan 9 2007, 07:41
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 5-10-06
Пользователь №: 21 031



Мне нужно держать с десяток текущих переменных в энергонезависимой памяти. Хочу для этой цели использовать FLASH.

Как я понял записать байт во FLASH в одно и тоже место дважды нельзя (т.е. перезаписать байт). Предварительно это место надо стереть. А стирание осушествляется только сегментом (например в 123ем - 128байт).
т.е. перед тем как чего записать, надо скопировать сегмент куда либо, стереть старые данные и перезаписать новыми.

Есть ли более удобный метод сохранить пару байт во внутренней памяти MSP430?
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Jan 9 2007, 12:57
Сообщение #2


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Это и есть удобный метод smile.gif
Неспроста у MSP430 два сегмента памяти. Заполняете один записями, стираете второй и заполняете его, обеспечивая непрерывность процесса. Запись неплохо бы дополнить CRC. Если интересно, могу дать свой код, использующий эти сегменты, правда в очень простом варианте и с одним багом wink.gif

P.S. На ассемблере. Кстати, эти сегменты везде по 128 байт. А байты презаписывать можно, но только нулевыми битами.

Сообщение отредактировал HARMHARM - Jan 9 2007, 13:00
Go to the top of the page
 
+Quote Post
exSSerge
сообщение Jan 9 2007, 13:24
Сообщение #3


Частый гость
**

Группа: Новичок
Сообщений: 136
Регистрация: 18-08-06
Из: Novosibirsk
Пользователь №: 19 655



После непродолжительной борьбы с этими сегментами я пришёл к выводу что при наших тиражах проще поставить внешнюю EEPROM с I2C или SPI интерфейсом - будет дешевле и быстрее.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 9 2007, 15:02
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(exSSerge @ Jan 9 2007, 15:24) *
После непродолжительной борьбы с этими сегментами я пришёл к выводу что при наших тиражах проще поставить внешнюю EEPROM с I2C или SPI интерфейсом - будет дешевле и быстрее.

На самом деле использование/не использование внутренней FLASH MSP430 определяется несколькими факторами.
- объем сохраняемой информации
- частота сохранения записей и время единичной записи
Если первый определяет в основном лишь сколько сегментов нужно резервировать во Flash под записи, то у второго контекст гораздо больше. Потому как тут вступают в силу многие факторы, например,
ресурс Flash MSP430,
минимальное время необходимое для записи в течение которого программа тормозится или может выполняться только из ОЗУ,
минимальное время для резервирования питания и т.д.
Так что ваш вывод не совсем верен. cool.gif Когда в очень простом, но серийном устройстве нужно сохранить с десяток байт, которые пользователь меняет скажем не чаще нескольких раз в день, то зачем мне доп. затраты в несколько $ на внешнюю EEPROM? Если я могу их спокойно добавить себе в прибыль, один раз, но досконально разобравшись с внутрипрограммным программирование Flash? wink.gif
Go to the top of the page
 
+Quote Post
Lucky:)
сообщение Jan 9 2007, 19:56
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 5-10-06
Пользователь №: 21 031



Цитата(HARMHARM @ Jan 9 2007, 12:57) *
Это и есть удобный метод smile.gif

Tak вот он какой, "северный олень". smile.gif

Цитата
Неспроста у MSP430 два сегмента памяти. Заполняете один записями, стираете второй и заполняете его, обеспечивая непрерывность процесса. Запись неплохо бы дополнить CRC. Если интересно, могу дать свой код, использующий эти сегменты, правда в очень простом варианте и с одним багом wink.gif

P.S. На ассемблере. Кстати, эти сегменты везде по 128 байт. А байты презаписывать можно, но только нулевыми битами.


Если один баг, то скинте пожалуйста./У меня в программе есть пару - может скомпенсируют друг друга/
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jan 10 2007, 19:33
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(rezident @ Jan 9 2007, 16:02) *
Цитата(exSSerge @ Jan 9 2007, 15:24) *

... я пришёл к выводу что при наших тиражах проще поставить внешнюю EEPROM с I2C или SPI интерфейсом - будет дешевле и быстрее...

...На самом деле использование/не использование внутренней FLASH MSP430 определяется несколькими факторами...

Я в уже разработанное устройство, работающее с флэш, тоже поставил EEPROM по совокупности этих факторов.
И еще одного фактора - мне кажется, что наличие кода стирания и записи флэш снижает надежность устройства, особенно при работе в условиях помех.
Быо бы интересно услышать Ваше мнение.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Lucky:)
сообщение Jan 10 2007, 20:54
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 5-10-06
Пользователь №: 21 031



Цитата(Dog Pawlowa @ Jan 10 2007, 19:33) *
И еще одного фактора - мне кажется, что наличие кода стирания и записи флэш снижает надежность устройства, особенно при работе в условиях помех.
Быо бы интересно услышать Ваше мнение.


согласен
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 10 2007, 22:44
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Dog Pawlowa @ Jan 10 2007, 21:33) *
И еще одного фактора - мне кажется, что наличие кода стирания и записи флэш снижает надежность устройства, особенно при работе в условиях помех.
Быо бы интересно услышать Ваше мнение.

Без нормального супервизора питания использование внутрипрограммной перезаписи Flash вообще противопоказано!
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jan 11 2007, 10:32
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(rezident @ Jan 10 2007, 23:44) *
Цитата(Dog Pawlowa @ Jan 10 2007, 21:33) *

И еще одного фактора - мне кажется, что наличие кода стирания и записи флэш снижает надежность устройства, особенно при работе в условиях помех.
Быо бы интересно услышать Ваше мнение.

Без нормального супервизора питания использование внутрипрограммной перезаписи Flash вообще противопоказано!

Ну, без нормального, желательно от TI, супервизора вообще использование MSP весьма чревато :-)


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Jan 11 2007, 11:21
Сообщение #10


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(Lucky:) @ Jan 9 2007, 18:56) *
Если один баг, то скинте пожалуйста./У меня в программе есть пару - может скомпенсируют друг друга/

В приложенном файле макро работы с flash. Баг всплывает где-то при переходе с сегмента на сегмент smile.gif
Прикрепленные файлы
Прикрепленный файл  flash.zip ( 1.04 килобайт ) Кол-во скачиваний: 89
 
Go to the top of the page
 
+Quote Post
serg_ok
сообщение Jan 11 2007, 15:07
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 5-12-06
Пользователь №: 23 143



Цитата
Без нормального супервизора питания
А встроенный чем плох?
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Jan 11 2007, 16:06
Сообщение #12


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(serg_ok @ Jan 11 2007, 14:07) *
Цитата
Без нормального супервизора питания
А встроенный чем плох?

В первую очередь тем, что он есть не во всех устройствах.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 11 2007, 18:34
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Dog Pawlowa @ Jan 11 2007, 12:32) *
Ну, без нормального, желательно от TI, супервизора вообще использование MSP весьма чревато :-)

Dog Pawlowa, я не совсем понимаю, какую информацию (в виде лекции, теории, баек?) о надежности/ненадежности устройства с внутрипрограммным изменением Flash вы от меня ожидаете услышать? Я не Иоан Богослов чтобы являть откровения. Надежность устройства зависит от многих факторов, и отнюдь не только от наличия/отсутствия куска кода с программирования Flash. Я высказал лишь свое мнение в каком именно случае для меня предпочтительнее использовать внутреннюю Flash вместо доп. EEPROM. И я не утверждал, что это нужно делать всегда. А надежно это или не очень зависит от конкретной реализации.
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jan 11 2007, 18:54
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(rezident @ Jan 11 2007, 19:34) *
Я не Иоан Богослов чтобы являть откровения.

Жаль smile.gif
Если серьезно... Проектирование - это поиск компромиссов, и я просто хотел учесть вектор Вашего мнения (байки допускаются) в этом поиске. Разумеется, ответственность за принятие решений я всегда беру на себя.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 11 2007, 19:54
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Ну если байки вас устроят... smile.gif
У меня не так уж и много законченных (мелко)серийных проектов на MSP430. Использовал INFO внутренней Flash для хранения пользовательских и/или калибровочных данных лишь в трех из них.
Первый - серия около 300 шт. Использовался MSP430F1121 в управлении двигателем. Без внешнего супервизора, но с одной хитростью - вместо супервизора использовался вход ENABLE LDO (имеющий входной триггер Шмитта) который стоял по питанию MSP430. На входе ENABLE стоял обычный резисторный делитель. По питанию MSP430 был резистор (4,7к) для быстрого разряда конденсаторов при выключении LDO. Без резистора MSP430 не всегда стартовал, т.к. в питание "натекало" от входных цепей. К сожалению партия устройств была изготовлена и связь с заказчиком утеряна. Сколько устройств работают и как - мне не известно. Хотя нареканий в период сдачи устройств заказчику не было. Был правда один ремонт, но связанный с аварийной ситуацией.
Вторая (коммуникационный прибор) около двух десятков устройств на двух типах MSP430 без и с встроенным BOD. MSP430F135 (с супервизором) и MSP430F1232 (в последних образцах супервизор заменил на простую RC+диод). Был один глюк, но он был связан с переполением стека из-за вложенных прерываний, а не с самопроизвольным стиранием Flash
Третья довольно свежая - на MSP430F1132. Устройство тоже связано с управлением двигателем. Без внешнего супервизора, только BOD и внешняя RC-цепь на сбросе. Пока 200 шт., но непонятно сколько из них уже в эксплуатации. Так что заключение делать рано.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:57
Рейтинг@Mail.ru


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