Overview
This project connects a UART (Universal Asynchronous Receiver-Transmitter) implemented in VHDL to a real-time traffic light controller running on an STM32 board.
The UART module includes a transmitter/receiver, a programmable baud generator, and strict RTL FSM design, ensuring asynchronous data flow without a shared clock.
On the STM32 side, real-time scheduling using interrupts and timers enables dynamic light control based on vehicle detection inputs.
The integration validates FPGA–microcontroller interoperability, demonstrated through Quartus II simulation and real-world testing on a Nucleo development board.
🛠️ Technologies / Tools
- VHDL (Quartus II) — UART transmitter/receiver and FSM design
- FPGA Altera DE2 — UART synthesis, testing, and signal monitoring
- STM32 Nucleo Board — Traffic light logic, sensor input, and timer interrupts
- Putty / MAX232 — Serial interface debugging and voltage level shifting
- Embedded C — Real-time control implementation on MCU
🎯 Key Learnings
- Modular co-design between hardware logic and MCU firmware
- Asynchronous communication with real-time interrupt scheduling
- Cross-validation through RTL simulation and physical hardware testing
- Embedded system integration using UART for inter-device messaging