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

 
 
 
Reply to this topicStart new topic
> Изменение состояния GPIO (stm32l)
Den5
сообщение Jan 21 2016, 12:57
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 25-04-14
Пользователь №: 81 515



Здравствуйте форумчане!!! Подскажите пожалуйста, есть ли способ прошивки микроконтроллера STM32l без изменения состояния GPIO. Приходится отлаживать шкаф с реле, во время перепрошивки выводы оказываются в 3 состоянии и происходит дикое переключение релюшек. Работаю в IAR, отладчик ST link v2.
Go to the top of the page
 
+Quote Post
arhiv6
сообщение Jan 21 2016, 13:13
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 633
Регистрация: 21-05-10
Из: Томск
Пользователь №: 57 423



Вряд ли такое возможно при прошивке через SWD, но скорее всего можно написать свой бутлоадер, который будет обновлять прошивку во flash и одновременно поддерживать установленные состояния на GPIO. И уже c помощью этого бутлоадера обновлять прошивку.
Но правильнее будет добавить внешние подтягивающие резисторы.

Сообщение отредактировал arhiv6 - Jan 21 2016, 13:13


--------------------
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 21 2016, 18:36
Сообщение #3


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(arhiv6 @ Jan 21 2016, 17:13) *
Вряд ли такое возможно при прошивке через SWD, но скорее всего можно написать свой бутлоадер, который будет обновлять прошивку во flash и одновременно поддерживать установленные состояния на GPIO. И уже c помощью этого бутлоадера обновлять прошивку.
Но правильнее будет добавить внешние подтягивающие резисторы.


Или поставить триггеры-защелки на выход.
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Jan 27 2016, 04:23
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Мне как-то удаётся проектировать платы так, что бы процессор в моменты запуска / ресета не делал того, что не надо. Для этого нужно задаться вопросами:
1) Что будет в момент запуска, когда ничего не проинициализировано ?
2) Что будет когда процессор в ресете?
3) Что будет , если напряжение питания процессора 0В ?
И проектировать так, что бы на эти вопросы были однозначные ответы.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
misyachniy
сообщение Jan 31 2016, 13:23
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



В IAR есть настройка режимов сброса при программировании - может поможет.
Но при старте программы тоже нужно позаботиться о корректной инициализации.
Но подтягивающие резисторы лучшее решение.
Если реле много, можно коммутировать/притягивать ключ питания реле.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jan 31 2016, 13:48
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(misyachniy @ Jan 31 2016, 16:23) *
В IAR есть настройка режимов сброса при программировании - может поможет.
Но при старте программы тоже нужно позаботиться о корректной инициализации.
Но подтягивающие резисторы лучшее решение.
Если реле много, можно коммутировать/притягивать ключ питания реле.

Ну и до кучи, есть еще и энергонезависимые FRAM-триггера от Рамтрона.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
dimka76
сообщение Feb 7 2016, 10:32
Сообщение #7


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(MiklPolikov @ Jan 27 2016, 07:23) *
Мне как-то удаётся проектировать платы так, что бы процессор в моменты запуска / ресета не делал того, что не надо. Для этого нужно задаться вопросами:
1) Что будет в момент запуска, когда ничего не проинициализировано ?
2) Что будет когда процессор в ресете?
3) Что будет , если напряжение питания процессора 0В ?
И проектировать так, что бы на эти вопросы были однозначные ответы.



Это все при старте, когда все прогнозируемо.
А когда прошивка начинается во время работы нельзя спрогнозировать момент начала прошивки, а также в каком состоянии
окажутся релюшки.




--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Feb 7 2016, 15:00
Сообщение #8


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

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



Цитата(Den5 @ Jan 21 2016, 19:57) *
Приходится отлаживать шкаф с реле, во время перепрошивки выводы оказываются в 3 состоянии и происходит дикое переключение релюшек.


Пока не попали на многомиллионный счётчик - переделывайте печатку с мк.
Перепрошивка через варт с оптической развязкой, защита всего что смотрит во внешний мир, и так далее.
Все важные управляющие ноги должны работать через логику - прохождение сигнала через неё только при особой комбинации состояний на ногах мк. Такой - что не в состоянии возникнуть при переходных процессах мк, и в случае выхода его из строя.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Feb 7 2016, 16:34
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(dimka76 @ Feb 7 2016, 16:32) *
А когда прошивка начинается во время работы нельзя спрогнозировать момент начала прошивки, а также в каком состоянии
окажутся релюшки.

Может всё-таки у автора хватило ума написать собственный прошивальщик в составе рабочего ПО.
Тогда, перед собственно заливкой принятой прошивки во флешь программ, можно установить все сигналы управления в безопасное состояние.
А из исходного письма даже не понятно как именно осуществляется прошивка.
Go to the top of the page
 
+Quote Post

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

 


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


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