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

 
 
> Не стартует STM32 по RESET при включении
IEC
сообщение Aug 2 2013, 06:55
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Здравствуйте все!

Посмотрел на форуме все, что касается RESET для STM32.
Внятного решения не нашел.

Посоветуйте пожалуйста!
Плата сделана на STM32F407VGT.

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

2. При нажатой кнопке RESET включаем питание, потом отпускаем,фронт формируется, но процессор не стартует.

3. Дополнительно еще поставил супервизор с задержкой 350 мс, фронт RESET немного более крутой,
но процессор все равно не стартует при включении.

Но самое печальное что из 20 экземпляров плат всего 2 так себя ведут.

На одной из плат поменял процессор, но ничего не поменялось.
Все обвязки для RESET и BOOT0 перепаял.

В каком направлении копать?

Спасибо.
Go to the top of the page
 
+Quote Post
4 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 50)
Lmx2315
сообщение Aug 2 2013, 07:00
Сообщение #2


отэц
*****

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



QUOTE (IEC @ Aug 2 2013, 10:55) *


..повесьте дополнительные конденсаторы на ножки питания контролера, может поможет.


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Aug 2 2013, 07:14
Сообщение #3


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Напишите короткую программу получения импульсов на ножке процессора и поместите её в обработчик вектора RESET - до всех инициализаций. И посмотрите, виснут ли Ваши два экземпляра.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Aug 2 2013, 08:29
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(IEC @ Aug 2 2013, 10:55) *
В каком направлении копать?
Спасибо.

остался кварц и его цепи - перебросьте с заведомо рабочей платы
ну и возможно "грязное" питание
Go to the top of the page
 
+Quote Post
sergk
сообщение Aug 2 2013, 08:37
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 54
Регистрация: 14-10-05
Из: тверь
Пользователь №: 9 650



Увеличьте конденсатор в цепи сброса- не хватает времени. Было тоже самое только на LPC.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 2 2013, 09:04
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 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
IEC
сообщение Aug 2 2013, 09:28
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Цепи питания перепаял, на всех ножках питания 0.1 мкф + 3 тантала на кристалл, емкость которых увеличил.

Кварц и конденсаторы менял.
Супервизор дает сброс 350 мс, куда больше.
Go to the top of the page
 
+Quote Post
Jury093
сообщение Aug 2 2013, 10:57
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата(IEC @ Aug 2 2013, 13:28) *
Цепи питания перепаял, на всех ножках питания 0.1 мкф + 3 тантала на кристалл, емкость которых увеличил.
Кварц и конденсаторы менял.
Супервизор дает сброс 350 мс, куда больше.

ну.. чудес не бывает.. пойму, если одна плата упрямится в единственном экземпляре..
когда 2 из 20, то тут либо схемотехнический просчет или монтажники накосячили, третьего не будет..

по совету выше, залейте контрольный бинарник, по которому можно судить об успешном старте + визуальный осмотр под микроскопом и измерение всех номиналов в окружение stm32 отвечающих за работу + контроль уровней в ключевых точках..
Go to the top of the page
 
+Quote Post
adnega
сообщение Aug 2 2013, 11:07
Сообщение #9


Гуру
******

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



Цитата(IEC @ Aug 2 2013, 10:55) *
Но самое печальное что из 20 экземпляров плат всего 2 так себя ведут.

На одной из плат поменял процессор, но ничего не поменялось.
Все обвязки для RESET и BOOT0 перепаял.

В каком направлении копать?

У 407 как минимум две ревизии "A" и "Z".
Было такое с ревизией "А". Лечение описано в ES.
Go to the top of the page
 
+Quote Post
IEC
сообщение Aug 2 2013, 11:51
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Цитата(adnega @ Aug 2 2013, 13:07) *
У 407 как минимум две ревизии "A" и "Z".
Было такое с ревизией "А". Лечение описано в ES.


А что такое ES?
Go to the top of the page
 
+Quote Post
Lmx2315
сообщение Aug 2 2013, 11:53
Сообщение #11


отэц
*****

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



QUOTE (IEC @ Aug 2 2013, 15:51) *
А что такое ES?

errata sheets?


--------------------
b4edbc0f854dda469460aa1aa a5ba2bd36cbe9d4bc8f92179f 8f3fec5d9da7f0
SHA-256
Go to the top of the page
 
+Quote Post
adnega
сообщение Aug 2 2013, 12:00
Сообщение #12


Гуру
******

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



Цитата(Lmx2315 @ Aug 2 2013, 15:53) *
errata sheets?

Так точно!
Уже не помню и от дома сейчас далеко, но может быть, что в ревизии Z вывод PDR (вроде так называется 99 или 100 нога) нужно подключить к GND, а в ревизии A к VCC. Или все наоборот.
Go to the top of the page
 
+Quote Post
pistoletov
сообщение May 4 2015, 13:01
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 17-02-12
Из: Донецк
Пользователь №: 70 323



Как-то уалось решить проблему? У меня подобная ситуация с STM32F100C8T6- стартует после нажатия кнопки ресет, так же нормально стартует при заливке прошивки (с включенной опцией RESET в свойствах ST-LINK). Но при подаче питания не стартует.
Go to the top of the page
 
+Quote Post
adnega
сообщение May 4 2015, 13:57
Сообщение #14


Гуру
******

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



Цитата(pistoletov @ May 4 2015, 16:01) *
Как-то уалось решить проблему? У меня подобная ситуация с STM32F100C8T6- стартует после нажатия кнопки ресет, так же нормально стартует при заливке прошивки (с включенной опцией RESET в свойствах ST-LINK). Но при подаче питания не стартует.

Мы STM32F100C8T6 используем ведрами - ничего подобного в железе замечено не было.
Варианта два:
1. Неисправен МК (брак и т.п.);
2. Ошибка в прошивке (зависает в цикле ожидания чего-либо, HardFault или другое исключение).

Попробуйте другой экземпляр МК и/или простейший тестовый софт (мигание светодиодом с задержкой в виде цикла).
Go to the top of the page
 
+Quote Post
pistoletov
сообщение May 4 2015, 15:27
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 17-02-12
Из: Донецк
Пользователь №: 70 323



попробую другую прошивочку. Другой экземпляр нет возможности попробовать-(. Возможно моя тестовая платка с али с неправильными цепями сброса? Возможно такое?
Дебаг
P.S. попробовал другую прошивочку залить - все отлично мигает светодиодик мой при подаче питания. Значит проблема в моей программе. Как бы отследить эту ошибку? Дебагер начинает после ресета работать и все работает прекрасно..а вот подачу питания как отследить...

Сообщение отредактировал pistoletov - May 4 2015, 16:45
Go to the top of the page
 
+Quote Post
pistoletov
сообщение May 4 2015, 16:56
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 17-02-12
Из: Донецк
Пользователь №: 70 323



Цитата(adnega @ May 4 2015, 16:57) *
2. Ошибка в прошивке (зависает в цикле ожидания чего-либо, HardFault или другое исключение).


получается стартап разный после подачи питания и после reset? Я пользуюсь библиотеками CMSIS которые к кейлу прилагаются. и как-то не могу файл найти stm32f10x_it - в нем прерывания все. Может с этим связано? У меня проект пока без прерываний.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение May 4 2015, 17:47
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



без прерываний у вас не работает библиотечная функция которая крутит миллисекундный таймер, и как следствие у вас все таймауты что в библиотечной инициализации на этом таймере - находятся в вечном простое, там куча while с выходом по таймауту или удаче, любая неудача и у вас висяк...
Go to the top of the page
 
+Quote Post
pistoletov
сообщение May 4 2015, 18:33
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 17-02-12
Из: Донецк
Пользователь №: 70 323



Это речь о systick таймере? я не пользуюсь им. Но именно при нажатии ресет все идеально а при подаче питания не стартует и как отладить такое, куда улетает программа ума не приложу.
Go to the top of the page
 
+Quote Post
scifi
сообщение May 4 2015, 18:45
Сообщение #19


Гуру
******

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



Цитата(adnega @ May 4 2015, 16:57) *
Варианта два:
1. Неисправен МК (брак и т.п.);
2. Ошибка в прошивке (зависает в цикле ожидания чего-либо, HardFault или другое исключение).

Так уж и два? Я могу ещё парочку подкинуть:
3. Косяки в схеме (плавающая ножка BOOT0, к примеру)
4. Умопомрачение (гляжу в книгу - вижу фигу)
5. И т.д. и т.п.
Go to the top of the page
 
+Quote Post
x893
сообщение May 4 2015, 21:29
Сообщение #20


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

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



4 и 5 наиболее вероятны
3 вытекает из 4,5
Go to the top of the page
 
+Quote Post
shreck
сообщение May 5 2015, 02:01
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



Упомяну такую вещь как скорость нарастания напряжения питания. Для некоторых контроллеров (stm32f103 например) - по барабану, запустится всегда. А для других контроллеров (stm32f207) этот параметр требуется выдерживать более жестко. Была у меня платка от терраэлектроники на этом проце, которая, из-за неудачного стабилизатора, запускалась через раз. При этом использовался старый линейный лабораторный источник питания. А вот если использовал хороший импульсный, то плата стартовала всегда.
Go to the top of the page
 
+Quote Post
adnega
сообщение May 5 2015, 06:41
Сообщение #22


Гуру
******

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



Цитата(pistoletov @ May 4 2015, 21:33) *
при нажатии ресет все идеально а при подаче питания не стартует и как отладить такое, куда улетает программа ума не приложу.

Зависающая программа ваша? Исходники есть? В исходниках функции SWD не заблокированы?
Если SWD не заблокирован, то можно на лету подключиться к зависшей программе (без передергивания по RESET).
Так можно узнать адрес цикла, где все висит для дальнейшего анализа. Предварительно неплохо бы получить листинг программы.
Go to the top of the page
 
+Quote Post
pistoletov
сообщение May 5 2015, 07:49
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 17-02-12
Из: Донецк
Пользователь №: 70 323



Программа моя. Хочу признаться что я не имею большого опыта в программировании STM32.
Листинг прикладываю. Я в общем-то пользовался стандартной инициализацией от Кейла. Включил только тактирование моей периферии и немного кода работы c uart - i2c - spi.
возникла идея откуда может быть проблема - и для микросекундных задержек использую dwt по этой статье https://kbiva.wordpress.com/2013/03/25/micr...tion-for-stm32/.
Возможно там собака порылась

Сообщение отредактировал pistoletov - May 5 2015, 08:31
Прикрепленные файлы
Прикрепленный файл  oled.rar ( 117.63 килобайт ) Кол-во скачиваний: 14
 
Go to the top of the page
 
+Quote Post
makshimik
сообщение Jan 1 2016, 06:02
Сообщение #24





Группа: Новичок
Сообщений: 1
Регистрация: 1-01-16
Пользователь №: 89 902



Здравствуйте, все! Кажется, у меня есть решение этой проблемы. Битый час возюкался с ней. Все перепробовал. Я не вполне уверен, что так везде, но у меня стал запускаться после подачи питания тогда, когда GPIO стали инициализироваться раньше всей остальной периферии. Как только в main переставляю инициализацию GPIO на первое место -- сразу все работает, возвращаю обратно -- не работает. Если не лень -- попробуйте кто-нибудь еще, отпишитесь. Тестил на камне STM32F100C8T6.
Go to the top of the page
 
+Quote Post
okela
сообщение Sep 29 2016, 09:48
Сообщение #25


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

Группа: Свой
Сообщений: 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мкФ оказалось мало), добился вобщем положительного результата, но неясности и ощущение костыля без гипса при поломанной ноге все равно остались ...
Go to the top of the page
 
+Quote Post
Alex11
сообщение Sep 29 2016, 20:22
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Вы, похоже, ответ сами написали:
Цитата
супервизора сброса на схеме нет

У Вас идет короткая просадка напряжения питания, но не до нуля, половина кристалла встает в раскоряку, а reset не вырабатывается, или очень короткий. Так что правильный ответ - супервизор. В крайнем случае, добавьте еще диод на reset, чтобы конденсатор быстро разряжался.
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 29 2016, 22:26
Сообщение #27


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(okela @ Sep 29 2016, 12:48) *
Схему не я разрабатывал, я пишу только программу устройства, поэтому прошу ногами не пинать за схемотехнику....

Странное там у вас распределение обязанностей - программист ищет косяки схемотехника, обращаясь на соотв. форуме, а что же делает схемотехник? На форумах программистов ищет косяки (если есть) в вашем софте? sm.gif


Прикрепленное изображение


В простых устройствах обычно достаточно на вывод NRST повесить лишь один конденсатор 0.01мк (к GND разумеется), внешний резистор там не нужен (он есть внутри МК).
Это увеличивает время импульса сброса МК, пока питание не стабилизируется.
А в ответственных девайсах, как тут уже заметили, нужен внешний супервизор, особенно, если питание Vdd нарастает слишком медленно.

Так что зовите сюда вашего схемотехника, пусть он решает эту проблему 8)


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 30 2016, 06:39
Сообщение #28


Гуру
******

Группа: Модераторы
Сообщений: 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)
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 30 2016, 06:47
Сообщение #29


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Сергей Борщ @ Sep 30 2016, 09:39) *
Неправда. Он всего лишь давит импульсные помехи на входе. За питанием следит схема сброса по включению питания (POR).

Т.е. внутренняя схема входа сброса нарисована неточно (условно) и поэтому емкость внешнего кондера не влияет время на нахождение мк в сбросе?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 30 2016, 06:52
Сообщение #30


Гуру
******

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



QUOTE (Forger @ Sep 30 2016, 09:47) *
Т.е. внутренняя схема входа сброса нарисована неточно (условно) и поэтому емкость внешнего кондера не влияет время на нахождение мк в сбросе?
Влияет. Но это никак не связано с "питание не стабилизируется".


--------------------
На любой вопрос даю любой ответ
"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
Forger
сообщение Sep 30 2016, 07:03
Сообщение #31


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Сергей Борщ @ Sep 30 2016, 09:52) *
Влияет. Но это никак не связано с "питание не стабилизируется".
Т.е. принудительно удержание мк в сбросе вообще не помогает при слишком медленном нарастании напряжения питания?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 30 2016, 07:18
Сообщение #32


Гуру
******

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



QUOTE (Forger @ Sep 30 2016, 10:03) *
Т.е. принудительно удержание мк в сбросе вообще не помогает при слишком медленном нарастании напряжения питания?
Посмотрите на картинку в моем сообщении. Для этих МК скорость нарастания питания не критична. Поэтому "удерживать МК в сбросе" не нужно. Совсем.


--------------------
На любой вопрос даю любой ответ
"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
Forger
сообщение Sep 30 2016, 07:29
Сообщение #33


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(Сергей Борщ @ Sep 30 2016, 10:18) *
Посмотрите на картинку в моем сообщении. Для этих МК скорость нарастания питания не критична. Поэтому "удерживать МК в сбросе" не нужно. Совсем.

Убедили ))

Но итог от этого не меняется: или небольшой конденсатор (я ставлю 0.01u) для защиты от помех по цепи сброса или нормальный внешний супервизор (возможно даже со встроенным вочдогом).
Согласны?


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
truppik
сообщение Sep 30 2016, 08:55
Сообщение #34


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

Группа: Свой
Сообщений: 81
Регистрация: 24-07-14
Из: NA
Пользователь №: 82 352



Цитата(Сергей Борщ @ Sep 30 2016, 10:18) *
Посмотрите на картинку в моем сообщении. Для этих МК скорость нарастания питания не критична. Поэтому "удерживать МК в сбросе" не нужно. Совсем.

Вопрос такой по теме - а при медленном нарастании питания, не сбивается ли внутренний PLL, если он был сразу запущен при старте прошивки ?


--------------------
never know best.
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 30 2016, 09:01
Сообщение #35


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(truppik @ Sep 30 2016, 11:55) *
Вопрос такой по теме - а при медленном нарастании питания, не сбивается ли внутренний PLL, если он был сразу запущен при старте прошивки ?

Прошивка же не запустится, пока питание не дойдет до безопасной нормы (POR не даст).


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Sep 30 2016, 09:14
Сообщение #36


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

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



Не понимаю, зачем внешний супервизор - при наличии собственного в мк, более крутого.
При работе мк от солнечной батарейки - начинаются "весёлости", которые простым способом в лоб не решить. Я юзаю PVD на нарастание а позже на спад - два разных уровня.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 30 2016, 09:17
Сообщение #37


Гуру
******

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



QUOTE (Forger @ Sep 30 2016, 10:29) *
Согласны?
Не вижу необходимости во внешнем супервизоре. На небольшой конденсатор согласен sm.gif хотя сам просто никуда не подключаю ногу сброса. Ну не наведется на голую двухмиллиметровую ногу такая помеха, чтобы перетягивать 40 кОм встроенной подтяжки в течении более 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
okela
сообщение Sep 30 2016, 10:45
Сообщение #38


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

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Цитата(Forger @ Sep 30 2016, 01:26) *
Странное там у вас распределение обязанностей - программист ищет косяки схемотехника, обращаясь на соотв. форуме, а что же делает схемотехник? На форумах программистов ищет косяки (если есть) в вашем софте? sm.gif

В простых устройствах обычно достаточно на вывод NRST повесить лишь один конденсатор 0.01мк (к GND разумеется), внешний резистор там не нужен (он есть внутри МК).
Это увеличивает время импульса сброса МК, пока питание не стабилизируется.
А в ответственных девайсах, как тут уже заметили, нужен внешний супервизор, особенно, если питание Vdd нарастает слишком медленно.

Так что зовите сюда вашего схемотехника, пусть он решает эту проблему 8)


Да я и сам вобщем-то и схемотехник и программист и паяльником пользоваться умею, но данное конкретное устройство попало ко мне уже готовым.

Почитал все ответы, но прояснения пока так и не наступило...
Дополнительно к описанной ситуации есть еще такое наблюдение: если на вход питания устройства повесить большую емкость (2000 мкФ) и не вешать кондер на сброс, то в этом случае тоже все работает нормально.
Go to the top of the page
 
+Quote Post
Obam
сообщение Sep 30 2016, 10:54
Сообщение #39


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Вот-вот, 2000мкФ эт перебор (по габаритам), а танталовых пару по 33..68 мкФ по питанию всегда полезно.


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
truppik
сообщение Sep 30 2016, 11:25
Сообщение #40


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

Группа: Свой
Сообщений: 81
Регистрация: 24-07-14
Из: NA
Пользователь №: 82 352



Цитата(Forger @ Sep 30 2016, 12:01) *
Прошивка же не запустится, пока питание не дойдет до безопасной нормы (POR не даст).

а при достижении к примеру +3В после запуска прошивки медленное или быстрое плавание питания в пределах нормы (+3...+3.6В) уже не помешают работе PLL ?

Цитата(Obam @ Sep 30 2016, 13:54) *
Вот-вот, 2000мкФ эт перебор (по габаритам), а танталовых пару по 33..68 мкФ по питанию всегда полезно.

я как для наших АРМов от Миландра, так и от STM серий F0 F1 всегда вешал керамику 10мкф (или тантал до 22мкф) + 0.1мкф керамику на каждый вывод питания (разве что батарейное питание пропускал иногда, если места мало) и 10к+0.1мкф на reset и никогда проблем не возникало, питал от линейного стабилизатора всегда, аналог 1117 серии...


--------------------
never know best.
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 30 2016, 11:35
Сообщение #41


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(truppik @ Sep 30 2016, 14:25) *
а при достижении к примеру +3В после запуска прошивки медленное или быстрое плавание питания в пределах нормы (+3...+3.6В) уже не помешают работе PLL ?

Это от чего нужно питать камень, чтобы так плавало питание? От батарейки?



--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
truppik
сообщение Sep 30 2016, 11:45
Сообщение #42


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

Группа: Свой
Сообщений: 81
Регистрация: 24-07-14
Из: NA
Пользователь №: 82 352



Цитата(Forger @ Sep 30 2016, 14:35) *
Это от чего нужно питать камень, чтобы так плавало питание? От батарейки?

Это я спрашиваю чисто из теоретических соображений, если будет просадка питания (хоть и в пределах допустимого питания) - то PLL же слетит ? Так то у меня пока проблем таких не возникало, всё что делал было не для батарейного питания (не портативные устройства), но почитав тему - возник такой вот вопрос. Вдруг кто сталкивался уже..

К примеру в наших 1986ВЕ92 есть такая проблема:
Прикрепленное изображение

Прикрепленное изображение

это так частота плавает при изменении питания в работе..
Более подробно описано ТУТ (ERRATA) страницы 24-25. Такая же проблема есть и у STM ?

Сообщение отредактировал truppik - Sep 30 2016, 11:52


--------------------
never know best.
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Sep 30 2016, 12:09
Сообщение #43


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

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



Цитата(Forger @ Sep 30 2016, 18:35) *
Это от чего нужно питать камень, чтобы так плавало питание? От батарейки?


От любого автономного источника питания, наличие плохого контакта не должно гробить прошивку, как и работу самого алгоритма чипа.
Входное напряжение стабилизатора, через делитель на лапу PVD, её входной ток в пределах 80мка в сторону от VDD, (не в землю!!!). Можно сказать что между VDD и лапой PVD - измерительный мост.

Последовательность:
сработал внутренний ресет - старт работы ядра чипа, по факту напряжение 1,8в.
Активируем прерывание по нарастанию PVD до напряжения нормы для внешнего стабилизатора, особо торопящиеся могут запустить инстал части периферии, потом уход в ожидание прерывания.
В прибывании PVD переключаем вектор обработки на спад, и установка нижней границы безопасного уровня напряжения внешнего стаба, перезапуск прерывания.
После ожидания внешнего прерывания - код автоматом стартует при выходе из PVD. Можно безопасно выполнять программу.
При снижении напряжения внешнего стаба ниже порогового уровня - снова срабатывает PVD. Дальше уже всё зависит от требований надёжности алгоритма. Запасённой энергии во ВНЕШНЕЙ ёмкости на входе внешнего стабилизатора - хватит на 10-500мс. При этом напряжение питания самого чипа будет стабильным. Времени хватит на завершение записи сектора флешпамяти например, или на аварийное гашение внешней периферии с сохранением всех требуемых таймингов.

В любом случае после цикла обработки аврала - необходимо произвести программный сброс, либо программное выключение (с бесконечным циклом). Например для векторного движка можно применить только программное выключение, потому как механика ещё вращается. А для системы сбора инфы - достаточно программного сброса.

И ещё, вешать большие ёмкости на ноги чипа - нет смысла, но на входное питание стаба - да.
Go to the top of the page
 
+Quote Post
truppik
сообщение Sep 30 2016, 14:41
Сообщение #44


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

Группа: Свой
Сообщений: 81
Регистрация: 24-07-14
Из: NA
Пользователь №: 82 352



Цитата(AVI-crak @ Sep 30 2016, 15:09) *
Последовательность:
сработал внутренний ресет - старт работы ядра чипа, по факту напряжение 1,8в.
Активируем прерывание по нарастанию PVD до напряжения нормы для внешнего стабилизатора, особо торопящиеся могут запустить инстал части периферии, потом уход в ожидание прерывания.
В прибывании PVD переключаем вектор обработки на спад, и установка нижней границы безопасного уровня напряжения внешнего стаба, перезапуск прерывания.
После ожидания внешнего прерывания - код автоматом стартует при выходе из PVD. Можно безопасно выполнять программу.
При снижении напряжения внешнего стаба ниже порогового уровня - снова срабатывает PVD. Дальше уже всё зависит от требований надёжности алгоритма. Запасённой энергии во ВНЕШНЕЙ ёмкости на входе внешнего стабилизатора - хватит на 10-500мс. При этом напряжение питания самого чипа будет стабильным. Времени хватит на завершение записи сектора флешпамяти например, или на аварийное гашение внешней периферии с сохранением всех требуемых таймингов.

В любом случае после цикла обработки аврала - необходимо произвести программный сброс, либо программное выключение (с бесконечным циклом). Например для векторного движка можно применить только программное выключение, потому как механика ещё вращается. А для системы сбора инфы - достаточно программного сброса.

И ещё, вешать большие ёмкости на ноги чипа - нет смысла, но на входное питание стаба - да.


а не проще ли для всего этого ставить просто внешний детектор? к примеру MAX811


--------------------
never know best.
Go to the top of the page
 
+Quote Post
okela
сообщение Sep 30 2016, 15:41
Сообщение #45


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

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Цитата(Сергей Борщ @ Sep 30 2016, 09:39) *
Нужно искать причину сбоя, а не костыли городить. Для этого можно загнать процессор в состояние сбоя, подключить отладчик на всем скаку и посмотреть, куда его занесло. Может у вас BOOT0 в программе на ввод настроен и в воздухе болтается, набирает за счет наводок лог. единицу, при провале питания держит эту единицу за счет внутренней емкости вывода и при сбросе уносит вас во встроенный загрузчик.


BOOT0 притянут к земле через резюк 10К.
Пролейте, плиз, свет на то как подключить отладчик на всем скаку и посмотреть куда МК занесло.
У меня никак не получается - отладчик не ругается, но все переменные недоступны.
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 30 2016, 15:46
Сообщение #46


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(okela @ Sep 30 2016, 18:41) *
У меня никак не получается - отладчик не ругается, но все переменные недоступны.

Попробуйте такую штуку: https://www.segger.com/systemview.html


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Sep 30 2016, 15:52
Сообщение #47


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

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



Цитата(truppik @ Sep 30 2016, 21:41) *
а не проще ли для всего этого ставить просто внешний детектор? к примеру MAX811


Этому супервизору мозгов хватит только на ресет чипа, с чем кстати прекрасно справляется аппаратный ресет преференции ядра самого чипа.
От сбоя отложенной записи флеша - не спасёт, от защиты BKRAM - то-же, ну и есно вращающийся движок надолго останется на выбеге, и последнее - стоимость выше ста рублей.

Задействовать PVD - два smd резистора!!!
Go to the top of the page
 
+Quote Post
okela
сообщение Sep 30 2016, 16:26
Сообщение #48


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

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Цитата(Forger @ Sep 30 2016, 18:46) *
Попробуйте такую штуку: https://www.segger.com/systemview.html


Для этого дела нужен J-LINK вроде бы, у меня его нет под руками.
Go to the top of the page
 
+Quote Post
Forger
сообщение Sep 30 2016, 17:05
Сообщение #49


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

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(okela @ Sep 30 2016, 19:26) *
Для этого дела нужен J-LINK вроде бы, у меня его нет под руками.
Нынче без этой штуки, как без рук!
Должна быть хотя бы парочка в столе у каждого ARM-программера sm.gif


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 30 2016, 18:43
Сообщение #50


Гуру
******

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



QUOTE (okela @ Sep 30 2016, 18:41) *
Пролейте, плиз, свет на то как подключить отладчик на всем скаку и посмотреть куда МК занесло.
Пролейте и вы свет но то, какой у вас отладчик и какая среда разработки.


--------------------
На любой вопрос даю любой ответ
"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
okela
сообщение Sep 30 2016, 22:31
Сообщение #51


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

Группа: Свой
Сообщений: 165
Регистрация: 11-01-05
Из: Украина, г. Одесса
Пользователь №: 1 896



Цитата(Сергей Борщ @ Sep 30 2016, 21:43) *
Пролейте и вы свет но то, какой у вас отладчик и какая среда разработки.


Юзаю IAR+ST-LINK v2
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:14
Рейтинг@Mail.ru


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