The major elements used in full-duplex operation include:
- A transmitter (TX) and its major registers:
- SCITXBUF register – Transmitter Data Buffer register. Contains data (loaded by the CPU) to be transmitted
- TXSHF register – Transmitter Shift register. Accepts data from the SCITXBUF register and shifts data onto the SCITXD pin, 1 bit at a time
- A receiver (RX) and its major registers:
- RXSHF register – Receiver Shift register. Shifts data in from the SCIRXD pin, 1 bit at a time
- SCIRXBUF register – Receiver Data Buffer register. Contains data to be read by the CPU. Data from a remote processor is loaded into the RXSHF register and then into the SCIRXBUF and SCIRXEMU registers
- A programmable baud generator
- Data-memory-mapped control and status registers enable the CPU to access the I2C module registers and FIFOs.
The SCI receiver and transmitter can operate either independently or simultaneously.