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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> msp430f5438 перезапускается, непонятны причины
GlueBF
сообщение Oct 18 2010, 06:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Добрый день, участники форума. Столкнусля с такой проблемой при разработке устройства. Устройство служит для измерения тока и напряжения нагрузки. Нагрузка - обогреватель 1 кВт, питается от сети 220В.
При включении нагрузки (щелчок тумблера обогревателя) может произойти перезагрузка МК (с вероятностью 5-10 случаев из 100), а также просто "зависание" МК (с вероятностью 1-2 случая из 100).
Никак не могу понять в чем причина. Вообще аппаратная ли это проблема или программная.
МК стоит в плате MSP-TS430PZ5x100.
Если нужны еще какие-то подробности - опишу.

Сообщение отредактировал GlueBF - Oct 18 2010, 06:20
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Oct 18 2010, 08:37
Сообщение #2


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



тумблер дает помеху. Либо тактирование срывается, а у вас нету соответствующего обработчика прерывания. Либо по питанию проблемы: кратковременная просадка, помеха...
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Oct 18 2010, 08:53
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



Как настроено тактирование? Как организовано питание платы и управление нагрузкой?


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
GlueBF
сообщение Oct 18 2010, 09:15
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Кусок кода с настройкой модуля тактирования:
CODE
// ***** Настройка модуля тактирования *****************************************
P5SEL|=BIT2+ // Задействовать P5.2 для XT2IN
BIT3; // Задействовать P5.3 для XT2OUT
UCSCTL6&=~XT2OFF; // Включить XT2
UCSCTL3|=SELREF_2; // Источник FLLref - REFO
UCSCTL4|=SELA_2; // Источник ACLK - REFO
do{ // Дождаться стабилизации XT2 и DCO
UCSCTL7&=~(XT2OFFG+ // Сбросить флаг неисправности XT2
XT1LFOFFG+ // Сбросить флаг неисправности XT1 (НЧ)
XT1HFOFFG+ // Сбросить флаг неисправности XT1 (ВЧ)
DCOFFG); // Сбросить флаг неисправности DCO
SFRIFG1&=~OFIFG; // Сбросить флаг неисправности осцилл.
} //
while (SFRIFG1&OFIFG); // Проверить флаг неисправности осцилл.
UCSCTL6&=~XT2DRIVE_2; // Частота XT2 16-24 МГц
UCSCTL4|=SELS_5+ // Источник SMCLK - XT2
SELM_5; // Источник MCLK - XT2
UCSCTL5|=DIVS_4; // SMCLK=XT2/16


Питание: 220В -> импульсный БП 25В -> DC/DC 3В.
Нагрузкой управляю руками, т.е. вручную включаю тумблер на обогревателе.

Цитата(jorikdima @ Oct 18 2010, 12:37) *
тумблер дает помеху. Либо тактирование срывается, а у вас нету соответствующего обработчика прерывания. Либо по питанию проблемы: кратковременная просадка, помеха...


Т.е. тактирование может срываться во время прихода помехи? Повторюсь, что зависание/перезагрузка происходят только в моменты включения/выключения нагрузки. Все остальное время МК работает стабильно.
Как корректно обработать прерывание при срыве тактирования?
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Oct 18 2010, 09:32
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



По Питанию микросхемы повесьте электролит/тантал 220 мкф и паралельно ему керамику микрофарад 10. А как у Вас цепь RESET сделана?


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
GlueBF
сообщение Oct 18 2010, 09:42
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Цитата(KARLSON @ Oct 18 2010, 13:32) *
По Питанию микросхемы повесьте электролит/тантал 220 мкф и паралельно ему керамику микрофарад 10. А как у Вас цепь RESET сделана?

По питанию конденсаторы есть уже на плате MSP-TS430PZ5x100.
У reset 47кОм на Uпит и 0,1мкФ на Общ.
Go to the top of the page
 
+Quote Post
Pavel V.
сообщение Oct 18 2010, 10:16
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 3-06-06
Пользователь №: 17 742



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


--------------------
Good News Everyone!
Go to the top of the page
 
+Quote Post
GlueBF
сообщение Oct 18 2010, 10:34
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Цитата(Pavel V. @ Oct 18 2010, 14:16) *
как реализовано подключение датчиков (напряжение, ток)? Что это за датчики?

Измерение тока: LEM - схема на ОУ - АЦП
Измерение напряжения: Трансформатор - схема на ОУ - АЦП

Цитата(Pavel V. @ Oct 18 2010, 14:16) *
Попробуйте добавить в программу обработчик сбоя крарцевого генератора и посмотреть - происходит ли сбой.

Как корректно обработать данное прерывание?
Go to the top of the page
 
+Quote Post
jorikdima
сообщение Oct 18 2010, 12:11
Сообщение #9


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(GlueBF @ Oct 18 2010, 14:34) *
Как корректно обработать данное прерывание?

как обрабатывать это 2 вопрос. для начала надо понять так это или нет. Просто обрабатывайте прерывания NMI_VECTOR и USR_VECTOR Могу ошибаться с написанием, но в доке на соответствующие модули гляньте секцию interrupts. Определите попадаете в эти обработчики или нет.
Можно осциллографом прислониться кстати к цепи питания, ресета, тактирования.
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Oct 18 2010, 13:54
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



То что по питанию стоят ёмкости это я знаю. Я предложил увеличить их номинал не менее моего.


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 18 2010, 17:13
Сообщение #11


Гуру
******

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



Цитата(GlueBF @ Oct 18 2010, 12:16) *
Вообще аппаратная ли это проблема или программная.
С вероятностью более 90% - аппаратная. Неправильно подключены входные и выходные цепи с точки зрения протекания и распределения токов в питании и в общем проводе. Вообще эта плата (MSP-TS430PZ5x100) предназначена для изучения кристалла и отладки, а не для использования в конечном устройстве, тем более с сетевой нагрузкой, создающей значительные помехи. Плюс наверняка в схеме подключения не предусмотрено никакой защиты от микросекундных помех.
Go to the top of the page
 
+Quote Post
GlueBF
сообщение Oct 18 2010, 17:49
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Цитата(jorikdima @ Oct 18 2010, 16:11) *
Просто обрабатывайте прерывания NMI_VECTOR и USR_VECTOR ... Определите попадаете в эти обработчики или нет.


+

Цитата(KARLSON @ Oct 18 2010, 17:54) *
Я предложил увеличить их номинал не менее моего.


Спасибо, попробую.

Цитата(rezident @ Oct 18 2010, 21:13) *
Вообще эта плата (MSP-TS430PZ5x100) предназначена для изучения кристалла и отладки, а не для использования в конечном устройстве, тем более с сетевой нагрузкой, создающей значительные помехи.

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

Сообщение отредактировал GlueBF - Oct 18 2010, 17:50
Go to the top of the page
 
+Quote Post
_3m
сообщение Oct 19 2010, 10:58
Сообщение #13


Знающий
****

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



Цитата(GlueBF @ Oct 18 2010, 13:15) *
Кусок кода с настройкой модуля тактирования:
...
Питание: 220В -> импульсный БП 25В -> DC/DC 3В.
Нагрузкой управляю руками, т.е. вручную включаю тумблер на обогревателе.

Т.е. тактирование может срываться во время прихода помехи? Повторюсь, что зависание/перезагрузка происходят только в моменты включения/выключения нагрузки. Все остальное время МК работает стабильно.
Как корректно обработать прерывание при срыве тактирования?

Как я понял у вас кварц внешний. С внешним кварцем msp даже при микроскопических при помехах жить не будет!
Там боролись за микропотребление и понизили амплитуду генерации до такой степени что генератор ловит каждый чих.
Переходите на DCO (если он есть в вашем камне). При работе от внутреннего генератора никаких проблем с помехами не будет.

Go to the top of the page
 
+Quote Post
GlueBF
сообщение Oct 20 2010, 05:22
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Да, кварц внешний.
Цитата(_3m @ Oct 19 2010, 14:58) *
Переходите на DCO (если он есть в вашем камне). При работе от внутреннего генератора никаких проблем с помехами не будет.

Спасибо за совет, сейчас начал копать в эту сторону.
Go to the top of the page
 
+Quote Post
ih_
сообщение Oct 20 2010, 07:04
Сообщение #15


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

Группа: Свой
Сообщений: 77
Регистрация: 2-04-08
Из: Россия, Киров
Пользователь №: 36 422



Цитата(GlueBF @ Oct 20 2010, 09:22) *
Да, кварц внешний.
Попробуйте резонатор заменить на генератор.
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 20 2010, 07:17
Сообщение #16


Гуру
******

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



Цитата(ih_ @ Oct 20 2010, 13:04) *
Попробуйте резонатор заменить на генератор.
Не нужно ему менять на генератор. Нужно плату для конечного устройства сделать нормальную, оттрасировав ее в соответствии с требованиями по помехоустойчивости.
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Oct 20 2010, 15:06
Сообщение #17


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Конденсаторы по питанию не помогли?
По мне так проблема чисто аппаратная. Вы можете представить на суд схему? Если есть осциллограф посмотрите цепи питания и ресет при включении нагрузки. Развёртку поставьте в ждущем режиме.


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
GlueBF
сообщение Oct 21 2010, 08:58
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Цитата(KARLSON @ Oct 20 2010, 19:06) *
Конденсаторы по питанию не помогли?


Нет, к сожалению.

Цитата(KARLSON @ Oct 20 2010, 19:06) *
Если есть осциллограф посмотрите цепи питания и ресет при включении нагрузки. Развёртку поставьте в ждущем режиме.


Попробую. Как зарегистрирую - приведу здесь осциллограммы.
Go to the top of the page
 
+Quote Post
GlueBF
сообщение Oct 22 2010, 06:13
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Объясните, пожалуйста поведение MSP430 при "появлении неисправности осциллятора".
OFIE - по умолчанию отключен. Произошла неисправность осциллятора, что дальше? Почему и по какому пути произойдет перезапуск МК?


Даже если обработать прерывание, например так:

...

SFRIE1 = OFIE; // Enable osc fault interrupt

...

#pragma vector=UNMI_VECTOR
__interrupt void UNMI_ISR(void) {
do {
UCSCTL7 &= ~(XT1LFOFFG + DCOFFG); // Clear XT1 & DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear OSC Fault flag
}while ( (SFRIFG1 & OFIFG) );
};


К чему это приведет?
Go to the top of the page
 
+Quote Post
rezident
сообщение Oct 22 2010, 13:56
Сообщение #20


Гуру
******

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



Цитата(GlueBF @ Oct 22 2010, 12:13) *
Объясните, пожалуйста поведение MSP430 при "появлении неисправности осциллятора".
OFIE - по умолчанию отключен. Произошла неисправность осциллятора, что дальше? Почему и по какому пути произойдет перезапуск МК?
Какой-такой перезапуск? 07.gif Вы вообще раздел 4.2.12 UCS Module Fail-Safe Operation в User's Manual читали? Никакого перезапуска не будет. Произойдет автоматическое переключение MCLK на тактирование от DCO и ... МК продолжит выполнение программы, тактируясь от DCO. Задача программиста "отловить" эту ситуацию, используя предоставленные ему аппаратные возможности, и после восстановления работоспособности генератора (пропадания ошибки) переключить тактирование обратно, на генератор, который вызвал сбой тактирования (если оно нужно, конечно). Чтобы этого избежать, я обычно советую использовать именно внутренний DCO для тактирования MCLK. А периферию, требующую более стабильного источника тактирования, можно подключить к внешним генераторам, настроив ACLK и SMCLK на тактирование от них (от генераторов XT1 или XT2).
Цитата(GlueBF @ Oct 22 2010, 12:13) *
Даже если обработать прерывание, например так:
...
К чему это приведет?
Ни к чему полезному это не приведет. Вначале желательно переключить тактирование на исправные генераторы или на DCO. Дождаться пропадания ошибки генератора, опрашивая в цикле соответствующие флаги. После устранения ошибки вновь настроить источники MCLK, SMCLK и ACLK на тактирование от внешних генераторов, которые сбойнули.
Go to the top of the page
 
+Quote Post
remote_job
сообщение Oct 23 2010, 08:35
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 14-03-08
Пользователь №: 35 915



Цитата(GlueBF @ Oct 22 2010, 10:13) *
OFIE - по умолчанию отключен. Произошла неисправность осциллятора, что дальше? Почему и по какому пути произойдет перезапуск МК?

Перезапуска не будет. Флаги сбоя тактирования не инициируют перезапуск, а просто информируют о событии. Что делать? Это Ваша проблема smile.gif можете перезапускать, можете пытаться возобновить тактирование.
Go to the top of the page
 
+Quote Post
GlueBF
сообщение Oct 25 2010, 07:02
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Ну я все про свой случай.
Конкретно у меня может произойти перезапуск МК. Если считать это программной ошибкой, то по какому пути происходит этот перезапуск?
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Oct 25 2010, 07:31
Сообщение #23


Гуру
******

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



Цитата(GlueBF @ Oct 25 2010, 10:02) *
Ну я все про свой случай...

Послушайте.
У Вас аппаратная проблема, связанная с влиянием помех на плату и микроконтроллер.
Микроконтроллер сбоит, поскольку из-за помех неправильно декодирует команду или срабатывает BOD. В результате он или вылетает на начало, или попадает в вечный цикл.
Программными средствами можно снизить влияние помех, но для этого нужно иметь достаточно опыта и разбираться в происходящих процессах.
Чем раньше Вы займетесь помехоустойчивостью, тем быстрее получите результат.
Не откладывайте же.
Вот здесь самая лучшая статья на эту тему.
http://eewiki.ru/wiki/%D0%9F%D0%BE%D0%BC%D...%82%D0%B2%D0%B0


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
GlueBF
сообщение Oct 25 2010, 07:39
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 22
Регистрация: 21-09-08
Пользователь №: 40 363



Цитата(Dog Pawlowa @ Oct 25 2010, 11:31) *
У Вас аппаратная проблема, связанная с влиянием помех на плату и микроконтроллер.

Это я уже понял.
Цитата(Dog Pawlowa @ Oct 25 2010, 11:31) *
Вот здесь самая лучшая статья на эту тему.

Спасибо за ссылку.
Go to the top of the page
 
+Quote Post

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

 


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


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