Zenler Player
Your course is loading. Hang tight.
Mastering Microcontroller and Embedded Driver Development
Back to curriculum
0% Complete
0% Complete
What is this course all about ??
About MCU Development board
Downloading STM32CUBEIDE
Installation-Windows
Installation-Ubuntu
Embedded Target
Documents required
Creating Hello-World project
SWV working principle
Testing Hello-World through SWV
OpenOCD and Semihosting to use printf
Debugging options
Single stepping
Disassembly and Register windows
Breakpoints
Expression and variable windows
Memory browser windows
Call stack and fault analyzers
Data watch-points
SFR windows
Other basic features of IDE
Understanding Memory Map of the MCU: Part 1
Understanding Memory Map of the MCU: Part 2
Understanding Memory Map of the MCU: Part 3
MCU Bus Interfaces Explanation Part 1: I-Code/D-Code/S-Bus
MCU Bus Interfaces Explanation Part 2: AHB/APB1/APB2
MCU Bus Interfaces Explanation Part 3: Q/A session
Understanding MCU Bus Matrix
Understanding MCU Clocking System:Part1
Understanding MCU clock sources and HSE
HSI and RCC registers
Peripheral clock configuration
Exercise : HSI measurements
About USB logic analyzer
Code implementation
Exercise : HSE measurements
Understanding MCU Vector Table
Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 1
Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 2
Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 3
Importance of "Volatile" Keyword: Part-1
Importance of "Volatile" Keyword-Part 2
GPIO pin and GPIO port
GPIO behind the scene
GPIO input mode with high impedance state
GPIO input mode with pull-up/down state
GPIO output mode with open drain state
GPIO output mode with push pull state
Optimizing I/O power consumption
GPIO programming structure
Exploring GPIO PORT and pins of STM32F4xx Discovery board
GPIO Mode register(used to set mode for a pin)
Input configuration of a Microcontroller's GPIO Pin
Output Configuration of a GPIO Pin in Push pull mode
Output Configuration of a GPIO Pin in open drain mode
Input stage of a GPIO pin during output configuration
Alternate functionality Configuration of a GPIO pin
GPIO out put type register explanation
GPIO output speed register and its applicability
GPIO Pull up and Pull down register
GPIO input data register
GPIO output data register and summary of various modes discussed
Alternate functionality settings of a GPIO pin with example : Part 1
Alternate functionality settings of a GPIO pin with example : Part 1
Enabling and disabling GPIO peripheral clock
GPIO driver development overview
MCU Specific header file and its contents
New project creation and creating MCU specific headerfile
Include path settings
Writing base address C macros for MCU's embedded memories : Part 1
Writing base address C macros for MCU's embedded memories : Part 2
Defining base addresses of different bus domains
Defining base addresses of AHB1 Peripherals
Defining base addresses of APB1 and APB2 Peripherals
Defining base addresses conclusion
Address of peripheral registers
Structuring peripheral registers
Peripheral definition macros
Writing peripheral clock enable and disable C Macros
Project include settings and build
Creating GPIO driver header and source file
Defining GPIO handle and configuration structure
Driver API requirements and adding API prototypes
Driver API input parameters and return types
Driver empty API implementation and documentation
Implementation of GPIO peripheral clock control API
Writing user configurable macros
Untitled lesson
Implementation of GPIO init API
Implementation of GPIO init API contd.
Configuring Alternate function registers
GPIO de-init API implementation
Implementation of GPIO input port read and input pin read APIs
Implementation of GPIO output port write and output pin write APIs
Implementation of GPIO pin toggle API
Exercise : LED toggling with PUSH PULL configuration
Exercise : LED toggling with OPEN DRAIN configuration
Exercise : Handling on board LED and Button
Exercise : Connecting external button and circuit explanation
Exercise : Testing button interface
Exercise : Button interrupt introduction
GPIO pin Interrupt configuration coding : Part 1
GPIO pin Interrupt configuration coding : Part 2
GPIO pin Interrupt configuration coding : Part 3
GPIO pin Interrupt configuration coding : Part 4
GPIO pin Interrupt configuration coding : Part 5
GPIO pin Interrupt configuration coding : Part 6
GPIO pin Interrupt configuration coding : Part 7
Exercise : External button interrupt implementation
Exercise : Debugging the application : Part 1
Exercise : Debugging the application : Part 2
STM32 Pin specifications
Pin current characteristics
Logic levels
Introduction to SPI Bus
SPI comparison with other protocols
Importance of SPI slave select pin
SPI Minimum bus configuration
SPI behind the scene data communication principle
SPI bus configuration discussion : full duplex, half duplex and simplex
SPI functional block diagram explanation
NSS settings in STM32 master and slave modes
STM32 SPI hardware and software slave managements
SPI CPOL and CPHA discussion
SPI CPOL and CPHA waveform example
SPI peripherals of your Microcontroller
SPI Serial clock frequency
SPI API requirements and configuration items
updating MCU specific header file with SPI related details
SPI adding API prototypes to driver header file
Implementation of SPI peripheral clock control API
SPI user configuration options writing and register bit definition macros
Implementation of SPI init API : Part 1
Implementation of SPI init API : Part 2
Implementation of SPI send data API : Part 1
Implementation of SPI send data API : Part 2
Implementation of SPI send data API : Part 3
Implementation of SPI send data API : Part 4
Exercise to test SPI Send Data API
Finding out microcontroller pins to communicate over SPI2
Exercise : Code implementation : Part 1
Exercise : Code implementation : Part 2
Exercise : Code implementation : Part 3
Exercise : Testing
Exercise : Communicating with Arduino slave
Exercise : Coding Part 1
Exercise : Coding Part 2
Exercise : Coding Part 3
Exercise : Testing
Implementation of SPI data receive API : Part 1
Implementation of SPI data receive API : Part 2
Exercise : SPI command and response based communication
Exercise : Coding Part 1
Exercise : Coding Part 2
Exercise : Coding Part 3
SPI peripheral interrupting the processor
SPI interrupt mode API implementation and changes to handle structure
SPI send data with interrupt API implementation
SPI receive data with interrupt implementation
SPI : Handling of interrupts
SPI IRQ handler implementation : Part 1
SPI IRQ handler implementation : Part 2
SPI IRQ handler implementation : Part 3
Exercise
Common problems in SPI and Debugging Tips
I2C introduction and differences with SPI
I2C SDA and SCL signals
I2C standard and fast mode
I2C Protocol explanation
I2C START and STOP conditions
I2C ACK and NACK
I2C Data validity
Example of master writing to slave
Understanding repeated START condition
I2C functional block diagram
I2C driver API requirements
I2C handle and configuration structure
I2C user configurable macros
I2C API prototypes
Steps for I2C init implementation
I2C serial clock settings with explanation
Clock Stretching
Implementation of I2C init API : Part 1
Implementation of I2C init API : Part 2
Implementation of I2C init API : Part 3
I2C transfer sequence diagram for master sending data
Implementation of I2C master sending data API : Part 1
Implementation of I2C master sending data API : Part 2
Implementation of I2C master sending data API : Part 3
Implementation of I2C master sending data API : Part 4
Implementation of I2C master sending data API : Part 5
I2C pull up resistance , rise time and bus capacitance discussion
I2C rise time calculation
Exercise : Introduction
Exercise : Coding Part 1
Exercise : Coding Part 2
Exercise : Testing
I2C transfer sequence diagram for master receiving data
Assignment : I2C master receive data API implementation
Implementation of I2C master receive data API : Part 1
Implementation of I2C master receive data API : Part 2
Exercise : Reading data from the I2C slave
Exercise : Coding Part 1
Exercise : Coding Part 2
Exercise : Coding Part 3
Exercise : Testing repeated start
I2C IRQ and interrupt discussion
I2C errors and importance of BUSY flag
I2C handle structure modification
I2C adding interrupt related macros and interrupt APIs
Assignment : I2C interrupt APIs implementation
Implementation of I2C interrupt based APIs
I2C IRQ handler implementation Part 1
I2C IRQ handler implementation Part 2
I2C IRQ handler implementation Part 3
I2C IRQ handler implementation Part 4
I2C IRQ handler implementation Part 5
I2C IRQ handler implementation Part 6
I2C IRQ handler implementation Part 7
I2C IRQ handler implementation Part 8
I2C error IRQ handler implementation
Exercise : Testing I2C interrupt APIs part 1
Exercise : Testing I2C interrupt APIs part 2
I2C slave programming discussion
I2C transfer sequence diagram for slave transmitter
I2C slave support in driver
Exercise : I2C slave programming
Exercise : Coding Part 1
Exercise : Testing
Exercise : Modifying I2C transactions
Common Problems in I2C and Debugging Tips
Intro UART vs USART
Understanding UART pins
UART frame formats
Baud Rate
Synchronization bits
UART Parity
Exploring UART functional block
UART peripheral clock
UART Transmitter
Uart Receiver
USART driver development confiugrable items
USART driver APIs prototypes
Configuration options and USART registers
USART Driver API : USART Init
USART Driver API : Tx and Rx assignment
USART Driver API : Send data
USART oversampling
USART Baud rate calculation Part-2
USART Baud rate calculation Part-2
USART baudrate coding
Exercise : USART send data to arduino
communicating with PC over UART
USART interrupt discussion
Exercise
Real time clock on LCD
DS1307 RTC registers
RTC code implementation
RTC coding for set time and date
RTC coding for get time and date
BCD and Binary manipulation functions
Writing RTC application
RTC and Systick
LCD connections
Significance of LCD pins
LCD initialization
LCD initialization flowchart
Sending command and data to LCD
Creating LCD command code
Testing
BONUS LECTURE
Notes and Information
What is this course all about ??
Preview
Development board used in our courses
About MCU Development board
Preview
IDE installation
Downloading STM32CUBEIDE
Preview
Installation-Windows
Installation-Ubuntu
Embedded Target
Documents required
Creating a project using STM32CUBEIDE
Creating Hello-World project
SWV working principle
Testing Hello-World through SWV
Preview
OpenOCD and Semihosting to use printf
Embedded Code Debugging Tips and tricks
Debugging options
Single stepping
Disassembly and Register windows
Breakpoints
Expression and variable windows
Memory browser windows
Call stack and fault analyzers
Preview
Data watch-points
Preview
SFR windows
Other basic features of IDE
Understanding MCU Memory Map
Understanding Memory Map of the MCU: Part 1
Understanding Memory Map of the MCU: Part 2
Understanding Memory Map of the MCU: Part 3
MCU Bus Interfaces
MCU Bus Interfaces Explanation Part 1: I-Code/D-Code/S-Bus
MCU Bus Interfaces Explanation Part 2: AHB/APB1/APB2
MCU Bus Interfaces Explanation Part 3: Q/A session
Understanding MCU Bus Matrix
Understanding MCU Clocks and Details
Understanding MCU Clocking System:Part1
Understanding MCU Clock tree
Understanding MCU clock sources and HSE
Preview
HSI and RCC registers
Peripheral clock configuration
Exercise : HSI measurements
About USB logic analyzer
Code implementation
Exercise : HSE measurements
Understanding MCU Vector table
Understanding MCU Vector Table
Understanding MCU interrupt Design , NVIC, Interrupt handling
Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 1
Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 2
Understanding MCU interrupt Design , NVIC, Interrupt handling: Part 3
Importance of "Volatile" Keyword
Importance of "Volatile" Keyword: Part-1
Importance of "Volatile" Keyword-Part 2
Preview
GPIO Must know concepts
GPIO pin and GPIO port
GPIO behind the scene
GPIO input mode with high impedance state
GPIO input mode with pull-up/down state
GPIO output mode with open drain state
GPIO output mode with push pull state
Optimizing I/O power consumption
Preview
GPIO Programming structure and Registers
GPIO programming structure
Exploring GPIO PORT and pins of STM32F4xx Discovery board
GPIO Mode register(used to set mode for a pin)
Input configuration of a Microcontroller's GPIO Pin
Preview
Output Configuration of a GPIO Pin in Push pull mode
Output Configuration of a GPIO Pin in open drain mode
Input stage of a GPIO pin during output configuration
Alternate functionality Configuration of a GPIO pin
GPIO out put type register explanation
GPIO Registers : SPEED, PULL UP/DOWN, IDR and ODR
GPIO output speed register and its applicability
GPIO Pull up and Pull down register
GPIO input data register
GPIO output data register and summary of various modes discussed
GPIO Alternate functionality register and example of usage
Alternate functionality settings of a GPIO pin with example : Part 1
Alternate functionality settings of a GPIO pin with example : Part 1
GPIO peripheral clock control
Enabling and disabling GPIO peripheral clock
GPIO driver development overview and Project creation
GPIO driver development overview
MCU Specific header file and its contents
New project creation and creating MCU specific headerfile
Include path settings
Updating MCU specific header file with bus domain and peripheral details
Writing base address C macros for MCU's embedded memories : Part 1
Writing base address C macros for MCU's embedded memories : Part 2
Defining base addresses of different bus domains
Defining base addresses of AHB1 Peripherals
Defining base addresses of APB1 and APB2 Peripherals
Defining base addresses conclusion
Structuring peripheral registers
Address of peripheral registers
Structuring peripheral registers
Peripheral definition macros
Writing Clock enable and disable macros
Writing peripheral clock enable and disable C Macros
Project include settings and build
GPIO driver API requirements and handle structure
Creating GPIO driver header and source file
Defining GPIO handle and configuration structure
Driver API requirements and adding API prototypes
Driver API input parameters and return types
Driver empty API implementation and documentation
GPIO driver API Implementation : Clock control
Implementation of GPIO peripheral clock control API
GPIO driver API Implementation : GPIO init and de-init
Writing user configurable macros
Untitled lesson
Implementation of GPIO init API
Implementation of GPIO init API contd.
Configuring Alternate function registers
GPIO de-init API implementation
GPIO driver API Implementation : GPIO data read and write
Implementation of GPIO input port read and input pin read APIs
Implementation of GPIO output port write and output pin write APIs
Implementation of GPIO pin toggle API
Exercise
Exercise : LED toggling with PUSH PULL configuration
Exercise : LED toggling with OPEN DRAIN configuration
Exercise : Handling on board LED and Button
Exercise : Connecting external button and circuit explanation
Preview
Exercise : Testing button interface
Exercise : Button interrupt introduction
GPIO pin Interrupt configuration
GPIO pin Interrupt configuration coding : Part 1
GPIO pin Interrupt configuration coding : Part 2
GPIO pin Interrupt configuration coding : Part 3
GPIO pin Interrupt configuration coding : Part 4
GPIO pin Interrupt configuration coding : Part 5
GPIO pin Interrupt configuration coding : Part 6
GPIO pin Interrupt configuration coding : Part 7
Exercise : GPIO interrupts
Exercise : External button interrupt implementation
Exercise : Debugging the application : Part 1
Exercise : Debugging the application : Part 2
MCU I/O Pin specifications
STM32 Pin specifications
Preview
Pin current characteristics
Logic levels
SPI introduction and bus details
Introduction to SPI Bus
SPI comparison with other protocols
Importance of SPI slave select pin
SPI Minimum bus configuration
SPI behind the scene data communication principle
Preview
SPI bus configuration and functional block diagram
SPI bus configuration discussion : full duplex, half duplex and simplex
SPI functional block diagram explanation
STM32 NSS pin settings and management
NSS settings in STM32 master and slave modes
STM32 SPI hardware and software slave managements
SPI CPOL and CPHA discussion
SPI CPOL and CPHA discussion
SPI CPOL and CPHA waveform example
SPI serial clock discussion
SPI peripherals of your Microcontroller
SPI Serial clock frequency
SPI Driver : API requirements and configuration structure
SPI API requirements and configuration items
updating MCU specific header file with SPI related details
SPI adding API prototypes to driver header file
SPI Driver API Implementation : Clock control
Implementation of SPI peripheral clock control API
SPI Driver API Implementation : SPI init
SPI user configuration options writing and register bit definition macros
Implementation of SPI init API : Part 1
Implementation of SPI init API : Part 2
SPI Driver API Implementation : Send Data
Implementation of SPI send data API : Part 1
Implementation of SPI send data API : Part 2
Implementation of SPI send data API : Part 3
Implementation of SPI send data API : Part 4
Exercise : SPI Send Data
Exercise to test SPI Send Data API
Finding out microcontroller pins to communicate over SPI2
Exercise : Code implementation : Part 1
Exercise : Code implementation : Part 2
Exercise : Code implementation : Part 3
Exercise : Testing
Exercise : STM32 master and Arduino Slave communication
Exercise : Communicating with Arduino slave
Exercise : Coding Part 1
Exercise : Coding Part 2
Exercise : Coding Part 3
Exercise : Testing
Preview
SPI Driver API : Receive data
Implementation of SPI data receive API : Part 1
Implementation of SPI data receive API : Part 2
Exercise : SPI receive data
Exercise : SPI command and response based communication
Exercise : Coding Part 1
Exercise : Coding Part 2
Exercise : Coding Part 3
SPI interrupts
SPI peripheral interrupting the processor
SPI interrupt mode APIs
SPI interrupt mode API implementation and changes to handle structure
SPI send data with interrupt API implementation
SPI receive data with interrupt implementation
SPI Driver API : IRQ handling
SPI : Handling of interrupts
SPI IRQ handler implementation : Part 1
SPI IRQ handler implementation : Part 2
SPI IRQ handler implementation : Part 3
Exercise
Common problems in SPI
Common problems in SPI and Debugging Tips
I2C introduction and I2C signals
I2C introduction and differences with SPI
I2C SDA and SCL signals
I2C modes
I2C standard and fast mode
Understanding I2C Protocol
I2C Protocol explanation
Preview
I2C START and STOP conditions
Preview
I2C ACK and NACK
I2C Data validity
I2C master and slave communication
Example of master writing to slave
Understanding repeated START condition
STM32 I2C functional block diagram
I2C functional block diagram
I2C driver API requirements and config structures
I2C driver API requirements
I2C handle and configuration structure
I2C user configurable macros
I2C API prototypes
Steps for I2C init implementation
I2C serial clock discussion(SCLK)
I2C serial clock settings with explanation
Clock Stretching
I2C Driver API : I2C Init
Implementation of I2C init API : Part 1
Implementation of I2C init API : Part 2
Implementation of I2C init API : Part 3
I2C Driver API : I2C Master send data
I2C transfer sequence diagram for master sending data
Implementation of I2C master sending data API : Part 1
Implementation of I2C master sending data API : Part 2
Implementation of I2C master sending data API : Part 3
Implementation of I2C master sending data API : Part 4
Implementation of I2C master sending data API : Part 5
I2C pull up resistance , rise time and bus capacitance
I2C pull up resistance , rise time and bus capacitance discussion
I2C rise time calculation
Exercise
Exercise : Introduction
Exercise : Coding Part 1
Exercise : Coding Part 2
Exercise : Testing
I2C Driver API : I2C Master receive data
I2C transfer sequence diagram for master receiving data
Assignment : I2C master receive data API implementation
Implementation of I2C master receive data API : Part 1
Implementation of I2C master receive data API : Part 2
Exercise
Exercise : Reading data from the I2C slave
Exercise : Coding Part 1
Exercise : Coding Part 2
Exercise : Coding Part 3
Exercise : Testing repeated start
I2C Interrupts and IRQ numbers
I2C IRQ and interrupt discussion
I2C errors and importance of BUSY flag
I2C handle structure modification
I2C adding interrupt related macros and interrupt APIs
I2C interrupt based APIs
Assignment : I2C interrupt APIs implementation
Implementation of I2C interrupt based APIs
I2C IRQ handler implementation
I2C IRQ handler implementation Part 1
I2C IRQ handler implementation Part 2
I2C IRQ handler implementation Part 3
I2C IRQ handler implementation Part 4
I2C IRQ handler implementation Part 5
I2C IRQ handler implementation Part 6
I2C IRQ handler implementation Part 7
I2C IRQ handler implementation Part 8
I2C error IRQ handler implementation
Exercise
Exercise : Testing I2C interrupt APIs part 1
Exercise : Testing I2C interrupt APIs part 2
I2C slave programming
I2C slave programming discussion
I2C transfer sequence diagram for slave transmitter
I2C slave support in driver
Exercise
Exercise : I2C slave programming
Exercise : Coding Part 1
Exercise : Testing
Exercise : Modifying I2C transactions
Common problems in I2C
Common Problems in I2C and Debugging Tips
UART Essentials
Intro UART vs USART
Understanding UART pins
UART frame formats
Baud Rate
Synchronization bits
UART Parity
UART functional block and Peripheral Clock
Exploring UART functional block
UART peripheral clock
UART Communication
UART Transmitter
Uart Receiver
USART driver development
USART driver development confiugrable items
USART driver APIs prototypes
Configuration options and USART registers
USART Driver API : USART Init
USART Driver API : Tx and Rx assignment
USART Driver API : Send data
USART oversampling and baudrate
USART oversampling
USART Baud rate calculation Part-2
USART Baud rate calculation Part-2
USART baudrate coding
Exercise
Exercise : USART send data to arduino
Preview
communicating with PC over UART
USART interrupts
USART interrupt discussion
Exercise
Exercise : RTC on LCD
Real time clock on LCD
Preview
DS1307 RTC registers
Preview
RTC code implementation
RTC coding for set time and date
RTC coding for get time and date
BCD and Binary manipulation functions
Writing RTC application
RTC and Systick
LCD connections
Significance of LCD pins
LCD initialization
Preview
LCD initialization flowchart
Sending command and data to LCD
Creating LCD command code
Testing
BONUS LECTURE
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