STM32 Microcontroller Mastery: Timers, CAN, RTC, Low Power & More
What you will learn:
- Master STM32 timers: basic and general purpose timers
- Gain expertise in input capture and output compare units for general purpose timers
- Effectively handle timer interrupts: time base, capture, and compare interrupts
- Understand CAN filtering mechanisms for efficient communication
- Learn the fundamentals of the CAN protocol, CAN signaling, CAN transceivers, and bus access procedures
- Master CAN interrupts for robust communication handling
- Program the CAN peripheral using the STM32 device HAL drivers
- Become proficient in low power modes of the MCU: SLEEP, STOP, and STANDBY
- Explore different power domains of the MCU: VDD domain, 1.2V domain, backup domain
- Understand MCU wakeup procedures using RTC, wakeup pins, EXTI, and more
- Master RTC features: CALENDAR, ALARM, TIME STAMP, and WAKEUP UNIT
- Implement RTC interrupts and wakeup procedures
- Gain proficiency in microcontroller clock handling: HSE, HSI, LSE, LSI, PLL
- Master phase-locked loop (PLL) programming
- Explore PWM mode and its applications through practical code exercises
- Develop applications that utilize the STM32 Device HAL layer efficiently
Description
Update: English closed captions have been added, transcript available
Course code: MCU2
>>Embark on a journey to master advanced STM32 microcontroller programming! This comprehensive course delves into critical peripherals like Timers, CAN, RTC, and Low Power modes, empowering you to develop sophisticated embedded systems. This course is ideal if you're aiming for a career in embedded software development. <<
Uncover the inner workings of these peripherals through insightful explanations and practical code exercises. You'll gain hands-on experience with real-time applications, solidifying your understanding of both the theory and practical aspects of each peripheral. This course covers a wide range of topics, including:
Timer Mastery:
1. Time-based generation using basic timers in both polling and interrupt modes
2. Mastering timer interrupts, IRQ numbers, ISR implementation, callbacks, and more
3. Deep dive into general-purpose timers
4. Working with input capture channels of general-purpose timers
5. Interrupts, IRQs, ISRs, and callbacks related to input capture engines
6. Output capture channels and their associated interrupts, IRQs, ISRs, and callbacks
7. PWM generation using output capture modes
8. Hands-on PWM exercises
9. A step-by-step code development process for mastering the TIMER peripheral
CAN Communication:
1. Introduction to the CAN protocol
2. Detailed exploration of CAN frame formats
3. Understanding the concept of a CAN node
4. CAN signaling: single-ended vs. differential signals
5. CAN Bus recessive and dominant states
6. CAN bit timing calculation
7. Building CAN networks with transceivers
8. Inside view of CAN transceivers
9. CAN self-test modes (LOOPBACK, SILENT LOOPBACK, etc.) with code exercises
10. Delving into the STM32 bXCAN peripheral
11. Self-testing of the bXCAN peripheral with practical exercises
12. bXCAN block diagram exploration
13. Tx/Rx path analysis of the bxCAN Peripheral
14. CAN frame filtering and execution techniques
15. CAN in normal mode operation
16. Inter-board communication over CAN
17. Comprehensive code exercises
Power Control:
1. ARM Cortex Mx Low Power Modes: Normal Vs DeepSleep
2. STM32 SLEEP mode
3. STOP mode
4. STANDBY mode
5. Current measurement with different submodes
6. Waking up the MCU using wakeup pins, EXTI, RTC, etc.
7. Backup SRAM
8. Step-by-step coverage with numerous code exercises
RTC Precision:
1. RTC functional block diagram
2. RTC clock management
3. RTC calendar unit
4. RTC alarm unit
5. RTC wake-up unit
6. RTC Time Stamp Unit
7. Waking up the MCU using RTC events
8. RTC interrupts
9. In-depth exploration with step-by-step code exercises
STM32 Device HAL Framework Mastery:
1. Detailed understanding of the STM32 Device Hal framework
2. In-depth API analysis
3. Interrupt handling techniques
4. Callback implementation
5. Peripheral handling and configuration strategies
6. Step-by-step explanations with comprehensive code exercises
==> Important note: This course does NOT involve auto-generating code using the STM32CubeMx software <==
Hardware Used:
STM32F446RE-NUCLEO Board
CAN Transceivers for CAN Exercises
IDE Used:
Eclipse-based OpenSTM32 SystemWorkbench
Learning order of FastBit Embedded Brain Academy Courses,
For beginners in embedded systems, consider taking our courses in this recommended order:
1) Microcontroller Embedded C Programming: absolute beginners(Embedded C)
2) Embedded Systems Programming on ARM Cortex-M3/M4 Processor(ARM Cortex M4 Processor specific)
3) Mastering Microcontroller with Embedded Driver Development(MCU1)
4) Mastering Microcontroller: TIMERS, PWM, CAN, RTC,LOW POWER(MCU2)
5) Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL(MCU3)
6) Embedded System Design using UML State Machines(State machine)
7) Mastering RTOS: Hands-on FreeRTOS and STM32Fx with Debugging(RTOS)
8) ARM Cortex M Microcontroller DMA Programming Demystified(DMA)
9) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)
10) Embedded Linux Step by Step using Beaglebone Black(Linux)
11) Linux device driver programming using Beaglebone Black(LDD1)
Other programming courses
1) Master The Rust Programming Language : Beginner To Advanced
