Zenler Player
Your course is loading. Hang tight.
Mastering Microcontroller: Timers, PWM, CAN, Low Power(MCU2)
Back to curriculum
0% Complete
0% Complete
what are we going to do in this course ?
About the development board used in this course
Board Details and Locating Documents
ST-Link Driver Installation
ST Link Firmware Upgrade
Which IDE to use for this course?
Migrating to STM32CubeIDE
Downloading and Installing OpenSTM32 System-Workbench
Installing OpenSTM32 System-Workbench
STM32 CUBE mx installation
Introduction to STM32 Cube Project Architecture
Creating and Importing Project into OpenSTM32 System Workbench – Part1
Understanding Project Hierarchy
Project Layers Interaction
STM32 Cube framework program flow-1
STM32 Cube framework program flow-2
HAL_Init()
Understanding main.c msp.c and it.c
Peripheral Handle Structure
Linking Handle Structure and Peripheral
STM32 HAL Header File Hierarchy
Importing Source Codes
Project Creation
Low level Processor specific hardware initialization: Part 1
Low level Processor specific hardware initialization: Part 2
Low level Processor specific hardware initialization: Part 3
Peripheral High Level Initialization
Peripheral Low Level Initialization
Peripheral Low Level Initialization : configuring Pin Packs
Peripheral Low Level Initialization : Alternate function settings
Peripheral Low Level Initialization : IRQ settings
STM32 HAL Peripheral data handling APIs
UART Data TXing : Part 1
UART Data TXing : Part 2
UART Data RXing: Intro
Implementing UART DATA RXing in Polling mode
UART Data RXing in Interrupt Mode : Part 1
UART Data RXing in Interrupt Mode : Part 2
UART Data RXing in Interrupt Mode : Part 3
UART Data RXing in Interrupt Mode : Part 4
Introduction to different clock sources of the microcontroller
Understanding methods to configure the SYSCLK
Exploring clock handling APIs in RCC driver files
Exercise : OSC Init and HSE bypass
Exercise : Clock init implementation
Exercise : SYSTICK configuration and summary
Exercise : Testing
Understanding HSI calibration
PLL introduction and working principle
Exercise : PLL Configuration via HSI Part 1
Exercise : PLL Configuration via HSI Part 2
Exercise : PLL Configuration via HSE
Exercise : PLL Configuration for 180MHz
Exercise : PLL Configuration for 180MHz implementation
Introduction to Timers
Types of Timers
Timer Availability in STM32 MCUs
Timer Availability in STM32 MCUs : Summary
STM32 Basic Timer Assembly
Timer Exercise : Project creation
Timer Exercise : Understanding Timer Clock (TIMx_CLK)
Timer Exercise : Understanding Prescaler and Period(ARR)
Timer Exercise : Period Value Calculation
Timer Exercise : MSP Init Implementation
Timer Exercise : Test
Timer Exercise : Interrupt Mode
Timer Exercise : 10 Micro timer base generation
Timer with input capture block
Input Capture Exercise : working principle
Input Capture Exercise : time base init
Input Capture Exercise : Channel Configuration
Input Capture Exercise : Channel Configuration Coding
LSE Configuration
Testing of LSE on MCO1 Pin
Timer Input Capture Callback Implementation
Input Capture Exercise : Testing
Input Capture Exercise : Update on HSE
Input Capture Exercise : with 4Mhz external signal
Input Capture Exercise : with 50KHz external signal
Timer Output compare Introduction
Output Compare Exercise : Project Creation
Output Compare Exercise Coding : Part 1
Output Compare Exercise Coding : Part 2
Output Compare Exercise Coding : Part 3
Output Compare Exercise Coding : Part 4
Output Compare Assignment
PWM Introduction
PWM Exercise : Part 1
PWM Exercise : Part 2
PWM Exercise : Part 3
PWM Exercise : Part 4
PWM Exercise : Part 5
PWM Exercise : Part 6
PWM Exercise : Part 7
LED brightness control using PWM signal: Part 1
LED brightness control using PWM signal: Part 2
CAN section introduction
Introduction to CAN
CAN's most attractive features
Summary of CAN features
Understanding a CAN and its parts
CAN single ended signals Vs Differential signal
Understanding CAN differential signals
CAN Dominant and Recessive Signal states
CAN signalling summary
CAN Message format explanation : Arbitration field
Standard CAN Vs Extended CAN
CAN Message format explanation : ACK bit
ACK Summary
CAN Message format explanation : EOF, IFS and SOF
CAN remote frame
Understanding CAN bit wise arbitration
STM32 bxCAN introdcution
STM32 bxCAN block diagram
STM32 bxCAN self test modes
Exercise : CAN loop back mode : Project Creation
CAN bit timing calculation
Exercise : CAN loop back mode : Coding init function
Exploring bxCAN TX path
Exercise : CAN loop back mode : Coding Tx function
understanding bxCAN operating modes
Exercise : CAN loop back mode : MSP code implementation
CAN loopback connection details
Exercise : CAN loop back mode : Testing and Protocol decoding
STM32 bxCAN RX block diagram and acceptance filters
Understanding bxCAN acceptance filtering with examples
Exploring filtering data structures
Exercise : CAN loop back mode : Coding RX function
Exercise : CAN filter config implementation and testing TX-RX
Understanding STM32 bxCAN Interrupt requests (IRQs)
CAN LOOPBACK interrupt mode implementation Part -1
CAN LOOPBACK interrupt mode implementation Part -2
Exercise : CAN Normal Node Introduction - Part-1
Exercise : CAN Normal Node Project Creation- Part-2
Exercise : CAN Normal Node Code Implementation - Part-3
Exercise : CAN Normal Node Code Implementation - Part-4
Exercise : CAN Normal Node Code Implementation - Part-5
Exercise : CAN Normal Node Testing TX - Part-6
Exercise : CAN Normal Node Testing TX - Part-7
Exercise : CAN Normal Node RX Code implementation- Part-8
Exercise : CAN Normal Node RX Code implementation- Part-9
Exercise : CAN Normal Node Sending Remote Frame Part-10
Exercise : CAN Normal Node Testing- Part-11
Exercise : CAN Normal Node Testing TX at 1Mbit/sec - Part-12
Exercise : CAN Normal Configuring acceptance filtering - Part-13
Exercise : CAN Normal Configuring acceptance filtering - Part-14
Section Introduction
MCU low power modes introduction
Processor specific low power modes
Entering normal and deep sleep modes
Entering sleep mode using SLEEPONEXIT feature
Exercise : Usage of SLEEPONEXIT feature
waking up from SLEEPONEXIT feature
Exercise : test SLEEPONEXIT feature -creating a project
Exercise : Implementation and current measurement without SLEEPONEXIT feature
Current measurement with SLEEPONEXIT feature
SLEEPONEXIT Exercise summary
Tips to reduce current consumption
Current measurement with increased HCLK frequency
Current measurement with increased UART baudrate
Clock gating and RCC Low power register settings
IO analog mode and effect on current consumption
Current measurement in IO analog mode
Understanding WFI instruction
WFI Exercise Introduction
WFI Exercise Implementation
Understanding WFE and event register of ARM Cortex Mx processor
WFE wake-up behavior and Comparison with WFI
WFE exercise introduction
WFE project explanation
Generating Peripheral events in STM32 MCU
WFE project implementation-Part1
WFE project implementation-Part2
Difference and similarity between WFI and WFE
When to use WFE and WFI ?
MCU specific low power modes
STM32 MCU voltage domains
STM32 voltage regulator and its modes
Voltage regulator Over Drive and Power Down mode
Current measurement with core-mark in Run mode-Part1
Current measurement with core-mark in Run mode-Part2
Run mode current measurement + HCLK180MHz+ all peripherals enabled
Run mode current measurement + HCLK180MHz + all peripherals enabled + ART
SLEEP mode current measurement
SLEEP mode and Voltage regulator settings to save current
STOP mode and wake-up latency
STOP mode current measurement
Microcontroller wake-up Pins discussion
Understanding STM32 BACKUP SRAM
Different types of MCU resets
BACKUP SRAM exercise Intro
Backup SRAM Exercise implementation part 1
Backup SRAM Exercise implementation part 2
RTC Introduction
RTC BCD programming example
RTC block diagram and RTC Clock selection
RTC and STM32 device HAL APIs explanation
Exercise : RTC Calendar Part-1
Exercise : RTC Calendar Part-2
Exercise : RTC Calendar Part-3
Exercise : RTC Calendar Part-4
Exercise : RTC Calendar Testing
Exercise : RTC Calendar Testing with system reset and STANDBY exit
RTC Alarm Introduction
STM32 CUBE APIs for RTC Alarm Handling
RTC Interrupts and IRQ numbers
RTC Interrupts Summary
RTC Alarm Exercise-1
RTC Alarm Exercise-1 Testing
RTC Alarm Exercise-2
RTC Alarm Exercise-2 Testing
RTC Alarm Exercise-3
RTC Alarm Exercise-4
New Bonus Section: Project-Based Learning
Intro
Creating an STM32 project using STM32CubeIDE
Project creation and LED pins setup
Project compilation and producing different output files(.elf, .bin, .ihex)
Programming the target board using bootloader
Programming and debugging using ST Link debugger
LED Blinker using Timer interrupts
LED Blinker with Timer Interrupts Testing and Debugging using USB logic analyser
LED Blinker with Timer Interrupts Testing and Debugging using USB logic analyser
LED Blinker using button interrupts
Project objective
Project big picture
About I2C Bus
I2C master configuration
PWM signal generation using timer peripheral
PWM parameter settings
Plotting PWM using STM32CubeMonitor Software
Understanding MPU6050 sensor and specifications from datasheet
Reading accelerometer data from MPU6050
Testing mpu6050_init() function on the hardware
Reading accelerometer data using STM32 I2C MemRead API
Testing acceleromter data read and plotting using CubeMonitor
Calculating roll angle and applying kalman filter
Mapping kalman roll angle to pwm duy cycle to control LEDs
BONUS LECTURE
Introduction
what are we going to do in this course ?
Preview
Development board details
About the development board used in this course
Preview
Board Details and Locating Documents
Preview
ST-Link Driver Installation
ST Link Firmware Upgrade
IDE to use for this course
Which IDE to use for this course?
Installing STM32CubeIDE
Migrating to STM32CubeIDE
Installing OpenSTM32 System-Workbench
Downloading and Installing OpenSTM32 System-Workbench
Installing OpenSTM32 System-Workbench
STM32 CUBE mx installation
STM32 HAL and Project Architecture
Introduction to STM32 Cube Project Architecture
Creating and Importing Project into OpenSTM32 System Workbench – Part1
Understanding Project Hierarchy
Project Layers Interaction
STM32 Cube framework program flow-1
STM32 Cube framework program flow-2
HAL_Init()
Understanding main.c msp.c and it.c
Peripheral Handle Structure
Linking Handle Structure and Peripheral
STM32 HAL Header File Hierarchy
Understanding STM32 HAL program flow with UART exercise
Importing Source Codes
Project Creation
Low level Processor specific hardware initialization: Part 1
Low level Processor specific hardware initialization: Part 2
Low level Processor specific hardware initialization: Part 3
Peripheral High Level Initialization
Peripheral Low Level Initialization
Peripheral Low Level Initialization : configuring Pin Packs
Peripheral Low Level Initialization : Alternate function settings
Peripheral Low Level Initialization : IRQ settings
STM32 HAL Peripheral data handling APIs
UART Data TXing : Part 1
UART Data TXing : Part 2
UART Data RXing: Intro
Implementing UART DATA RXing in Polling mode
UART Data RXing in Interrupt Mode : Part 1
UART Data RXing in Interrupt Mode : Part 2
UART Data RXing in Interrupt Mode : Part 3
UART Data RXing in Interrupt Mode : Part 4
Clocks and PLL Programming
Introduction to different clock sources of the microcontroller
Understanding methods to configure the SYSCLK
Exploring clock handling APIs in RCC driver files
Exercise : OSC Init and HSE bypass
Exercise : Clock init implementation
Exercise : SYSTICK configuration and summary
Exercise : Testing
Understanding HSI calibration
PLL introduction and working principle
Exercise : PLL Configuration via HSI Part 1
Exercise : PLL Configuration via HSI Part 2
Exercise : PLL Configuration via HSE
Exercise : PLL Configuration for 180MHz
Exercise : PLL Configuration for 180MHz implementation
Timers
Introduction to Timers
Types of Timers
Timer Availability in STM32 MCUs
Timer Availability in STM32 MCUs : Summary
STM32 Basic Timer Assembly
Preview
Timer Exercise : Project creation
Timer Exercise : Understanding Timer Clock (TIMx_CLK)
Timer Exercise : Understanding Prescaler and Period(ARR)
Timer Exercise : Period Value Calculation
Timer Exercise : MSP Init Implementation
Timer Exercise : Test
Timer Exercise : Interrupt Mode
Timer Exercise : 10 Micro timer base generation
General Purpose Timer: Input Capture Unit
Timer with input capture block
Preview
Input Capture Exercise : working principle
Input Capture Exercise : time base init
Input Capture Exercise : Channel Configuration
Input Capture Exercise : Channel Configuration Coding
LSE Configuration
Testing of LSE on MCO1 Pin
Timer Input Capture Callback Implementation
Input Capture Exercise : Testing
Input Capture Exercise : Update on HSE
Input Capture Exercise : with 4Mhz external signal
Input Capture Exercise : with 50KHz external signal
Timer's Output Compare unit
Timer Output compare Introduction
Output Compare Exercise : Project Creation
Output Compare Exercise Coding : Part 1
Output Compare Exercise Coding : Part 2
Output Compare Exercise Coding : Part 3
Output Compare Exercise Coding : Part 4
Output Compare Assignment
PWM
PWM Introduction
PWM Exercise : Part 1
PWM Exercise : Part 2
PWM Exercise : Part 3
PWM Exercise : Part 4
PWM Exercise : Part 5
PWM Exercise : Part 6
PWM Exercise : Part 7
LED brightness control using PWM signal: Part 1
LED brightness control using PWM signal: Part 2
Controller Area Network Fundamentals
CAN section introduction
Introduction to CAN
CAN's most attractive features
Summary of CAN features
Understanding a CAN and its parts
Preview
CAN single ended signals Vs Differential signal
Understanding CAN differential signals
Preview
CAN Dominant and Recessive Signal states
CAN signalling summary
CAN frame formats
CAN Message format explanation : Arbitration field
Standard CAN Vs Extended CAN
CAN Message format explanation : ACK bit
ACK Summary
CAN Message format explanation : EOF, IFS and SOF
CAN remote frame
CAN Bus Arbitration
Understanding CAN bit wise arbitration
Preview
STM32 bxCAN
STM32 bxCAN introdcution
STM32 bxCAN block diagram
STM32 bxCAN self test modes
Exercise : CAN loop back mode : Project Creation
CAN bit timing calculation
Exercise : CAN loop back mode : Coding init function
Exploring bxCAN TX path
Exercise : CAN loop back mode : Coding Tx function
understanding bxCAN operating modes
Exercise : CAN loop back mode : MSP code implementation
CAN loopback connection details
Exercise : CAN loop back mode : Testing and Protocol decoding
Preview
STM32 bxCAN RX block diagram and acceptance filters
bxCAN Frame filtering
Understanding bxCAN acceptance filtering with examples
Exploring filtering data structures
Exercise : CAN loop back mode : Coding RX function
Exercise : CAN filter config implementation and testing TX-RX
CAN interrupts
Understanding STM32 bxCAN Interrupt requests (IRQs)
CAN LOOPBACK interrupt mode implementation Part -1
CAN LOOPBACK interrupt mode implementation Part -2
CAN normal mode and exercise
Exercise : CAN Normal Node Introduction - Part-1
Exercise : CAN Normal Node Project Creation- Part-2
Exercise : CAN Normal Node Code Implementation - Part-3
Exercise : CAN Normal Node Code Implementation - Part-4
Exercise : CAN Normal Node Code Implementation - Part-5
Exercise : CAN Normal Node Testing TX - Part-6
Exercise : CAN Normal Node Testing TX - Part-7
Exercise : CAN Normal Node RX Code implementation- Part-8
Exercise : CAN Normal Node RX Code implementation- Part-9
Exercise : CAN Normal Node Sending Remote Frame Part-10
Exercise : CAN Normal Node Testing- Part-11
Exercise : CAN Normal Node Testing TX at 1Mbit/sec - Part-12
Exercise : CAN Normal Configuring acceptance filtering - Part-13
Exercise : CAN Normal Configuring acceptance filtering - Part-14
Low Power Modes
Section Introduction
MCU low power modes introduction
Processor specific low power modes
Entering normal and deep sleep modes
Entering sleep mode using SLEEPONEXIT feature
Exercise : Usage of SLEEPONEXIT feature
waking up from SLEEPONEXIT feature
Exercise : test SLEEPONEXIT feature -creating a project
Exercise : Implementation and current measurement without SLEEPONEXIT feature
Current measurement with SLEEPONEXIT feature
SLEEPONEXIT Exercise summary
Preview
Current reduction tips and tricks
Tips to reduce current consumption
Current measurement with increased HCLK frequency
Current measurement with increased UART baudrate
Clock gating and RCC Low power register settings
IO analog mode and effect on current consumption
Current measurement in IO analog mode
WFI and WFE
Understanding WFI instruction
WFI Exercise Introduction
WFI Exercise Implementation
Understanding WFE and event register of ARM Cortex Mx processor
WFE wake-up behavior and Comparison with WFI
WFE exercise introduction
WFE project explanation
Generating Peripheral events in STM32 MCU
WFE project implementation-Part1
WFE project implementation-Part2
Difference and similarity between WFI and WFE
When to use WFE and WFI ?
STM32 Low Power modes and Voltage domains
MCU specific low power modes
STM32 MCU voltage domains
STM32 Voltage Regulator
STM32 voltage regulator and its modes
Voltage regulator Over Drive and Power Down mode
Current Measurement and datasheet comparison : RUN Mode
Current measurement with core-mark in Run mode-Part1
Current measurement with core-mark in Run mode-Part2
Run mode current measurement + HCLK180MHz+ all peripherals enabled
Run mode current measurement + HCLK180MHz + all peripherals enabled + ART
Current Measurement and datasheet comparison : SLEEP Mode
SLEEP mode current measurement
SLEEP mode and Voltage regulator settings to save current
Current Measurement and datasheet comparison : STOP Mode
STOP mode and wake-up latency
STOP mode current measurement
Microcontroller wake-up Pins discussion
STM32 BACKUP SRAM and STANDBY MODE effect
Understanding STM32 BACKUP SRAM
Different types of MCU resets
BACKUP SRAM exercise Intro
Backup SRAM Exercise implementation part 1
Backup SRAM Exercise implementation part 2
RTC and RTC Calendar Block
RTC Introduction
RTC BCD programming example
RTC block diagram and RTC Clock selection
RTC and STM32 device HAL APIs explanation
Exercise : RTC Calendar Part-1
Exercise : RTC Calendar Part-2
Exercise : RTC Calendar Part-3
Exercise : RTC Calendar Part-4
Exercise : RTC Calendar Testing
Exercise : RTC Calendar Testing with system reset and STANDBY exit
RTC Alarm
RTC Alarm Introduction
STM32 CUBE APIs for RTC Alarm Handling
RTC Interrupts
RTC Interrupts and IRQ numbers
RTC Interrupts Summary
RTC Alarm Exercises
RTC Alarm Exercise-1
RTC Alarm Exercise-1 Testing
RTC Alarm Exercise-2
RTC Alarm Exercise-2 Testing
RTC Alarm Exercise-3
RTC Alarm Exercise-4
Embedded Systems Bootcamp: Learn by Building Projects [Bonus Section]
New Bonus Section: Project-Based Learning
Intro
Creating an STM32 project using STM32CubeIDE
Project-001-LED Blinker
Project creation and LED pins setup
Project compilation and producing different output files(.elf, .bin, .ihex)
Programming the target board using bootloader
Programming and debugging using ST Link debugger
LED Blinker using Timer interrupts
LED Blinker with Timer Interrupts Testing and Debugging using USB logic analyser
LED Blinker with Timer Interrupts Testing and Debugging using USB logic analyser
LED Blinker using button interrupts
Project-002-Orientation based LED control using MPU6050 and STM32
Project objective
Project big picture
About I2C Bus
I2C master configuration
PWM signal generation using timer peripheral
PWM parameter settings
Plotting PWM using STM32CubeMonitor Software
Understanding MPU6050 sensor and specifications from datasheet
Reading accelerometer data from MPU6050
Testing mpu6050_init() function on the hardware
Reading accelerometer data using STM32 I2C MemRead API
Testing acceleromter data read and plotting using CubeMonitor
Preview
Calculating roll angle and applying kalman filter
Preview
Mapping kalman roll angle to pwm duy cycle to control LEDs
BONUS LECTURE
×
This is an unpublished lesson. This lesson will not be shown for students unless you set it as Public.
Back to Dashboard
No contents are available in this lesson!
No lessons available !
Back to Dashboard
Lesson contents locked
Enroll to unlock this lesson.
Enroll to unlock
Next Lesson