RL78/F24新一代超低功耗汽車微控制器,非常適用于實現未來高可靠性的智能執行器和傳感器,是低端車身ECU的理想之選。作為對現有RL78/F1x MCU的創新擴展,RL78/F24可滿足未來市場的多種需求。RL78/F24具有更高的CPU性能、耐高溫能力和更強的外設功能,非常適合各種應用。為了響應E/E汽車架構的新趨勢,RL78/F24配備了CAN FD接口。
目前在官網上對于CANFD模塊,提供了所使用的RL78/F24 RS-CANFD lite Module Software Integration System和相關介紹文檔。本篇文章主要介紹如何使用該Middleware在e2 studio中完成CANFD參考例程,并使用RL78/F24 Target Board(RTK7F124FPC01000BJ)配合PCAN進行測試。
1. 所使用的硬件
瑞薩官方RL78/F24 (R7F124FPJ) Target Board,需要用戶焊接CN5(CANFD接口),如果需要外部供電,還需要焊接TP1(VDD)和TP2(GND)。
另外,RL78/F24 Target Board上,CANFD部分電路沒有終端電阻,針對本測試系統,需要在CANH和CANL之間焊上120Ω電阻。
調試器:瑞薩官方調試器E2或者E2 Lite(需要注意,E2 Lite只能提供3.3V供電,E2可以提供5V或者3.3V供電)。
輔助設備:使用CANFD其他器件用于測試發送和接收結果,這里使用PCAN(包括硬件和軟件,硬件上設置有終端電阻)。
PCAN上設置波特率、采樣點和過濾規則:
2. 軟件開發環境
e2 studio:v2024-01(因為IAR需要License,所以沒有使用官網給出的IAR參考例程)
Renesas CC-RL Compiler v1.13.00(RSCANFD驅動只能用于CC-RL編譯器)
Smart Configurator中
Board Support Packages. -v1.62 (r_bsp)
Ports v 1.4.0
RS-CANFD lite Module Software Integration System (r_rscanfd_rl78) v1.00
注意,用戶需要自己添加RS-CANFD lite Module Software Integration System (r_rscanfd_rl78)。
可以使用下面兩種方法的其中之一進行添加:
? 打開SC,選擇“Components”,點擊“Add Component”,點擊“Download RL78 Software Integration System modules”。
選擇相應的模塊進行下載。
? 將“r01an6334xx0100-rl78f24-sis”中內容,拷貝到Module Download文件夾。
3. 時鐘和模塊設置
1
根據文檔“r01an6982ed0090-rl78f24”中內容,需要根據實際板子需求配置時鐘。
在這種情況下,CANFD模塊的屬性設置中DLC時鐘選擇Internal clock。
2
RL78的Smart Configurator中對于波特率的設置,需要手動設置。
本測試代碼中以fCAN=20MHz、nominal Baud Rate = 500kbps、data Baud Rate = 2Mbps為例。
波特率
500kbps
2Mbps
Prescaler
0
0
Time Segment 1
29
7
Time Segment 2
10
2
SJW
1
1
Sample Point (%)
75.00
80.00
4. 調試配置
1由于CANFD收發器需要5V供電,所以需要外部電源給板子提供5V供電。
RL78/F24 (R7F124FPJ) Target Board上有VDD和EVDD,可以分別供電,比如可以VDD使用3.3V供電,EVDD使用5V供電。但是此Target Board默認將VDD和EVDD連接在一起,所以一起用外部電源提供5V電源,此時,外部調試器選擇不供電。
2由于系統使用外部主時鐘,所以調試器的配置需要做相應修改。
5. 軟件流程
參考文檔“RL78/F24 RS-CANFD lite Module Software Integration System Rev.1.00”(r01an6334ej0100-rl78f24)中內容。
Application Note:RL78/F24 RS-CANFD lite Module Software Integration System Rev.1.00
1設置P12:輸出模式,輸出低電平,以保證CANFD收發器處于Normal模式。
2添加RSCANFD組件,并設置屬性(屬性的詳細內容請參考文章后附上的參考工程)。
3
添加相應的中斷函數
4在主函數中添加CAN相關頭文件、R_CAN_Create函數和R_CAN_SetConfig函數,并等待通信就緒。
左右滑動查看完整內容
長按可保存查看大圖
5配置幀屬性,準備將要發送的數據,然后發送CANFD數據。
左右滑動查看完整內容
長按可保存查看大圖
本測試代碼中,發送幀為標準數據幀,ID為0x7FE,數據長度為8,數據內容為0x11、0x22、0x33、0x44、0x55、0x66、0x77、0x88。
從PCAN中可以接收到RL78/F24發送的CANFD數據。
可以看出,數據類型為FD,并且切換波特率。
通過邏輯分析儀觀察CTX和CRX波形,可以看到Nominal段和Data段波特率不一樣。
6設置接收filter功能
在R_CAN_SetConfig()函數后,添加接收規則。
左右滑動查看完整內容
長按可保存查看大圖
接收標準幀、ID為0x700的數據、將數據接收到RXBUF0中。
7接收CANFD數據
在中斷函數RSCFD_A_GlobalMBReceiveIRQ中添加接收代碼。
左右滑動查看完整內容
長按可保存查看大圖
使用PCAN發送以下ID(0x700)和數據,注意要勾選“CAN FD”和“Bit Rate Switch”。
MCU可以正常接收,可以看到FDF和BRS的值都為1。
左右滑動查看完整內容
長按可保存查看大圖
驗證如果PCAN發送的ID為0x701(除0x700以外的ID,此處以0x701為例),MCU不會進入中斷。
6. 需要注意的問題
1在接收中斷中,需要使用R_CAN_ReadRXMBInHandler,而并非R_CAN_ReadRXMB。
R_CAN_ReadRXMB
從RX消息緩沖區讀取接收到的數據。
R_CAN_ReadRXMBInHandler
從RX消息緩沖區讀取接收到的數據。(在中斷處理進程中)
2發送FD數據,需要注意以下發送幀類型。
s_tx_frame.Head.Bits.FDCTR
可從以下幾種類型中進行選擇
左右滑動查看完整內容
/* for FDCTR (st_can_tx_frame_t) (ESI is effective when ESIC=1 and not error passive) */ #define CAN_FDCTR_CLASSICAL (0x00u) /* Classical Frame */ #define CAN_FDCTR_FD (0x06u) /* FD Frame (use Data Baud Rate) */ #define CAN_FDCTR_FD_NMNL (0x04u) /* FD Frame (only Nominal Baud Rate) */ #define CAN_FDCTR_FD_ESI (0x07u) /* FD Frame (use Data Baud Rate and ESI) */ #define CAN_FDCTR_FD_NMNL_ESI (0x05u) /* FD Frame (only Nominal Baud Rate, use ESI)
3發送FD數據時,需要根據所用CANFD收發器的特性和所用波特率設置TDC(收發器延遲補償)。
原因:如果數據階段使用高波特率(例如5 Mbps),則發送器延遲可能會大于 TSEG1。在這種情況下,發送器將始終檢測到CAN-FD幀的數據階段中的位錯誤。TDC(收發器延遲補償)可補償發送器無法在該位的采樣點接收其自身發送的位。(詳情請參考RL78/F24硬件手冊中的“18.15.1.5 CAN Transmitter Delay Compensation”)。
RL78/F24硬件手冊
基于TDC原理和板上使用的高速CAN收發器。
對于此收發器,當波特率為2M時,應將TDC設置為Disabled。
通過計算(1/(140+140)*10^9=3.57M),當使用的波特率超過3.57M時,請考慮使用TDC。
至此,使用RL78/F24進行CANFD發送和接收的參考例程已完成,參考例程請從Gitee上下載。用戶可以在此例程的基礎上,針對用戶板進行配置上的修改,也可以調整發送數據類型。
-
微控制器
+關注
關注
48文章
7552瀏覽量
151417 -
mcu
+關注
關注
146文章
17148瀏覽量
351186 -
瑞薩
+關注
關注
35文章
22309瀏覽量
86305 -
CANFD
+關注
關注
0文章
58瀏覽量
4945
原文標題:RL78/F24 CANFD參考例程
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論