Mastering Microcontroller: Timers/ PWM/ CAN/ Low Power(MCU2)
 
        About Course
Update: English closed captions have been added, transcript available
Course code: MCU2
>>Welcome to the course which teaches you advanced Micro-controller programming. In this course you are going to learn and master Timers , PWM, CAN, RTC, Low Power modes of STM32F4x Micro-controller with step by step guidance. Highly recommended if you are seeking a career in the domain of Embedded software. <<
In this course, you will understand behind the scene working of peripherals with supportive code exercises. I have included various real-time exercises which help you to master every peripheral covered in this course and this course thoroughly covers both theory and practical aspects of Timers, PWM, CAN, RTC, Low Power modes of STM32F4x Micro-controller.
In Timer Section the course covers,
1. Simple time-based generation using the basic timer in both polling and interrupt mode
2. Timer interrupts and IRQ numbers, ISR implementation, callbacks, etc
3. General-purpose timer
4. Working with Input Capture channels of General-purpose timer
5. Interrupts, IRQs, ISRs, callbacks related to Input Capture engine of the general purpose timer
6. Working with output capture channels of the General purpose timer
7. Interrupts, IRQs, ISRs, callbacks related to Output Capture engine of the general purpose timer
8. PWM generation using output capture modes
9. PWM Exercises
10. Step by Step code development process will help you to master the TIMER peripheral
In CAN Section the course covers,
1. Introduction to the CAN protocol
2. CAN frame formats
3. Understanding a CAN node
4. CAN signaling (single-ended signals vs differential signals ) \
5. CAN Bus recessive state and dominant state
6. CAN Bit timing Calculation \
7. CAN network with Transceivers
8. Exploring inside view of CAN transceivers
9. CAN Self-test modes such as LOOPBACK, SILENT LOOPBACK, etc with code exercises.
10. Exploring STM32 bXCAN peripheral
11. self-testing of bxCAN peripheral with exercises
12. bXCAN block diagram
13. Tx/Rx path of the bxCAN Peripheral
14. CAN frame filtering and executrices
15. CAN in Normal Mode
16. Communicating between 2 boards over CAN
17. Code exercises
In the Power Controller Section the course covers,
1. ARM Cortex Mx Low Power Modes Normals Vs DeepSleep
2. STM32 SLEEP mode
3. STOP mode
4. STANDBY mode
5. Current measurement with different submode
6. Waking up MCU by using wakeup pins, EXTI, RTC, etc
7. Backup SRAM
8. Step by Step coverage with lots of code exercises.
In RTC Section the course covers,
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 MCU using RTC events
8. RTC interrupts
9. and lots of other details with step by step code exercises.
STM32 Device HAL framework
1. STM32 Device Hal framework details
2. APIs details
3. Interrupt handling
4. Callback implementation
5. Peripheral Handling and configurations
6. Step by Step explanation with code exercises.
==> Important note: This course is NOT about auto-generating code using 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,
If you are a beginner in the field of embedded systems, then you can take our courses in the below-mentioned order.
This is just a recommendation from the instructor for beginners.
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)
What Will You Learn?
- You will learn from scratch about STM32 Timers : Basic and General Purpose Timers
- Understand General purpose timer's Input capture and Output compare unit handling and Exercises
- Handling of Timer interrupts : Time base interrupts, capture interrupts, compare interrupts
- You will learn from scratch CAN Protocol, CAN Signalling, CAN Transceivers , Bus Access procedures
- Understand CAN LOOPBACK mode, SILENT mode and NORMAL mode
- Understand about CAN filtering
- Learn about CAN interrupts
- CAN Peripheral programming using STM32 device HAL drivers
- You will master Low power modes of the MCU : SLEEP,STOP and STANDBY
- You will understand different power domains of the MCU : VDD domain, 1.2V domain, backup domain
- Understand Microcontroller Wakeup Procedures using : RTC, wakeup pins,EXTI,etc.
- You will master RTC Features : CALENDAR, ALARM , TIME STAMP,WAKEUP UNIT
- RTC interrupts and wake up procedures
- Mastering Microcontroller Clocks Handling : HSE,HSI,LSE,LSI,PLL
- Understand phase locked loop (PLL) programming
- Learn PWM mode and Master through step by step code exercises
- You should be able to quickly develop applications which involves STM32 Device HAL layer
Course Content
Introduction
- 
										A Message from the Professor
- 
										– what are we going to do in this course07:15
Development board details
- 
										– About the development board used in this course03:06
- 
										– Board Details and Locating Documents03:04
- 
										– STLink Driver Installation03:26
- 
										– ST Link Firmware Upgrade04:06
Installing OpenSTM32 SystemWorkbench
- 
										– Downloading and Installing OpenSTM32 SystemWorkbench05:42
- 
										– Installing OpenSTM32 SystemWorkbench04:52
- 
										– STM32 CUBE mx installation04:11
STM32 HAL and Project Architecture
- 
										– Introduction to STM32 Cube Project Architecture02:40
- 
										– Creating and Importing Project into OpenSTM32 System Workbench Part100:41
- 
										– Understanding Project Hierarchy06:32
- 
										– Project Layers Interaction09:18
- 
										– STM32 Cube framework program flow102:38
- 
										– STM32 Cube framework program flow204:05
- 
										– HALInit06:52
- 
										– Understanding mainc mspc and itc07:58
- 
										– Peripheral Handle Structure11:50
- 
										– Linking Handle Structure and Peripheral13:09
- 
										– STM32 HAL Header File Hierarchy06:09
Understanding STM32 HAL program flow with UART exercise
- 
										– Importing Source Codes07:33
- 
										– Project Creation05:37
- 
										– Low level Processor specific hardware initialization Part 102:50
- 
										– Low level Processor specific hardware initialization Part 203:39
- 
										– Low level Processor specific hardware initialization Part 309:42
- 
										– Peripheral High Level Initialization14:17
- 
										– Peripheral Low Level Initialization06:15
- 
										– Peripheral Low Level Initialization configuring Pin Packs05:39
- 
										– Peripheral Low Level Initialization Alternate function settings14:18
- 
										– Peripheral Low Level Initialization IRQ settings07:00
- 
										– STM32 HAL Peripheral data handling APIs03:49
- 
										– UART Data TXing Part 107:36
- 
										– UART Data TXing Part 206:17
- 
										– UART Data RXing Intro01:16
- 
										– Implementing UART DATA RXing in Polling mode11:31
- 
										– UART Data RXing in Interrupt Mode Part 101:16
- 
										– UART Data RXing in Interrupt Mode Part 212:08
- 
										– UART Data RXing in Interrupt Mode Part 308:35
- 
										– UART Data RXing in Interrupt Mode Part 402:18
Clocks and PLL Programming
- 
										– Introduction to different clock sources of the microcontroller14:14
- 
										– Understanding methods to configure the SYSCLK03:24
- 
										– Exploring clock handling APIs in RCC driver files06:39
- 
										– Exercise OSC Init and HSE bypass11:33
- 
										– Exercise Clock init implementation16:32
- 
										– Exercise SYSTICK configuration and summary09:20
- 
										– Exercise Testing01:16
- 
										– Understanding HSI calibration09:08
- 
										– PLL introduction and working principle08:55
- 
										– Exercise PLL Configuration via HSI Part 116:31
- 
										– Exercise PLL Configuration via HSI Part 210:37
- 
										– Exercise PLL Configuration via HSE02:29
- 
										– Exercise PLL Configuration for 180MHz00:54
- 
										– Exercise PLL Configuration for 180MHz implementation05:55
Timers
- 
										– Introduction to Timers07:03
- 
										– Types of Timers02:14
- 
										– Timer Availability in STM32 MCUs06:26
- 
										– Timer Availability in STM32 MCUs Summary03:06
- 
										– STM32 Basic Timer Assembly07:34
- 
										– Timer Exercise Project creation04:58
- 
										– Timer Exercise Understanding Timer Clock TIMxCLK16:20
- 
										– Timer Exercise Understanding Prescaler and PeriodARR06:15
- 
										– Timer Exercise Period Value Calculation04:19
- 
										– Timer Exercise MSP Init Implementation12:10
- 
										– Timer Exercise Test15:22
- 
										– Timer Exercise Interrupt Mode15:07
- 
										– Timer Exercise 10 Micro timer base generation07:18
General Purpose Timer Input Capture Unit
- 
										– Timer with input capture block08:03
- 
										– Input Capture Exercise working principle04:16
- 
										– Input Capture Exercise time base init10:59
- 
										– Input Capture Exercise Channel Configuration13:32
- 
										– Input Capture Exercise Channel Configuration Coding10:46
- 
										– LSE Configuration10:16
- 
										– Testing of LSE on MCO1 Pin06:12
- 
										– Timer Input Capture Callback Implementation15:28
- 
										– Input Capture Exercise Testing03:02
- 
										– Input Capture Exercise Update on HSE00:51
- 
										– Input Capture Exercise with 4Mhz external signal06:39
- 
										– Input Capture Exercise with 50KHz external signal03:35
Timers Output Compare unit
- 
										– Timer Output compare Introduction06:56
- 
										– Output Compare Exercise Project Creation01:07
- 
										– Output Compare Exercise Coding Part 112:43
- 
										– Output Compare Exercise Coding Part 205:26
- 
										– Output Compare Exercise Coding Part 304:08
- 
										– Output Compare Exercise Coding Part 410:22
- 
										– Output Compare Assignment01:09
PWM
- 
										– PWM Introduction05:16
- 
										– PWM Exercise Part 101:00
- 
										– PWM Exercise Part 201:07
- 
										– PWM Exercise Part 307:46
- 
										– PWM Exercise Part 407:22
- 
										– PWM Exercise Part 504:14
- 
										– PWM Exercise Part 602:39
- 
										– PWM Exercise Part 705:39
- 
										– LED brightness control using PWM signal Part 103:13
- 
										– LED brightness control using PWM signal Part 211:07
Controller Area Network Fundamentals
- 
										– CAN section introduction02:29
- 
										– Introduction to CAN03:18
- 
										– CANs most attractive features04:28
- 
										– Summary of CAN features02:00
- 
										– Understanding a CAN and its parts05:59
- 
										– CAN single ended signals Vs Differential signal02:59
- 
										– Understanding CAN differential signals08:34
- 
										– CAN Dominant and Recessive Signal states03:53
- 
										– CAN signalling summary01:51
CAN frame formats
- 
										– CAN Message format explanation Arbitration field06:26
- 
										– Standard CAN Vs Extended CAN06:27
- 
										– CAN Message format explanation ACK bit04:00
- 
										– ACK Summary01:53
- 
										– CAN Message format explanation EOF IFS and SOF02:43
- 
										– CAN remote frame01:41
CAN Bus Arbitration
- 
										– Understanding CAN bit wise arbitration08:04
STM32 bxCAN
- 
										– STM32 bxCAN introdcution04:48
- 
										– STM32 bxCAN block diagram06:00
- 
										– STM32 bxCAN self test modes03:21
- 
										– Exercise CAN loop back mode Project Creation03:07
- 
										– CAN bit timing calculation14:05
- 
										– Exercise CAN loop back mode Coding init function06:22
- 
										– Exploring bxCAN TX path08:42
- 
										– Exercise CAN loop back mode Coding Tx function09:08
- 
										– understanding bxCAN operating modes03:02
- 
										– Exercise CAN loop back mode MSP code implementation01:08
- 
										– CAN loopback connection details04:06
- 
										– Exercise CAN loop back mode Testing and Protocol decoding07:11
- 
										– STM32 bxCAN RX block diagram and acceptance filters07:01
bxCAN Frame filtering
- 
										– Understanding bxCAN acceptance filtering with examples12:01
- 
										– Exploring filtering data structures04:53
- 
										– Exercise CAN loop back mode Coding RX function05:42
- 
										– Exercise CAN filter config implementation and testing TXRX08:54
CAN interrupts
- 
										– Understanding STM32 bxCAN Interrupt requests IRQs15:16
- 
										– CAN LOOPBACK interrupt mode implementation Part 110:20
- 
										– CAN LOOPBACK interrupt mode implementation Part 204:40
CAN normal mode and exercise
- 
										– Exercise CAN Normal Node Introduction Part102:41
- 
										– Exercise CAN Normal Node Project Creation Part201:33
- 
										– Exercise CAN Normal Node Code Implementation Part305:19
- 
										– Exercise CAN Normal Node Code Implementation Part401:46
- 
										– Exercise CAN Normal Node Code Implementation Part501:38
- 
										– Exercise CAN Normal Node Testing TX Part605:52
- 
										– Exercise CAN Normal Node Testing TX Part701:42
- 
										– Exercise CAN Normal Node RX Code implementation Part806:14
- 
										– Exercise CAN Normal Node RX Code implementation Part904:22
- 
										– Exercise CAN Normal Node Sending Remote Frame Part1001:27
- 
										– Exercise CAN Normal Node Testing Part1102:52
- 
										– Exercise CAN Normal Node Testing TX at 1Mbitsec Part1205:04
- 
										– Exercise CAN Normal Configuring acceptance filtering Part1305:06
- 
										– Exercise CAN Normal Configuring acceptance filtering Part1402:35
Low Power Modes
- 
										– Section Introduction01:53
- 
										– MCU low power modes introduction03:55
- 
										– Processor specific low power modes06:53
- 
										– Entering normal and deep sleep modes02:11
- 
										– Entering sleep mode using SLEEPONEXIT feature04:04
- 
										– Exercise Usage of SLEEPONEXIT feature02:41
- 
										– waking up from SLEEPONEXIT feature02:50
- 
										– Exercise test SLEEPONEXIT feature creating a project00:40
- 
										– Exercise Implementation and current measurement without SLEEPONEXIT feature05:16
- 
										– Current measurement with SLEEPONEXIT feature05:23
- 
										– SLEEPONEXIT Exercise summary02:03
Current reduction tips and tricks
- 
										– Tips to reduce current consumption03:38
- 
										– Current measurement with increased HCLK frequency03:43
- 
										– Current measurement with increased UART baudrate05:35
- 
										– Clock gating and RCC Low power register settings08:21
- 
										– IO analog mode and effect on current consumption02:38
- 
										– Current measurement in IO analog mode05:06
WFI and WFE
- 
										– Understanding WFI instruction04:43
- 
										– WFI Exercise Introduction00:46
- 
										– WFI Exercise Implementation06:45
- 
										– Understanding WFE and event register of ARM Cortex Mx processor10:02
- 
										– WFE wakeup behavior and Comparison with WFI10:40
- 
										– WFE exercise introduction01:11
- 
										– WFE project explanation00:49
- 
										– Generating Peripheral events in STM32 MCU06:15
- 
										– WFE project implementationPart101:51
- 
										– WFE project implementationPart203:01
- 
										– Difference and similarity between WFI and WFE01:44
- 
										– When to use WFE and WFI03:57
STM32 Low Power modes and Voltage domains
- 
										– MCU specific low power modes08:55
- 
										– STM32 MCU voltage domains07:01
STM32 Voltage Regulator
- 
										– STM32 voltage regulator and its modes12:39
- 
										– Voltage regulator Over Drive and Power Down mode05:02
Current Measurement and datasheet comparison RUN Mode
- 
										– Current measurement with coremark in Run modePart117:06
- 
										– Current measurement with coremark in Run modePart202:55
- 
										– Run mode current measurement HCLK180MHz all peripherals enabled02:09
- 
										– Run mode current measurement HCLK180MHz all peripherals enabled ART02:02
Current Measurement and datasheet comparison SLEEP Mode
- 
										– SLEEP mode current measurement04:20
- 
										– SLEEP mode and Voltage regulator settings to save current10:22
Current Measurement and datasheet comparison STOP Mode
- 
										– STOP mode and wakeup latency04:45
- 
										– STOP mode current measurement14:23
- 
										– Microcontroller wakeup Pins discussion05:59
STM32 BACKUP SRAM and STANDBY MODE effect
- 
										– Understanding STM32 BACKUP SRAM03:43
- 
										– Different types of MCU resets06:08
- 
										– BACKUP SRAM exercise Intro01:11
- 
										– Backup SRAM Exercise implementation part 115:26
- 
										– Backup SRAM Exercise implementation part 210:54
RTC and RTC Calendar Block
- 
										– RTC Introduction05:05
- 
										– RTC BCD programming example09:02
- 
										– RTC block diagram and RTC Clock selection07:45
- 
										– RTC and STM32 device HAL APIs explanation04:55
- 
										– Exercise RTC Calendar Part109:46
- 
										– Exercise RTC Calendar Part205:46
- 
										– Exercise RTC Calendar Part306:19
- 
										– Exercise RTC Calendar Part411:24
- 
										– Exercise RTC Calendar Testing02:38
- 
										– Exercise RTC Calendar Testing with system reset and STANDBY exit05:55
RTC Alarm
- 
										– RTC Alarm Introduction07:38
- 
										– STM32 CUBE APIs for RTC Alarm Handling04:53
RTC Interrupts
- 
										– RTC Interrupts and IRQ numbers05:54
- 
										– RTC Interrupts Summary01:46
RTC Alarm Exercises
- 
										– RTC Alarm Exercise110:20
- 
										– RTC Alarm Exercise1 Testing03:45
- 
										– RTC Alarm Exercise201:07
- 
										– RTC Alarm Exercise2 Testing03:12
- 
										– RTC Alarm Exercise307:01
- 
										– RTC Alarm Exercise403:56
Earn a certificate
Add this certificate to your resume to demonstrate your skills & increase your chances of getting noticed.
 
				 
 