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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Дивайс на mega162., Сбои в работе. Нужен совет.
eastwind
сообщение Jul 23 2010, 06:01
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 1-08-05
Пользователь №: 7 242



Доброе время суток, уважаемые коллеги.

Есть девайс на меге162+ОЗУ 32кБ. Плата двухслойная. Длина линий шины адреса/данных - 40-50 мм. Разводка неплохая, с обеих сторон свободное место залито полигонами.
Тактируется кварцем 16 МГц. Питание 5В подается через тонкий 7 см шлейфик вместе с SPI интерфейсом от головного устройства.
Питание на головном устройстве сделано на MC33063.

Проблема такая: иногда на некоторых редких объектах происходит зависание меги162.
Также иногда на ней же портятся данные во внутренней ЕЕПРОМ и памяти программ.
Встроенные BOD и WDT задействованы. Внешних нет.

Я думаю, что память программ может портиться из за того, что программа перепрыгивает непостижимым образом в область загрузчика, где есть ф-ции работы с SPM. Однако ж там перед программирование проверяются CRC и т.п. Но не смотря на это данные портятся. Иногда даже загрузчик портит сам себя.
Грешу на не очень удачную разводку линий тактирования от кварца: длина проводников 2-3 см, с переходом на нижний слой и обратно, кондеры расположены рядом с кварцем - довольно далеко от проца.

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

Может, кто то выскажет свои соображения, пути решения?
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 23 2010, 06:41
Сообщение #2


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(eastwind @ Jul 23 2010, 10:01) *
Может, кто то выскажет свои соображения, пути решения?

Теоретически эту проблему никто вам не решит. Нужна "отладочная печать" - махание ножками в ключевых местах программы и наблюдение за ними осциллографом. При зависании можно оценить где выполнялась программа, а затем постепенно суживать место поиска. Это может происходить не только при аппаратном сбое, но и например при выходе из main, при возникновении прерывания, которое в программе не обрабатывается. Правда, я не совсем понимаю, как может зависать программа если в ней работает WDT.

Сообщение отредактировал 777777 - Jul 23 2010, 06:41
Go to the top of the page
 
+Quote Post
Savrik
сообщение Jul 23 2010, 06:58
Сообщение #3


наблюдаю..
***

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



Ставте "ловушки" - и по питанию, и по сигналам. Поставте еще одно устройство, пусть МК туда пишет лог. Желательно все это синхронизировать.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 23 2010, 07:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(eastwind @ Jul 23 2010, 10:01) *
Также иногда на ней же портятся данные во внутренней ЕЕПРОМ и памяти программ.
Возможно - проблемы с питанием.
Встречалась ситуация когда при включении питания устройства слетала прошивка. Оказалось, что источник питания при своём включении давал короткий но приличный по амплитуде импульс повышенного напряжения. Flash этого очень не любит - при напряжении питания выше 6,2V (по памяти, может быть - 6,3) прошивка и EEPROM слетают начисто (стираются), если импульс короткий или меньшей амплитуды - стираются отдельные куски или даже биты...
Go to the top of the page
 
+Quote Post
eastwind
сообщение Jul 23 2010, 07:45
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 1-08-05
Пользователь №: 7 242



Цитата(777777 @ Jul 23 2010, 12:41) *
При зависании можно оценить где выполнялась программа, а затем постепенно суживать место поиска. Это может происходить не только при аппаратном сбое, но и например при выходе из main, при возникновении прерывания, которое в программе не обрабатывается. Правда, я не совсем понимаю, как может зависать программа если в ней работает WDT.


Нет необрабатываемых прерываний.
Программа рабочая. На многих объектах модули стоят месяцами и проблем нет.
Ошибки на "проблемных" объектах возникают совершенно хаотично и систематизировать их не получается. Поэтому и начал думать в сторону питания/тактирования.

Цитата(Палыч @ Jul 23 2010, 13:21) *
Возможно - проблемы с питанием.
Встречалась ситуация когда при включении питания устройства слетала прошивка. Оказалось, что источник питания при своём включении давал короткий но приличный по амплитуде импульс повышенного напряжения. Flash этого очень не любит - при напряжении питания выше 6,2V (по памяти, может быть - 6,3) прошивка и EEPROM слетают начисто (стираются), если импульс короткий или меньшей амплитуды - стираются отдельные куски или даже биты...

Как решали проблему?
Go to the top of the page
 
+Quote Post
Savrik
сообщение Jul 23 2010, 08:06
Сообщение #6


наблюдаю..
***

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



Ну всплеск можно ограничить любыми средствами, самые простые - стабилитрон на 5,6В, TL431+транзистор, варистор, трансиль..
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jul 23 2010, 08:09
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(eastwind @ Jul 23 2010, 11:45) *
Как решали проблему?
Поскольку импульс повышенного напряжения блок питания давал сразу после подачи на него 220В, решение нашлось простое: низкое напряжение с БП потребителям раздавалось с некоторой, большей по времени чем импульс задержкой после подключения к сети 220.
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 23 2010, 08:27
Сообщение #8


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(eastwind @ Jul 23 2010, 11:45) *
Нет необрабатываемых прерываний.

Как? Неужели в системе используются все без исключения прерывания? smile.gif
Я имел в виду, что не используемые прерывания могли оказаться каким-то образом разрешенными.
Go to the top of the page
 
+Quote Post
Клим
сообщение Jul 23 2010, 08:34
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 230
Регистрация: 7-04-08
Из: Украина, Запорожье
Пользователь №: 36 541



Цитата(eastwind @ Jul 23 2010, 10:45) *
Нет необрабатываемых прерываний.
Программа рабочая. На многих объектах модули стоят месяцами и проблем нет.
Ошибки на "проблемных" объектах возникают совершенно хаотично и систематизировать их не получается. Поэтому и начал думать в сторону питания/тактирования.


Как решали проблему?

Как дела с фильтрующими кондерами по питанию ?
Какое напряжения питания ?
как вариант сменить бутлоадер или вообще от него отказаться.
Go to the top of the page
 
+Quote Post
eastwind
сообщение Jul 23 2010, 09:43
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 1-08-05
Пользователь №: 7 242



Цитата(777777 @ Jul 23 2010, 14:27) *
Я имел в виду, что не используемые прерывания могли оказаться каким-то образом разрешенными.

Я понял, что вы хотели сказать.
Я и имел ввиду, что разрешенных необрабатываемых прерываний нет.

Цитата(Клим @ Jul 23 2010, 14:34) *
Как дела с фильтрующими кондерами по питанию ?
Какое напряжения питания ?
как вариант сменить бутлоадер или вообще от него отказаться.


Фильрующие кондеры стоят на всех трех ногах контроллера. Очень близко к выводам.
Напряжение питания указал в первом посте. 5В.
Пробовали отказаться от бутлоадера. Проблема перетирания флэши пропала, но все остальные симптомы остались: ЕЕПРОМ портится, проц виснет, улетает непонятно куда.
Go to the top of the page
 
+Quote Post
zombi
сообщение Jul 23 2010, 15:51
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106



А есть электролитик по питанию? сразу после "тонкий 7 см шлейфик" ?

Может это мои предрассудки но я с некоторых пор во всех изделиях стараюсь использовать ТОЛЬКО ВНЕШНИЕ ГЕНЕРАТОРЫ
Go to the top of the page
 
+Quote Post
andrewkrot
сообщение Jul 23 2010, 16:55
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 306
Регистрация: 11-11-04
Из: Москва
Пользователь №: 1 106



А чем занимается Ваша плата? На ней нет реле или иных реактивных элементов?
Go to the top of the page
 
+Quote Post
rtfcnf
сообщение Jul 23 2010, 18:49
Сообщение #13


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

Группа: Участник
Сообщений: 96
Регистрация: 27-06-08
Из: Москва
Пользователь №: 38 581



Попробуйте поставить внешний супервизор, отключив встроенный, генератор при этом оставить как есть. Если писали на ассемблере и включен WDT создайте в самом конце программы что то типа:
Код
        nop
        nop
;конец не используемой области
error:
        nop
        jmp error



Сообщение отредактировал rtfcnf - Jul 23 2010, 18:58
Go to the top of the page
 
+Quote Post
eastwind
сообщение Jul 24 2010, 14:32
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 1-08-05
Пользователь №: 7 242



Цитата(zombi @ Jul 23 2010, 21:51) *
А есть электролитик по питанию? сразу после "тонкий 7 см шлейфик" ?

нет, после шлейфа стоит тантал. электролита нет.

Цитата(andrewkrot @ Jul 23 2010, 22:55) *
А чем занимается Ваша плата? На ней нет реле или иных реактивных элементов?

нету ничего такого
Go to the top of the page
 
+Quote Post
kosyak©
сообщение Jul 24 2010, 20:31
Сообщение #15


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

Группа: Свой
Сообщений: 179
Регистрация: 1-10-07
Из: НЧ
Пользователь №: 30 966



Цитата(eastwind @ Jul 23 2010, 13:43) *
...ЕЕПРОМ портится, проц виснет, улетает непонятно куда.

У коллеги слетала ЕЕПРОМ (первые несколько адресов) когда он начинал "счелкать" питанием платы (даж сделал девайс для этого smile.gif ) - решилось все включением внутреннего BODa..ну и кондеры "побольше", вроде, поставил...


Простите, пропустил про уже включенный BOD cranky.gif
Go to the top of the page
 
+Quote Post

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

 


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


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