Mastering Microcontroller and Embedded Driver Development

BY
Udemy

Learn how to use microcontrollers to perform simple and complicated procedures, as well as how to create embedded drivers from the ground up.

Mode

Online

Fees

₹ 3099

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
₹ 3,099
certificate availability

Yes

certificate providing authority

Udemy

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.

The syllabus

Notes and Information

  • About the instructor
  • Important Note
  • Source Code and Slides
  • Rating and Review

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

Mr Kiran Nayak
Instructor
Freelancer

Trending Courses

Popular Courses

Popular Platforms

Learn more about the Courses

Download the Careers360 App on your Android phone

Regular exam updates, QnA, Predictors, College Applications & E-books now on your Mobile

Careers360 App
150M+ Students
30,000+ Colleges
500+ Exams
1500+ E-books