|
tuxmsk
|
|
Программный сброс05.03.2015, 21:25. Показов 44092. Ответов 13
Метки нет (Все метки)
Доброго времени суток.
Проблема такая - не могу сбросить контроллер программно. Пытаюсь это сделать с помощью NVIC_SystemRiset(). Вызываю его в main-е, при этом main прерывается (возможно улетает в обработчик прерывания, но какой, пока не могу глянуть, отладчика под рукой нет, шью через UART), при этом состояние ног контроллера не меняется (светодиоды на них остаются в тех же состояниях) и прерывания по UART-у продолжают нормально обрабатываться (по ним и моргаю дальше светодиодами). Но если дрыгаю ногу NRST, происходит нормальный сброс. Камень - strm32f103. В общем хочу сделать полностью перепрошивку программно, при этом ногу BOOT0 я могу выставить в процессе работы, а NRST нет, вот и хочется программно сбросить его, чтобы загрузиться в бутлоадер. Пробовал еще с вачдога сбрасывать, тоже ничего не вышло. Программно делаются какие-то "другие" ресеты или я все же что-то не верно делаю? |
|
| 05.03.2015, 21:25 | |
|
Ответы с готовыми решениями:
13
Как реализовать программный сброс на STM32F4Discovery Сброс настроек тактирования сброс при совпадении ? |
|
0 / 0 / 0
Регистрация: 19.11.2014
Сообщений: 20
|
|
| 06.03.2015, 11:28 | |
|
Предполагаю, что NVIC_SystemRiset сбрасывает ядро, а не периферию. Поэтому ноги контроллера остаются в прежнем состоянии, UART также обрабатывается. Сброс вы делаете правильно. Также может быть, что после сброса до того момента, когда вы отслеживаете состояние ног и пытаетесь общаться с контроллером по UART, они успевают инициализироваться заново.
0
|
|
|
tuxmsk
|
|
| 06.03.2015, 11:51 | |
|
Ну заново он не инициалицируется точно, тк в этот момент нога BOOT0 точно подтянутся к питанию (внешней схемой), да и при инициализации другие светодиоды зажигаться должны, вот я и думал, что ресет должен был бы заново инициализацию камня запустить, и среагировать на ногу BOOT0 и стартануть со своего бутлоадера, а он не хотит. Видимо придется переделывать платку, чтобы с внешки еще и ногу ресет дергала.
А вообще странно, почему полноценный сброс программно не реализовали. |
|
|
0 / 0 / 0
Регистрация: 05.10.2007
Сообщений: 498
|
|
| 06.03.2015, 14:15 | |
|
Попробуйте покопать вочдог. В STM8 именно так и сделан программный сброс - устанавливаешь таймер вочдога в ноль, взводишь вочдог, и в бесконечный цикл. Возможно, в STM32 можно решить проблему аналогично.
0
|
|
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 553
|
|
| 06.03.2015, 15:52 | |
|
NVIC_SystemRiset отлично ресетит контроллер, пользовал на F103 и L151. Когда не знал про такую функцию в CMSIS, то использовал регистр SCB_OYRCR напрямую и тоже работало. Ресетит полностью все, периферию в том числе, как внешним ресетом, отличие только в установленном бите SFTRSTF в RCC_CSR регистре.
Как-то видел упоминание про нерабочий программный ресет, когда пин внешнего ресета был неверно разведен, может тут такая же ситуация?
0
|
|
|
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
|
|
| 06.03.2015, 16:06 | |
|
Аналогично - отлично используем NVIC_SystemRiset(), никаких проблем. Ресетить полностью - ноги в hi-z, тактирование отключен, в общем как при нажатии на кнопку ресет.
0
|
|
|
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 2
|
|
| 06.03.2015, 16:06 | |
|
У меня на 103 ресет отлично продит, переферия вся сбрасывается. Флаги я не проверяю, мне без разницы почему был сброс.
0
|
|
|
S.Mokir
|
||
| 07.03.2015, 01:30 | ||
|
||
|
tuxmsk
|
|
| 07.03.2015, 08:03 | |
|
Точно!
Почему-то сам не допер, что они могут быть взаимосвязаны, у меня нога NRST используется как нога включения контроллера, соответственно во время работы она транзистором подтягивалась к питанию. Скинул все с ноги, все отлично заработало, после ресета бутлоадер тоже загрузился как надо. Всем спасибо, тема закрыта. |
|
|
0 / 0 / 0
Регистрация: 27.01.2014
Сообщений: 287
|
|
| 07.03.2015, 15:15 | |
|
А зачем вообще вывод NRST для перепрошивки? Есть же программный сброс. Да и BOOT0 трогать не нужно, если у вас бутлоадер? Или вы используете вшитый в STM лоадер?
0
|
|
|
S.Mokir
|
|
| 07.03.2015, 16:20 | |
|
Для прошивки подключение NRST не требуется, контроллер действительно сбрасывается программно.
С другой стороны, программный сброс видимо происходит через физическую подтяжку NRST к земле. Т.е. если подтянуть его не выходит то и сброса не происходит. |
|
|
1 / 1 / 0
Регистрация: 14.02.2013
Сообщений: 408
|
|
| 07.03.2015, 17:33 | |
|
Видать документацию никто не читает.
0
|
|
|
tuxmsk
|
|
| 07.03.2015, 21:40 | |
|
Я же написал, что NRST у меня используется для включения/отключения контроллера (тк его ноги висят на общих шинах с другими устройствами, и иногда нужно, чтобы они были в high-z), а прошивка нужна через UART, который у меня выведен на USB, соответственно для прошивки я запитываю ногу BOOT0 и после этого сбрасываю его, чтобы загрузиться в его собственный бутлоадер для дальнейшей прошивки.
В доках я нигде не нашел, что NRST и программный сброс могут быть взаимосвязаны. |
|
|
1 / 1 / 0
Регистрация: 18.01.2012
Сообщений: 1,418
|
||
| 08.03.2015, 08:24 | ||
https://www.cyberforum.ru/savedimages/2015/03/08/4nkeqgukrzgmspydrnm.jpg
0
|
||
| 08.03.2015, 08:24 | |
|
Помогаю со студенческими работами здесь
14
Аппаратный сброс не работает правильно. МК уходит в сброс Atmega16 и внешний сброс ATmega8. Постоянный сброс?! Сброс задержки по прерыванию Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|