器件型号: TDA4VH-Q1
您好、
下面是我的硬件和软件设置。
硬件:J784SEVM <--> DS90UB9702 Fusion2 主板<--> DS90UB971 我们自己的主板<-->具有 MCU 的 OX08B40(8MP@30fps UYVY 格式)
软件:RTOS SDK 11.00.00.06
我们的摄像头板中有一个 MCU。 我可以使用 i2c_transaction 正确地与此 MCU 进行通信。 但在对 64 个字节执行 i2c_transaction 时、i2c 会卡住。 我们无法在 i2c_transaction 之后执行代码。
下面是我的 i2c_transaction 代码
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);
I2C_Transaction.writeCount 是否应低于 64 字节?
注意:当 I2C_Transaction.writeCount 小于 63 字节时、我不会遇到任何问题。
此致、
Jeyaprakash C K.