你好
IDE:MCUXpresso IDE v11.4.1
SDK:SDK_2.10.1_EVK-MIMXRT685
Host: MIMXRT685-EVK
Q1:I3C_MasterProcessDAA 的 waveform 紅框處SCL正確嗎?是否有多一個clock?
Q2:Write respond NACK , bit 數正確嗎?為甚麼沒有回應NACK+STOP?
Q3:Read data 結束時,T-bit 時間很短,後面被判斷成Restart,這是什麼原因?
Q4:有I3C HDR-DDR sample code 嗎?
我拔掉之后最后一个bit 为高,但是时间还是1.024us
关于Tbit的时间在读的最后一帧,你也可以用示波器读下看看。
我测试的就是SDK的:
SDK_2_10_1_EVK-MIMXRT685\boards\evkmimxrt685\driver_examples\i3c\polling_b2b_transfer
主从分别用两块MIMXRT685-EVK, 一个为主机,一个为从机。
Best Regards,
Kerry
Q1: 多一個clock 並不符合Spec,請問這部分之後會修正嗎?
Q2:邏輯分析儀的採集解析為200M Hz,SDK沒有修正過,code 如下
Q3: 邏輯分析儀的採集解析為200M Hz,T bit 為10nS
code
Q4:HDR-DDR sample code 大約什麼時候可以提供?
Hi @AlicePXLin
非常抱歉迟回复了!
昨天我测了I3C波形。
我这边情况如下:
Q2:Write respond NACK , bit 數正確嗎?為甚麼沒有回應NACK+STOP?
Answer: 注意,I3C 和I2C不一样,发送的数据第九位不是ACK/NACK,是Tbit,也就是前面几个数据bit的奇偶情况。用于校验传输中的干扰导致的错位u。具体查看I3C spec
我这边看下来是正确的,请看我的前面一帧和最后一帧:
你看我最后一帧,确实是9位+stop,只是最后一位有点长了。
Q3:Read data 結束時,T-bit 時間很短,後面被判斷成Restart,這是什麼原因?
Answer:
你看我同样最后一帧,最后一个bit很长,1.272us
Best Regards
Kerry
Dear @kerryzhou
謝謝!圖是清楚的!
Q2: 我們是想測試在下Address 後回應NACK ,並非傳送data後
看到的波型應該要是 7-bits address + R/W + NACK + STOP
Q3: 我們發現read最後一筆 T-bit若為0,是沒有問題的(如你所提供的)
但是若最後一筆 T-bit若為1,
才會有T-bit 時間過短的問題(如下圖)
謝謝!
Hi @kerryzhou
關於Q3 我重新看了Spec 了解到應該本來就會有restart waveform
不過T-bit 是否仍有過短?
看Spec 寫 tCBSr 最小值為 tCASmin / 2 = 38.4/2 = 19.2 nS
但我測量到僅有10nS
謝謝!
Hi @AlicePXLin
Q2: Address 後回應NACK
我这边测试情况如下,到写数据时候,把从机拔掉,测试结果如下:
是有第9位为NACK,
你说的应该有STOP,我觉得这个和代码有关,应该是SDK代码里面没有考虑到添加STOP,可以在检测到NACK之后,发一个STOP出去。这个我记录下,回头我上报给SDK 部门。
你现在截图的波形,是I3C的spec手册吗?版本多少?以为我发现我的和你有些区别。
Q3:但是若最後一筆 T-bit若為1
你那边是怎么去测试的呢?
是在什么时候拔掉从机,因为addr还是响应的,对吧?
Hi @kerryzhou
感謝回覆!
是I3C spec 手冊
Version 1.1.1 – 11 June 2021
Q2:那麼我們是能自己添加STOP 訊號的嗎?該怎麼加入呢?
還是需要等新的SDK版本提供呢?
Q3:您可以試著將最後一筆data傳送0xFF,T-bit 則為 1
此項測試沒有移除從機因此addr還是響應的,僅為read data,與Q2為分開的測試
謝謝!
Hi @AlicePXLin
Q2:那麼我們是能自己添加STOP 訊號的嗎?該怎麼加入呢?
還是需要等新的SDK版本提供呢?
Answer: 建议考虑自己添加,因为SDK不知道什么时候会加,甚至是否会加进去,由SDK部门决定。
关于STOP的加入,我看的RT600 RM手册。
你看,当REQUEST=2的时候会发送STOP,所以你可以查看下底层代码,看看如果出现NACK的时候,添加下发送STOP出去。
Q3:您可以試著將最後一筆data傳送0xFF,T-bit 則為 1
此項測試沒有移除從機因此addr還是響應的,僅為read data,與Q2為分開的測試
你看我的
还是0.
HI @AlicePXLin
咱俩可能聊太多,把问题给搞混淆了。
你的Q3,原题: Q3:Read data 結束時,T-bit 時間很短,後面被判斷成Restart,這是什麼原因?
说的是read,所以我测的一直是read,你看波形也是RxD。
根据I3C手册,是要接收read,最后一个T就是0用于结束的,所以不会是1的。
所以,还请你确认下问题,到底是发送还是接收?
你后面给我指的代码也是read啊。
Best Regards,
Kerry
Hi @kerryzhou
Q2:請問在code裡該怎麼判斷出現NACK讓我加上STOP呢?能提供範例嗎?謝謝!
Q3:是read 沒錯!
是我I3C Spec貼錯了
這部分看波型差異是我的SDA較慢拉Low,會跟baudrate設定有關嗎?附上我這邊的設定
Q5:再請教一個問題,在ENTDAA時,我們設定較快的速度,Repeated start 訊號會異常,如下圖
上方為正常訊號,下方為異常訊號導致認不出Repeated start
下方的SDA falling 與SCL rising並沒有間隔符合spec 的38.4nS/2
設定如下時會異常
Spec 表示Repeated start 需間隔時間
Hi @AlicePXLin
Q2: 請問在code裡該怎麼判斷出現NACK讓我加上STOP呢?能提供範例嗎?謝謝!
Answer:
我看了下code,发送stop是这个:
if (result == kStatus_I3C_Nak)
{
(void)I3C_MasterEmitStop(base, true);
}
你可以试试看,我这边马上也测试下最新的内部SDK,如果还有这个问题,我直接上报。
Q3: 你如果不改代码,直接SDK,和我是否一样?我觉得你也可以用示波器看看,因为逻辑分析仪毕竟是数字波形,看看模拟波是不是已经正确了。
Q5,可以重新建个帖子吗?
因为我们支持是有时效还有工作量的,毕竟很多问题在list里面,通常是一个问题一个帖子,尽量不要一个帖子发很多问题而且还增加问题。
欢迎多建贴,一贴一问题。
你新建之后AT我,然后我给你回复新问题。
谢谢谅解。
Best Regards,
Kerry
Hi @AlicePXLin
不好意思,刚刚去开会了。
关于问题2,先确认下情况,然后在测试下。
按照I3C协议,应该如下:
你说的NACK,意思是我不接从机,让它NACK看是否會有restart waveform, 是这个意思吗?
也就是复现你这个情形的情况,因为我现在是接入从机测试的。
Best Regards,
Kerry
Q1: 多一個clock 並不符合Spec,請問這部分之後會修正嗎?
Answer: 这个问题我很早就已经提给相关部门,目前还没有得到修正。
Q2:邏輯分析儀的採集解析為200M Hz,SDK沒有修正過,code 如下
Answer: 将会测试我这边的波形与你对比。请耐心等待!
Q3: 邏輯分析儀的採集解析為200M Hz,T bit 為10nS
Answer: 将会测试我这边的波形与你对比。请耐心等待!
Q4:HDR-DDR sample code 大約什麼時候可以提供?
Answer: 暂时还没有得到提供的计划。
Best Regards,
Kerry
你好,
請問Q2、Q3有測試結果了嗎?
謝謝!