>> Your Search for an in-depth microcontroller programming course ends here . <<<
Course code: MCU1
Learn bare-metal driver development using Embedded C : Writing drivers for
Update 6: videos are updated with the latest
Update 4: Dedicated support team is assigned to address student's Q/A
Update 3: English Closed captions are fixed
Update 2 : Added Bus matrix / memory map /vector table /interrupt design discussion with code examples.
Update 1: Eclipse IDE setup for ARM Cortex M based MCUs added
The course is designed for beginners to advanced audiences.
>> Your Search for an in-depth microcontroller programming course ends here . <<<
Course code: MCU1
Learn bare-metal driver development using Embedded C : Writing drivers for
Update 6: videos are updated with the latest
Update 4: Dedicated support team is assigned to address student's Q/A
Update 3: English Closed captions are fixed
Update 2 : Added Bus matrix / memory map /vector table /interrupt design discussion with code examples.
Update 1: Eclipse IDE setup for ARM Cortex M based MCUs added
The course is designed for beginners to advanced audiences.
Brief Description:
This course Demystifies the internal working of the Microcontroller and its Peripherals.
Coding for the Peripherals STEP-BY-STEP and Developing software drivers entirely 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 complex field, there's no actual 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 connect the dots.
This is the motivation behind creating this course to help engineers and students learn different aspects of embedded systems by providing high-quality advanced lectures at a relatively low price.
Master Behind the Scene working;
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 will learn to write your peripheral driver for most commonly used peripherals such as GPIOs, and the exciting thing is that you will learn everything from scratch.
No 3rd party libraries.
No blind coding.
Write your 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 procedures on configuring various Peripherals like GPIOs 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 learn something new to use in your work or projects. You'll find yourself handling these peripherals with much more clarity. You will be able to speculate and debug the problem quickly. I'll show you tricks and tips to debug the most common issues using debugging tools such as logic analyzers.
This is not the Arduino style of programming:
I believe Arduino is for quick prototyping of projects/products but not for mastering the working of micro-controllers and their peripherals. Unlike Arduino programming, where you develop 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 will create our own library. The Power of this approach is that you can quickly speculate problems and debug like a pro when things go wrong in your project due to bugs. If one thing me and my students are good at is "debugging,." To achieve good debugging skills, it's essential to code by understanding how things work behind the scene but not by blindly using some third-party libraries, and that's the biggest TAKE away from this course.
The course is designed and explained so that it is generic across any microcontroller. The code we develop can be used as templates to quickly build a peripheral driver for your MCUs on-chip peripherals.
Software/Hardware used:
In this course, the code is developed so that it can be ported to any MCU you have at your hand. If you need any help 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 that runs with an ARM-Cortex M3/M4 processor, I recommend you continue using it. But if you don't have any development boards, then check out the below Development boards.
1. I will personally answer your questions about this material, either privately or in a group discussion. If you are 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(ARM Cortex M4 Processor specific)
3) Mastering Microcontroller with Embedded Driver Development(MCU1)
4) Mastering Microcontroller: TIMERS, PWM, CAN, RTC,LOW POWER(MCU2)
5) Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL(MCU3)
6) Embedded System Design using UML State Machines(State machine)
7) Mastering RTOS: Hands-on FreeRTOS and STM32Fx with Debugging(RTOS)
8) ARM Cortex M Microcontroller DMA Programming Demystified(DMA)
9) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)
10) Embedded Linux Step by Step using Beaglebone Black(Linux)
11) Linux device driver programming using Beaglebone Black(LDD1)
This lecture gives complete overview about the course !
Watch this full, before deciding to take this course .. It is available for free preview
For STM32F4O7xx discovery, the width of the system bus is ____
A quick explanation about GPIO pin and GPIO Port of a Microcontroller to get started.
Ahh. This is a very important lecture, where You will come to know, whats the behind the scene implementation of an I/O pin in the MCU. Understanding behind the scene implementation is very important to know how GPIOs actually behave.
you will also come know I/O input and output mode, input and output mode buffers associated with an I/O pin which gets activated as per the mode selection
In this Lecture I will explain about GPIO input mode with HI-Z or high impedance state configuration .
you will understand , what exactly HI-Z state is !
In this lecture, You will understand GPIO input mode with pull up or pull down state.
you will come to know about pull up and pull down resistors and whats their importance.
This is a very important lecture where you will come to know, what exactly is open drain state, What is its advantages , How to use open drain configuration in a practical scenarios like Driving LEDs or I2C bus implementation.
I will also show you , how to make use of open drain output mods by using internal or external pull-up resistors.
In this lecture you will come to know GPIO output mode with push pull configuraion.
I will talk about push pull configuration in detail and some practical use cases like driving LEDs from push pull state.
if you ever heard that by keeping pin floating you may be wasting power through I/Os, In this lecture lets see
how current gets leaked out through I/O pin during different configurations and how to solve it
In this lecture, in general i will talk about typical gpio programming structure in a Microcontroller.
Lets see how many GPIO ports our MCU supports and How many ports are brought out on the development board.
In this lecture lets explore about GPIO Output Type register which is used to select the output type for an I/O pin. I will walk you through this register by taking you to the technical reference manual of the MCU.
In this lecture you will come know the significance of GPIO speed register which controls the I/O transition .
All modern day MCUs has this register to control the speed parameter .
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.