|
Не стартует STM32 по RESET при включении |
|
|
|
Aug 2 2013, 06:55
|
Местный
  
Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598

|
Здравствуйте все!
Посмотрел на форуме все, что касается RESET для STM32. Внятного решения не нашел.
Посоветуйте пожалуйста! Плата сделана на STM32F407VGT.
1. При включении питания проходит сброс, формируется устойчивый фронт, но процессор не стартует. При нажатии на кнопку RESET , фронт формируется аналогичный, программа выполняется как и надо.
2. При нажатой кнопке RESET включаем питание, потом отпускаем,фронт формируется, но процессор не стартует.
3. Дополнительно еще поставил супервизор с задержкой 350 мс, фронт RESET немного более крутой, но процессор все равно не стартует при включении.
Но самое печальное что из 20 экземпляров плат всего 2 так себя ведут.
На одной из плат поменял процессор, но ничего не поменялось. Все обвязки для RESET и BOOT0 перепаял.
В каком направлении копать?
Спасибо.
|
|
|
|
|
 |
Ответов
|
Sep 29 2016, 09:48
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896

|
Цитата(shreck @ May 5 2015, 05:01)  Упомяну такую вещь как скорость нарастания напряжения питания. Для некоторых контроллеров (stm32f103 например) - по барабану, запустится всегда. А для других контроллеров (stm32f207) этот параметр требуется выдерживать более жестко. Была у меня платка от терраэлектроники на этом проце, которая, из-за неудачного стабилизатора, запускалась через раз. При этом использовался старый линейный лабораторный источник питания. А вот если использовал хороший импульсный, то плата стартовала всегда. Цитата(adnega @ May 5 2015, 09:41)  Зависающая программа ваша? Исходники есть? В исходниках функции SWD не заблокированы? Если SWD не заблокирован, то можно на лету подключиться к зависшей программе (без передергивания по RESET). Так можно узнать адрес цикла, где все висит для дальнейшего анализа. Предварительно неплохо бы получить листинг программы. День добрый всем ! Попробую освежить эту тему... У меня с кристаллом STM32F042 наблюдается весьма странная картина при запуске устройства: супервизора сброса на схеме нет, вход сброса только подтянут к VCC и есть кнопка сброса, между входом питания и МК есть LDO-стабилизатор 3.3В. Схему не я разрабатывал, я пишу только программу устройства, поэтому прошу ногами не пинать за схемотехнику.... При запуске с отладчика SWD или после нажатия на сброс - все работает как надо, при подключенном к блоку питания устройстве и включении БП штатным тумблером - тоже все запускается и нормально функционирует... Но, если я выдергиваю штекер включенного блока питания и снова вставляю, то устройство вроде бы и запускается, но не все работает нормально при этом - возникает затык программы при приеме данных с UART (через прерывание). Отследить этот момент в отладчике не могу, т.к. отладчик на лету не подхватывается (не совсем понял про блокировку SWD из предыдущего поста...), а при запусе не стартует вместе с устройством. Понимаю, что засада где-то кроется в формировании сброса внутри кристалла узлом POR и вероятно имеет место короткое время нарастания напряжения питания, поэтому повесив на вход сброса электролит 47мкФ (22мкФ оказалось мало), добился вобщем положительного результата, но неясности и ощущение костыля без гипса при поломанной ноге все равно остались ...
|
|
|
|
|
Sep 30 2016, 06:39
|

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

|
QUOTE (okela @ Sep 29 2016, 12:48)  Понимаю, что засада где-то кроется в формировании сброса внутри кристалла узлом POR и вероятно имеет место короткое время нарастания напряжения питания, поэтому повесив на вход сброса электролит 47мкФ (22мкФ оказалось мало), добился вобщем положительного результата Документация? Не, не читали. А в ней английским по белому написано, что время нарастания питания не критично, критично только время спадания (да и то к таким скоростям вы даже при желании не приблизитесь). Также там написано, что есть встроенный супервизор и указаны его пороги.
Что это вообще за привычка чуть что вешать на сброс огрмные емкости? Выкиньте свои 47 мкФ, процессор сам себе формирует импульс сброса нужной длительности, более того - он выдает его наружу через эту же ногу RESET Ну максимум там 0.1 мкФ может быть максимально близко к процессору если дорожка от кнопки до ножки длинная. Я бы и кнопку сброса тоже выкинул вместе с дорожкой до ноги процессора и конденсатором - на этапе отладки можно отладчиком сбрасывать, а в работающем устройстве зачем она нужна? Нужно искать причину сбоя, а не костыли городить. Для этого можно загнать процессор в состояние сбоя, подключить отладчик на всем скаку и посмотреть, куда его занесло. Может у вас BOOT0 в программе на ввод настроен и в воздухе болтается, набирает за счет наводок лог. единицу, при провале питания держит эту единицу за счет внутренней емкости вывода и при сбросе уносит вас во встроенный загрузчик. QUOTE (Forger @ Sep 30 2016, 01:26)  Это увеличивает время импульса сброса МК, пока питание не стабилизируется. Неправда. Он всего лишь давит импульсные помехи на входе. За питанием следит схема сброса по включению питания (POR).
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Sep 30 2016, 15:41
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896

|
Цитата(Сергей Борщ @ Sep 30 2016, 09:39)  Нужно искать причину сбоя, а не костыли городить. Для этого можно загнать процессор в состояние сбоя, подключить отладчик на всем скаку и посмотреть, куда его занесло. Может у вас BOOT0 в программе на ввод настроен и в воздухе болтается, набирает за счет наводок лог. единицу, при провале питания держит эту единицу за счет внутренней емкости вывода и при сбросе уносит вас во встроенный загрузчик. BOOT0 притянут к земле через резюк 10К. Пролейте, плиз, свет на то как подключить отладчик на всем скаку и посмотреть куда МК занесло. У меня никак не получается - отладчик не ругается, но все переменные недоступны.
|
|
|
|
Сообщений в этой теме
IEC Не стартует STM32 по RESET при включении Aug 2 2013, 06:55 Lmx2315 QUOTE (IEC @ Aug 2 2013, 10:55)
..повес... Aug 2 2013, 07:00 Genadi Zawidowski Напишите короткую программу получения импульсов на... Aug 2 2013, 07:14 Jury093 Цитата(IEC @ Aug 2 2013, 10:55) В каком н... Aug 2 2013, 08:29 sergk Увеличьте конденсатор в цепи сброса- не хватает вр... Aug 2 2013, 08:37 Сергей Борщ "Не стартует" - это внешнее проявление н... Aug 2 2013, 09:04 IEC Цепи питания перепаял, на всех ножках питания 0.1 ... Aug 2 2013, 09:28 Jury093 Цитата(IEC @ Aug 2 2013, 13:28) Цепи пита... Aug 2 2013, 10:57 adnega Цитата(IEC @ Aug 2 2013, 10:55) Но самое ... Aug 2 2013, 11:07 IEC Цитата(adnega @ Aug 2 2013, 13:07) У 407 ... Aug 2 2013, 11:51  Lmx2315 QUOTE (IEC @ Aug 2 2013, 15:51) А что так... Aug 2 2013, 11:53   adnega Цитата(Lmx2315 @ Aug 2 2013, 15:53) errat... Aug 2 2013, 12:00 pistoletov Как-то уалось решить проблему? У меня подобная сит... May 4 2015, 13:01 adnega Цитата(pistoletov @ May 4 2015, 16:01) Ка... May 4 2015, 13:57  pistoletov Цитата(adnega @ May 4 2015, 16:57) 2. Оши... May 4 2015, 16:56  scifi Цитата(adnega @ May 4 2015, 16:57) Вариан... May 4 2015, 18:45 pistoletov попробую другую прошивочку. Другой экземпляр нет в... May 4 2015, 15:27 Golikov A. без прерываний у вас не работает библиотечная функ... May 4 2015, 17:47 pistoletov Это речь о systick таймере? я не пользуюсь им. Но... May 4 2015, 18:33 adnega Цитата(pistoletov @ May 4 2015, 21:33) пр... May 5 2015, 06:41 x893 4 и 5 наиболее вероятны
3 вытекает из 4,5 May 4 2015, 21:29 shreck Упомяну такую вещь как скорость нарастания напряже... May 5 2015, 02:01 pistoletov Программа моя. Хочу признаться что я не имею больш... May 5 2015, 07:49 makshimik Здравствуйте, все! Кажется, у меня есть решени... Jan 1 2016, 06:02 Forger Цитата(okela @ Sep 29 2016, 12:48) Схему ... Sep 29 2016, 22:26  Forger Цитата(Сергей Борщ @ Sep 30 2016, 09:39) ... Sep 30 2016, 06:47   Сергей Борщ QUOTE (Forger @ Sep 30 2016, 09:47) Т.е. ... Sep 30 2016, 06:52    Forger Цитата(Сергей Борщ @ Sep 30 2016, 09:52) ... Sep 30 2016, 07:03     Сергей Борщ QUOTE (Forger @ Sep 30 2016, 10:03) Т.е. ... Sep 30 2016, 07:18      Forger Цитата(Сергей Борщ @ Sep 30 2016, 10:18) ... Sep 30 2016, 07:29       AVI-crak Не понимаю, зачем внешний супервизор - при наличии... Sep 30 2016, 09:14       Сергей Борщ QUOTE (Forger @ Sep 30 2016, 10:29) Согла... Sep 30 2016, 09:17   Сергей Борщ QUOTE (okela @ Sep 30 2016, 18:41) Пролей... Sep 30 2016, 18:43    okela Цитата(Сергей Борщ @ Sep 30 2016, 21:43) ... Sep 30 2016, 22:31 Alex11 Вы, похоже, ответ сами написали:
Цитатасупервизора... Sep 29 2016, 20:22 truppik Цитата(Сергей Борщ @ Sep 30 2016, 10:18) ... Sep 30 2016, 08:55 Forger Цитата(truppik @ Sep 30 2016, 11:55) Вопр... Sep 30 2016, 09:01  truppik Цитата(Forger @ Sep 30 2016, 12:01) Проши... Sep 30 2016, 11:25   Forger Цитата(truppik @ Sep 30 2016, 14:25) а пр... Sep 30 2016, 11:35    truppik Цитата(Forger @ Sep 30 2016, 14:35) Это о... Sep 30 2016, 11:45    AVI-crak Цитата(Forger @ Sep 30 2016, 18:35) Это о... Sep 30 2016, 12:09     truppik Цитата(AVI-crak @ Sep 30 2016, 15:09... Sep 30 2016, 14:41      AVI-crak Цитата(truppik @ Sep 30 2016, 21:41) а не... Sep 30 2016, 15:52 okela Цитата(Forger @ Sep 30 2016, 01:26) Стран... Sep 30 2016, 10:45 Obam Вот-вот, 2000мкФ эт перебор (по габаритам), а тант... Sep 30 2016, 10:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|