Multiple serial receivers and transmitters in parallel

To minimize the number of wires, I am connecting the serial receive pins of three AT2313A in parallel.
The AT2313A's only receives one address byte, then executes a transmit of data when the address matches.
The test of serial receive worked fine as expected.
Also the serial transmitting pins should be in parallel to save a few wires.
The serial transmitting pin is usually high in the idle condition.
To allow more AT2313A to share the same wire, schotty diodes should do the trick, cathode toward the serial transmitting pin.
Only one receiver/transmitter active at any time.

However, before testing, I would like to know if a 4.7K resistor connected between +5v and the receive pin of the Arduino Uno is sufficient for communicating at 38400 Baud?
Has anyone experience with a similar setup?

Below is a simple ascii drawing of the connections.

  3 x                   3 x AT2313A 
   Schotty diodes
                             +-\/-+
            RESET      PA2  1|    |20 Vcc 5v
 +--------- RXD        PD0  2|    |19 PB7 SCL/SCK/PCINT17
 | +-->|--- TXD        PD1  3|    |18 PB6 MISO/DO/PCINT16
 | |        XT2/PCINT9 PA1  4|    |17 PB5 MOSI/DI/PCINT5
 | |        XT1/PCINT8 PA0  5|    |16 PB4 OC1B/PCINT4
 | |        INT0/PCI13 PD2  6|    |15 PB3 OC1A/PCINT3   
 | |        PCI14/INT1 PD3  7|    |14 PB2 OC0A/PCINT2 
 | |        PCI15/T0   PD4  8|    |13 PB1 AIN1/PCINT1  
 | |        PCI16/T1   PD5  9|    |12 PB0 AIN0/PCINT0   
 | |               +-- GND 10|    |11 PD6 ICIPI/PCINT17
 | |               |         +----+
 | |               v
 | |              Gnd
 | |                         +-\/-+
 | |        RESET      PA2  1|    |20 Vcc 5v
 + U------- RXD        PD0  2|    |19 PB7 SCL/SCK/PCINT17
 | +-->|--- TXD        PD1  3|    |18 PB6 MISO/DO/PCINT16
 | |        XT2/PCINT9 PA1  4|    |17 PB5 MOSI/DI/PCINT5
 | |        XT1/PCINT8 PA0  5|    |16 PB4 OC1B/PCINT4
 | |        INT0/PCI13 PD2  6|    |15 PB3 OC1A/PCINT3   
 | |        PCI14/INT1 PD3  7|    |14 PB2 OC0A/PCINT2 
 | |        PCI15/T0   PD4  8|    |13 PB1 AIN1/PCINT1  
 | |        PCI16/T1   PD5  9|    |12 PB0 AIN0/PCINT0   
 | |               +-- GND 10|    |11 PD6 ICIPI/PCINT17
 | |               |         +----+
 | |               v
 | |              Gnd
 | |                         +-\/-+
 | |        RESET      PA2  1|    |20 Vcc 5v
 + U------- RXD        PD0  2|    |19 PB7 SCL/SCK/PCINT17
 | +-->|--- TXD        PD1  3|    |18 PB6 MISO/DO/PCINT16
 | |        XT2/PCINT9 PA1  4|    |17 PB5 MOSI/DI/PCINT5
 | |        XT1/PCINT8 PA0  5|    |16 PB4 OC1B/PCINT4
 | |        INT0/PCI13 PD2  6|    |15 PB3 OC1A/PCINT3   
 | |        PCI14/INT1 PD3  7|    |14 PB2 OC0A/PCINT2 
 | |        PCI15/T0   PD4  8|    |13 PB1 AIN1/PCINT1  
 | |        PCI16/T1   PD5  9|    |12 PB0 AIN0/PCINT0   
 | |               +-- GND 10|    |11 PD6 ICIPI/PCINT17
 | |               |         +----+
 | |               +----- Gnd, Arduino Uno
 | |
 | |      +-------------- +5v  Arduino Uno
 | |      |
 | |      /  4.7K ?
 | |      \        
 | +------+-----------> RX, software serial. E.g pin 5, Arduino Uno
 |  
 |
 +--------------------< TX, software serial. E.g pin 4, Arduino Uno
 

That's typical RS-485 protocol. If your diode/resistor approach does not work as expected then use RS-485 transceivers instead.

1 Like

@DrDiettrich , thank you for the suggestion, but the solution seems too advanced for the short distances, 10-20 cm and the tiny modules involved.
I have just connected all up and modified the sketches to use the serial send and receive as per the schematic. Looking at the common receive pin, the pulses look sharp even at 38400 Baud.
And the addressing also works.

Congrats on your creative solution :slight_smile:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.