SCB UART in Multi Processor mode | Cypress Semiconductor
SCB UART in Multi Processor mode
SCB UART has the feature of using it in Multiprocessor mode. The multiprocessor mode is also known as UART 9-bits protocol, while standard UART protocol uses 5 to 8-bits data field.
The main properties of multiprocessor mode are:
1. Single master with multiple slave concept (multi-drop network)
2. Each slave is identified by a unique address
3. Using 9 bits data field, with the 9th bit (MSB) as address/data flag. When set ‘1’, it indicates an address byte; when set ‘0’ it indicates a data byte.
4. Parity bit is disabled
In the attached document, there are 3 projects. Slave_add_02 and Slave_add_03 are the slaves and Uart_Multiprocessor is the master.
The function "SCB_UartPutChar(0x103)" in the master project selects the slave with address 0x03. 1 in 103 represents the 9th bit and since its 1, it represents address. The software takes care of selecting the corresponding device. It is left to you to put this byte in Rx Buffer. Either ways it will discard the 9th bit. This can be configured in configuration window.
In the attached project, I have configured one slave to receive address in Rx buffer and other slave not to receive. So for the slave that has been configured to receive address in Rx buffer will have its address as the first data received.
If the address sent by the master matches, the slave will receive subsequent bytes otherwise it discards.
So you don't need to monitor for the 9th bit. It just says if the received byte is address or data.