2139125_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2139125_zh-CN

2139125_zh-CN

LPC55S36 I3C 主站在读取长度超过从站数据大小时挂起

我连接了两块用于 I3C 通信的 LPC5536-EVK 板,其中一块配置为 I3C 主板,另一块配置为 I3C 从机。如果主站指定的读取长度超过从站提供的数据量,主站就会卡在读取函数I3C_MasterTransferBlocking 中。根据波形,信号似乎是正确的,因此我认为问题出在主控端。


在我提供的示例中,从属服务器的数据是 [0x01,0x02],长度仅为 2 字节。但是,主服务器将读取长度指定为 3。因此,在第 2 字节的末尾,Slave 将 T-Bit 作为 0 返回,以表示消息结束。


测试步骤:

(1) RESET 从属板

(2) RESET 主板


有关 T 位的定义,请参阅《MIPI I3C 基本规范》v1.1.1。

第 5.1.2.3.4 节、SDR 目标返回(读取)数据的第九位为数据结束位

在 I2C 中,"从目标读取 "有一个问题,即只有控制器才能结束读取,因此目标无法控制其返回的数据量。相比之下,在 I3C SDR 中,目标可控制其返回的数据字数;但它也允许 I3C 控制器在必要时提前终止读取。

...

bell_huang_0-1753257005599.png

bell_huang_1-1753257030765.png



Re: LPC55S36 I3C Master Hangs When Read Length Exceeds Slave Data Size

尽管用户无法确定i3c_masterTransferNonBlocking实际传输了多少字节,但对于我的应用程序来说,这似乎已经足够了。

Re: LPC55S36 I3C Master Hangs When Read Length Exceeds Slave Data Size

我尝试改用I3C_MasterTransferNonBlocking。尽管它不会挂起,但用户无法知道Slave实际提供了多少字节。在我分享的示例中,它需要返回传输计数 = 2 这样的信息。

在你使用 lpcxpresso55s36_i3c_interrupt_b2b_transfer_master 示例进行测试时,尽管你将 dataSize 更改为 50,但之后代码仍会打印固定的32字节,这恰好与从属提供的传输数量相匹配。

在实际应用中,例如我在另一篇关于IBI 与待读通知的文章中提到的情况,在发生 IBI 并执行私人读取后,从属设备的传输计数是不可预测的,可能会发生变化。当主站使用大缓冲区调用读取传输函数时,传输函数需要返回实际传输的计数。

Re: LPC55S36 I3C Master Hangs When Read Length Exceeds Slave Data Size

你好@黄铃铃

我已经测试过了。

您是对的。

我检查了 I3C_MasterReceive 函数。

/* Check RX data */
        if ((0UL != rxSize) && (0UL != (base->MDATACTRL & I3C_MDATACTRL_RXCOUNT_MASK)))
        {
            *buf++ = (uint8_t)(base->MRDATAB & I3C_MRDATAB_VALUE_MASK);
            rxSize--;
            if ((flags & (uint32_t)kI3C_TransferDisableRxTermFlag) == 0UL)
            {
                if ((!isRxAutoTerm) && (rxSize == 1U))
                {
                    base->MCTRL |= I3C_MCTRL_RDTERM(1U);
                }
            }
        }

它读取数据的大小取决于数据的大小。

我测试了 i3c 中断演示,它支持这一功能。

Harry_Zhang_0-1753346197214.png

我将dataSize设置为 50。

Harry_Zhang_1-1753346281166.png

它从来没有挂过。

您可以试试看。

BR

哈利

Tags (1)
No ratings
Version history
Last update:
‎11-20-2025 04:34 PM
Updated by: