ZHCAA54B January 2022 – June 2022 TCAN1145-Q1 , TCAN1146-Q1
| 參數 | 示例值 |
|---|---|
| 所需的 WUF ID | 標準 ID(11 位)0x122/123 |
| ID 掩碼 | 0×001(匹配除位 0 以外的所有位,1 = 忽略,0 = 必須匹配) |
| 總線仲裁速率/CAN FD 速率 | 500kbps/2Mbps |
| 忽略 CAN FD | 真 |
| WUF DLC | 2 字節(DLC:0×2) |
| 要喚醒至的 WUF 數據位 | 字節 0[1]、字節 1[7] |
對示例參數值進行分解后,WUF ID 為 0×123 或 0×122。寫入寄存器的值與輸入兩者中的哪一個無關,因為會使用 ID 掩碼將位 0 標記為忽略。通過將 ID 掩碼的位 0 設置為 1,我們使器件忽略該位,這意味著器件將接受 0×122 或 0×123 ID。本例中的 CAN FD 總線的仲裁和數據速率分別為 500kbps 和 2Mbps。該理論總線是 CAN FD 總線,因此我們希望做到在某些節點處于睡眠狀態時產生常規 CAN FD 流量,從而將 SW_PASSIVE 設置為 1b。
該示例的一處更改是對數據有效負載進行一些驗證。請注意,數據有效負載檢查需要 DLC 完全匹配,但檢查 WUF 數據位的方式僅是按位或。例如,會根據有效負載檢查設置為 1 的位,如果任何單個(或更多)位匹配,則將其視為匹配。同樣,如果將 WUF 數據掩碼設置為 0×FF,則任何包含等于 1 的位的值都將匹配。如果將 WUF 數據掩碼設置為 0×00,則該特定字節本質上會被忽略,無法匹配,即使接收到的數據是 0×00 也是如此。會將該或運算應用于所有配置的數據字節(由 DLC 字段設置)。表 5-4 提供了一個示例,用于說明如何針對該行為對器件進行編程。
| 步驟 | 說明 | 寄存器 | 寄存器(十六進制) | 數據(十六進制) | 原始十六進制值 |
|---|---|---|---|---|---|
| 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×001) SW_ID_MASK1 | SW_ID_MASK1 | 0×34 | 0×00 | 0×69、0×00 |
| 6 | 將 ID 掩碼寫入 (0×001) SW_ID_MASK2 | SW_ID_MASK2 | 0×35 | 0×00 | 0×6B、0×00 |
| 7 | 將 ID 掩碼寫入 (0×001) SW_ID_MASK3 | SW_ID_MASK3 | 0×36 | 0×00 | 0×6D、0×00 |
| 8 | 將 ID 掩碼寫入 (0×001) SW_ID_MASK4 | SW_ID_MASK4 | 0×37 | 0×00 | 0×6F、0×00 |
| 9 | 寫入 ID 掩碼 (0×001)、DLC (2) 和 DATA_MASK_EN (1) | SW_ID_MASK_DLC | 0×38 | 0×25 | 0×71、0×25 |
| 10 | 寫入數據 0 (0×01) | DATA_0 | 0×39 | 0×01 | 0×73、0×01 |
| 11 | 寫入數據 1 (0×80) | DATA_1 | 0×40 | 0×80 | 0×75、0×80 |
| 12 | 配置仲裁速度、FD:CAN 比率和 SW_FD_PASSIVE (1) | SW_CONFIG_1 | 0×44 | 0×D0 | 0×89、0×D0 |
| 13 | 將幀溢出設置為 255(喚醒前的最大錯誤數) | SW_CONFIG_3 | 0×46 | 0×FE | 0×8D、0×FE |
| 14 | 設置 SWCFG 位(配置完成) | SW_CONFIG_4 | 0×47 | 0×80 | 0×8F、0×80 |
| 15 | 啟用選擇性喚醒并進入睡眠狀態 | MODE_CNTRL | 0×10 | 0×81 | 0×21、0×81 |