Цитата(jorikdima @ Feb 25 2007, 01:54)

Добрый день.
Есть необходимость связать микроконтроллер MSP430 с 3 различными микросхемами по UART, а порта всего 2 (аппаратных). Что делать?
Писать софтовый UART даже в случае заимствования кода не особо хочется. Ситуация облегчается тем, что среди 3 внешних устройств можно найти 2, которые никогда не будут одновременно работать. Можно ли их повесить на 1 UART? Но тогда вопрос как их разделять. Есть ли в UART что-то на подобии сигнала CS (ChipSelect) в SPI? Я имею ввиду аппаратный handshaking (CTS RTS сигналы). Что это такое. Можно ли это применить в данном случае? Если да то где почитать?
Спасибо.
Хм, не примите за оскорбление, но у вас какая-то каша в голове. Это благодаря ей, вы плодите одновременно сообщения на разные темы в различных разделах?
UART в основном для организации связи точка-точка предназначен. Но если имеется выделенный "мастер", то объединить несколько "слейвов" на одном UART не проблема. TXD мастера соединяется с RXD слейвов. TXD слейвов объединяются на логическом элементе "И", а с выхода его сигнал подается на RXD мастера. Слейв имеет право на передачу только в том, случае, если запрос был адресован ему. Т.е. обмен должен быть пакетным: запрос-ответ, с адресацией пакетов и слейвов.
Сигнала CS для UARTов не применяется.
RTS-CTS это сигналы стандартного интерфейса RS-232. К UART они имеют посредственное отношение, т.к. RS-232 это асинхронный интерфейс в котором UART как-бы составная часть. Сигналы RTS-CTS служат для организации/ограничения потока данных, а не для выбора UARTа.
Если вам так очень хочется, то можно все три "другие" ваши м/с посадить на один SPI-порт MSP430 посредством расширителя портов. Мост SPI->UART. У фирмы Maxim, например, есть такая м/с для этого. Посмотрите
MAX3100.