Course Curriculum
76 sections • 278 lectures • 28h 33m total length
-
Notes and Information
1
Lesson
-
What is this course all about ??
Preview
-
Development board used in our courses
1
Lesson
-
About MCU Development board
Preview
-
IDE installation
5
Lessons
-
Creating a project using STM32CUBEIDE
4
Lessons
-
Creating Hello-World project
Start
-
Start
-
Testing Hello-World through SWV
Preview
-
OpenOCD and Semihosting to use printf
Start
-
-
Understanding MCU Memory Map
3
Lessons
-
Understanding Memory Map of the MCU: Part 1
Start
-
Understanding Memory Map of the MCU: Part 2
Start
-
Understanding Memory Map of the MCU: Part 3
Start
-
MCU Bus Interfaces
4
Lessons
-
MCU Bus Interfaces Explanation Part 1: I-Code/D-Code/S-Bus
Start
-
MCU Bus Interfaces Explanation Part 2: AHB/APB1/APB2
Start
-
MCU Bus Interfaces Explanation Part 3: Q/A session
Start
-
Understanding MCU Bus Matrix
Start
-
Understanding MCU Clocks and Details
1
Lesson
-
Understanding MCU Clocking System:Part1
Start
-
Understanding MCU Clock tree
7
Lessons
-
Understanding MCU clock sources and HSE
Preview
-
Start
-
Peripheral clock configuration
Start
-
Exercise : HSI measurements
Start
-
Start
-
Start
-
Exercise : HSE measurements
Start
-
Understanding MCU Vector table
1
Lesson
-
Understanding MCU Vector Table
Start
-
Understanding MCU interrupt Design , NVIC, Interrupt handling
3
Lessons
-
Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 1
Start
-
Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 2
Start
-
Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 3
Start
-
Importance of "Volatile" Keyword
2
Lessons
-
Importance of "Volatile" Keyword: Part-1
Start
-
Importance of "Volatile" Keyword-Part 2
Preview
-
GPIO Must know concepts
7
Lessons
-
Start
-
Start
-
GPIO input mode with high impedance state
Start
-
GPIO input mode with pull-up/down state
Start
-
GPIO output mode with open drain state
Start
-
GPIO output mode with push pull state
Start
-
Optimizing I/O power consumption
Preview
-
GPIO Programming structure and Registers
9
Lessons
-
GPIO programming structure
Start
-
Exploring GPIO PORT and pins of STM32F4xx Discovery board
Start
-
GPIO Mode register(used to set mode for a pin)
Start
-
Input configuration of a Microcontroller's GPIO Pin
Preview
-
Output Configuration of a GPIO Pin in Push pull mode
Start
-
Output Configuration of a GPIO Pin in open drain mode
Start
-
Input stage of a GPIO pin during output configuration
Start
-
Alternate functionality Configuration of a GPIO pin
Start
-
GPIO out put type register explanation
Start
-
GPIO Registers : SPEED, PULL UP/DOWN, IDR and ODR
4
Lessons
-
GPIO output speed register and its applicability
Start
-
GPIO Pull up and Pull down register
Start
-
Start
-
GPIO output data register and summary of various modes discussed
Start
-
GPIO Alternate functionality register and example of usage
2
Lessons
-
Alternate functionality settings of a GPIO pin with example : Part 1
Start
-
Alternate functionality settings of a GPIO pin with example : Part 1
Start
-
GPIO peripheral clock control
1
Lesson
-
Enabling and disabling GPIO peripheral clock
Start
-
GPIO driver development overview and Project creation
4
Lessons
-
GPIO driver development overview
Start
-
MCU Specific header file and its contents
Start
-
New project creation and creating MCU specific headerfile
Start
-
Start
-
Updating MCU specific header file with bus domain and peripheral details
6
Lessons
-
Writing base address C macros for MCU's embedded memories : Part 1
Start
-
Writing base address C macros for MCU's embedded memories : Part 2
Start
-
Defining base addresses of different bus domains
Start
-
Defining base addresses of AHB1 Peripherals
Start
-
Defining base addresses of APB1 and APB2 Peripherals
Start
-
Defining base addresses conclusion
Start
-
Structuring peripheral registers
3
Lessons
-
Address of peripheral registers
Start
-
Structuring peripheral registers
Start
-
Peripheral definition macros
Start
-
Writing Clock enable and disable macros
2
Lessons
-
Writing peripheral clock enable and disable C Macros
Start
-
Project include settings and build
Start
-
GPIO driver API requirements and handle structure
5
Lessons
-
Creating GPIO driver header and source file
Start
-
Defining GPIO handle and configuration structure
Start
-
Driver API requirements and adding API prototypes
Start
-
Driver API input parameters and return types
Start
-
Driver empty API implementation and documentation
Start
-
GPIO driver API Implementation : Clock control
1
Lesson
-
Implementation of GPIO peripheral clock control API
Start
-
GPIO driver API Implementation : GPIO init and de-init
6
Lessons
-
Writing user configurable macros
Start
-
Start
-
Implementation of GPIO init API
Start
-
Implementation of GPIO init API contd.
Start
-
Configuring Alternate function registers
Start
-
GPIO de-init API implementation
Start
-
GPIO driver API Implementation : GPIO data read and write
3
Lessons
-
Implementation of GPIO input port read and input pin read APIs
Start
-
Implementation of GPIO output port write and output pin write APIs
Start
-
Implementation of GPIO pin toggle API
Start
-
Exercise
6
Lessons
-
Exercise : LED toggling with PUSH PULL configuration
Start
-
Exercise : LED toggling with OPEN DRAIN configuration
Start
-
Exercise : Handling on board LED and Button
Start
-
Exercise : Connecting external button and circuit explanation
Preview
-
Exercise : Testing button interface
Start
-
Exercise : Button interrupt introduction
Start
-
GPIO pin Interrupt configuration
7
Lessons
-
GPIO pin Interrupt configuration coding : Part 1
Start
-
GPIO pin Interrupt configuration coding : Part 2
Start
-
GPIO pin Interrupt configuration coding : Part 3
Start
-
GPIO pin Interrupt configuration coding : Part 4
Start
-
GPIO pin Interrupt configuration coding : Part 5
Start
-
GPIO pin Interrupt configuration coding : Part 6
Start
-
GPIO pin Interrupt configuration coding : Part 7
Start
-
Exercise : GPIO interrupts
3
Lessons
-
Exercise : External button interrupt implementation
Start
-
Exercise : Debugging the application : Part 1
Start
-
Exercise : Debugging the application : Part 2
Start
-
-
SPI introduction and bus details
5
Lessons
-
Start
-
SPI comparison with other protocols
Start
-
Importance of SPI slave select pin
Start
-
SPI Minimum bus configuration
Start
-
SPI behind the scene data communication principle
Preview
-
SPI bus configuration and functional block diagram
2
Lessons
-
SPI bus configuration discussion : full duplex, half duplex and simplex
Start
-
SPI functional block diagram explanation
Start
-
STM32 NSS pin settings and management
2
Lessons
-
NSS settings in STM32 master and slave modes
Start
-
STM32 SPI hardware and software slave managements
Start
-
SPI CPOL and CPHA discussion
2
Lessons
-
SPI CPOL and CPHA discussion
Start
-
SPI CPOL and CPHA waveform example
Start
-
SPI serial clock discussion
2
Lessons
-
SPI peripherals of your Microcontroller
Start
-
SPI Serial clock frequency
Start
-
SPI Driver : API requirements and configuration structure
3
Lessons
-
SPI API requirements and configuration items
Start
-
updating MCU specific header file with SPI related details
Start
-
SPI adding API prototypes to driver header file
Start
-
SPI Driver API Implementation : Clock control
1
Lesson
-
Implementation of SPI peripheral clock control API
Start
-
SPI Driver API Implementation : SPI init
3
Lessons
-
SPI user configuration options writing and register bit definition macros
Start
-
Implementation of SPI init API : Part 1
Start
-
Implementation of SPI init API : Part 2
Start
-
SPI Driver API Implementation : Send Data
4
Lessons
-
Implementation of SPI send data API : Part 1
Start
-
Implementation of SPI send data API : Part 2
Start
-
Implementation of SPI send data API : Part 3
Start
-
Implementation of SPI send data API : Part 4
Start
-
Exercise : SPI Send Data
6
Lessons
-
Exercise to test SPI Send Data API
Start
-
Finding out microcontroller pins to communicate over SPI2
Start
-
Exercise : Code implementation : Part 1
Start
-
Exercise : Code implementation : Part 2
Start
-
Exercise : Code implementation : Part 3
Start
-
Start
-
Exercise : STM32 master and Arduino Slave communication
5
Lessons
-
Exercise : Communicating with Arduino slave
Start
-
Start
-
Start
-
Start
-
Preview
-
SPI Driver API : Receive data
2
Lessons
-
Implementation of SPI data receive API : Part 1
Start
-
Implementation of SPI data receive API : Part 2
Start
-
Exercise : SPI receive data
4
Lessons
-
Exercise : SPI command and response based communication
Start
-
Start
-
Start
-
Start
-
SPI interrupts
1
Lesson
-
SPI peripheral interrupting the processor
Start
-
SPI interrupt mode APIs
3
Lessons
-
SPI interrupt mode API implementation and changes to handle structure
Start
-
SPI send data with interrupt API implementation
Start
-
SPI receive data with interrupt implementation
Start
-
SPI Driver API : IRQ handling
5
Lessons
-
SPI : Handling of interrupts
Start
-
SPI IRQ handler implementation : Part 1
Start
-
SPI IRQ handler implementation : Part 2
Start
-
SPI IRQ handler implementation : Part 3
Start
-
Start
-
Common problems in SPI
1
Lesson
-
Common problems in SPI and Debugging Tips
Start
-
I2C introduction and I2C signals
2
Lessons
-
I2C introduction and differences with SPI
Start
-
Start
-
I2C modes
1
Lesson
-
I2C standard and fast mode
Start
-
-
I2C master and slave communication
2
Lessons
-
Example of master writing to slave
Start
-
Understanding repeated START condition
Start
-
STM32 I2C functional block diagram
1
Lesson
-
I2C functional block diagram
Start
-
I2C driver API requirements and config structures
5
Lessons
-
I2C driver API requirements
Start
-
I2C handle and configuration structure
Start
-
I2C user configurable macros
Start
-
Start
-
Steps for I2C init implementation
Start
-
I2C serial clock discussion(SCLK)
2
Lessons
-
I2C serial clock settings with explanation
Start
-
Start
-
I2C Driver API : I2C Init
3
Lessons
-
Implementation of I2C init API : Part 1
Start
-
Implementation of I2C init API : Part 2
Start
-
Implementation of I2C init API : Part 3
Start
-
I2C Driver API : I2C Master send data
6
Lessons
-
I2C transfer sequence diagram for master sending data
Start
-
Implementation of I2C master sending data API : Part 1
Start
-
Implementation of I2C master sending data API : Part 2
Start
-
Implementation of I2C master sending data API : Part 3
Start
-
Implementation of I2C master sending data API : Part 4
Start
-
Implementation of I2C master sending data API : Part 5
Start
-
I2C pull up resistance , rise time and bus capacitance
2
Lessons
-
I2C pull up resistance , rise time and bus capacitance discussion
Start
-
I2C rise time calculation
Start
-
-
I2C Driver API : I2C Master receive data
4
Lessons
-
I2C transfer sequence diagram for master receiving data
Start
-
Assignment : I2C master receive data API implementation
Start
-
Implementation of I2C master receive data API : Part 1
Start
-
Implementation of I2C master receive data API : Part 2
Start
-
Exercise
5
Lessons
-
Exercise : Reading data from the I2C slave
Start
-
Start
-
Start
-
Start
-
Exercise : Testing repeated start
Start
-
I2C Interrupts and IRQ numbers
4
Lessons
-
I2C IRQ and interrupt discussion
Start
-
I2C errors and importance of BUSY flag
Start
-
I2C handle structure modification
Start
-
I2C adding interrupt related macros and interrupt APIs
Start
-
I2C interrupt based APIs
2
Lessons
-
Assignment : I2C interrupt APIs implementation
Start
-
Implementation of I2C interrupt based APIs
Start
-
I2C IRQ handler implementation
9
Lessons
-
I2C IRQ handler implementation Part 1
Start
-
I2C IRQ handler implementation Part 2
Start
-
I2C IRQ handler implementation Part 3
Start
-
I2C IRQ handler implementation Part 4
Start
-
I2C IRQ handler implementation Part 5
Start
-
I2C IRQ handler implementation Part 6
Start
-
I2C IRQ handler implementation Part 7
Start
-
I2C IRQ handler implementation Part 8
Start
-
I2C error IRQ handler implementation
Start
-
Exercise
2
Lessons
-
Exercise : Testing I2C interrupt APIs part 1
Start
-
Exercise : Testing I2C interrupt APIs part 2
Start
-
I2C slave programming
3
Lessons
-
I2C slave programming discussion
Start
-
I2C transfer sequence diagram for slave transmitter
Start
-
I2C slave support in driver
Start
-
Exercise
4
Lessons
-
Exercise : I2C slave programming
Start
-
Start
-
Start
-
Exercise : Modifying I2C transactions
Start
-
Common problems in I2C
1
Lesson
-
Common Problems in I2C and Debugging Tips
Start
-
UART Essentials
6
Lessons
-
UART functional block and Peripheral Clock
2
Lessons
-
Exploring UART functional block
Start
-
Start
-
UART Communication
2
Lessons
-
USART driver development
6
Lessons
-
USART driver development confiugrable items
Start
-
USART driver APIs prototypes
Start
-
Configuration options and USART registers
Start
-
USART Driver API : USART Init
Start
-
USART Driver API : Tx and Rx assignment
Start
-
USART Driver API : Send data
Start
-
USART oversampling and baudrate
4
Lessons
-
Start
-
USART Baud rate calculation Part-2
Start
-
USART Baud rate calculation Part-2
Start
-
Start
-
Exercise
2
Lessons
-
Exercise : USART send data to arduino
Preview
-
communicating with PC over UART
Start
-
USART interrupts
2
Lessons
-
USART interrupt discussion
Start
-
Start
-
-