Work

UART and Real-Time Traffic Light Controller — VHDL + STM32 Integration

VHDL
FPGA
STM32
Embedded Systems
Real-Time Scheduling
Digital Design
UART

Academic project combining the design of a full UART system in VHDL and a real-time traffic light controller on STM32. The goal was to demonstrate asynchronous serial communication between an FPGA and a microcontroller for dynamic traffic management.

Combined UART and traffic light controller simulation and implementation (VHDL + STM32)

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