ARM Cortex M4 Driver using Python

Course Content

Embedded Python on ARM Cortex M4 Processor

Python Essential Training

 Setting Up Python

 Printing a Statement

 Working with Variables

 Working with Lists

 Experimenting with Arithmetic Operators

 Working with Conditions

 Working with Loops

 Working with Functions

 Dictionaries

 Implementing Classes

 Adding more Methods to the Class

 Understanding the Class Init Method

 Inheriting from a Class

 More on Inheritance

Setting Up MicroPython

 Getting the Required Tools

 Installing the Required Tools

Getting Started with MicroPython

 Accessing the Microcontroller using a Terminal

 Accessing the Microcontroller using rshell

 Setting an IDE for MicroPython Development

 Getting the Required Documentation for STM32 Development

Bare-Metal Embedded MicroPython Development

 Analyzing the Peripheral and Buses in the Documentation

 Constructing the Memory Address

 Developing the Bare-Metal Driver

General Purpose Input/Output(GPIO)

 Overview of ARM Cortex-M General Purpose Input/Output Module

 Developing the GPIO Output Driver using Direct Register Access

 Developing the GPIO Input Driver using Direct Register Access

 Exploring the MicroPython GPIO Class

 Developing the GPIO Output Driver

 Developing the GPIO Input Driver

General Purpose Timers

 Understanding STM32 Timers

 Implementing Background Threads using Timers

 Generating Precise PWM Signals using Timers

 Generating Precise PWM Signals of changing Dutycycles

 Developing the Timer Output Compare Driver

 Developing the Timer Input Capture Driver

Watchdog Timers (WDG)

 Developing the Watchdog Timer Driver

Realtime Clocks (RTC)

 Developing the RealtimeClock Driver

Analog to Digital Conversion (ADC)

 Introduction to Analog to Digital Conversion

 Analyzing the ADC Documentation

 Implementing the ADC Driver using Direct Register Access

 Developing the ADC Driver

 Developing the ADC Periodic Sampling Driver

 Reading Internal Channels: Temperature, VBAT, VREF

Universal Asynchronous-Synchronous Receiver-Transmitter (USART)

 Overview of the UART Protocol

 Developing the UART Transmit(TX) Driver

 Developing the UART Receive(RX) Driver

External Interrupt (EXTI) Programming

 Understanding Interrupts

 Developing the External Interrupt (EXTI) Driver

Serial Peripheral Interface (SPI) Driver Development

 Understanding the SPI Protocol

 Developing the SPI Driver- Analyzing the Slave Device (ADXL345)

 Implementing the SPI Read function

 Implementing the SPI Write function

 Implementing the slave intialization function

 Testing the ADXL345 SPI Driver

Inter- Integrated Circuit (I2C) Driver Development

 Understanding the I2C Protocol

 Developing the I2C Driver – Scanning the Bus for connected Slaves

 Implementing the I2C Read function

 Implementing the I2C Write and Initialization functions

 Testing the ADXL345 I2C Driver

Power Management Drivers

 Developing the Sleep Mode Driver

 Developing the Stop Mode Driver

 Developing the Standby Mode Driver

Mixing Assembly Code with MicroPython

 MicroPython Inline Assembly Basics

 Working with Branching and Looping Instruction

 Developing a GPIO Driver with Inline Assembly

Know your Instructor

Meet Rahul, our esteemed instructor with over 18 years of expertise spanning diverse industries. His extensive 
background includes stints in consumer electronics, process automation, automotive, medical devices, storage products,  and more. Rahul’s wealth of experience from renowned organizations like Hyundai, Emerson, Seagate, Philips, and Belden enriches his teachings, offering invaluable real-world insights and practical wisdom in IoT and Embedded Systems training.

Live Sessions

Duration 1 month

1 Hour Everyday

Next Batch 15th February – 15th March
8:00 PM to 9:00 PM