Dual Function Generator (DAC/DMA) part 1 | STM32 Tutorial #88
This is part 1 of a multi-part video creating a dual channel function generator on a STM32 MCU. Buy Streamline here: https://currentmakers.com/products/st... Raspberry Pi Pico World channel: / @rppicoworld ADC and DAC page on the STM32World wiki: https://stm32world.com/wiki/STM32_ADC... Original 1 channel Sine Wave: • STM32 Tutorial #15 - Sine wave on DAC with... Original dual channel using FreeRTOS: • STM32 Tutorial #30 - Sine wave (Dual DAC) ... Blinky Orgy video explaining LED connectivity: • RP2350 Blinky Orgy | RP Pico #4 #STM32 #GettingStarted #Tutorial #STM32CubeIDE #STM32CubeMX #STM32World #CurrentMakers #Streamline #STM32F407 0:00:00 Intro and goal 0:01:29 WHY this particular video 0:03:58 Theoretical background - the math - sine waves 0:05:00 The STM32World Wiki 0:05:48 The Unit Circle 0:08:06 The Sine Wave 0:08:45 Frequency, angular velocity or rate of angle change 0:12:01 The hardware set - Streamline 0:13:51 Configuring the MCU in STM32CubeMX 0:14:47 The Project Manager setup - remember to select STM32CubeIDE 0:16:02 The basic steps - swd, clock and usart 0:17:05 The clock configuration 0:18:55 The usart used for serial debugging 0:19:49 The LED and BTN pins 0:20:36 Enabling BOTH DACs 0:22:15 Enabling two DMA channels - one for each DAC 0:23:39 Configuring Timer 6 - TIM6 0:24:17 Looking up the timer bus in the datasheet 0:27:20 Configuring the timer values to get 100 kHz 0:29:10 Adding the ARM CMSIS DSP library for fast math 0:30:41 Firing up STM32CubeIDE and adding the new project 0:31:46 Looking at main.c and first build 0:32:37 Adding printf redirect 0:34:10 Superloop timed execution - led flash and tick print 0:38:06 First run - LED not flashing 0:40:38 Fixing LED in STM32CubeMX 0:42:32 Flashing fixed version - now blinking 0:43:44 Include the math.h and arm_math.h - fixing mistake 0:46:43 Adding channel handlers 0:47:48 Project defines / settings 0:49:31 Global variables - dma buffers and handlers 0:54:50 Defining the dma callbacks 0:56:50 The buffer update calculations shared between the callbacks 0:58:50 Starting the timer and DACs 1:00:33 Compiling and running 1:01:04 Flashing the project - working! 2 Beautiful Sine Waves 1:03:02 Performance analysis 1:04:49 Comparing performance penalty for DAC and DMA 16 million loops vs. 14 1:04:59 Using the built-in statistical profiler 1:07:50 Profiler result - less than 10 % spend on Sine Wave calculation 1:09:50 Increasing the sample rate to 200 ksps 1:13:31 Running profiler with 200 ksps about 18 % spend in calculation 1:15:10 Final thoughts and outtro Corrections: 41:12 I don't think I made a mistake - STM32CubeMX bug? 48:51 I meant 12 bit 4096

Microcontroller Magic: Under the Hood of “Sum Ergo Demonstro”

STM32 Overview, Families, Documentation and Development boards and Tools - STM32 Tutorial #1 Remake

Reverse engineering a 'tony' 6502-based game console

How I Made A C64 Laptop From Scratch - The Portable 64 (Emulation)

AM32 ESC – PCB Design Walkthrough

Once You Understand it, You Will Think Everything Else is Silly - Toyota E-CVT

EXPLAINED Hardware Buses | STM32 Basics #6

7 Microcontrollers You Should NEVER Use in a Product

Bought a Broken CNC Lathe They Don’t Want Me to Fix

HEAD ON BATTLE STM32 vs. RP2350 - Who is the WINNER | RP Pico #2

Project Gigapixel | Developing a 3200MP linear scan medium format camera

I EXPOSED BUGATTI'S SERVICE & REPAIR COST'S

I kept coding until an RTOS was inevitable

I Hacked This Temu Router. What I Found Should Be Illegal.

FPGAs Aren’t Processors (Unless You Want Them to Be) || FPGA Deep Dive and Use

AI Bubble: How AI's push towards IPOs became a death drive | Ed Zitron

The MOST Broken Computer? The 1986 Sinclair Spectrum+2

I built a modular cyberdeck!

Solving Impossible Problems for Fun and Profit | Dan Gelbart

