Форум myROBOT.ru » Лаборатория » Микроконтроллеры » коммутация между несколькими uart устройствами

Страниц (1): [1]
 

1. JohnAA - 23 Июля, 2012 - 16:55:05 - перейти к сообщению
Всем привет.

Есть микроконтроллер avr mega 32 с одним uart, как к нему можно подключить 2-3 устройства работающих по uart.

одновременно опрашивать устройства не требуется. контроллер должен обращаться к конкретному если есть необходимость.

к примеру если установить высокий уровень на ножке PA0 связь будет с 1 устройством
2. Гость - 23 Июля, 2012 - 17:37:21 - перейти к сообщению
TX от контроллера напрямик разветвить по преобразователям уровня, а RX от преобразователей уровня связать через диоды.
3. JohnAA - 23 Июля, 2012 - 18:40:27 - перейти к сообщению
какие преобразователи уровней использовать и как их можно включать и выключать.

устройства будут постоянно передавать данные например одно из устройст это GPS оно будет постоянно включено чтоб был хороший уровень сигнала со спутников но использоваться оно будет редко.
4. cjA - 23 Июля, 2012 - 22:49:12 - перейти к сообщению
поставить еще тиньку за 100р. пусть она и будет контроллером уарт-устройств. а выходы- да, диодами объединить.
(похожий вопрос уже был, красивее сделать кольцо, тогда для добавления или удаления устройства не нужно ничего перепаивать)
5. Роботов - 24 Июля, 2012 - 08:49:37 - перейти к сообщению
Можно использовать интерфейс RS485, он допускает многоточку.
6. Гость - 24 Июля, 2012 - 14:11:08 - перейти к сообщению
что-то меня проглючило: показалось, что вы хотите несколько ком-портовых устройств на один контроллер завязать (тогда нужны преобразователи уровня).

TX от контроллера напрямик разветвить по устройствам, а RX от устройств связать через диоды.
7. JohnAA - 25 Июля, 2012 - 15:52:09 - перейти к сообщению
Согласен, проблема в том что мне надо отключаться от устройств. т.к. в один момент времени несколько устройств могут передавать контроллеру данные. устройства промышленные и в них уже заложен алгоритм работы. к примеру GPS приемник, второе скорее всего будет bluetooth для отладки или разовой отдачи комманд с ПК будет использоваться редко.

У меня есть одна сумасшедшая идея не знаю еще пока не попробовал.
задействовать микросхему ттл логики с логическим умножением.

пример

CPU_AD0 |0
GPS_TX |0 ->на выходе всегда 0

CPU_AD0 |1
GPS_TX |0 ->на выходе сигнал TX

????????????
8. elmot - 25 Июля, 2012 - 16:25:30 - перейти к сообщению
JohnAA пишет:

У меня есть одна сумасшедшая идея не знаю еще пока не попробовал.
задействовать микросхему ттл логики с логическим умножением.

Отвратительно. Будет сплошной шум и ошибки передачи. UART - это протокол точка-точка, попытки все это засинхронизовать - это жуткие костыли.
9. cjA - 25 Июля, 2012 - 21:41:09 - перейти к сообщению
так как не понятно что мега32 принимает за логический уровень, да к томуже при том или ином питании, вот мы и позволяем себе выход на всех, (ну можно через кт315) , а входы через диоды.

первое- гпс, второе- блутуз...
Я , лично не очень уверен что выбранный процессор подходит. (боюсь что аналаги меги32 уже входят туда и туда.)
10. JohnAA - 26 Июля, 2012 - 08:54:10 - перейти к сообщению
в будущем мега32 возьмет на себя только аппаратные функции, вычислительные функции и остальная периферия будет подключена к at91sam7.

попробую на кт315
11. cjA - 26 Июля, 2012 - 11:55:05 - перейти к сообщению
JohnAA пишет:
аппаратные функции, вычислительные функции и остальная периферия
вот на разных языках говорим= для меня аппаратная и периверия- синонимы.
но не забыайте, ждем Подмигивающий