- About the instructor
- Important Note
- Source Code and Slides
- Rating and Review
Mastering Microcontroller and Embedded Driver Development
Learn how to use microcontrollers to perform simple and complicated procedures, as well as how to create embedded drivers from the ground up.
Online
₹ 449 3,199
Quick facts
particular | details | |
---|---|---|
Medium of instructions
English
|
Mode of learning
Self study
|
Mode of Delivery
Video and Text Based
|
Course overview
Mastering Microcontroller and Embedded Driver Development online certification course is created by FastBit Embedded Brain Academy, a learning platform focused on firmware and embedded engineering in partnership with Kiran Nayak - Embedded Software Engineer, which is offered by Udemy and is aimed at students who want to start a career in embedded systems. Mastering Microcontroller and Embedded Driver Development online courses are intended to assist engineers and students in learning many areas of embedded systems by providing superior comprehensive lectures from the ground up.
Mastering Microcontroller and Embedded Driver Development online classes feature more than 28.5 hours of hands-on lectures along with 9 articles and 23 downloadable materials that cover techniques for stage process coding for peripherals and developing software drivers completely from scratch obtaining the data from reference manuals and datasheets. Students will be able to create an entirely new functional driver program, interrupt controllers, and prototype applications from scratch by the end of this course.
The highlights
- Certificate of completion
- Self-paced course
- 28.5 hours of pre-recorded video content
- 9 articles
- 23 downloadable resources
Program offerings
- Online course
- Learning resources. 30-day money-back guarantee
- Unlimited access
- Accessible on mobile devices and tv
Course and certificate fees
Fees information
certificate availability
certificate providing authority
What you will learn
After completing the Mastering Microcontroller and Embedded Driver Development certification course, students will gather knowledge of the fundamentals of microcontrollers and embedded drivers. Students will learn about the methodologies used in driver development as well as how to work with MCU peripherals. Students will gain an understanding of MCU data sheets, serial protocols, APB bus protocols, MCU clocks, clock sources, logic analyzer, and vector tables, as well as the functionalities of MCU clocks, clock sources, logic analyzer, and vector tablets. Students will also learn how to debug, prototype APIs, and work with peripherals such as IRQs, NVIC interfaces, and MCU bus interfaces.
Who it is for
The syllabus
Notes and Information
Development board used in our courses
- About MCU Development board
Hardware/Software Requirements
- Hardware/Software Requirements
IDE installation
- Downloading STM32CUBEIDE
- 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
- 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
- Data watch-points
- 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
- Test your understanding
- 1 question
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
- Test your understanding
- 1 question
Understanding MCU Clocks and Details
- Understanding MCU Clocking System:Part1
Understanding MCU Clock tree
- 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 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
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
- Test your understanding
- 1 question
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
- 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
- Request for Review
- Find Out I/O Alt Functionality
- 1 question
- Test your understanding
- 1 question
- Test your understanding
- 1 question
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
- Important note on IDE usage
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
- 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
- Exercise : Testing button interface
- Exercise : Button interrupt introduction
- Exercise : Introduction
- Exercise : Coding Part 1
- Exercise : Coding Part 2
- Exercise : Testing
- Exercise : Reading data from the I2C slave
- Exercise : Coding Part 1
- Exercise : Coding Part 2
- Exercise : Coding Part 3
- Exercise : Testing repeated start
- Exercise : Testing I2C interrupt APIs part 1
- Exercise : Testing I2C interrupt APIs part 2
- Exercise : I2C slave programming
- Exercise : Coding Part 1
- Exercise : Testing
- Exercise : Modifying I2C transactions
- Exercise : USART send data to arduino
- communicating with PC over UART
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
- 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
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
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
- I2C START and STOP conditions
- I2C ACK and NACK
- I2C Data validity
- Quiz SPI and I2C
- 3 questions
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
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
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
I2C slave programming
- I2C slave programming discussion
- I2C transfer sequence diagram for slave transmitter
- I2C slave support in driver
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
- UART Start bit Detection
- 1 question
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
USART interrupt
- USART interrupt discussion
- Exercise
Exercise : RTC on LCD
- 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
- BONUS LECTURE
Instructors
Mr Kiran Nayak
Instructor
Freelancer