Skip to content
0:00 / 0:00

#stm32#dma#i2s

(Sponsored) STM32 I2S ADC DMA & Double Buffering - DSP with STM32 #4 - Phil's Lab #55

Phil’s Lab

246K subscribers • 3 videos on Hallway

YouTube
  • Recommended by 1 person: 1 in engineering communities.

Intermediate. Assumes working knowledge.

80K views4 years ago1 recommendation

Systems programmingHardwareEmbedded systemsPerformance and optimization

Phil explains how to configure STM32 firmware for I2S and ADC with DMA, and implement double buffering for real-time audio processing.

Mixed-signal hardware design course: phils-lab-shop.fedevel.education How to set up firmware for I2S with DMA, ADCs with DMA triggered at a fixed sample rate by timers, basic driver for the audio codec, and how to efficiently process audio data using double buffering. "Pre-cursor" to previous videos on real-time digital processing (DSP) of audio data using an STM32 microcontroller in C on custom audio-processing hardware. (AD: This video includes a paid promotion for JLCPCB and Altium.) [SUPPORT] Free trial of Altium Designer: altium.com/yt/philslab (AD) PCBA from $0 (Free Setup, Free Stencil): jlcpcb.com/RHS (AD) Patreon: patreon.com/phils94 [LINKS] DSP Playlist: youtube.com/playlist?list=PLXSyc11qLa1ZCn0JCnaaXOWN6Z46rK9jd STM32 Playlist: youtube.com/playlist?list=PLXSyc11qLa1a4Tqbz228dPZfMrs-KRpzA First DSP Video: youtu.be/VDhmVrbSpqA GitHub: github.com/pms67 Double buffering article: eetimes.com/fundamentals-of-embedded-audio-part-3/ [TIMESTAMPS] Introduction Hardware Overview JLCPCB (Ad) Altium Designer Free Trial (Ad) STM32CubeIDE Project, Pinout, and Clock I2S and DMA Set-Up Double Buffering Implementation (I2S + DMA, Double Buffering) Codec Set-Up (I2C) ADC + DMA + Timer Outro ID: QIBvbJtYjWuHiTG0uCoK

Why it's here

1 person recommends this

What people say. Recommended for learning how to process ADC data efficiently using DMA and double buffering on STM32 microcontrollers.

u/icecatsin r/embedded • Recommends

How to process ADC data as fast as it is stored via DMA STM32? Hi, As an intro project, I am trying to create a simple oscilloscope-like device with STM32 (using NUCLEO-L476RG board). I am piping ADC data to memory via DMA ~~and have measured the speed at \~4 MHz~~ (edit: I'm now using a timer to trigger the ADC to sample at 1 MHz). I am using a double buffer and would like to process the data in one half of a buffer while the other half is being filled. Currently, my processing function is simply looking for a peak value. Unfortunately, my processing function can't process the buffer fast enough to keep up with the ADC as shown in the first scope image (purple is buffer reaching half f…