Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Изменение состояния GPIO (stm32l)
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Den5
Здравствуйте форумчане!!! Подскажите пожалуйста, есть ли способ прошивки микроконтроллера STM32l без изменения состояния GPIO. Приходится отлаживать шкаф с реле, во время перепрошивки выводы оказываются в 3 состоянии и происходит дикое переключение релюшек. Работаю в IAR, отладчик ST link v2.
arhiv6
Вряд ли такое возможно при прошивке через SWD, но скорее всего можно написать свой бутлоадер, который будет обновлять прошивку во flash и одновременно поддерживать установленные состояния на GPIO. И уже c помощью этого бутлоадера обновлять прошивку.
Но правильнее будет добавить внешние подтягивающие резисторы.
Tarbal
Цитата(arhiv6 @ Jan 21 2016, 17:13) *
Вряд ли такое возможно при прошивке через SWD, но скорее всего можно написать свой бутлоадер, который будет обновлять прошивку во flash и одновременно поддерживать установленные состояния на GPIO. И уже c помощью этого бутлоадера обновлять прошивку.
Но правильнее будет добавить внешние подтягивающие резисторы.


Или поставить триггеры-защелки на выход.
MiklPolikov
Мне как-то удаётся проектировать платы так, что бы процессор в моменты запуска / ресета не делал того, что не надо. Для этого нужно задаться вопросами:
1) Что будет в момент запуска, когда ничего не проинициализировано ?
2) Что будет когда процессор в ресете?
3) Что будет , если напряжение питания процессора 0В ?
И проектировать так, что бы на эти вопросы были однозначные ответы.
misyachniy
В IAR есть настройка режимов сброса при программировании - может поможет.
Но при старте программы тоже нужно позаботиться о корректной инициализации.
Но подтягивающие резисторы лучшее решение.
Если реле много, можно коммутировать/притягивать ключ питания реле.
iosifk
Цитата(misyachniy @ Jan 31 2016, 16:23) *
В IAR есть настройка режимов сброса при программировании - может поможет.
Но при старте программы тоже нужно позаботиться о корректной инициализации.
Но подтягивающие резисторы лучшее решение.
Если реле много, можно коммутировать/притягивать ключ питания реле.

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



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


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


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

Может всё-таки у автора хватило ума написать собственный прошивальщик в составе рабочего ПО.
Тогда, перед собственно заливкой принятой прошивки во флешь программ, можно установить все сигналы управления в безопасное состояние.
А из исходного письма даже не понятно как именно осуществляется прошивка.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.