ZHCAA54B January 2022 – June 2022 TCAN1145-Q1 , TCAN1146-Q1
参数 | 示例值 |
---|---|
所需的 WUF ID | 标准 ID(11 位)0x123 |
ID 掩码 | 0x000(ID 必须完全匹配,1 = 忽略,0 = 必须匹配) |
总线仲裁速率/CAN FD 速率 | 500kbps/2Mbps |
忽略 CAN FD | 真 |
WUF 数据有效负载 | 忽略 |
对示例参数值进行分解后,WUF ID 为 0×123。这是需要与接收到的消息 ID 相匹配才能唤醒的特定 ID。ID 掩码描述了 ID 中的哪些位必须匹配。这是一个被忽略或必须匹配位。这意味着当 ID 掩码中的某个位设置为 1 时,将不会检查指定的位是否匹配。为了精确匹配特定的 ID,ID 掩码应配置为全 0。本例中 CAN FD 总线的仲裁和数据速率分别为 500kbps 和 2Mbps。该理论总线是 CAN FD 总线,因此我们希望做到在某些节点处于睡眠状态时产生常规 CAN FD 流量。SW_PASSIVE 位用于描述局部联网 IP 如何处理 CAN FD 帧的接收。可以将器件配置为将其视为错误,当错误足够多时,器件将唤醒并设置错误标志。
该示例将 ID 掩码设置为全 0,因此 ID 必须完全匹配。
还可以将器件配置为简单地忽略所有 CAN FD 帧,这不会影响器件唤醒或任何错误设置。在本示例中,我们不关心数据有效负载。这意味着任何具有标准 ID 0×123 和任何有效负载的传统 CAN 消息都能唤醒器件。
务必注意,寄存器的写入顺序很重要。具体而言,应在设置选择性唤醒使能位之前配置所有选择性唤醒寄存器。这是因为对选择性唤醒配置寄存器的任何写入都会清除 SWCFG 位 (0x47)。如果未设置 SWCFG,则不会启用选择性唤醒,即使设置了主选择性唤醒启用也是如此。最佳做法是确保该寄存器是配置期间最后一个写入的寄存器。表 5-2 显示了为器件设置该示例 WUF 配置时应发生的每个 SPI 事务。给出了寄存器地址、十六进制数据和 SPI 消息的原始十六进制值。
步骤 | 说明 | 寄存器 | 寄存器(十六进制) | 数据(十六进制) | 原始十六进制值 |
---|---|---|---|---|---|
0 | 禁用选择性唤醒 | SW_CONFIG_4 | 0×47 | 0×00 | 0×8F、0×00 |
1 | 写入所需的 WUF ID (0×123) | SW_ID1 | 0×30 | 0×00 | 0×61、0×00 |
2 | 写入所需的 WUF ID (0×123) | SW_ID2 | 0×31 | 0×00 | 0×63、0×00 |
3 | 写入所需的 WUF ID (0×123) | SW_ID3 | 0×32 | 0×04 | 0×65、0×04 |
4 | 写入所需的 WUF ID (0×123) | SW_ID4 | 0×33 | 0×8C | 0×67、0×8C |
5 | 将 ID 掩码写入 (0) SW_ID_MASK1 | SW_ID_MASK1 | 0×34 | 0×00 | 0×69、0×00 |
6 | 将 ID 掩码写入 (0) SW_ID_MASK2 | SW_ID_MASK2 | 0×35 | 0×00 | 0×6B、0×00 |
7 | 将 ID 掩码写入 (0) SW_ID_MASK3 | SW_ID_MASK3 | 0×36 | 0×00 | 0×6D、0×00 |
8 | 将 ID 掩码写入 (0) SW_ID_MASK4 | SW_ID_MASK4 | 0×37 | 0×00 | 0×6F、0×00 |
9 | 写入 ID 掩码 (0) 和 DATA_MASK_EN (0) | SW_ID_MASK_DLC | 0×38 | 0×00 | 0×71、0×00 |
10 | 配置仲裁速度、FD:CAN 比率和 SW_FD_PASSIVE (1) | SW_CONFIG_1 | 0×44 | 0×D0 | 0×89、0×D0 |
11 | 将帧溢出设置为 255(唤醒前的最大错误数) | SW_CONFIG_3 | 0×46 | 0×FE | 0×8D、0×FE |
12 | 设置 SWCFG 位(配置完成) | SW_CONFIG_4 | 0×47 | 0×80 | 0×8F、0×80 |
13 | 启用选择性唤醒并进入睡眠状态 | MODE_CNTRL | 0×10 | 0×81 | 0×21、0×81 |