I2S parallel access to external RAM

ffrige
Posts: 22
Joined: Thu Oct 15, 2020 3:44 am

I2S parallel access to external RAM

Postby ffrige » Mon Apr 26, 2021 3:01 am

The technical manual says that I2S supports an "LCD" parallel mode to write data and a "Camera" parallel mode to read data. But what if I want to interface to an external memory and do read/write operations? Do I have to switch modes in between? Or should I configure one I2S controller as LCD and the other as Camera and then connect them to the same pins?

The ESP32-S2 docs mention something about an EDMA but not detailed enough for me to understand how to configure it.

ffrige
Posts: 22
Joined: Thu Oct 15, 2020 3:44 am

Re: I2S parallel access to external RAM

Postby ffrige » Sun May 09, 2021 11:16 am

Is there any way to find an answer to this? I would like to use the ESP32 in this new product we are developing, but if I can't use the parallel stream then I will have to choose a different microcontroller.

ESP_Sprite
Posts: 9757
Joined: Thu Nov 26, 2015 4:08 am

Re: I2S parallel access to external RAM

Postby ESP_Sprite » Mon May 10, 2021 3:31 am

I think you should switch modes if you want that, but to be honest, that peripheral is not exactly intended to interface with parallel ram. That does not mean you cannot do it, but you may need to write your own driver and read between the lines in the TRM a bit.

ffrige
Posts: 22
Joined: Thu Oct 15, 2020 3:44 am

Re: I2S parallel access to external RAM

Postby ffrige » Mon May 10, 2021 3:48 am

Ok, thank you, I understand. The mention of "EDMA" in the manual got me a bit excited, but from what you say I have to guess that the feature is not really fully implemented yet.

ESP_Sprite
Posts: 9757
Joined: Thu Nov 26, 2015 4:08 am

Re: I2S parallel access to external RAM

Postby ESP_Sprite » Tue May 11, 2021 4:58 am

FWIW, EDMA specifically is used to use either external SPI flash or PSRAM as a DMA source or destination (normally you'd be restricted to internal RAM). That flash and PSRAM need to be already supported by the chip and esp-idf (as in: you should already be able to read from it by dereferencing a pointer in C); it doesn't work for any random RAM component.

Who is online

Users browsing this forum: Bing [Bot] and 384 guests