UART Protocol – In-Depth Technical
Overview
• Presenter: Dharshni | SRM
Presentation Overview
• Objective of the session
• Key topics to be covered
Introduction to Communication
Protocols
• What are communication protocols?
• Classification: Serial vs Parallel, Synchronous
vs Asynchronous
• Examples: UART, SPI, I2C, CAN, USB
Why UART?
• History and evolution
• Simplicity and wide adoption
• Role in embedded systems
UART vs Other Protocols
• Feature comparison:
• Clock line: UART (No), SPI (Yes), I2C (Yes)
• Speed: UART (Moderate), SPI (Fast), I2C
(Moderate)
• Wiring: UART (2 wires), SPI (4 wires), I2C (2
wires)
UART in CPU/System Architecture
• Connection to CPU buses
• Use in bootloaders and firmware debugging
• Interrupts and DMA support
• Example: SCI in TI DSP (TMS320x280x)
Overview of TI SCI Module
• What is SCI (Serial Communications
Interface)?
• Compatibility with UART standards
• Full-duplex, interrupt-driven
Block Diagram of SCI Module
• Annotated block diagram from SPRUGP1
• Major blocks: TX, RX, Control Logic, Registers
Key Features of TI SCI/UART
• Configurable word length
• Programmable baud rate
• Error detection
• Loopback mode
• FIFO support
Register Map Overview
• SCICCR, SCICTL1/2, SCIRXBUF, SCITXBUF
• Access types and initialization
• Bit-field descriptions
Baud Rate Generation
• Equation: Baud Rate = LSPCLK / (BRR + 1)
• High-speed and low-speed clock usage
• Example calculations
Data Format & Framing
• Start, Data, Parity, Stop bits
• Idle-line and break detection
• Byte boundary recognition in receiver
Transmit Operation
• Load → Shift → Send process
• Polling vs interrupt-driven
• TX buffer and TXRDY flag
Receive Operation
• Flowchart: Receive → Buffer
• RX interrupts and overrun detection
• Parity and framing error handling
Interrupt and Event Management
• PIE interrupt mapping
• Sources: Transmit, Receive, Error
• Example ISR structure
Loopback & Self-Test Modes
• Internal loopback configuration
• Software testing use cases
• Diagnostic applications
Initialization & Configuration
• GPIO MUX setup
• Clock enabling
• SCI register configuration flow
• Sample C pseudocode
Real-Time UART Applications
• Debug console
• Wireless modules (Bluetooth, GPS)
• Sensor communication
• Flash programming
Debugging & Troubleshooting
• Incorrect baud rate issues
• Framing and parity errors
• Logic analyzer and UART terminal usage
• Checkpoint strategy
Summary & Best Practices
• UART’s ongoing relevance
• Electrical level compatibility
• Using buffers and interrupts effectively