Hardware Programming, Debugging & PCB Design
Durations -15 days.
Program Structure
Modules:
- MCU Architecture & Development Environment
- GPIO Programming (Bare-Metal & HAL)
- ADC Programming & Debugging
- Timer, Delay & PWM Programming
- RTC & NVIC Programming
- UART Programming & Debugging
- SPI Communication
- I2C Programming & Debugging
- PCB Fundamentals & Layout Design
- PCB Fabrication, Testing & Debugging
Experiential Project Based Learning:
- Project Based on DSA, Leveraging AI
Program Outcomes
- Write register-level (bare metal) and HAL-based drivers
- Debug hardware and firmware using IDE, registers, and logic analysis
- Interface and troubleshoot GPIO, ADC, Timers, RTC, UART, SPI, I2C
- Design single-layer & double-layer PCBs
- Generate Gerber files ready for manufacturing
Tools / Platform:
- MCU Boards: LPC1768 / STM32F411 / STM32F446
- Debuggers: ST-LINK / CMSIS-DAP
- IDEs: Keil µVision / STM32CubeIDE
- PCB Tools: EasyEDA / KiCad
- Instruments: Multimeter, DSO/Logic Analyzer, Power Supply (Demo)
| MCU Architecture & Development Environment | ||
|---|---|---|
| Microcontroller Architecture | Embedded system overview. | ARM Cortex-M architecture. |
| LPC1768 vs STM32F4 comparison. | Memory map: Flash, SRAM, Peripheral registers. | Clock, Reset, Power blocks. |
| Bus architecture (AHB, APB). | ||
| Toolchain & Debugging Basic | ||
| Keil / STM32CubeIDE setup | Bare-metal project structure | Startup code & vector table |
| Flashing firmware | Debugging: | Break points, Step-into / Step-over, Register, memory view, Fault understanding (HardFault basics) |
| GPIO Programming (Bare-Metal + HAL) C++ | ||
| GPIO – Bare-Metal | GPIO registers deep dive | Pin modes: Input / Output / AF / Analog |
| LED blinking using registers | Button input with pull-up/down | DE bouncing techniques |
| GPIO – HAL + Debugging | ||
| GPIO using HAL APIs | External Interrupt (EXTI) | Debugging: |
| Watching IDR / ODR registers, Checking pin state in live debug, Common GPIO hardware faults | ||
| ADC Programming & Debugging | ||
| ADC – Bare-Metal | ADC working principle (SAR) | ADC registers & configuration |
| Reading LM35 / Potentiometer | Data conversion & scaling | |
| ADC – HAL + Debugging | ||
| ADC using HAL | Polling vs Interrupt mode | Debugging: |
| Checking ADC data registers, Reference voltage issues, Noise & incorrect readings | ||
| Timer, Delay & PWM Programming | ||
| Timers – Bare-Metal | Timer architecture | Prescaler & auto-reload calculations |
| Delay generation using timers | Timer interrupts | |
| PWM + Debugging | ||
| PWM theory | Motor speed / LED brightness control | PWM via registers & HAL |
| Debugging: Timer counter monitoring | Duty cycle mismatch issues | Clock misconfiguration analysis |
| RTC & NVIC Programming | ||
| RTC Programming | RTC architecture | Time & date configuration |
| Alarm & wake-up timer | Backup registers | |
| NVIC & Interrupt Debugging | ||
| Interrupt vector table | Priority & pre-emption | ISR best practices |
| Debugging: | Interrupt latency, Missed interrupts, Stack overflow issues | |
| UART Programming | ||
| UART – Bare-Metal | UART protocol & frame | Baud rate calculation |
| TX/RX programming | printf redirection | |
| UART – HAL + Debugging | ||
| Polling vs Interrupt vs DMA | Terminal interfacing | Debugging: Garbage data issue, Baud mismatch, TX/RX pin issues |
| SPI Communication | ||
| SPI Programming | SPI modes & timing | Master-slave configuration |
| Sensor interfacing | ||
| I2C Programming + Debugging | ||
| I2C addressing | EEPROM / sensor interfacing | Debugging: ACK/NACK issues, Bus busy error, Pull-up resistor faults |
| PCB Fundamentals | ||
|---|---|---|
| PCB types & stack-up | Schematic capture | Component footprint creation |
| Power routing concepts | Grounding techniques | |
| PCB Layout Design | ||
| Single-layer & double-layer routing | Track width calculation | Decoupling & EMI control |
| Design Rule Check (DRC) | Common PCB mistakes | |
| Fabrication, Testing & Debugging | ||
| Gerber & drill file generation | PCB manufacturing process | Component soldering guidelines |
| Board bring-up procedure | PCB Debugging | Short circuit detection, Power issues, Signal integrity checks |
