Closed Edenane closed 2 years ago
I solved this by reading byte by byte from the SPI rather than all at once, so I changed this function:
uint8_t read_fifo_burst(ArduCAM myCAM)
{
int i , count;
int length = myCAM.read_fifo_length();
uint8_t * imageBuf =(uint8_t *) malloc(length*sizeof(uint8_t));
i = 0 ;
myCAM.CS_LOW();
myCAM.set_fifo_burst();//Set fifo burst mode
spi_read_blocking(SPI_PORT, BURST_FIFO_READ,imageBuf, length);
myCAM.CS_HIGH();
SerialUsb(imageBuf, length);
free(imageBuf);
return 1;
}
to
uint8_t read_fifo_burst(ArduCAM myCAM)
{
int i;
int length = myCAM.read_fifo_length();
uint8_t VAL;
myCAM.CS_LOW();
myCAM.set_fifo_burst();//Set fifo burst mode
for (i = 0; i < length; i++){
spi_read_blocking(SPI_PORT, BURST_FIFO_READ,&VAL, 1);
sleep_us(12);
SerialUsb(&VAL, 1);
}
return 1;
This does slow down retriving the images but worked every time.
Hi, When retreiving images using the HostApp and they are small, there are no issues retreiving the images. However, if the requested resolution is 1024x768 the images are about 90% of the time have corruption issues:
Any idea what could be causing this? It's attached to a OV2640.