Mastering Microcontroller DMA programming for Beginners

Kiran N, Embedded Software and Firmware Engineer

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
57 Videos (7h 59m)
    • Course Promo

      2:08
    • DMA Introduction: Master – Slave Communication

      16:01
    • Understanding MCU Block Diagram

      9:14
    • Understanding Multi AHB Bus Matrix

      12:37
    • Concurrent Data Transfer using ARM and DMA

      5:58
    • Concurrent Data Transfer using ARM and DMA-Demonstration

      14:22
    • Concurrent Data Transfer using ARM and DMA-Demonstration contd

      7:13
    • STM32CubeMX Installation

      4:12
    • Creating Projects using STM32CubeMX Part-1

      17:09
    • Creating Projects using STM32CubeMX-Part 2

      4:19
    • Creating Projects using STM32CubeMX-Part 3

      6:55
    • Creating Projects using STM32CubeMX-Part 4

      2:01
    • DMA Programming : Generic Steps to follow

      4:30
    • Toggling of LED using DMA(Polling mode)-Part-1

      4:42
    • Toggling of LED using DMA(Polling mode)-Part-2

      6:15
    • Toggling of LED using DMA(Polling mode) - Part-3

      17:29
    • Toggling of LED using DMA(Polling mode)-Part-4

      1:17
    • Toggling of LED using DMA (Interrupt Mode)- Part 1

      9:07
    • Toggling of LED using DMA (Interrupt Mode)- Part 2

      9:14
    • 14 UART to SRAM Data Transfer using DMA (Interrupt Mode) Big Picture

      9:52
    • 15 UART to SRAM Data Transfer using DMA (Interrupt Mode) Implementation part 1

      14:20
    • 16 UART to SRAM Data Transfer using DMA (Interrupt Mode) Implementation part 2

      6:58
    • 17 DMA Functional Block Master Slave Ports

      6:41
    • 18 DMA Functional Block Streams

      7:51
    • 19 DMA channel mapping

      9:16
    • 20 DMA Channel Mapping Case Study1 P2M

      4:18
    • 21 DMA Channel Mapping Case Study2 M2M M2P

      4:41
    • 22 DMA Exercise ADC to SRAM Big Picture

      5:04
    • 23 DMA Exercise ADC to SRAM code gen 1

      12:07
    • 24 DMA Exercise ADC to SRAM code gen 1=2

      11:25
    • 25 DMA Exercise ADC to SRAM code gen 3

      8:58
    • 26 DMA arbiter stream prio

      4:39
    • 27 P2M Data Transfer Direct FIFO mode

      12:39
    • 28 M2P Data Transfer Direct FIFO mode

      4:25
    • 29 DMA Exercise SRAM to UART2 TX

      4:12
    • 30 DMA Exercise SRAM to UART2 TX 2

      13:13
    • Introduction

      4:03
    • M2P Data Transfer : Project creation

      7:28
    • Button Init steps to Receive an interrupt

      5:07
    • Coding for Button init Part-1

      10:17
    • Coding for Button init Part-2

      6:54
    • Coding for Button init Part-3

      9:53
    • Implementing Button interrupt handler

      13:32
    • Discussing steps to configure the UART Peripheral

      4:04
    • UART PINMUX configuration settings

      9:15
    • code to bring out UART TX RX functionality on gpio pins

      10:15
    • Setting up Baudrate and Configuring UART parameters

      8:57
    • Testing UART communication

      8:04
    • Brainstorming DMA Initialization Steps

      6:46
    • Identifying the DMA stream

      14:08
    • Configuring DMA Stream direction and data width

      5:25
    • Configuring Channel Selection

      10:11
    • Testing with UART TX DMA request

      6:56
    • DMA stream interrupt(IRQ) discussion Part1

      5:10
    • DMA stream interrupt(IRQ) discussion Part2

      14:12
    • Coding DMA stream IRQ handler : Part1

      7:19
    • Coding DMA stream IRQ handler : Part2

      15:25

About This Class

How this course will benefit you ?

  • DMA register level programming , configuration using DMA registers
  • Fundamentals of Direct Memory Access in a Microcontroller
  • The Microcontroller Architecture and Bus interfaces
  • Bus matrix of the ARM cortex M based MCU
  • Concurrent data access from ARM and DMA
  • DMA control configurations like burst size, FIFO, Alignment
  • DMA Controller internals and Bus interfaces
  • DMA Controller channels,Streams,priority
  • Memory to Memory data transfer using DMA and Exercises
  • Peripheral to Memory and Memory to Peripheral DMA and Programming exercises
  • Peripheral DMA configurations
  • DMA controller interrupts and interrupts handling
  • Debugging

The Course aims to demystify the Micro-controller DMA controller internals and its programming with various peripherals. Suitable for beginners to intermediate students in the Field of Embedded Systems and programming. Please go through the description below to understand about the course offering.

Key things you will learn, 

1) The Multi AHB bus matrix and ARM Cortex M Bus interfaces 

2) MCU Master and Slave communication over bus matrix 

3) DMA internals: channel mapping / streams/ fifo /Master ports / Arbiter/etc

4) DMA different transfer modes: M2P, P2M,M2M

5) DMA with peripherals like ADC, GPIO, UART_RX/TX and many other peripherals will be updated in this course. 

6) DMA programming from scratch. Helps you to troubleshoot DMA issues on other microcontroller or processor platforms. You can speculate and debug problems more quickly when you learn the hard way. 

7) And lots of other videos about circular mode/burst transfer /RTOS etc. will be added shortly.

Hardware used:

1) STM32F446RE Nucleo64 board

you can also use other STM32 boards such as discovery board, evaluation board or any other board. 

Software used:

1) KEIL MDK V5 (free version, for windows)

2) Openstm32 system workbench ( windows/linux/mac) (free)

3) CubeMx software from ST (free)

Installation procedure is covered in the course 

Description:

This course is all about understanding Direct Memory Access Controller of the Microcontroller and how to use it in the embedded applications.

The course uses ARM cortex M based  STM32 Microcontroller for all theory discussion and code exercises. The course discusses generic details of the DMA which you can leverage to other Microcontrollers but you have make changes to the code in order to run on your target if its not a ST's 32 bit Microcontroller. 

The course will help you to rise your confidence in handing your MCU's DMA controller and connecting dots by going through the various levels of discussions . 

I really tried to simply the subject with clean / generic explanations and exercises.

We will discuss why DMA is required and how it benefits ARM to offload data transfer work with exercises. 

We will learn different types of DMA transfers like M2M , P2M and M2P (M: Memory  P:Peripheral) and various DMA configurations . Please go through "How this course will benefit you ?" section above.

For the beginners/intermediate students the course will indeed add huge advantage and helps to use DAM successfully in Embedded applications. 

Tags :
ARM Cortex M, DMA,STM32,KEIL,System32 workbench,CubeMX

6

Students

--

Projects

0

Reviews (0)

Kiran N

Embedded Software and Firmware Engineer

Hello, I'm Kiran , An Embedded Software Developer having 12+ years of experience in the field of Embedded Software Development, Low Power Wireless Protocols, RTOS and Embedded Linux. I have worked on the projects like Porting Embedded Linux and Android to TI OMAP and Sitara family of processors based custom boards , device driver development for Zigbee Transceivers,  BT SDK development , RTOS porting etc. I am interested in teaching Embedded Software engineering in a very simple and unde...

See full profile

Technology IT Security Microcontroller