micropython/ports
Mike Teachman 8a5bfe44a5 esp32,stm32: Add new machine.I2S class for I2S protocol support.
This commit adds I2S protocol support for the esp32 and stm32 ports, via
a new machine.I2S class.  It builds on the stm32 work of blmorris, #1361.

Features include:
- a consistent I2S API across the esp32 and stm32 ports
- I2S configurations supported:
  - master transmit and master receive
  - 16-bit and 32-bit sample sizes
  - mono and stereo formats
  - sampling frequency
  - 3 modes of operation:
    - blocking
    - non-blocking with callback
    - uasyncio
  - internal ring buffer size can be tuned
- documentation for Pyboards and esp32-based boards
- tested on the following development boards:
  - Pyboard D SF2W
  - Pyboard V1.1
  - ESP32 with SPIRAM
  - ESP32

Signed-off-by: Mike Teachman <mike.teachman@gmail.com>
2021-07-05 23:42:25 +10:00
..
bare-arm bare-arm: Switch to use MICROPY_ERROR_REPORTING_NONE to reduce size. 2021-04-27 23:52:40 +10:00
cc3200 all: Rename mp_keyboard_interrupt to mp_sched_keyboard_interrupt. 2021-04-30 15:13:43 +10:00
esp32 esp32,stm32: Add new machine.I2S class for I2S protocol support. 2021-07-05 23:42:25 +10:00
esp8266 esp32,esp8266: Add __len__ to NeoPixel driver to support iterating. 2021-06-22 16:33:55 +10:00
javascript javascript/Makefile: Suppress compiler errors from array bounds. 2021-07-02 23:10:22 +10:00
mimxrt tools/autobuild: Add mimxrt port to build scripts for nightly builds. 2021-07-01 12:29:16 +10:00
minimal ports: Disable MICROPY_PY_ASSIGN_EXPR in bare-arm and minimal ports. 2020-06-16 22:06:21 +10:00
nrf py/mpstate: Make exceptions thread-local. 2021-06-19 09:43:44 +10:00
pic16bit py/mpstate: Schedule KeyboardInterrupt on main thread. 2021-06-19 09:49:00 +10:00
powerpc ports: Remove def of MP_PLAT_PRINT_STRN if it's the same as the default. 2021-02-04 22:39:17 +11:00
qemu-arm qemu-arm: Add support for Cortex-A9 via sabrelite board. 2021-05-26 16:24:00 +10:00
rp2 rp2/CMakeLists.txt: Suppress compiler errors for pico-sdk and tinyusb. 2021-07-05 16:18:28 +10:00
samd all: Rename mp_keyboard_interrupt to mp_sched_keyboard_interrupt. 2021-04-30 15:13:43 +10:00
stm32 esp32,stm32: Add new machine.I2S class for I2S protocol support. 2021-07-05 23:42:25 +10:00
teensy all: Replace busses with buses. 2021-05-20 23:22:03 +10:00
unix unix/modffi: Add option to lock GC in callback, and cfun access. 2021-06-24 23:12:26 +10:00
windows py/mpstate: Schedule KeyboardInterrupt on main thread. 2021-06-19 09:49:00 +10:00
zephyr zephyr/boards: Enable ubluetooth on nucleo_wb55rg board. 2021-06-06 21:57:44 +10:00