IgorAVR2 1 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Есть одна относительно новая разработка на STM32f437GT6, которая была выпущена в количестве 2 шт, было всё ОК. Спаял ещё две штуки и начались проблемы: после того как микроконтроллер поработает какое-то время он начинает циклически сбрасываться. Сбрасывается он с разными интервалами, то чаще, включишь заново реже. То что он сбрасывается чётко видно на осциллограмме ножки RESET, которую я приложил. При этом никакие манипуляции с самой ножкой сброса не помогают, ни конденсатор, ни подключение её напрямую к питанию. Никакие двух дневные эксперименты с самой платой, пропайка и перекидывание микроконтроллеров тоже не помогают. Сторожевой таймер в программе не задействован. Ночью плата полежала, после чего два часа точно отработала без проблем, а через три опять всё началось. Почему микроконтроллер может так внутри себя себя сбрасывать без всяких на то причин? И так на обеих платах... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Если в прошивке вы не инициируете сброс (сторожевой таймер, программный сброс и т.д.), то МК может сбрасываться от просаживания напряжения питания. Кстати, причина сброса потом висит в соответствующем регистре, советую туда заглянуть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Если в прошивке вы не инициируете сброс (сторожевой таймер, программный сброс и т.д.), то МК может сбрасываться от просаживания напряжения питания. Кстати, причина сброса потом висит в соответствующем регистре, советую туда заглянуть. Питание самого МК я посмотрел в первую очередь, оно естественно в норме и стабильно. Это я пытался дать понять словами:"Никакие двух дневные эксперименты с самой платой... не помогают". А вот про регистр не знал. Не знаю получится ли его посмотреть отладчиком, но с учётом того что плата работает доли секунды, то попробую этот регистр куда нибудь сохранить или выдать в UART. Программный сброс отпадает:во первых я его не инициализирую, а во вторых он бы был подвержен какой то логике, а у меня даже цикличность разная. Спасибо за ответ, буду пытаться понять содержимое регистра, но жду ещё мнений... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Почему микроконтроллер может так внутри себя себя сбрасывать без всяких на то причин? ..RESET подтянут к питанию? И тщательно ли мыли платы от флюса? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 28 июля, 2016 Опубликовано 28 июля, 2016 (изменено) · Жалоба ..RESET подтянут к питанию? И тщательно ли мыли платы от флюса? За два дня битвы с этой проблемой плата мыта и перемыта несколько раз, а так же несколько раз пропаяна. Платы две, проблема одна на них. RESET не только подтянут был, а был подключен к питанию напрямую, об этом я написал в первом посте - после этого картинка на осциллографе естественно меняется, но сбрасывается точно так же. Ещё добавлю: микроконтроллерами занимаюсь около 18 лет, а STM32 с их момента появления и все детские болячки я естественно сразу не заложил в плату либо перепроверил. Изменено 28 июля, 2016 пользователем IgorAVR2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба а был подключен к питанию напрямую Так делать нельзя, т.к. ножка RESET может просаживаться по инициативе МК. Там стоит ключ на землю, и подключение к питанию даст КЗ. Подробности в RM0090 Figure 15. Simplified diagram of the reset circuit. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Так делать нельзя, т.к. ножка RESET может просаживаться по инициативе МК. Я знаю что так нельзя делать - это было сделано кратковременно в качестве эксперимента, но результата это никакого не дало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Так делать нельзя, т.к. ножка RESET может просаживаться по инициативе МК. Там стоит ключ на землю, и подключение к питанию даст КЗ. Подробности в RM0090 Figure 15. Simplified diagram of the reset circuit. Судя по словам IgorAVR2 ("подключил к питанию, а оно всё равно сбрасывается"), ST'шники сделали определённую работу над ошибками. Как минимум, резистор последовательный поставили :-) А так - да, смотреть RCC->CSR (или аналог, я с F437 не общался) и выводить хоть куда-нибудь, хотя бы размахиванием ножкой (нужно несколько свободных ног). Игорь, обратите внимание на несколько странную процедуру чтения этого регистра (описана в документации). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 10 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба А бы предложил проверить все ли хорошо на Vdda, Vssa. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Как минимум, резистор последовательный поставили :-) Ага, а это как раз ответ на вопрос который я хотел задать, а то я думаю как же он всё таки дальше сбрасывается, если RESET жёстко к плюсы заведен. Насчёт регистра понял, буду его смотреть и отпишусь. А как он называется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Ещё добавлю: микроконтроллерами занимаюсь около 18 лет, а STM32 с их момента появления и все детские болячки я естественно сразу не заложил в плату либо перепроверил. Как-то плохо это соотносится с этим: А вот про регистр не знал. Программный сброс отпадает:во первых я его не инициализирую, а во вторых он бы был подвержен какой то логике, а у меня даже цикличность разная. Как можно "инициализировать программный сброс"??? Его обычно подают. Или не подают. Чтобы отсечь программные проблемы от аппаратных в схемотехнике, существуют отладочные платы. Проверьте вашу прошивку на такой плате (может даже в усечённом виде). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 119 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Vdda смотрите. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Как-то плохо это соотносится с этим: Как можно "инициализировать программный сброс"??? Его обычно подают. Или не подают. Чтобы отсечь программные проблемы от аппаратных в схемотехнике, существуют отладочные платы. Проверьте вашу прошивку на такой плате (может даже в усечённом виде). Плохо соотносится, т.к. до этого не было таких проблем и про этот регистр и знать не знал и жил припеваючи, увы... "инициализировать программный сброс" - имелось ввиду не только сам программный сброс, а ещё и ватчдог например и т.д., то есть всё что не связано с внешним сбросом. Плата отладочные конечно же существуют, в том числе и у меня, но о них в этот раз и мысли нету, т.к. я сразу написал что две платы из первой партии так сказать работают с этой же программой на УРА. Одна из них тут же у меня на столе лежит и с ней всё ок. А вот точно такие же две свеже спаянные, вот с ними проблемы, что то именно аппаратное. Спасибо всем остальным отписавшимся, завтра возьму свой хороший осцил (его просто под рукой не оказалось) и им тщательно буду смотреть VDD, VDDA, а потом регистр. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jorikdima 0 28 июля, 2016 Опубликовано 28 июля, 2016 · Жалоба Спасибо всем остальным отписавшимся, завтра возьму свой хороший осцил (его просто под рукой не оказалось) и им тщательно буду смотреть VDD, VDDA, а потом регистр. Могу глубочайше заблуждаться, с СТ не работал. Но в других контроллерах этот регистр имеет соответствующие биты валидными после сброса. Другими словами: произошел сброс - просто смотрите в оотладчике регистр или уартом выводите. Выводите его безусловно при старте и будуту знать природу старта, будь то просадка питания, или что иное. Куда проще чем с осциллом ползать смотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorAVR2 1 1 августа, 2016 Опубликовано 1 августа, 2016 (изменено) · Жалоба По полученным здесь советам через регистр сброса выяснил, что сброс происходит по подаче питания, то есть микроконтроллер думает что ему передёрнули питание. После этого посмотрел ещё раз питание микроконтроллера. Оно конечно шумноватое, но сильных просаживаний нету и остаётся в пределах от 3,2 до 3,45 вольт, что на мой взгляд вполне допустимо. Осциллограмму качества питания МК прикладываю. Хотелось бы услышать стороннее мнение на качество питание по картинке. Изменено 1 августа, 2016 пользователем IgorAVR2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться