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

 
 
> msp430f2254. Зависание и выполнение произвольного куска кода в условиях помех
emark
сообщение Jun 24 2016, 12:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 2-10-05
Пользователь №: 9 146



Доброго времени суток!

Столкнулся со следующей проблемой. Есть автономное устройство, собранное на msp430f2254. Внешний WatchDog на устройстве отсутствует (сэкономили sm.gif). Питание аккумуляторное. От заказчика стали приходить претензии: зависает (лечится только переключением питания). Экспериментально было определено, что проблема в кварце (12 МГц). Но вопрос не в этом. Во время экспериментов я определил, что тыкая какой-нибудь железкой в ножки кварца на раз получаем такое зависание, а иногда (довольно часто) пыполнения кода программы, отвественного за стирания внутреннего программного Flash с понятным результатом. MCLK от кварца. Если MCLK сделать от DCO проблема исчезает.

Кто-нибудь сталкивался таким? Как решили?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
k155la3
сообщение Jun 26 2016, 14:10
Сообщение #2


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

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Проверьте, не открыт ли какойнить флаг прерывания, не обеспеченный вектором.
Рекомендую на все вектора поставить обработчики-"пустышки". NMI - если есть.
Для отлова демона можете в каждую пустышку поставить
контрольную точку и помучить девайс.
---
Смена режима тактирования. Вы устраните последствия а причина останется неизвестной.
Проверьте также осцилографом цепь питания на предмет выбросов и провалов.


ps
- постарайтесь найти режим когда сбой-глюк устойчив. Другим методом, а не "кварцевым"
- сделайте "тест-проект", который будет отличаться от основного только тем, что на свободный
пин будет P1OUT ^= 0x01. Его мониторить осцилографом.

Нахрена все это ?
Возможно, в девайсе зависает LCD например (что ажбегом возможно если I2C и топорный софт-драйвер).




Сообщение отредактировал k155la3 - Jun 26 2016, 14:18
Go to the top of the page
 
+Quote Post
emark
сообщение Jun 26 2016, 16:13
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 2-10-05
Пользователь №: 9 146



Цитата(k155la3 @ Jun 26 2016, 19:10) *
Проверьте, не открыт ли какойнить флаг прерывания, не обеспеченный вектором.
Рекомендую на все вектора поставить обработчики-"пустышки". NMI - если есть.
Для отлова демона можете в каждую пустышку поставить
контрольную точку и помучить девайс.
---
Смена режима тактирования. Вы устраните последствия а причина останется неизвестной.
Проверьте также осцилографом цепь питания на предмет выбросов и провалов.


ps
- постарайтесь найти режим когда сбой-глюк устойчив. Другим методом, а не "кварцевым"
- сделайте "тест-проект", который будет отличаться от основного только тем, что на свободный
пин будет P1OUT ^= 0x01. Его мониторить осцилографом.

Нахрена все это ?
Возможно, в девайсе зависает LCD например (что ажбегом возможно если I2C и топорный софт-драйвер).


Эти все этапы я уже проделал.

Собрали установку генерации ЭМИ (из латора и прерывателя), с помощью которого и нашли слабое место нашего изделия (кварц), путем последовательного экранирования частей платы. Просто потом я нашел более простой путь - непосредственного воздействия металическим предметом на ножки кварца.

Еще раз повторю, меня сильно смущает что сбивая тактовый генератор (пусть варварскими методами), можно запустить произвольный кусок кода прошивки. Раньше на MSP я с таким не сталкивался. С зависанием худо-бедно справится внешний watchdog, а вот с исполнением произвольного куска кода...
Go to the top of the page
 
+Quote Post
k155la3
сообщение Jun 27 2016, 08:01
Сообщение #4


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

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(emark @ Jun 26 2016, 19:13) *
Эти все этапы я уже проделал.
. . . .
Еще раз повторю, меня сильно смущает что сбивая тактовый генератор (пусть варварскими методами), можно запустить произвольный кусок кода прошивки. Раньше на MSP я с таким не сталкивался. С зависанием худо-бедно справится внешний watchdog, а вот с исполнением произвольного куска кода...


Чтобы я делал, IMHO
- если есть возможность - задать внешнее "неубиваемо-гарантированое" тактирование и проверить гипотенузу что вылет из-за слета тактирования
(или помехи на тактовый вход)
- для ВЧ тактирования должен отрабатывать флаг неисправности генератора.
и даже если тактирование вообще нет - процессор должен переключаться на VLO (по F22XX семейству точно не знаю)
- проверить тип кварца, его "глючность" (контафакт), обвеску-емкости / настройку генератора.
Рекомендации по типовой схеме включения из даташита на кварц.
Мне попадались глючные 32768.
- проверить как девайс реагирует на ВЧ импульсную помеху
(смс на рядом лежащий мобильник). Эсли слетатет - экранировать - фильтровать.
итд в томже стиле sm.gif



Цитата(Obam @ Jun 27 2016, 10:19) *
... Странно, почему вам не удаётся обслужить OFIFG. ...

Демонов изгонять выкуривая
slaz167j.pdf, искать литерал "OFIFG"
sm.gif


Сообщение отредактировал k155la3 - Jun 27 2016, 08:40
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- emark   msp430f2254. Зависание и выполнение произвольного куска кода в условиях помех   Jun 24 2016, 12:03
- - mcheb   Цитата(emark @ Jun 24 2016, 15:03) Как ре...   Jun 24 2016, 12:49
|- - emark   Цитата(mcheb @ Jun 24 2016, 17:49) Устано...   Jun 24 2016, 13:52
- - Obam   Цитата(emark @ Jun 24 2016, 16:03) Доброг...   Jun 24 2016, 13:35
|- - iosifk   Цитата(Obam @ Jun 24 2016, 16:35) Тыкать ...   Jun 24 2016, 13:57
|- - emark   Цитата(Obam @ Jun 24 2016, 18:35) Тыкать ...   Jun 24 2016, 14:09
|- - jcxz   Цитата(emark @ Jun 24 2016, 20:09) Тыча, ...   Jun 27 2016, 05:37
|- - Obam   Цитата(emark @ Jun 24 2016, 18:09) ммм......   Jun 27 2016, 07:19
|- - emark   Цитата(Obam @ Jun 27 2016, 12:19) Подробн...   Jun 27 2016, 12:34
|- - emark   Цитата(Obam @ Jun 27 2016, 12:19) Опять ж...   Jun 28 2016, 08:49
|- - Obam   Цитата(emark @ Jun 28 2016, 12:49) А это ...   Jun 28 2016, 11:16
|- - Obam   Цитата(k155la3 @ Jun 27 2016, 12:01) Цита...   Jun 27 2016, 08:28
|- - k155la3   Цитата(Obam @ Jun 27 2016, 11:28) Эт когд...   Jun 27 2016, 08:38
- - _3m   Цитата(emark @ Jun 24 2016, 15:03) ... ты...   Jun 27 2016, 06:30
|- - iosifk   Цитата(_3m @ Jun 27 2016, 09:30) Помеха в...   Jun 27 2016, 08:26
|- - Dog Pawlowa   Цитата(_3m @ Jun 27 2016, 09:30) При рабо...   Jul 9 2016, 07:23
- - AlexandrY   Цитата(emark @ Jun 24 2016, 15:03) Кто-ни...   Jun 27 2016, 08:23
|- - emark   Цитата(AlexandrY @ Jun 27 2016, 13:23) Да...   Jun 27 2016, 13:14
- - MrYuran   Цитата(emark @ Jun 24 2016, 15:03) Кто-ни...   Jun 27 2016, 08:39
- - Obam   Табличка как бы намекала на зависимость от напряже...   Jun 27 2016, 12:38
- - k155la3   будет ли вылет или завес, если --- источник для MC...   Jun 28 2016, 10:55
|- - emark   Цитата(k155la3 @ Jun 28 2016, 15:55) буде...   Jun 28 2016, 15:44
- - sasa_c   А попробуйте для эксперимента добавить резистор на...   Jun 30 2016, 05:46
- - emark   Цитата(sasa_c @ Jun 30 2016, 10:46) А поп...   Jul 1 2016, 10:49


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

 


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


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