Hi @AlicePXLin ,
IBI 的数据应该是符合下面流程图:

我记得MIMXRT685-AUDIO-EVK, 这个会接一个外部sensor,然后是IBI的,之前我测过,但是忘记波形放哪里了。和这个单纯传数据不一样。
关于interrupt和polling,应该波形一样,你可以测试看看。上面我给的波形是polling的。暂时手上没有工具,在家办公,没法测,你可以测试看看。多跑几遍,看上去你的逻辑分析仪好像不太能抓全波形。
IBI的应该可以看到mandatory byte。
比如如下代码:
主机:
i3c_register_ibi_addr_t ibiRecord = {.address = {0x30U}, .ibiHasPayload = true};
I3C_MasterRegisterIBI(EXAMPLE_MASTER, &ibiRecord);
I3C_MasterTransferCreateHandle(EXAMPLE_MASTER, &g_i3c_m_handle, &masterCallback, NULL);
result = kStatus_Success;
while (1)
{
if (g_ibiWonFlag)
{
PRINTF("\r\nReceived slave IBI request.");
for (uint8_t count = 0; count < g_ibiUserBuffUsed; count++)
{
PRINTF(" Data %x.", g_ibiUserBuff[count]);
}
g_ibiWonFlag = false;
g_pollIbiEvent = false;
}
if (g_pollIbiEvent)
{
do
{
i3c_poll_slaveIBI(EXAMPLE_MASTER, &g_i3c_m_handle);
} while(result != kStatus_Success);
}
}
从机:
PRINTF("\r\n I3C master I3C SDR transfer finished .\r\n");
uint8_t ibiData = 0x55U;
I3C_SlaveRequestIBIWithData(EXAMPLE_SLAVE, &g_i3c_s_handle, &ibiData, 1);
PRINTF("\r\n I3C slave request IBI event with one mandatory byte %x.\r\n", ibiData);
Best Regards,
Kerry