ESP32S3 ov2640 as a slave device
Posted: Sun Mar 10, 2024 9:10 pm
I am working on a custom board that was designed by someone else. The board uses ESP32S3 without PSRAM. In the design there is a cst226se touch controller which is working perfectly. I am having trouble initializing the on2640 as I get
all the time. The designer uses 13 lines for interfacing the ov2640.
CAM_RST
CSI_MCLK
I2C_SCL
I2C_SDA
CAM_VSYNC
CSI_D2 to D9
CSI_PCLK
CAM_HSYNC
As I said, the Wire interface is already started for the touch sensor and is working properly. I have tried all known combinations but at vain. The CSI_MCLK line makes me believe the camera should be in slave mode, but I can't make it start. I have even removed all the other code leaving only the camera related stuff but still nothing. My config is as follows:
Any help?
Code: Select all
camera: Camera probe failed with error 0x105(ESP_ERR_NOT_FOUND)
CAM_RST
CSI_MCLK
I2C_SCL
I2C_SDA
CAM_VSYNC
CSI_D2 to D9
CSI_PCLK
CAM_HSYNC
As I said, the Wire interface is already started for the touch sensor and is working properly. I have tried all known combinations but at vain. The CSI_MCLK line makes me believe the camera should be in slave mode, but I can't make it start. I have even removed all the other code leaving only the camera related stuff but still nothing. My config is as follows:
Code: Select all
camera_config_t cameraConfig;
cameraConfig.pin_reset = CAM_RST;
cameraConfig.pin_pwdn = -1;
cameraConfig.pin_d0 = CSI_D2;
cameraConfig.pin_d1 = CSI_D3;
cameraConfig.pin_d2 = CSI_D4;
cameraConfig.pin_d3 = CSI_D5;
cameraConfig.pin_d4 = CSI_D6;
cameraConfig.pin_d5 = CSI_D7;
cameraConfig.pin_d6 = CSI_D8;
cameraConfig.pin_d7 = CSI_D9;
cameraConfig.pin_href = CAM_HSYNC;
cameraConfig.pin_pclk = CSI_PCLK;
cameraConfig.pin_vsync = CAM_VSYNC;
cameraConfig.pin_xclk = CSI_MCLK;
cameraConfig.xclk_freq_hz = 20000000;
cameraConfig.frame_size = FRAMESIZE_VGA;
cameraConfig.grab_mode = CAMERA_GRAB_WHEN_EMPTY;
cameraConfig.fb_location = CAMERA_FB_IN_DRAM;
cameraConfig.pin_sccb_scl = I2C_SCL;
cameraConfig.pin_sccb_sda = I2C_SDA;