I am using LCDK6748 development board and I want to connect LI-CAM-OV5653-P33.
This camera has to use BT.1120 mode with operating clock at 74.25MHz.
I am using vpif_lcd_loopback example in Starware.
I think I need to change the pixel resolution of the camera and the driver function.
Those are my changes:
#define CAPTURE_IMAGE_WIDTH (2592)
#define CAPTURE_IMAGE_HEIGHT (1944)
void VPIFCaptureModeConfig(unsigned int baseAddr, unsigned int mode, unsigned int sdChannel, unsigned int rawWidth, VPIFVbufParam* buf)
{ /*
typedef struct vbufParam
{
unsigned int sav2eav;
unsigned int eav2sav;
unsigned int vsize;
unsigned int l1;
unsigned int l3;
unsigned int l5;
unsigned int l7;
unsigned int l9;
unsigned int l11;
} VPIFVbufParam;
*/
if(mode==VPIF_480I)
{
if(sdChannel==VPIF_CHANNEL_0)
{
HWREG(baseAddr + C0HCFG) = (268 << VPIF_C0HCFG_EAV2SAV_SHIFT) | (1440 << VPIF_C0HCFG_SAV2EAV_SHIFT);
HWREG(baseAddr + C0VCFG0) = (4 << VPIF_C0VCFG0_L1_SHIFT) | (20 << VPIF_C0VCFG0_L3_SHIFT);
HWREG(baseAddr + C0VCFG1) = (264 << VPIF_C0VCFG1_L5_SHIFT) | (266 << VPIF_C0VCFG1_L7_SHIFT);
HWREG(baseAddr + C0VCFG2) = (283 << VPIF_C0VCFG2_L9_SHIFT) | (1 << VPIF_C0VCFG2_L11_SHIFT);
HWREG(baseAddr + C0VSIZE) = 525 << VPIF_C0VSIZE_VSIZE_SHIFT;
}
if(sdChannel==VPIF_CHANNEL_1)
{
HWREG(baseAddr + C1HCFG) = (268 << VPIF_C1HCFG_EAV2SAV_SHIFT) | (1440 << VPIF_C1HCFG_SAV2EAV_SHIFT);
HWREG(baseAddr + C1VCFG0) = (4 << VPIF_C1VCFG0_L1_SHIFT) | (20 << VPIF_C1VCFG0_L3_SHIFT);
HWREG(baseAddr + C1VCFG1) = (264 << VPIF_C1VCFG1_L5_SHIFT) | (266 << VPIF_C1VCFG1_L7_SHIFT);
HWREG(baseAddr + C1VCFG2) = (283 << VPIF_C1VCFG2_L9_SHIFT) | (1 << VPIF_C1VCFG2_L11_SHIFT);
HWREG(baseAddr + C1VSIZE) = 525 << VPIF_C1VSIZE_VSIZE_SHIFT;
}
}
if(mode==VPIF_HD)
{
if(sdChannel==VPIF_CHANNEL_0)
{
HWREG(baseAddr + C0HCFG) = (272 << VPIF_C0HCFG_EAV2SAV_SHIFT) | (1920 << VPIF_C0HCFG_SAV2EAV_SHIFT);
HWREG(baseAddr + C0VCFG0) = (1 << VPIF_C0VCFG0_L1_SHIFT) | (42 << VPIF_C0VCFG0_L3_SHIFT);
HWREG(baseAddr + C0VCFG1) = (1122 << VPIF_C0VCFG1_L5_SHIFT) | (564 << VPIF_C0VCFG1_L7_SHIFT);
HWREG(baseAddr + C0VCFG2) = (603 << VPIF_C0VCFG2_L9_SHIFT) | (1121 << VPIF_C0VCFG2_L11_SHIFT);
HWREG(baseAddr + C0VSIZE) = 1125 << VPIF_C0VSIZE_VSIZE_SHIFT;
}
if(sdChannel==VPIF_CHANNEL_1)
{
HWREG(baseAddr + C0HCFG) = (272 << VPIF_C0HCFG_EAV2SAV_SHIFT) | (1920 << VPIF_C0HCFG_SAV2EAV_SHIFT);
HWREG(baseAddr + C0VCFG0) = (1 << VPIF_C0VCFG0_L1_SHIFT) | (42 << VPIF_C0VCFG0_L3_SHIFT);
HWREG(baseAddr + C0VCFG1) = (1122 << VPIF_C0VCFG1_L5_SHIFT) | (564 << VPIF_C0VCFG1_L7_SHIFT);
HWREG(baseAddr + C0VCFG2) = (603 << VPIF_C0VCFG2_L9_SHIFT) | (1121 << VPIF_C0VCFG2_L11_SHIFT);
HWREG(baseAddr + C0VSIZE) = 1125 << VPIF_C0VSIZE_VSIZE_SHIFT;
}
}
if(mode==VPIF_CAPTURE_RAW)
{
/* TBD */
}
if(mode==VPIF_NONSTANDARD)
{
/* TBD */
if(sdChannel==VPIF_CHANNEL_0);
if(sdChannel==VPIF_CHANNEL_1);
}
/* TBD */
}
I compile my code, but it does not work.
Any idea?? Do I have to change more code lines??
Thank you
Kind Regards