← index #8788PR #7183
Related · high · value 1.305
QUERY · ISSUE

ESP32 I2S master clock support

openby kimstikopened 2022-06-20updated 2024-10-17
enhancement

It appears that the I2S class does not currently support a I2S DAC that requires a master clock.
BTW: What is easiest workaround to use ES7134LV with micropython?

CANDIDATE · PULL REQUEST

esp32,stm32/i2s: I2S protocol support for Pyboards and ESP32.

closedby miketeachmanopened 2021-04-29updated 2021-08-21
port-stm32port-esp32

This PR adds I2S protocol support for STM32 and ESP32 ports:

  • consistent I2S API across the STM32 and ESP32 ports
  • I2S configurations supported:
    • master transmit and master receive
    • 16-bit and 32-bit sample sizes
    • mono and stereo formats
    • specify sampling frequency
    • 3 modes of operation:
      • blocking
      • non-blocking with callback
      • uasyncio
    • specify internal ring buffer size
  • MicroPython documentation for Pyboards and ESP32
  • new uasyncio Stream class method "readinto()"
  • tested on the following development boards:
    • Pyboard D SF2W
    • Pyboard V1.1
    • ESP32 with SPIRAM
    • ESP32
  • builds on the STM32 work of blmorris:
    • https://github.com/micropython/micropython/pull/1361
  • I2S examples repo to support this PR:
    • https://github.com/miketeachman/micropython-i2s-examples
  • this PR obsoletes an ESP32-specific I2S PR:
    • https://github.com/micropython/micropython/pull/4471
  • pybv1.0 metric changes wrt master: text(+5592), data(0), bss(+8)
  • esp32 metric changes wrt master: text(+11228), data(+2832), bss(+24)

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied