Здраствуйте!
Возникла необходимость реализовать на AVR обмен данными по 3 портах UART одновременно (правда, два канала будут только на прием, а один - только на вывод). Подскажите, возможно ли такое реализовать вообще и какие будут сложности и рекомендации?
P.S. Скорость передачи данных 31,25 кбод
DrHlus писал(а):Возникла необходимость реализовать на AVR обмен данными по 3 портах UART одновременно
Насчет 3 UARTов не помню, по 2 вроде есть контроллеры, в любом случае недостающие можно реализовать аппаратно-программно (через SPI) или чисто программно.
DrHlus писал(а): (правда, два канала будут только на прием, а один - только на вывод)
Единственная общая вещь у приемника и передатчика UART это скорость и формат данных, буфер и векторы прерывания у них свои, так что если один будет на прием, а другой на передачу, то для этого можно задействовать 1 UART, т.е. всего нужно 2 UARTа.
Я Вас не до конца понял. Допустим, каналы 1 и 2 используются на вход, а канал 3 - на выход. Тогда берем МК с 2 модулями USART, подключаем каналы 1 и 2 на входы Rx, а канал 3 - на линию Tx одного из этих модулей?
Если помимо скорости передачи, одинаков и формат посылок(допустим везде есть дополнение до нечетности, один стоп-бит и передача 8 информационных бит), то достаточно двух USART для решения задачи.
Загружая на вход компьютера "мусор", на выходе получим "мусор^32".
PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Да, скорость и формат посылки всюду одинаковые. Спасибо всем за ответы. Буду делать на ATmega 8 с одним програмным UART. Так что ести кого-то заинтересует такое - пишите в личку