Перейти к содержанию
    

Одновременное использование портов STM32 под USART и под GPIO

Господа, в контроллере STM32F103RET6 все линии заняты. Хочу подключить USART для возможности обновления прошивки.

USART в этом контроллере 3, все ноги задействованные в USART включены в режим выхода (шлют данные в дисплей).

Хочу в начале каждой итерации программного цикла перенастраивать эти ноги на USART, слушать, не пришла ли команда на перепрошивку, а потом настраивать их обратно в GPIO чтобы рулить дисплеем.

 

А не сгорит ли в контроллере что либо, если нога будет настроена на вывод и на ней будет 0, а в это время кто-то подключит кабель USART, на TX которого будет единичка?

Вообще, есть у кого-нибудь практический опыт таких совмещений?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в любом случае ставить буфер с тремя состояниями.

 

PS не проще мультиплексировать стандартные линии ввода (без USART просто при таком раскладе можно и пропустить команду на прошивку)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще, есть у кого-нибудь практический опыт таких совмещений?

Да, мультиплексирование функций делают, если портов не хватает.

Сам делал мультиплексирование кнопок с шиной данных дисплея. Это вообще можно делать только с функциями, которые позволяют мультиплексную работу, т.е. порты работают по опросу/стробу, а не непрерывно. В паузах - Z состояние.

 

А не сгорит ли в контроллере что либо, если нога будет настроена на вывод и на ней будет 0, а в это время кто-то подключит кабель USART, на TX которого будет единичка?

Разделяйте выходы внешними резисторами 1-10К. Подберите по надежным цифровым уровням.

 

А вхождение в бутлоадер, так чаще всего это делают после подачи питания на устройство.

Первые 1-2 сек прибор ждет посылки по УАРТ, если ее нет, переключает порты на норм. работу и больше УАРТ не включает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разделяйте выходы внешними резисторами 1-10К. Подберите по надежным цифровым уровням.

Хм... то есть расклад примерно такой:

GPIO и дисплей общаются напрямую, USART (в моем случае это блютус-USART преобразователь) подключается через резисторы 10 кОм. Благодаря резисторам, когда на дисплее CS=0, ни единицы ни нули на TX не перебьют сигнал с контроллера, когда же CS=1, входы-выходы контроллера в Z состоянии и тогда общение идет уже по TX-RX. Правильно?

 

А вхождение в бутлоадер, так чаще всего это делают после подачи питания на устройство.

Первые 1-2 сек прибор ждет посылки по УАРТ, если ее нет, переключает порты на норм. работу и больше УАРТ не включает.

 

А что мешает в начале основного цикла переключаться в USART и слать сигнал "эй, прошивальщик, ты здесь?", не получив ответа идти дальше, а получив - заходить в бутлоадер? Для пользователя удобнее - запустил на телефоне приложение, увидел блютус устройства, нажал кнопку и не надо на самом устройстве РЕСЕТ жать.

Изменено пользователем murmur

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Благодаря резисторам, когда на дисплее CS=0, ни единицы ни нули на TX не перебьют сигнал с контроллера

Ну, не то что не перебьют, может мешать и будут, но по крайней мере ничего не сгорит

 

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

 

А что мешает в начале основного цикла переключаться в USART и слать сигнал "эй, прошивальщик, ты здесь?", не получив ответа идти дальше, а получив - заходить в бутлоадер?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...