Embedded C & MCU Driver Development
Durations – 12 Days
Pre-requisites:
- Basic C programming
- Basic knowledge of microcontrollers
- Serial communication basics
Hardware and Software tools
- Code:: Blocks IDE, Online GDB, GCC
- KEIL MicroVision IDE
- Flash Magic
- LPC1768 Development Board
Outcomes:
- Understand the concept of embedded systems, different components of a microcontroller, and their interactions.
- Get familiarized with the programming environment to develop embedded solutions.
- Program Cortex-M3 microcontroller to perform various tasks.
- Understand key concepts of embedded systems such as I/O, timers, interrupts, and serial interfaces like UART, SPI, I2C, and CAN.
Module-I: SDLC and Embedded C (06 Days)
- Day 1
- Development Lifecycles and Frameworks – SDLC overview and its phases
- Embedded System Design Cycle – Hardware and software aspects
- SDLC Models: Waterfall, Spiral, and V models
- Agile – an iterative and responsive software development methodology
- Compilation process – preprocessing, compiling, assembling, and linking
- Debugging techniques
- Day 2
- C Programming – control flow statements, loops, and functions
- Day 3
- Bitwise operators, strings, arrays, and pointers
- Day 4
- Structures, union, enum, and typedef
- Module Assessment and Evaluation Process
Module-II: MCU Programming
- Day 5
- Introduction to Embedded Systems
- Embedded system definition
- Block diagram of a typical embedded system
- Embedded systems classification
- RISC and CISC architectures
- Microcontrollers and microprocessors
- Introduction to Cortex-M3 based MCU (LPC1768)
- Understanding the internal architecture of Cortex-M3
- Important features of LPC1768
- Demo on using KEIL IDE and Flash Magic tools for LPC1768 target
- GPIO Programming
- LPC1768 GPIO pins and GPIO register details
- Controlling LED, switch, and buzzer using GPIO programming
- Introduction to Embedded Systems
Day-6
IO Programming (LCD and Keypad)
- LCD registers and commands
- Displaying string and numeric type data on LCD
- Making multi-file program and LCD library program
- 4 × 4 matrix keypad programming
Day-7
ADC Programming
- ADC operation using successive approximation method
- Programming to read analog voltage using ADC
- Programming LM35 temperature sensor using ADC
TIMER Programming
- Understanding the concepts of timer basics
- Timer registers configuration
- Programming timer block for different applications
Day-8
PWM Programming
- Introduction to PWM
- PWM related registers
- Generating the PWM signal for motors
RTC Programming
- Introduction to RTC
- RTC related registers
- Resetting the system using RTC
Day-9
WDT Programming
- Introduction to WDT
- WDT related registers
- Resetting the system using WDT
INTERRUPT Programming
- Understanding the concept of interrupts
- Understanding the registers related to interrupts
- Timer interrupt programming
- External interrupt programming
Day-10
Communication Protocols
UART Programming
- Understanding the importance of UART protocol
- Baud rate generation calculations
- UART Tx and Rx programming
SPI Programming
- SPI protocol overview
- SPI registers configuration
- MAX7219 7-segment decoder SPI slave device details
- Programming SPI 7-segment decoder for LED displays
Day-11
- I2C Programming
- I2C protocol overview – features and frame format
- I2C registers configuration
- I2C serial EEPROM slave IC 2404C details
- Programming I2C memory for read and write operations
Day-12
Introduction to ECU
- Automotive systems overview
- ECU architecture
CAN Programming
- CAN architecture and features
- CAN bus levels and CAN arbitration
- CAN frame structure
- CAN programming – transmitting to and receiving from CAN bus
Module Assessment and Evaluation Process
