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

 
 
> Слетает flash
Step_ARM
сообщение Aug 7 2008, 11:28
Сообщение #1


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

Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870



Доброго дня всем...
Камень mega32. Загрузка ПО через бутлоадер. Все нормально работает. Но... если создавать помехи быстрым включением и выключением изделия может слетать флэш. Это выглядет примерно так-- изделие либо полностью не рабочее , либо не работает подсветка или индикатор или любая другая часть функций. При этом если прочитать флэш через програматор, то часть оказывается не такой как исходный файл. Причем в разных случаях разная степень подпорченности.
Питание -- стабилизатор 5 В с обвязкой.
Сектор бутлоадера 512 слов. Бут закрыт от записи чтения. Программный сектор не закрыт.
Никто не сталкивался с подобным явлением?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GDI
сообщение Aug 7 2008, 12:37
Сообщение #2


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата
В работе.

Тогда ищите источник помехи, который может вам флешь сбивать. Тут была ветка автором которой был некий Дон Амброзио, вот он поднимал подобный вопрос. И там даже следи множества буков, вроде , были какие то рецепты.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 7 2008, 15:16
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(GDI @ Aug 7 2008, 15:37) *
Тут была ветка автором которой был некий Дон Амброзио, вот он поднимал подобный вопрос.

там все же больше насчет магического кода который сам способен отдетектить свою правильность smile.gif

Причина слетов здесь - отсутствие или неправильная работа супервизора.
Не верится, что BOD у автора включен.

Цитата
Но системы никакой не отслеживается. Флэш слетает не всегда. Может слететь , а может и нет.

Причина - кривая разводка, отстутствие блокировочных емкостей по питанию, кривой DC/DC, кривой супервизор питания. Других причин здесь нет.

Workaround - поставить delay несколько десятков/сотен ms перед выполнением команды SPM (это по крайней мере вдвое снизит вероятность появления проблемы. При сбое на отключении питания SPM просто не успеет выполниться).
Go to the top of the page
 
+Quote Post
Step_ARM
сообщение Aug 7 2008, 19:09
Сообщение #4


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

Группа: Участник
Сообщений: 132
Регистрация: 11-07-08
Пользователь №: 38 870



Цитата(defunct @ Aug 7 2008, 19:16) *
Причина слетов здесь - отсутствие или неправильная работа супервизора.
Не верится, что BOD у автора включен.
Причина - кривая разводка, отстутствие блокировочных емкостей по питанию, кривой DC/DC, кривой супервизор питания. Других причин здесь нет.

Возможно и так(я еще раз проверю). Но непонятно как влияет уровень напряжения на записанную флэш? У меня в самой программе SPM не выполняется нигде, а в загрузчике очень много условий для входа в саму загрузку.
Записывается-то нормально, без сбоев.
Разводка действительно очень плотная. И опять вопрос-- каким образом это влияет на целостность флэш? Предположим что где-то жуткие помехи -- изделие просто не будет работать или будет сбоить сама программа. Но тут получается , что прога работает прекрасно пока флэш не побита. Глюки все давно исправлены, да и программа несложная без изысков особых...
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 7 2008, 19:37
Сообщение #5


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Step_ARM @ Aug 7 2008, 22:09) *
Разводка действительно очень плотная. И опять вопрос-- каким образом это влияет на целостность флэш?

Когда уровень напряжения питания падает ниже критической отметки указанной в ДШ, не секрет что МК начинает глючить, первым искажается содержимое RAM. МК надо бы сбросить и держать сброшенным до того как это произойдет. В противном случае, процессор может выполнять блоки вашей программы в совершенно случайном порядке. С достаточно низкой вероятностью (но ее хватает чтобы испортить флеш) процессор выполняет опасную команду SPM с параметром Page Erase. После чего питание падает настолько что процессор отключается, либо наоборот возрастает до нормального уровня и процессор начинает выполнять все правильно с той точки где находится, но одной страницы уже нет.

Кстати, можете убедиться в том, что слетает всегда только одна случайная страница флеш. Для этого прочитайте содержимое флеш после того как программа начнет работать неправильно и сравните с бинарником программы.

Цитата
Загрузчик начинает работать на запись только когда связался с компом и получил верные данные для записи страницы...

Стоит еще добавить "железную" защиту от записи - перемычку, проверяемую непосредственно перед SPM. Я использую перемычку между MISO/MOSI, т.к. всегда есть разъем программирования. Правда без супервизора питания она все одно не поможет, но вероятность слета хоть как-то снизит.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Step_ARM   Слетает flash   Aug 7 2008, 11:28
- - Rst7   Включите BOD. Это раз. Во вторых - было бы правиль...   Aug 7 2008, 11:35
- - GDI   Портится если в процессе программирования питание ...   Aug 7 2008, 12:11
|- - Step_ARM   Цитата(GDI @ Aug 7 2008, 16:11) Портится ...   Aug 7 2008, 12:16
- - Rst7   Попробуйте залить основной код программатором. При...   Aug 7 2008, 12:34
|- - Step_ARM   Цитата(Rst7 @ Aug 7 2008, 16:34) Попробуй...   Aug 7 2008, 12:46
- - Aleksandr Baranov   И что, если обычным программатором запрограммировт...   Aug 7 2008, 12:46
|- - Step_ARM   Цитата(Aleksandr Baranov @ Aug 7 2008, 16...   Aug 7 2008, 18:43
|- - SasaVitebsk   Цитата(Step_ARM @ Aug 7 2008, 21:43) Загр...   Aug 7 2008, 21:57
- - EmbedElektrik   у меня такое тоже было, но питание нарастало медле...   Aug 7 2008, 12:49
- - Rst7   ЦитатаДело в том , что я это уже делал Понятно. С...   Aug 7 2008, 13:00
- - Flasher   Схема питается от импульсного источника питания?   Aug 7 2008, 13:23
- - SasaVitebsk   1) Какая у вас частота процессора. 2) Какое напряж...   Aug 7 2008, 17:13
- - Angelo   Вместо 7805 предлагаю для эксперимента нашу 1156ЕН...   Aug 7 2008, 18:51
- - rtfcnf   конденсатор КМ-5 0,01 - 0,1 мкФ на ножки питания м...   Aug 7 2008, 19:20
|- - Step_ARM   Цитата(rtfcnf @ Aug 7 2008, 23:20) конден...   Aug 8 2008, 10:33
- - VDG   Сотрите всю флеш - и бут и программу или чистый ко...   Aug 7 2008, 19:27
- - Rst7   ЦитатаВ этом ли дело не уверен Дело именно в этом...   Aug 8 2008, 10:41
|- - ReAl   Цитата(Rst7 @ Aug 8 2008, 13:41) Дело име...   Aug 9 2008, 05:39
|- - Petka   Цитата(ReAl @ Aug 9 2008, 09:39) В особо ...   Aug 9 2008, 07:38
|- - sKWO   Цитата(Petka @ Aug 9 2008, 10:38) Это как...   Aug 9 2008, 09:53
|- - Petka   Цитата(sKWO @ Aug 9 2008, 13:53) Поиск по...   Aug 9 2008, 10:27
|- - ReAl   Цитата(sKWO @ Aug 9 2008, 12:53) Поиск по...   Aug 9 2008, 10:28
|- - sKWO   Цитата(ReAl @ Aug 9 2008, 13:28) У тини13...   Aug 9 2008, 18:11
- - ArtemKAD   ЦитатаЯ не могу электролиты убрать помехи слишком ...   Aug 8 2008, 18:52
- - demaven   столкнулись с такой проблеммой на меге16, перепроб...   Aug 9 2008, 04:08
|- - Step_ARM   Цитата(demaven @ Aug 9 2008, 08:08) столк...   Aug 9 2008, 07:46
- - Flasher   так в схему встроить автономный программатор, чтоб...   Aug 9 2008, 07:43
- - Petka   Цитата(Flasher @ Aug 9 2008, 11:43) так в...   Aug 9 2008, 08:15


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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 22:13
Рейтинг@Mail.ru


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