circuitpython/ports/nrf/supervisor
Jeff Epler a183425e00 ports/nrf: Implement audioio.AudioOut using PWM
This implements AudioOut, with known caveats:
 * pause/resume are not yet implemented (this is just a bug)
 * at best, the sample fidelity is 8 bits (this is a hardware limitation)

Testing performed:

My test system is a Particle Xenon with a PAM8302 op-amp
https://www.adafruit.com/product/2130 and 8-ohm speaker.  There's no
analog filtering between the Xenon's PWM pin and the "A+" input of
the amplifier; the "A-" pin is disconnected.  It is powered from
VUSB.

I used pin D4, which is *NOT* listed as a low-speed-only pin, but
the code does NOT switch the pin to high drive.  This is related to
an open issue for general inability to set drive level for pins
being used by a "special function" on nrf:
https://github.com/adafruit/circuitpython/issues/1270

Nothing about the code I've written should limit the usable pins.

All samples I played were 16-bit, generally monophonic at 11025Hz
and 22050Hz from the Debian LibreOffice package.
2019-07-26 07:57:11 -05:00
..
cpu.s Support gathering register values on nrf. 2018-07-03 06:31:07 -07:00
internal_flash_root_pointers.h Move atmel-samd to tinyusb and support nRF flash. 2018-11-08 17:25:30 -08:00
internal_flash.c Fix crash in internal filesystem on nrf 2019-05-08 15:43:18 -07:00
internal_flash.h Fixups for adafruit/circuitpython#1042 2019-04-16 14:53:44 +10:00
port.c ports/nrf: Implement audioio.AudioOut using PWM 2019-07-26 07:57:11 -05:00
qspi_flash.c Don't let a background task call run_background_tasks() 2019-04-09 20:23:01 -04:00
serial.c Move atmel-samd to tinyusb and support nRF flash. 2018-11-08 17:25:30 -08:00
usb.c refactor nrfx from supervisor/usb.c 2019-01-30 22:30:23 +07:00