Hi,
I can't find the driver of the CSI Camera interface in the ESP32 IDF.
Does the ESP32 chip actually have a hardware CSI Camera interface?
The pins are: D0, D1, D2, D3, D4, D5, D6, D7, PXCLK, HREF, VSINCH
Thanks,
Enrico Migliore
ESP32 - CSI Camera interface driver
Re: ESP32 - CSI Camera interface driver
Thank you for the link.
What is the parallel "I2S input interface"?
The I2S interface is meant for digital audio and it's supposed to be a serial interface.
Enrico Migliore
What is the parallel "I2S input interface"?
The I2S interface is meant for digital audio and it's supposed to be a serial interface.
Enrico Migliore
Re: ESP32 - CSI Camera interface driver
Howdy,
I found that chapter 12 of the ESP32 technical reference manual to be useful in this regard:
https://www.espressif.com/sites/default ... ual_en.pdf
Think of "I2S" in ESP32 as being "more" than just the basic I2S protocol (which it can do handily). The I2S subsystem in the ESP32 also provides a high speed bus connected directly to RAM for Direct Memory Access. Putting it simply, you can configure the ESP32 I2S subsystem to send or receive parallel data under hardware control. For example, if a frame from a camera is 16bit pixel sizes and is 320x240 pixels ... that is 320x240x2 bytes = 153KBytes. If the frame rate is 24 frames/second then 1 frame is about 40msecs. It would be impossible (or VERY hard) to read 16 parallel pins 76800 times in 40msecs AND store that in RAM under application logic control. Hence we need a DMA technology that will read lots of data that is synchronized by a high speed clock line and writes it sequentially into RAM. The ESP32 can do this well.
Arguably, this subsystem might have been described as the "DMA subsystem" however its primary purpose was for I2S data and hence got lumped in as the I2S subsystem. But a rose by any other name still smells as sweet.
I found that chapter 12 of the ESP32 technical reference manual to be useful in this regard:
https://www.espressif.com/sites/default ... ual_en.pdf
Think of "I2S" in ESP32 as being "more" than just the basic I2S protocol (which it can do handily). The I2S subsystem in the ESP32 also provides a high speed bus connected directly to RAM for Direct Memory Access. Putting it simply, you can configure the ESP32 I2S subsystem to send or receive parallel data under hardware control. For example, if a frame from a camera is 16bit pixel sizes and is 320x240 pixels ... that is 320x240x2 bytes = 153KBytes. If the frame rate is 24 frames/second then 1 frame is about 40msecs. It would be impossible (or VERY hard) to read 16 parallel pins 76800 times in 40msecs AND store that in RAM under application logic control. Hence we need a DMA technology that will read lots of data that is synchronized by a high speed clock line and writes it sequentially into RAM. The ESP32 can do this well.
Arguably, this subsystem might have been described as the "DMA subsystem" however its primary purpose was for I2S data and hence got lumped in as the I2S subsystem. But a rose by any other name still smells as sweet.
Free book on ESP32 available here: https://leanpub.com/kolban-ESP32
Re: ESP32 - CSI Camera interface driver
Hi Kolban,
>> you can configure the ESP32 I2S subsystem to send or receive parallel data under hardware control
Thank you for your explanation.
Enrico Migliore
>> you can configure the ESP32 I2S subsystem to send or receive parallel data under hardware control
Thank you for your explanation.
Enrico Migliore
Who is online
Users browsing this forum: No registered users and 110 guests