“Connect multiple IO Expanders together using a 9-bit multidrop communications.
RS232 is typically used as a point to point (P2P) communications network. To amplify the signal to go long distances, transceivers (7-12V) were used, which constrained the communications to P2P. With the removal of the transceivers for a cheaper RS232 using CMOS transistor-transistor logic (TTL) levels (3.3-5V), it now became possible to implement point to multipoint (P2MP).
A P2MP network can be created by using a Master to multiple Slaves with 9-bit data where the 9th bit is used to indicate an address byte. Every Slave has a unique board address. The Master in our case will be an Arduino, and the Slaves our IO Expanders. All the slaves are listening for an address byte, and if it matches with the board address, then the following data bytes are accepted. All the other Slaves will ignore the data because it is not addressed to them.”