Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F437 - сбрасывается после непродолжительной работы
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
IgorAVR2
Есть одна относительно новая разработка на STM32f437GT6, которая была выпущена в количестве 2 шт, было всё ОК. Спаял ещё две штуки и начались проблемы: после того как микроконтроллер поработает какое-то время он начинает циклически сбрасываться. Сбрасывается он с разными интервалами, то чаще, включишь заново реже. То что он сбрасывается чётко видно на осциллограмме ножки RESET, которую я приложил. При этом никакие манипуляции с самой ножкой сброса не помогают, ни конденсатор, ни подключение её напрямую к питанию. Никакие двух дневные эксперименты с самой платой, пропайка и перекидывание микроконтроллеров тоже не помогают.
Сторожевой таймер в программе не задействован. Ночью плата полежала, после чего два часа точно отработала без проблем, а через три опять всё началось.

Почему микроконтроллер может так внутри себя себя сбрасывать без всяких на то причин?

И так на обеих платах...
scifi
Если в прошивке вы не инициируете сброс (сторожевой таймер, программный сброс и т.д.), то МК может сбрасываться от просаживания напряжения питания. Кстати, причина сброса потом висит в соответствующем регистре, советую туда заглянуть.
IgorAVR2
Цитата(scifi @ Jul 28 2016, 17:42) *
Если в прошивке вы не инициируете сброс (сторожевой таймер, программный сброс и т.д.), то МК может сбрасываться от просаживания напряжения питания. Кстати, причина сброса потом висит в соответствующем регистре, советую туда заглянуть.


Питание самого МК я посмотрел в первую очередь, оно естественно в норме и стабильно. Это я пытался дать понять словами:"Никакие двух дневные эксперименты с самой платой... не помогают".

А вот про регистр не знал. Не знаю получится ли его посмотреть отладчиком, но с учётом того что плата работает доли секунды, то попробую этот регистр куда нибудь сохранить или выдать в UART.
Программный сброс отпадает:во первых я его не инициализирую, а во вторых он бы был подвержен какой то логике, а у меня даже цикличность разная.

Спасибо за ответ, буду пытаться понять содержимое регистра, но жду ещё мнений...
Lmx2315
Цитата(IgorAVR2 @ Jul 28 2016, 17:39) *
Почему микроконтроллер может так внутри себя себя сбрасывать без всяких на то причин?

..RESET подтянут к питанию? И тщательно ли мыли платы от флюса?
IgorAVR2
Цитата(Lmx2315 @ Jul 28 2016, 18:01) *
..RESET подтянут к питанию? И тщательно ли мыли платы от флюса?

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

Ещё добавлю: микроконтроллерами занимаюсь около 18 лет, а STM32 с их момента появления и все детские болячки я естественно сразу не заложил в плату либо перепроверил.
adnega
Цитата(IgorAVR2 @ Jul 28 2016, 18:08) *
а был подключен к питанию напрямую

Так делать нельзя, т.к. ножка RESET может просаживаться по инициативе МК.
Там стоит ключ на землю, и подключение к питанию даст КЗ.
Подробности в RM0090 Figure 15. Simplified diagram of the reset circuit.
IgorAVR2
Цитата(adnega @ Jul 28 2016, 18:18) *
Так делать нельзя, т.к. ножка RESET может просаживаться по инициативе МК.

Я знаю что так нельзя делать - это было сделано кратковременно в качестве эксперимента, но результата это никакого не дало.
esaulenka
Цитата(adnega @ Jul 28 2016, 18:18) *
Так делать нельзя, т.к. ножка RESET может просаживаться по инициативе МК.
Там стоит ключ на землю, и подключение к питанию даст КЗ.
Подробности в RM0090 Figure 15. Simplified diagram of the reset circuit.

Судя по словам IgorAVR2 ("подключил к питанию, а оно всё равно сбрасывается"), ST'шники сделали определённую работу над ошибками. Как минимум, резистор последовательный поставили :-)

А так - да, смотреть RCC->CSR (или аналог, я с F437 не общался) и выводить хоть куда-нибудь, хотя бы размахиванием ножкой (нужно несколько свободных ног).
Игорь, обратите внимание на несколько странную процедуру чтения этого регистра (описана в документации).
adnega
А бы предложил проверить все ли хорошо на Vdda, Vssa.
IgorAVR2
Цитата(esaulenka @ Jul 28 2016, 18:55) *
Как минимум, резистор последовательный поставили :-)


Ага, а это как раз ответ на вопрос который я хотел задать, а то я думаю как же он всё таки дальше сбрасывается, если RESET жёстко к плюсы заведен.

Насчёт регистра понял, буду его смотреть и отпишусь. А как он называется?
jcxz
Цитата(IgorAVR2 @ Jul 28 2016, 21:08) *
Ещё добавлю: микроконтроллерами занимаюсь около 18 лет, а STM32 с их момента появления и все детские болячки я естественно сразу не заложил в плату либо перепроверил.

Как-то плохо это соотносится с этим:
Цитата(IgorAVR2 @ Jul 28 2016, 20:52) *
А вот про регистр не знал.

Цитата(IgorAVR2 @ Jul 28 2016, 20:52) *
Программный сброс отпадает:во первых я его не инициализирую, а во вторых он бы был подвержен какой то логике, а у меня даже цикличность разная.

Как можно "инициализировать программный сброс"??? wacko.gif Его обычно подают. Или не подают.
Чтобы отсечь программные проблемы от аппаратных в схемотехнике, существуют отладочные платы. Проверьте вашу прошивку на такой плате (может даже в усечённом виде).
Сергей Борщ
Vdda смотрите.
IgorAVR2
Цитата(jcxz @ Jul 28 2016, 21:00) *
Как-то плохо это соотносится с этим:


Как можно "инициализировать программный сброс"??? wacko.gif Его обычно подают. Или не подают.
Чтобы отсечь программные проблемы от аппаратных в схемотехнике, существуют отладочные платы. Проверьте вашу прошивку на такой плате (может даже в усечённом виде).


Плохо соотносится, т.к. до этого не было таких проблем и про этот регистр и знать не знал и жил припеваючи, увы...
"инициализировать программный сброс" - имелось ввиду не только сам программный сброс, а ещё и ватчдог например и т.д., то есть всё что не связано с внешним сбросом.
Плата отладочные конечно же существуют, в том числе и у меня, но о них в этот раз и мысли нету, т.к. я сразу написал что две платы из первой партии так сказать работают с этой же программой на УРА. Одна из них тут же у меня на столе лежит и с ней всё ок. А вот точно такие же две свеже спаянные, вот с ними проблемы, что то именно аппаратное.

Спасибо всем остальным отписавшимся, завтра возьму свой хороший осцил (его просто под рукой не оказалось) и им тщательно буду смотреть VDD, VDDA, а потом регистр.


jorikdima
Цитата(IgorAVR2 @ Jul 28 2016, 13:35) *
Спасибо всем остальным отписавшимся, завтра возьму свой хороший осцил (его просто под рукой не оказалось) и им тщательно буду смотреть VDD, VDDA, а потом регистр.

Могу глубочайше заблуждаться, с СТ не работал. Но в других контроллерах этот регистр имеет соответствующие биты валидными после сброса. Другими словами: произошел сброс - просто смотрите в оотладчике регистр или уартом выводите. Выводите его безусловно при старте и будуту знать природу старта, будь то просадка питания, или что иное. Куда проще чем с осциллом ползать смотреть.
IgorAVR2
По полученным здесь советам через регистр сброса выяснил, что сброс происходит по подаче питания, то есть микроконтроллер думает что ему передёрнули питание. После этого посмотрел ещё раз питание микроконтроллера. Оно конечно шумноватое, но сильных просаживаний нету и остаётся в пределах от 3,2 до 3,45 вольт, что на мой взгляд вполне допустимо.
Осциллограмму качества питания МК прикладываю. Хотелось бы услышать стороннее мнение на качество питание по картинке.
Сергей Борщ
QUOTE (IgorAVR2 @ Aug 1 2016, 19:36) *
После этого посмотрел ещё раз питание микроконтроллера.
Какое из питаний?
IgorAVR2
Цитата(Сергей Борщ @ Aug 1 2016, 19:48) *
Какое из питаний?

Это оба из питаний: и VDD и VDDA.
Сергей Борщ
QUOTE (IgorAVR2 @ Aug 1 2016, 20:16) *
Это оба из питаний: и VDD и VDDA.

А вы послепроверки причины сброса этот флаг сбрасываете? А то ведь он там может висеть с первого включения...
IgorAVR2
Цитата(Сергей Борщ @ Aug 1 2016, 21:13) *
А вы послепроверки причины сброса этот флаг сбрасываете? А то ведь он там может висеть с первого включения...

Да, да - все флаги сбрасываю, т.к. вообще после включения у меня там несколько флагов установлено. Ну соответственно если я сбрасываю внешним сбросом, то программа так мне и выдаёт что сброшено по внешней ножки сброса.
jorikdima
Цитата(IgorAVR2 @ Aug 1 2016, 09:36) *
По полученным здесь советам через регистр сброса выяснил, что сброс происходит по подаче питания, то есть микроконтроллер думает что ему передёрнули питание. После этого посмотрел ещё раз питание микроконтроллера. Оно конечно шумноватое, но сильных просаживаний нету и остаётся в пределах от 3,2 до 3,45 вольт, что на мой взгляд вполне допустимо.
Осциллограмму качества питания МК прикладываю. Хотелось бы услышать стороннее мнение на качество питание по картинке.

Ну вообще нужно смотреть именно в момент сброса что там. Может нагрузка какая просаживает. Вообще пички какие-то видны... Если конкретно в этот момент, что на фото, сброса не произошло, то и сос тороны контроллера претензий нету sm.gif Если есть возможность кондер на питании (они есть надеюсь? относительно близко к чипу?) поболее поставить попробуйте. То что другие платы (из первой партии) не сбрасываются так это вероятностный процесс. Впаяли там кондеры с чуть большим номиналом (у них допуск большой до 20%) и этого хватает там.
Короче, дело не в софте, а в качестве питания глазами МК.
adnega
Цитата(jorikdima @ Aug 1 2016, 21:38) *
Ну вообще нужно смотреть именно в момент сброса что там.

Ага, синхронизироваться за передний фронт на NRST.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.