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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> STM32F437 - сбрасывается после непродолжительной работы, Самопроизвольный циклический сброс
IgorAVR2
сообщение Jul 28 2016, 14:39
Сообщение #1


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

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



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

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

И так на обеих платах...
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
scifi
сообщение Jul 28 2016, 14:42
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Если в прошивке вы не инициируете сброс (сторожевой таймер, программный сброс и т.д.), то МК может сбрасываться от просаживания напряжения питания. Кстати, причина сброса потом висит в соответствующем регистре, советую туда заглянуть.
Go to the top of the page
 
+Quote Post
IgorAVR2
сообщение Jul 28 2016, 14:52
Сообщение #3


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

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



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


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

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

Спасибо за ответ, буду пытаться понять содержимое регистра, но жду ещё мнений...
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Jul 28 2016, 15:01
Сообщение #4


отэц
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 18-09-05
Из: Москва
Пользователь №: 8 684



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

..RESET подтянут к питанию? И тщательно ли мыли платы от флюса?


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
IgorAVR2
сообщение Jul 28 2016, 15:08
Сообщение #5


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

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



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

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

Ещё добавлю: микроконтроллерами занимаюсь около 18 лет, а STM32 с их момента появления и все детские болячки я естественно сразу не заложил в плату либо перепроверил.

Сообщение отредактировал IgorAVR2 - Jul 28 2016, 15:14
Go to the top of the page
 
+Quote Post
adnega
сообщение Jul 28 2016, 15:18
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(IgorAVR2 @ Jul 28 2016, 18:08) *
а был подключен к питанию напрямую

Так делать нельзя, т.к. ножка RESET может просаживаться по инициативе МК.
Там стоит ключ на землю, и подключение к питанию даст КЗ.
Подробности в RM0090 Figure 15. Simplified diagram of the reset circuit.
Go to the top of the page
 
+Quote Post
IgorAVR2
сообщение Jul 28 2016, 15:42
Сообщение #7


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

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



Цитата(adnega @ Jul 28 2016, 18:18) *
Так делать нельзя, т.к. ножка RESET может просаживаться по инициативе МК.

Я знаю что так нельзя делать - это было сделано кратковременно в качестве эксперимента, но результата это никакого не дало.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Jul 28 2016, 15:55
Сообщение #8


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

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



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

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

А так - да, смотреть RCC->CSR (или аналог, я с F437 не общался) и выводить хоть куда-нибудь, хотя бы размахиванием ножкой (нужно несколько свободных ног).
Игорь, обратите внимание на несколько странную процедуру чтения этого регистра (описана в документации).


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
adnega
сообщение Jul 28 2016, 16:24
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



А бы предложил проверить все ли хорошо на Vdda, Vssa.
Go to the top of the page
 
+Quote Post
IgorAVR2
сообщение Jul 28 2016, 17:33
Сообщение #10


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

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



Цитата(esaulenka @ Jul 28 2016, 18:55) *
Как минимум, резистор последовательный поставили :-)


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

Насчёт регистра понял, буду его смотреть и отпишусь. А как он называется?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 28 2016, 18:00
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



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

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

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

Как можно "инициализировать программный сброс"??? wacko.gif Его обычно подают. Или не подают.
Чтобы отсечь программные проблемы от аппаратных в схемотехнике, существуют отладочные платы. Проверьте вашу прошивку на такой плате (может даже в усечённом виде).
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 28 2016, 18:19
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Vdda смотрите.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
IgorAVR2
сообщение Jul 28 2016, 20:35
Сообщение #13


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

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



Цитата(jcxz @ Jul 28 2016, 21:00) *
Как-то плохо это соотносится с этим:


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


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

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


Go to the top of the page
 
+Quote Post
jorikdima
сообщение Jul 28 2016, 20:56
Сообщение #14


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

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



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

Могу глубочайше заблуждаться, с СТ не работал. Но в других контроллерах этот регистр имеет соответствующие биты валидными после сброса. Другими словами: произошел сброс - просто смотрите в оотладчике регистр или уартом выводите. Выводите его безусловно при старте и будуту знать природу старта, будь то просадка питания, или что иное. Куда проще чем с осциллом ползать смотреть.
Go to the top of the page
 
+Quote Post
IgorAVR2
сообщение Aug 1 2016, 16:36
Сообщение #15


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

Группа: Участник
Сообщений: 153
Регистрация: 29-05-08
Пользователь №: 37 901



По полученным здесь советам через регистр сброса выяснил, что сброс происходит по подаче питания, то есть микроконтроллер думает что ему передёрнули питание. После этого посмотрел ещё раз питание микроконтроллера. Оно конечно шумноватое, но сильных просаживаний нету и остаётся в пределах от 3,2 до 3,45 вольт, что на мой взгляд вполне допустимо.
Осциллограмму качества питания МК прикладываю. Хотелось бы услышать стороннее мнение на качество питание по картинке.

Сообщение отредактировал IgorAVR2 - Aug 1 2016, 16:38
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post

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

 


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


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