Mastering Microcontroller with Embedded Driver Development
4.5 (4,193 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
22,232 students enrolled

Mastering Microcontroller with Embedded Driver Development

Learn bare metal driver development systems using Embedded C: Writing drivers for STM32 GPIO,I2C,SPI,USART from scratch
Bestseller
4.5 (4,193 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
22,232 students enrolled
Last updated 5/2020
English
English, French [Auto-generated], 10 more
  • German
  • Indonesian
  • Italian [Auto-generated]
  • Japanese
  • Polish [Auto-generated]
  • Portuguese [Auto-generated]
  • Romanian
  • Spanish [Auto-generated]
  • Thai
  • Turkish
Current price: $23.99 Original price: $34.99 Discount: 31% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 24.5 hours on-demand video
  • 8 articles
  • 22 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Understand Right ways of Handling and programming MCU Peripherals
  • Develop Peripheral drivers for your Microcontroller
  • Understand complete Driver Development steps right from scratch for GPIO,SPI,I2C and USART.
  • Learn Writing peripheral driver headers, prototyping APIs and implementation
  • Explore MCU data sheets, Reference manuals, start-up Codes to get things done
  • Learn Right ways of handling/configuring Interrupts for various peripherals
  • Learn about Peripheral IRQs/Vector table/NVIC interfaces and many
  • Learn about Configuration/status/Control registers of various Peripherals
  • Demystifying behind the scene working details of SPI,I2C,GPIOs,USART etc.
  • Explore hidden secretes of MCU bus interfaces, clock sources, MCU clock configurations, etc.
  • Understand right ways of enabling/configuring peripheral clocks/serial clocks/baud rates of various serial protocols
  • Learn about MCUs AHB, APB bus protocols
  • Learn about different MCU clocks like HCLK, PCLK, PLL,etc
  • Learn to capture/decode/analyze traces of serial protocols on Logic analyzer
  • Learn about Quick ways of debugging peripheral issues with case studies
Requirements
  • Basic knowledge of C programming
  • If you are completely new to MCU and C programming language then you are advised to finish our "Embedded C" course for absolute beginners first
Description

>> Your Search for In-depth Micro-controller Programming Course ends here !!<<<

Learn bare metal driver development using Embedded C : Writing drivers for STM32 GPIO,I2C,SPI,USART  from scratch


English Subtitles/CCs are enabled for this course

Update 6 (Dec /2019) : videos are updated with latest STM32CUBEIDE

Update 5 (May/2019): All drivers are developed in live session with step by step coding and added stm32-arduino communication exercises using SPI and I2C.

Update 4 (Nov/2018): Dedicated support team is assigned to address student's Q/A

Update 3 (Oct/2018) : English Closed captions are fixed

Update 2 (04/Dec/2017) : Added Bus matrix / memory map /vector table /interrupt design discussion with code examples.

Update 1 (26/sep/2017): Eclipse IDE setup for ARM Cortex M based MCUs added


The course is designed for Beginners to Advanced audience.


Brief Description

This Course Demystifies the internal working of the Micro-controller and its Peripherals.
Coding for the Peripherals STEP-BY-STEP and Developing software drivers completely from scratch by extracting maximum information from Datasheets, Reference manuals, specs, etc

Protocol Decoding Using logic analyzers, Debugging, Testing along with Hints and Tips.


Long Description:

Learning Embedded System Programming can be a challenge. Since it's a relatively little complex field, there's no real gold standard yet for how things are practiced, or taught, which can frustrate people who are just trying to learn new things and couldn’t able to connect the dots and this is the motivation behind creating this course to help engineers and students to learn different aspects of embedded systems by providing high-quality advanced lectures with relatively low price.Learn at your own pace using the progressive method, with each of my short, info-packed lectures.


Master Behind the Scene working!I

created this course because I believe your time is precious, and you shouldn't have to hunt around to get a practical foundation In Embedded System Programming. In this course, you are going to learn writing your own peripheral driver for most of the commonly used peripherals such as GPIOs, I2C, SPI, USART, etc. and interesting thing is that you are going to learn everything from scratch.

No 3rd party libraries!

No blind coding!

Write your own Driver APIs by dealing with the Peripheral Registers of the MCU!

Code and Implement APIs from scratch, diving into the datasheet and reference manual of the MCU. I will thoroughly explain how to extract the maximum information from datasheets, Technical Reference manuals to configure and handle peripherals. These techniques you can go and apply to any MCUs you have at your hand.

In this course, I will walk you through step by step procedure how to Configure various Peripherals like GPIOs, SPI, USART, I2C by taking you into the reference manual and data sheet. We will develop a fully working driver code, interrupt handlers, sample application everything from scratch to understand the big picture.

In each lecture, I assure you that, you will definitely learn something new that you can definitely use in your work or projects. You'll find yourself handling these peripherals with much more clarity and you will be able to quickly speculate and debug the problem and I’ll show you tricks and tips to debug the most common problems using debugging tools such as logic analyzers.


This is not Arduino Style of programming!

I believe Arduino is for quick prototyping of products but not for Mastering Working of micro-controllers and its peripherals.Unlike Arduino programming where you come up with a quick solution and prototyping of products using third-party libraries, this course is entirely different. In this course, no 3rd party libraries are used. Everything we will code by referring to the Technical reference manual of the MCU and create our own library. The Power of this approach is when things go wrong in your project work due to bugs, you can quickly able to speculate problem and debug like a pro. If one thing me and my students are good at is "debugging". To achieve good debugging skills its very important you code by understanding how things work behind the scene but no by just blindly using some third party libraries and that’s the biggest TAKE away from this Course.

The course is designed and explained in such a way that, it is generic across any kind of microcontroller. The code we develop can be used as templates to quickly come with a peripheral driver for your MCUs on-chip peripherals.


Software/Hardware used:

In this course, the code is developed such a way that, It can be ported to any MCU you have at your hand. If you need any help in porting these codes to different MCUs you can always reach out to me! The course is strictly not bound to any 1 type of MCU. So, if you already have any Development board which runs with ARM-Cortex M3/M4 processor, then I recommend you to continue using it. But if you don’t have any Development board, then check out the below Development boards.


1.  STM32F407xx based Discovery board ( This is the board used in this course )

MCU Vendor: STMicroelectronics


IDE : STM32CUBEIDE (Free)


My promise!

I am confident that this course will save you many, many hours of studying/experimenting/googling time to learn about Programming the MCU. I will personally answer your questions about this material, either privately or in a group discussion. If you are in any way not satisfied, for any reason, you can get a full refund from Udemy within 30 days. No questions asked. But I am confident you won't need to. I stand behind this course 100% and am committed to helping you.


Learning order of FastBit Embedded Brain Academy Courses,

If you are a beginner in the field of embedded systems, then you can take our courses in the below-mentioned order.
This is just a recommendation from the instructor for beginners.

1) Microcontroller Embedded C Programming: absolute beginners(Embedded C)

2) Embedded Systems Programming on ARM Cortex-M3/M4 Processor(Optional )(ARM Cortex M4 Processor specific)

2) Mastering Microcontroller with Embedded Driver Development(MCU1)

3) Mastering Microcontroller: TIMERS, PWM, CAN, RTC,LOW POWER(MCU2)

4) Mastering RTOS: Hands-on FreeRTOS and STM32Fx with Debugging(RTOS)

5) ARM Cortex M Microcontroller DMA Programming Demystified(DMA)

6) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)

7) Embedded Linux Step by Step using Beaglebone Black(Linux)



Who this course is for:
  • Professionals interested in exploring Embedded systems
  • Hobbyists and students who want to start their career in Embedded world
  • If you think about 'embedded' then think about taking this course. you will not be disappointe
  • This Course may not be suitable for those people who are looking for quick prototyping using boards such as Arduino
Course content
Expand all 260 lectures 24:22:32
+ Notes and Information
3 lectures 01:17
Important Note
00:43
Source Code
00:02
Rating and Review
00:32
+ Hardware/Software Requirements
1 lecture 00:05
Hardware/Software Requirements
00:05
+ IDE installation
5 lectures 09:55
Downloading STM32CUBEIDE
01:39
Installation-Windows
00:43
Installation-Ubuntu
02:01
Embedded Target
02:48
Documents required
02:44
+ Creating a project using STM32CUBEIDE
4 lectures 30:31
Creating Hello-World project
09:53
SWV working principle
09:07
OpenOCD and Semihosting to use printf
05:59
+ Embedded Code Debugging Tips and tricks
10 lectures 59:24
Debugging options
04:55
Single stepping
10:18
Disassembly and Register windows
03:48
Breakpoints
06:17
Expression and variable windows
04:32
Memory browser windows
07:56
SFR windows
04:42
Other basic features of IDE
04:59
+ Understanding MCU Memory Map
3 lectures 16:45
Understanding Memory Map of the MCU: Part 1
05:10
Understanding Memory Map of the MCU: Part 2
03:04
Understanding Memory Map of the MCU: Part 3
08:31
Test your understanding
1 question
+ MCU Bus Interfaces
4 lectures 39:19
MCU Bus Interfaces Explanation Part 1: I-Code/D-Code/S-Bus
13:21
MCU Bus Interfaces Explanation Part 2: AHB/APB1/APB2
08:13
Understanding MCU Bus Matrix
06:19

For STM32F4O7xx discovery, the width of the system bus is ____

Test your understanding
1 question
+ Understanding MCU Clocks and Details
1 lecture 05:57
Understanding MCU Clocking System:Part1
05:57
+ Understanding MCU Clock tree
7 lectures 01:10:15
HSI and RCC registers
11:24
Peripheral clock configuration
12:39
Exercise : HSI measurements
08:34
About USB logic analyzer
05:33
Code implementation
12:22
Exercise : HSE measurements
08:39