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

 
 
 
Reply to this topicStart new topic
> Периодически не стартует STM32F407
asrael
сообщение Nov 20 2012, 10:56
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 13-03-07
Пользователь №: 26 125



Всем привет.
Вывод BOOT0 заземлен, но иногда контроллер не загружается (программа на внутренней памяти). После сброса при помощи программатора запускается нормально, также иногда часовая батарейка влияет (если ее вставить или вынуть). Что нужно проверить?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 20 2012, 13:17
Сообщение #2


Гуру
******

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



Подключитесь во время такого "нестарта" отладчиком на лету и посмотрите, куда занесло программу. Если это исключение - раскручивайте стеки смотрите, откуда попали. Если она где-то зациклилась - смотрите условия цикла.


--------------------
На любой вопрос даю любой ответ
"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
asrael
сообщение Nov 21 2012, 05:55
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 13-03-07
Пользователь №: 26 125



На питании стоит конденсатор 1000 мкФ, вероятно, медленно растет напряжение при запуске. Это может влиять?

Поставили на сброс подтяжку 100к на ноль, вроде теперь не сбоит...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 21 2012, 07:56
Сообщение #4


Гуру
******

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



QUOTE (asrael @ Nov 21 2012, 07:55) *
вероятно, медленно растет напряжение при запуске. Это может влиять?
А самому в документацию заглянуть?
Прикрепленное изображение


QUOTE (asrael @ Nov 21 2012, 07:55) *
Поставили на сброс подтяжку 100к на ноль, вроде теперь не сбоит...
А ведь он вообще-то сбрасывается нулем на этой ноге. т.е. вы просто подвели уровень на этой ноге ближе к точке сброса. Вот если бы он у вас висел в воздухе и помогла его подтяжка к питанию - то можно было бы грешить на проводимость остатков флюса.


--------------------
На любой вопрос даю любой ответ
"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
asrael
сообщение Nov 22 2012, 08:31
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 13-03-07
Пользователь №: 26 125



Я поступил проще - убрал этот кондер и посмотрел.
Что касается подтяжки, объяснить не могу, но результат на 100% реальный. Видимо, сохраняется какой-то потенциал на ресете или еще где, и контроллер "недосбрасывается", а поставив 100к мы этот потенциал сливаем. Если кто найдет правильное объяснение, буду благодарен. К такому решению пришли потому, что после долгой работы и кратковременного снятия питания контроллер не стартовал, а если выключить надолго - стартовал без нареканий.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 22 2012, 08:36
Сообщение #6


Гуру
******

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



QUOTE (asrael @ Nov 22 2012, 10:31) *
после долгой работы и кратковременного снятия питания контроллер не стартовал, а если выключить надолго - стартовал без нареканий.
А у вас случаем нет конденсатора с ноги NRST на землю? Вообще-то он там не нужен, но если есть - то для его разряда при выключении питания нужен диод с этой ноги на питание (катодом к питанию).


--------------------
На любой вопрос даю любой ответ
"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
_Pasha
сообщение Nov 22 2012, 08:45
Сообщение #7


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Сергей Борщ @ Nov 22 2012, 11:36) *
А у вас случаем нет конденсатора с ноги NRST на землю? Вообще-то он там не нужен

А борьба с помехами?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Nov 22 2012, 08:49
Сообщение #8


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(asrael @ Nov 22 2012, 10:31) *
что после долгой работы и кратковременного снятия питания контроллер не стартовал, а если выключить надолго - стартовал без нареканий.


Известная тема.
Может быть связано с некорректной инициализацией подсистемы тактирования или неправильными номиналами компонентов.
Влияние всякого тюнинга в том числе подтяжек может оказываться косвенное через возросший уровень наводок на PLL.

В качестве эксперимента попробуйте подождать часок. Вдруг запустится wink.gif. Тогда дело точно в системе тактирования.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 22 2012, 12:16
Сообщение #9


Гуру
******

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



QUOTE (_Pasha @ Nov 22 2012, 10:45) *
А борьба с помехами?
Если на этой ноге что-то подключено длинным проводом - то возможно. А если эта нога висит в воздухе - то сколько там на нее наведется с внутренней подтяжкой 50К?


--------------------
На любой вопрос даю любой ответ
"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

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

 


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


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