SIGN IN SIGN UP

ports/stm: add DAC-based audioio.AudioOut for STM32F405/F407

Implements audioio.AudioOut using the STM32F405/F407 12-bit DAC on pin
A0 (PA04, DAC channel 1). TIM6 clocks the sample rate; DMA1 Stream5
feeds samples in circular double-buffer mode so the CPU is free between
half-transfer callbacks.

Supported formats: 8-bit unsigned, 8-bit signed, 16-bit unsigned,
16-bit signed, mono and stereo (left channel only). play(), stop(),
pause(), resume(), and deinit() are all implemented. A soft ramp on
construct/deinit suppresses audible pops.

Build changes:
- mpconfigport.mk: set CIRCUITPY_AUDIOIO = 1 for STM32F405xx/F407xx;
  change the F4-series default to CIRCUITPY_AUDIOIO ?= 0 so the
  F405/F407 override takes effect.
- AnalogOut.h: expose the shared DAC_HandleTypeDef handle so AudioOut
  can reuse it without double-initialising the peripheral.
- port.c: call audioout_reset() from reset_port() so an in-progress
  playback is cleanly stopped on soft reset.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
C
Chris Nourse committed
62adfdccd687231a2da6f066dd4ae84a5163baa7
Parent: 8e45cf1