I3C CCC command Timing Control mode

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

I3C CCC command Timing Control mode

869 Views
yvan_yan
Contributor III

Hi @Harry_Zhang 

I3C的CCC command SETXTIME有设置进入 Async Mode 0的命令,

我看到在MCXN的spec里I3C slave有进入Async Mode 0的寄存器设置SSTATUS的bit31-30 TIMECTRL

I3C master是怎么设置的,有sample code可以参考吗?

 

BR

Yvan

Labels (1)
Tags (1)
0 Kudos
Reply
6 Replies

837 Views
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

SETXTIME (0x28h) 是 CCC 广播命令,用来设置 Target (Slave) 的 Time Control mode。

这个命令允许主机(I3C Controller)要求所有 Target 进入 Synchronous mode 或 Asynchronous mode (0/1)。

请问您是需要I3C master 发送0x28的广播命令的代码么?

BR

Harry

0 Kudos
Reply

834 Views
yvan_yan
Contributor III

Hi @Harry_Zhang 

是的

Target (Slave) 进入 Asynchronous mode 0后,Target 会发送IBI,I3C Controller会根据这个IBI的数据进行计算,这部分是硬件还是软件实现,有相关代码可以参考吗

BR

Yvan

0 Kudos
Reply

793 Views
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

I3C Controller会根据这个IBI的数据进行计算,这部分是硬件还是软件实现?

您好,我查了一下RM手册。

这部分是需要通过软件实现的。相关寄存器为STCCLOCK

Harry_Zhang_0-1756979713922.png

Harry_Zhang_1-1756979739993.png

 Controller 必须用 STCCLOCK(由 Target 提供或在配置时告知)来做换算。


寄存器 STCCLOCK 提供:

FREQ:时钟频率

ACCURACY:时钟精度


Controller 用这两个参数就能把 Target 报告的 tick 转换为实际时间(ns/µs/ms)。

有相关代码可以参考吗

很抱歉,目前没有相关demo,并且i3c driver也没有相关API,实现相关功能只能结合SDK demo配置相关寄存器。

BR

Harry

0 Kudos
Reply

737 Views
yvan_yan
Contributor III

Hi @Harry_Zhang 

进入Asynchronous mode 0模式后,I3C Controller 除了需要通过IBI payload获得Target 的数据外,还需要知道C_REF(IBI ACK)和C_C2(IBI MD Byte后T-Bit) I3C Controller的timestamp,这两个点应该怎么获得?

• C_REF: First SCL positive-going edge after the IBI ACK
• C_C2: First SCL positive-going edge after the T-Bit of the IBI’s Mandatory Byte

BR

Yvan

0 Kudos
Reply

531 Views
Harry_Zhang
NXP Employee
NXP Employee

Hi @yvan_yan 

您好,我看了一下Specification for I3C Basic

Timing Control

Harry_Zhang_0-1757917462802.png

CREF是在ACK后面,C_C2是在MDB T bit后面。

我们可以使用软件中断来启动计时器进行计数,然后计算目标传感器采样发生的时间。

但是I3C的寄存器只支持在IBI 的ACK中有相关中断,但是T bit没有中断。

所以可以C_C2可以通过C_REF计算,通过IBI ACK的中断后计时加上 9*1/pushpull Baud rate。

BR

Harry

0 Kudos
Reply

519 Views
yvan_yan
Contributor III

好的 谢谢

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-2161659%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EI3C%20CCC%20command%20Timing%20Control%20mode%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2161659%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F229957%22%20target%3D%22_blank%22%3E%40Harry_Zhang%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3CP%3EI3C%E7%9A%84CCC%20command%20SETXTIME%E6%9C%89%E8%AE%BE%E7%BD%AE%E8%BF%9B%E5%85%A5%26nbsp%3BAsync%20Mode%200%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%8C%3C%2FP%3E%3CP%3E%E6%88%91%E7%9C%8B%E5%88%B0%E5%9C%A8MCXN%E7%9A%84spec%E9%87%8CI3C%20slave%E6%9C%89%E8%BF%9B%E5%85%A5Async%20Mode%200%E7%9A%84%E5%AF%84%E5%AD%98%E5%99%A8%E8%AE%BE%E7%BD%AESSTATUS%E7%9A%84bit31-30%20TIMECTRL%3C%2FP%3E%3CP%3EI3C%20master%E6%98%AF%E6%80%8E%E4%B9%88%E8%AE%BE%E7%BD%AE%E7%9A%84%EF%BC%8C%E6%9C%89sample%20code%E5%8F%AF%E4%BB%A5%E5%8F%82%E8%80%83%E5%90%97%EF%BC%9F%3C%2FP%3E%3CBR%20%2F%3E%3CP%3E%3CSPAN%3EBR%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EYvan%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2161659%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EMCXN%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2169626%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20I3C%20CCC%20command%20Timing%20Control%20mode%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2169626%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EOkay.%20Thank%20you.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2169409%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20I3C%20CCC%20command%20Timing%20Control%20mode%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2169409%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F245065%22%20target%3D%22_blank%22%3E%40yvan_yan%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%E6%88%91%E7%9C%8B%E4%BA%86%E4%B8%80%E4%B8%8BSpecification%20for%20I3C%20Basic%3C%2FP%3E%0A%3CP%3ETiming%20Control%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Harry_Zhang_0-1757917462802.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Harry_Zhang_0-1757917462802.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F356837i71061741CC352CA9%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Harry_Zhang_0-1757917462802.png%22%20alt%3D%22Harry_Zhang_0-1757917462802.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3ECREF%E6%98%AF%E5%9C%A8ACK%E5%90%8E%E9%9D%A2%EF%BC%8CC_C2%E6%98%AF%E5%9C%A8MDB%20T%20bit%E5%90%8E%E9%9D%A2%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%88%91%E4%BB%AC%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E8%BD%AF%E4%BB%B6%E4%B8%AD%E6%96%AD%E6%9D%A5%E5%90%AF%E5%8A%A8%E8%AE%A1%E6%97%B6%E5%99%A8%E8%BF%9B%E8%A1%8C%E8%AE%A1%E6%95%B0%EF%BC%8C%E7%84%B6%E5%90%8E%E8%AE%A1%E7%AE%97%E7%9B%AE%E6%A0%87%E4%BC%A0%E6%84%9F%E5%99%A8%E9%87%87%E6%A0%B7%E5%8F%91%E7%94%9F%E7%9A%84%E6%97%B6%E9%97%B4%E3%80%82%3C%2FP%3E%0A%3CP%3E%E4%BD%86%E6%98%AFI3C%E7%9A%84%E5%AF%84%E5%AD%98%E5%99%A8%E5%8F%AA%E6%94%AF%E6%8C%81%E5%9C%A8IBI%20%E7%9A%84ACK%E4%B8%AD%E6%9C%89%E7%9B%B8%E5%85%B3%E4%B8%AD%E6%96%AD%EF%BC%8C%E4%BD%86%E6%98%AFT%20bit%E6%B2%A1%E6%9C%89%E4%B8%AD%E6%96%AD%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%89%80%E4%BB%A5%E5%8F%AF%E4%BB%A5C_C2%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87C_REF%E8%AE%A1%E7%AE%97%EF%BC%8C%E9%80%9A%E8%BF%87IBI%20ACK%E7%9A%84%E4%B8%AD%E6%96%AD%E5%90%8E%E8%AE%A1%E6%97%B6%E5%8A%A0%E4%B8%8A%209*1%2Fpushpull%26nbsp%3BBaud%20rate%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3EHarry%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2164134%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20I3C%20CCC%20command%20Timing%20Control%20mode%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2164134%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F229957%22%20target%3D%22_blank%22%3E%40Harry_Zhang%3C%2FA%3E%20%3C%2FP%3E%3CP%3EAfter%20entering%20Asynchronous%20mode%200%2C%20the%20I3C%20%3CSPAN%3EController%20needs%20to%20know%20C_REF%20(IBI%20ACK)%20and%20C_C2%20(IBI%20MD%20Byte%20followed%20by%20T-Bit)%20the%20timestamp%20of%20the%20I3C%20Controller%20in%20addition%20to%20getting%20the%20data%20of%20the%20Target%20through%20the%20IBI%20payload.%20How%20should%20I%20get%20these%20two%20points%3F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E-%20C_REF%3A%20First%20SCL%20positive-going%20edge%20after%20the%20IBI%20ACK%20%3CBR%20%2F%3E-%20C_C2%3A%20First%20SCL%20positive-going%20edge%20after%20the%20T-Bit%20of%20the%20IBI%20C_C2%3A%20First%20SCL%20positive-going%20edge%20after%20the%20T-Bit%20of%20the%20IBI%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EBR%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EYvan%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2163578%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20I3C%20CCC%20command%20Timing%20Control%20mode%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2163578%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F245065%22%20target%3D%22_blank%22%3E%40yvan_yan%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E%E2%80%9C%3CSPAN%3EI3C%20Controller%E4%BC%9A%E6%A0%B9%E6%8D%AE%E8%BF%99%E4%B8%AAIBI%E7%9A%84%E6%95%B0%E6%8D%AE%E8%BF%9B%E8%A1%8C%E8%AE%A1%E7%AE%97%EF%BC%8C%E8%BF%99%E9%83%A8%E5%88%86%E6%98%AF%E7%A1%AC%E4%BB%B6%E8%BF%98%E6%98%AF%E8%BD%AF%E4%BB%B6%E5%AE%9E%E7%8E%B0%EF%BC%9F%3C%2FSPAN%3E%E2%80%9D%3C%2FP%3E%0A%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%E6%88%91%E6%9F%A5%E4%BA%86%E4%B8%80%E4%B8%8BRM%E6%89%8B%E5%86%8C%E3%80%82%3C%2FP%3E%0A%3CP%3E%E8%BF%99%E9%83%A8%E5%88%86%E6%98%AF%E9%9C%80%E8%A6%81%E9%80%9A%E8%BF%87%E8%BD%AF%E4%BB%B6%E5%AE%9E%E7%8E%B0%E7%9A%84%E3%80%82%E7%9B%B8%E5%85%B3%E5%AF%84%E5%AD%98%E5%99%A8%E4%B8%BASTCCLOCK%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Harry_Zhang_0-1756979713922.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Harry_Zhang_0-1756979713922.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F355551i0720E487802C569A%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Harry_Zhang_0-1756979713922.png%22%20alt%3D%22Harry_Zhang_0-1756979713922.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Harry_Zhang_1-1756979739993.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Harry_Zhang_1-1756979739993.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F355552iB01544B6E84318E2%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Harry_Zhang_1-1756979739993.png%22%20alt%3D%22Harry_Zhang_1-1756979739993.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3BController%20%E5%BF%85%E9%A1%BB%E7%94%A8%20STCCLOCK%EF%BC%88%E7%94%B1%20Target%20%E6%8F%90%E4%BE%9B%E6%88%96%E5%9C%A8%E9%85%8D%E7%BD%AE%E6%97%B6%E5%91%8A%E7%9F%A5%EF%BC%89%E6%9D%A5%E5%81%9A%E6%8D%A2%E7%AE%97%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3E%E5%AF%84%E5%AD%98%E5%99%A8%20STCCLOCK%20%E6%8F%90%E4%BE%9B%EF%BC%9A%3C%2FP%3E%0A%3CP%3EFREQ%EF%BC%9A%E6%97%B6%E9%92%9F%E9%A2%91%E7%8E%87%3C%2FP%3E%0A%3CP%3EACCURACY%EF%BC%9A%E6%97%B6%E9%92%9F%E7%B2%BE%E5%BA%A6%3C%2FP%3E%0A%3CP%3E%3CBR%20%2F%3EController%20%E7%94%A8%E8%BF%99%E4%B8%A4%E4%B8%AA%E5%8F%82%E6%95%B0%E5%B0%B1%E8%83%BD%E6%8A%8A%20Target%20%E6%8A%A5%E5%91%8A%E7%9A%84%20tick%20%E8%BD%AC%E6%8D%A2%E4%B8%BA%E5%AE%9E%E9%99%85%E6%97%B6%E9%97%B4%EF%BC%88ns%2F%C2%B5s%2Fms%EF%BC%89%E3%80%82%3C%2FP%3E%0A%3CP%3E%E2%80%9C%3CSPAN%3E%E6%9C%89%E7%9B%B8%E5%85%B3%E4%BB%A3%E7%A0%81%E5%8F%AF%E4%BB%A5%E5%8F%82%E8%80%83%E5%90%97%3C%2FSPAN%3E%3CSPAN%3E%EF%BC%9F%3C%2FSPAN%3E%E2%80%9D%3C%2FP%3E%0A%3CP%3E%E5%BE%88%E6%8A%B1%E6%AD%89%EF%BC%8C%E7%9B%AE%E5%89%8D%E6%B2%A1%E6%9C%89%E7%9B%B8%E5%85%B3demo%EF%BC%8C%E5%B9%B6%E4%B8%94i3c%20driver%E4%B9%9F%E6%B2%A1%E6%9C%89%E7%9B%B8%E5%85%B3API%EF%BC%8C%E5%AE%9E%E7%8E%B0%E7%9B%B8%E5%85%B3%E5%8A%9F%E8%83%BD%E5%8F%AA%E8%83%BD%E7%BB%93%E5%90%88SDK%20demo%E9%85%8D%E7%BD%AE%E7%9B%B8%E5%85%B3%E5%AF%84%E5%AD%98%E5%99%A8%E3%80%82%3C%2FP%3E%0A%3CP%3EBR%3C%2FP%3E%0A%3CP%3EHarry%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2162525%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20I3C%20CCC%20command%20Timing%20Control%20mode%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2162525%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F229957%22%20target%3D%22_blank%22%3E%40Harry_Zhang%3C%2FA%3E%20%3C%2FP%3E%3CP%3Eyea%3C%2FP%3E%3CP%3EAfter%20Target%20(Slave)%20enters%20Asynchronous%20mode%200%2C%20Target%20will%20send%20IBI%2C%20I3C%20Controller%20will%20calculate%20according%20to%20the%20data%20of%20this%20IBI%2C%20is%20this%20part%20realized%20by%20hardware%20or%20software%2C%20is%20there%20any%20related%20code%20for%20reference%20%3CSPAN%3E%3F%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EBR%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3EYvan%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2162514%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20I3C%20CCC%20command%20Timing%20Control%20mode%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2162514%22%20slang%3D%22zh-CN%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%20%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F245065%22%20target%3D%22_blank%22%3E%40yvan_yan%3C%2FA%3E%20%3C%2FP%3E%0A%3CP%3ESETXTIME%20(0x28h)%20is%20a%20CCC%20broadcast%20command%20to%20set%20the%20Time%20Control%20mode%20of%20the%20Target%20(Slave).%3C%2FP%3E%0A%3CP%3EThis%20command%20allows%20the%20host%20(I3C%20Controller)%20to%20request%20all%20Targets%20to%20enter%20Synchronous%20mode%20or%20Asynchronous%20mode%20(0%2F1).%3C%2FP%3E%0A%3CP%3EDo%20you%20need%20%3CSPAN%3Ethe%20code%20for%20the%20I3C%20master%20to%20send%20the%20broadcast%20command%200x28%3F%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EBR%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%3CSPAN%3EHarry.%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E