- 硬體平台:E3640 官方開發板(SD103_E3_REF_GATEWAY_ePOWERTRAIN_A03_SCH);
- 軟體環境:IAR Embedded Workbench for ARM 8.50.6;
- 軟體平台:E3 MCAL PTG3.0;
- 軟體工具:23.1201;
- MCAL 配置工具:EB tresos Studio 26.2.0。
圖1 E3640 官方開發板
二、 CANFD 外設配置
1. 硬體接口
E3640 開發板原理圖,CANFD3 接口如下:
2. EB 配置
① PORT 引腳配置;
② 在 Mcu 模塊中,將 CANFD3 的功能打開;
③ CANFD3 外設模塊配置,查看相應主晶片的 TRM 文檔,正確填寫 CANFD 外設的基地址;
④ CAN 外設時鐘確認;默認 E3 系列輸入給 CAN 模塊的 Root Clock 是 PLL 分頻後的 Clock 為 40Mhz,如果客戶需要更高精度時鐘可選擇外部晶振 24M 需要修改代碼 c。
⑤ CANFD 不支持 FIFO 模式,接收句柄 CanHwObjectCount 僅能設置成 1,並且只能配置一個對應的濾波規則;
⑥ CANFD 波特率配置,仲裁域波特率設置 500K、數據域波特率設置 2000K;
⑦ 最大傳輸數據域個數配置,CANFD 支持設置 8、16、32、64 長度;每一個 CAN controller 最多支持 64 MBs,每個 MB 可存儲一幀標準幀,並且 MB 不可共享,一個 CAN controller 支持兩個 RAM Block(0/1),每個 RAM Block payload 長度可通過 CanMessageBufferRegionConfig 單獨配置,每個 RAM Block 分別支持 32MBs with 8 bytes payload、21MBs with 16 bytes payload、12MBs with 32 bytes payload、7MBs with 64 bytes payload;
⑧ 在 CanHardwareObject 中添加收發句柄,同時可添加多個收發句柄,句柄總個數應小於等於 CanMessageBufferRegionConfig 分配的郵箱個數,單個句柄數據幀長度應小於等於 CanMessageBufferRegionSize,數據域超出 CanMessageBufferRegionSize 長度的部分數據出錯;
⑨ 設置濾波
RxFilter 用於標準幀和擴展幀接收規則設置,CanHwFilterMask: 如果該 bit 設置為 1,則意味著 CanHwFilterCode 對應的 bit 位需要過濾,如果設置為 0,則 CanHwFilterCode 對應的 bit 位不需要過濾;CANFD 不支持 FIFO 模式,故只能配置一個對應的濾波規則;在標準幀模式下,CanHwFilterMask 和 CanHwFilterCode 範圍 0x0~0x7FF,在擴展幀模式下,CanHwFilterMask 和 CanHwFilterCode 範圍是 x0~0x1FFFFFFF,在 MIXED 模式下,CanHwFilterMask 和 CanHwFilterCode 範圍是 0x0~0x7FF(只能過濾擴展幀的高 11bits,或者標準幀報文)。
3. 功能測試
3.1 數據發送
① CanMessageBufferRegionSize 設置 16 個字節,
② 增加發送句柄
④ ZCANPro 接收到 CAN 數據如下圖:
① CanMessageBufferRegionSize 設置 16 個字節,
② 增加發送句柄
③ ZCANPRO 發送數據設置
④ 接收數據幀 log 顯示
⑤ ZCANPRO 發送數據設置
⑥ 接收數據幀 log 顯示
3.3 接收濾波
① 句柄僅接收標準幀
② 句柄僅接收擴展幀
③ 句柄接收標準幀、擴展幀
標準幀接收 ID 範圍為,低八位為 0x12,高三位可以接收任意數據
擴展幀接收 ID 範圍為:高 11 位的其中低八位固定 ID 為 0x12,其他數據位任意數據。
三、 參考文檔
《E3640_MCU_TRM_Rev00.13》
《E3640_MCU_Datasheet_Rev00.17》
《SemiDrive_E3_MCAL_User_Guide_Rev03.00》
《SDToolBox_User_Guide》
歡迎在博文下方留言評論,我們會及時回復您的問題。
如有更多需求,歡迎聯繫大聯大世平集團 ATU 部門:atu.sh@wpi-group.com 作者:Linna Wang / 王麗娜
更多資訊,請掃碼關注我們!
評論