about function of I3C_MasterTransferNonBlocking

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

about function of I3C_MasterTransferNonBlocking

918 次查看
melanie
Contributor III

Hi 

when I want to write data to register, I use the the funtionI3C_WriteSensor,

the  first register could be writen, but the second register can't be written successfully.

the result of I3C_MasterTransferNonBlocking is wrong.

I capture the timing diagram, I confuse why  the SDA always be low.

status_t I3C_WriteSensor(uint8_t deviceAddress, uint8_t regAddress, uint8_t *regData, size_t dataSize)
{
i3c_master_transfer_t masterXfer;
status_t result = kStatus_Success;
g_ibiWonFlag = false;
g_masterCompletionFlag = false;
g_completionStatus = kStatus_Success;

memset(&masterXfer, 0, sizeof(masterXfer));

/* Set register data */
masterXfer.slaveAddress = deviceAddress;
masterXfer.direction = kI3C_Write;
masterXfer.busType = kI3C_TypeI3CSdr;
masterXfer.subaddress = regAddress;
masterXfer.subaddressSize = 1;
masterXfer.data = regData;
masterXfer.dataSize = dataSize;
masterXfer.flags = kI3C_TransferDefaultFlag;

result = I3C_MasterTransferNonBlocking(EXAMPLE_MASTER, &g_i3c_m_handle, &masterXfer);
if (kStatus_Success != result)
{
return result;
}

 

melanie_0-1663152353122.png

more detail about the above figure

melanie_1-1663152371809.png

thanks

0 项奖励
回复
1 回复

906 次查看
EdwinHz
NXP TechSupport
NXP TechSupport

Hi @melanie,

Could you be so kind to specify the part number, SDK version and IDE release that you are currently using?

BR,
Edwin.

0 项奖励
回复