I3C CCC command Timing Control mode

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

I3C CCC command Timing Control mode

328 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
4 Replies

296 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

293 Views
yvan_yan
Contributor III

Hi @Harry_Zhang 

是的

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

BR

Yvan

0 Kudos
Reply

252 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

196 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