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

Enquire Now

Enquire Now

Enquire Now

Please Sign Up to Download

Please Sign Up to Download

Enquire Now

Please Sign Up to Download




    Enquiry Form