Multi-Device Communication on same bus

Thread Starter

Embededd

Joined Jun 4, 2025
132
Hi, I want to confirm my understanding regarding UART communication.

If one MCU UART TX line is connected to multiple device RX lines, then all devices can receive the same transmitted data because RX pins are only inputs.

But if one MCU UART RX line is connected to multiple device TX lines, then communication is safe only when a single device transmits at a time. If multiple TX lines transmit simultaneously, bus contention/collision can occur because UART does not provide arbitration like I2C.

Is my understanding correct?
 

MrChips

Joined Oct 2, 2009
34,667
Hi, I want to confirm my understanding regarding UART communication.

If one MCU UART TX line is connected to multiple device RX lines, then all devices can receive the same transmitted data because RX pins are only inputs.

But if one MCU UART RX line is connected to multiple device TX lines, then communication is safe only when a single device transmits at a time. If multiple TX lines transmit simultaneously, bus contention/collision can occur because UART does not provide arbitration like I2C.

Is my understanding correct?
That is not the problem.
You cannot connect multiple TX lines together unless the TX drivers are designed for "party line" communications.

This is true for all digital logic gates. You cannot connect the outputs of gates together unless they have "open collector" or "open drain" outputs.

Wired AND.jpg

If you want to create a local area network, use RS-485 transceivers.
 

Irving

Joined Jan 30, 2016
5,034
But if one MCU UART RX line is connected to multiple device TX lines, then communication is safe only when a single device transmits at a time. If multiple TX lines transmit simultaneously, bus contention/collision can occur because UART does not provide arbitration like I2C
True for some UARTs but RS485 (and other protocols) signalling provide for this, with extended start bit and/or monitoring their transmission preamble for corruption using their own RX side.
 

MrChips

Joined Oct 2, 2009
34,667
But if one MCU UART RX line is connected to multiple device TX lines, then communication is safe only when a single device transmits at a time. If multiple TX lines transmit simultaneously, bus contention/collision can occur because UART does not provide arbitration like I2C.
With master-slave networks, the master has control of the bus. A slave device is allowed to transmit only when requested to do so. No two slaves can transmit at the same time.

With peer-to-peer communications, two devices can transmit at the same time. CDMA (collision detection/multtple access) protocol is designed to detect collisions and to arbitrate which device is given priority,
 
Top