murmur 0 24 апреля, 2016 Опубликовано 24 апреля, 2016 · Жалоба Господа, в контроллере STM32F103RET6 все линии заняты. Хочу подключить USART для возможности обновления прошивки. USART в этом контроллере 3, все ноги задействованные в USART включены в режим выхода (шлют данные в дисплей). Хочу в начале каждой итерации программного цикла перенастраивать эти ноги на USART, слушать, не пришла ли команда на перепрошивку, а потом настраивать их обратно в GPIO чтобы рулить дисплеем. А не сгорит ли в контроллере что либо, если нога будет настроена на вывод и на ней будет 0, а в это время кто-то подключит кабель USART, на TX которого будет единичка? Вообще, есть у кого-нибудь практический опыт таких совмещений? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
A. Fig Lee 0 24 апреля, 2016 Опубликовано 24 апреля, 2016 · Жалоба Очевидно от схемы зависит. Там же дрйавер 12 Вольт еще Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SlavaV 0 24 апреля, 2016 Опубликовано 24 апреля, 2016 · Жалоба в любом случае ставить буфер с тремя состояниями. PS не проще мультиплексировать стандартные линии ввода (без USART просто при таком раскладе можно и пропустить команду на прошивку) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 24 апреля, 2016 Опубликовано 24 апреля, 2016 · Жалоба Вообще, есть у кого-нибудь практический опыт таких совмещений? Да, мультиплексирование функций делают, если портов не хватает. Сам делал мультиплексирование кнопок с шиной данных дисплея. Это вообще можно делать только с функциями, которые позволяют мультиплексную работу, т.е. порты работают по опросу/стробу, а не непрерывно. В паузах - Z состояние. А не сгорит ли в контроллере что либо, если нога будет настроена на вывод и на ней будет 0, а в это время кто-то подключит кабель USART, на TX которого будет единичка? Разделяйте выходы внешними резисторами 1-10К. Подберите по надежным цифровым уровням. А вхождение в бутлоадер, так чаще всего это делают после подачи питания на устройство. Первые 1-2 сек прибор ждет посылки по УАРТ, если ее нет, переключает порты на норм. работу и больше УАРТ не включает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
murmur 0 24 апреля, 2016 Опубликовано 24 апреля, 2016 (изменено) · Жалоба Разделяйте выходы внешними резисторами 1-10К. Подберите по надежным цифровым уровням. Хм... то есть расклад примерно такой: GPIO и дисплей общаются напрямую, USART (в моем случае это блютус-USART преобразователь) подключается через резисторы 10 кОм. Благодаря резисторам, когда на дисплее CS=0, ни единицы ни нули на TX не перебьют сигнал с контроллера, когда же CS=1, входы-выходы контроллера в Z состоянии и тогда общение идет уже по TX-RX. Правильно? А вхождение в бутлоадер, так чаще всего это делают после подачи питания на устройство. Первые 1-2 сек прибор ждет посылки по УАРТ, если ее нет, переключает порты на норм. работу и больше УАРТ не включает. А что мешает в начале основного цикла переключаться в USART и слать сигнал "эй, прошивальщик, ты здесь?", не получив ответа идти дальше, а получив - заходить в бутлоадер? Для пользователя удобнее - запустил на телефоне приложение, увидел блютус устройства, нажал кнопку и не надо на самом устройстве РЕСЕТ жать. Изменено 24 апреля, 2016 пользователем murmur Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Baser 5 24 апреля, 2016 Опубликовано 24 апреля, 2016 · Жалоба Благодаря резисторам, когда на дисплее CS=0, ни единицы ни нули на TX не перебьют сигнал с контроллера Ну, не то что не перебьют, может мешать и будут, но по крайней мере ничего не сгорит з.ы. если у вас блютус-USART преобразователь все время подключен, то конечно нужно или отключать выход или делать чтобы он не мешал. А что мешает в начале основного цикла переключаться в USART и слать сигнал "эй, прошивальщик, ты здесь?", не получив ответа идти дальше, а получив - заходить в бутлоадер? Тут вопрос во времени. Если вы можете регулярно выделять в работе с дисплеем достаточную паузу для посылки запроса и получения ответа через блютус, то можно реализовать и так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться