Hi @kerryzhou
請教一個問題,在ENTDAA時,我們設定較快的速度,Repeated start 訊號會異常,如下圖
上方為正常訊號,下方為異常訊號導致認不出Repeated start
下方的SDA falling 與SCL rising並沒有間隔符合spec 的38.4nS/2
設定如下時會異常
Spec 表示Repeated start 需間隔時間
謝謝!
Hi @AlicePXLin ,
非常感谢你的耐心等待。
我刚得到内部的回复,关于tCBSr小于spec的问题,内部建议调整PPBAUD可以设置更多的实际。你可以试试这个配置:
FCLK: 25MHz
I3C->MCONFIG =
(I3C->MCONFIG & ~(I3C_MCONFIG_SKEW_MASK | I3C_MCONFIG_PPBAUD_MASK | I3C_MCONFIG_PPLOW_MASK | I3C_MCONFIG_ODBAUD_MASK | I3C_MCONFIG_I2CBAUD_MASK | I3C_MCONFIG_ODSTOP_MASK)) |
I3C_MCONFIG_SKEW(0) | // SKEW = 0
I3C_MCONFIG_PPBAUD(6) | // THPP = 40ns * (7) = 280ns
I3C_MCONFIG_PPLOW(1) | // TLPP = 280ns+1*40ns
I3C_MCONFIG_ODBAUD(0) | // ODBAUD = THPP*(0)= 280ns
I3C_MCONFIG_ODHPP(1) | // ODHPP=1 use PPBAUD 280ns for high
I3C_MCONFIG_ODSTOP(0) |
I3C_MCONFIG_I2CBAUD(8); // 5*ODBAUD = 5*280ns for high, 5*ODBAUD = 5*280ns for low
这边有组tSU-STA的测试达到了640ns。
因为没有寄存器具体配置,所以只能调整时钟了。
Best Regards,
Kerry
謝謝你的回覆!
以下是我的code,你上述的那段應該加在哪邊好呢?謝謝!
CLOCK_AttachClk(kMAIN_CLK_to_I3C_CLK);
CLOCK_SetClkDiv(kCLOCK_DivI3cClk, 4);
BOARD_InitBootPins();
BOARD_BootClockRUN();
BOARD_InitDebugConsole();
I3C_MasterGetDefaultConfig(&masterConfig);
masterConfig.baudRate_Hz.i2cBaud = EXAMPLE_I2C_BAUDRATE;
masterConfig.baudRate_Hz.i3cPushPullBaud = 4000000U;
masterConfig.baudRate_Hz.i3cOpenDrainBaud = 1500000U;
masterConfig.enableOpenDrainStop = false;
I3C_MasterInit(EXAMPLE_MASTER, &masterConfig, I3C_MASTER_CLOCK_FREQUENCY);
Hi @AlicePXLin ,
你可以直接把新的配置放到:
I3C_MasterInit(EXAMPLE_MASTER, &masterConfig, I3C_MASTER_CLOCK_FREQUENCY);
下面,这样MCONFIG寄存器会被你的新值给替换掉。
然后你可以查看波形。
另外这个帖子开的时间有点长了,如果还有问题,还请重新建个问题贴。因为我们这边对关贴时间有要求,不能太长。
Best Regards,
Kerry
Hi @kerryzhou,
重新附圖
第二張圖是 認不出Repeated start
兩者的clock 設定都相同,源SDK代码沒有修改时钟
差別在於slave不一樣
想請問是否有設定可以調整SDA falling與SCL rising的時間差
在這部分有試過將clock 調慢,SDA falling與SCL rising的時間才有錯開,才能認出Repeated start
謝謝
Hi @AlicePXLin
那么你现在的意思是,如果不改SDK, 主从都是RT685, repeat start识别都没有问题。
如果I3C slave换成人家的或者sensor,主机还是RT685,然后repeat认不出来了?然后你想调整START信号SDA falling与SCL rising的时间,是这个意思吗?
我找了下RM还有DS,没有看到相关寄存器去调整的,所以应该是fix的。
要么,可能要降频。
Best Regards,
Kerry
Hi @kerryzhou
是的,不過經量測兩個RT685對接的Repeated start 波型
SDA falling與SCL rising的時間差僅5nS,不到Spec提供的19.2nS
這部分能改善嗎?
Hi @AlicePXLin
你说的是repeated start吗?
tCAS才是start的时间
我认为是测试这个tCASr
不过这个tCBSr的时间确实是比spec要小:
真正的repeated start Sr是SCL为高的时候,SDA拉低。
你现在其他的从机就是因为这个tCBSr,也就是repeated start之前时钟条件给的过窄不能识别,对吗?
Best Regards,
Kerry