miketeachman / micropython-esp32-i2s-examples

Usage and examples for I2S support on the ESP32 microcontroller
MIT License
145 stars 29 forks source link

Use recommended pins/slot #23

Closed olance closed 3 years ago

olance commented 3 years ago

The example works as-is, however it kinda mixes the recommended HSPI CS pin with the VSPI SCK/MISO/MOSI pins and channel. This simply edits the SDCard init to follow the recommended setup.

Not sure it has a lot of value but as I was setting up my own SD Card reader I had issues and found it confusing that the example code was not following the docs.

miketeachman commented 3 years ago

Thanks for noticing this. You're totally right - the examples would be better to use pins leveraging the speed of the IO_MUX rather than the lower speed of the GPIO matrix. I'll pull this in and fix the other examples. Thanks again for contributing!

olance commented 3 years ago

Hey Mike, thanks for the quick review/merge 🙂

the examples would be better to use pins leveraging the speed of the IO_MUX rather than the lower speed of the GPIO matrix

Total newbie here, could you elaborate on this?

Thanks for the great I2S implem & examples!!

miketeachman commented 3 years ago

Chapter 5 of the ESP32 technical reference manual has a decent description of the IO_MUX. https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf

Using the IO_MUX pins only seems important when the SPI bus is used with devices that can communicate at bus frequencies >40MHz. I will often use the IO_MUX pins, but I've never done any timing tests to determine if the attached hardware is performing any better compared to using any set of GPIO pins