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