Part Number: TDA4VH-Q1
Hello ,
Below is my hardware and software setup.
Hardware : J784SEVM <--> DS90UB9702 Fusion2 board <--> DS90UB971 Our own board <--> OX08B40 with MCU(8MP@30fps UYVY format)
Software : RTOS SDK 11.00.00.06
Our camera board have one MCU in it. I can able to communicate with this MCU properly using i2c_transaction. But while performing i2c_transaction for 64 bytes, i2c gets stuck. We could not executes codes after i2c_transaction.
Below is my i2c_transaction code
static int32_t OX08B40_WriteReg(uint8_t i2cInstId,
uint8_t i2cAddr,
uint16_t regAddr,
uint8_t *regVal,
uint32_t numRegs,
uint8_t skip_error) {
int32_t status = -1;
I2C_Handle sensorI2cHandle = NULL;
static uint8_t sensorI2cByteOrder = 255U;
getIssSensorI2cInfo(&sensorI2cByteOrder, &sensorI2cHandle);
if (sensorI2cHandle == NULL)
{
printf("Sensor I2C Handle is NULL \n");
return -1;
}
I2C_Transaction i2cTransaction;
I2C_transactionInit(&i2cTransaction);
i2cTransaction.slaveAddress = i2cAddr;
i2cTransaction.writeBuf = regVal;
i2cTransaction.writeCount = numRegs;
i2cTransaction.readBuf = NULL;
i2cTransaction.readCount = 0;
status = I2C_transfer(sensorI2cHandle, &i2cTransaction);
if(FALSE == status)
{
printf("\n %s (%d) I2C Data Transfer failed. \n", __func__, __LINE__);
}
return (status);
}
I am getting stuck in below line
status = OX08B40_WriteReg(i2cInstId, i2cAddrSensor, 0, g_bload_buf, 64, 0);
Is there any limit that I2C_Transaction.writeCount should be below 64bytes?
Note: I am not facing any issue when I2C_Transaction.writeCount is less than 63bytes.
With regards,
Jeyaprakash C K.