RL78/F24新一代超低功耗汽車微控制器,非常適用于實現(xiàn)未來高可靠性的智能執(zhí)行器和傳感器,是低端車身ECU的理想之選。作為對現(xiàn)有RL78/F1x MCU的創(chuàng)新擴展,RL78/F24可滿足未來市場的多種需求。RL78/F24具有更高的CPU性能、耐高溫能力和更強的外設(shè)功能,非常適合各種應(yīng)用。為了響應(yīng)E/E汽車架構(gòu)的新趨勢,RL78/F24配備了CAN FD接口。
目前在官網(wǎng)上對于CANFD模塊,提供了所使用的RL78/F24 RS-CANFD lite Module Software Integration System和相關(guān)介紹文檔。本篇文章主要介紹如何使用該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部分電路沒有終端電阻,針對本測試系統(tǒng),需要在CANH和CANL之間焊上120Ω電阻。
調(diào)試器:瑞薩官方調(diào)試器E2或者E2 Lite(需要注意,E2 Lite只能提供3.3V供電,E2可以提供5V或者3.3V供電)。
輔助設(shè)備:使用CANFD其他器件用于測試發(fā)送和接收結(jié)果,這里使用PCAN(包括硬件和軟件,硬件上設(shè)置有終端電阻)。
PCAN上設(shè)置波特率、采樣點和過濾規(guī)則:
2. 軟件開發(fā)環(huán)境
e2 studio:v2024-01(因為IAR需要License,所以沒有使用官網(wǎng)給出的IAR參考例程)
Renesas CC-RL Compiler v1.13.00(RSCANFD驅(qū)動只能用于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”。
選擇相應(yīng)的模塊進行下載。
? 將“r01an6334xx0100-rl78f24-sis”中內(nèi)容,拷貝到Module Download文件夾。
3. 時鐘和模塊設(shè)置
1
根據(jù)文檔“r01an6982ed0090-rl78f24”中內(nèi)容,需要根據(jù)實際板子需求配置時鐘。
在這種情況下,CANFD模塊的屬性設(shè)置中DLC時鐘選擇Internal clock。
2
RL78的Smart Configurator中對于波特率的設(shè)置,需要手動設(shè)置。
本測試代碼中以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. 調(diào)試配置
1由于CANFD收發(fā)器需要5V供電,所以需要外部電源給板子提供5V供電。
RL78/F24 (R7F124FPJ) Target Board上有VDD和EVDD,可以分別供電,比如可以VDD使用3.3V供電,EVDD使用5V供電。但是此Target Board默認將VDD和EVDD連接在一起,所以一起用外部電源提供5V電源,此時,外部調(diào)試器選擇不供電。
2由于系統(tǒng)使用外部主時鐘,所以調(diào)試器的配置需要做相應(yīng)修改。
5. 軟件流程
參考文檔“RL78/F24 RS-CANFD lite Module Software Integration System Rev.1.00”(r01an6334ej0100-rl78f24)中內(nèi)容。
Application Note:RL78/F24 RS-CANFD lite Module Software Integration System Rev.1.00
1設(shè)置P12:輸出模式,輸出低電平,以保證CANFD收發(fā)器處于Normal模式。
2添加RSCANFD組件,并設(shè)置屬性(屬性的詳細內(nèi)容請參考文章后附上的參考工程)。
3
添加相應(yīng)的中斷函數(shù)
4在主函數(shù)中添加CAN相關(guān)頭文件、R_CAN_Create函數(shù)和R_CAN_SetConfig函數(shù),并等待通信就緒。
左右滑動查看完整內(nèi)容
長按可保存查看大圖
5配置幀屬性,準備將要發(fā)送的數(shù)據(jù),然后發(fā)送CANFD數(shù)據(jù)。
左右滑動查看完整內(nèi)容
長按可保存查看大圖
本測試代碼中,發(fā)送幀為標準數(shù)據(jù)幀,ID為0x7FE,數(shù)據(jù)長度為8,數(shù)據(jù)內(nèi)容為0x11、0x22、0x33、0x44、0x55、0x66、0x77、0x88。
從PCAN中可以接收到RL78/F24發(fā)送的CANFD數(shù)據(jù)。
可以看出,數(shù)據(jù)類型為FD,并且切換波特率。
通過邏輯分析儀觀察CTX和CRX波形,可以看到Nominal段和Data段波特率不一樣。
6設(shè)置接收filter功能
在R_CAN_SetConfig()函數(shù)后,添加接收規(guī)則。
左右滑動查看完整內(nèi)容
長按可保存查看大圖
接收標準幀、ID為0x700的數(shù)據(jù)、將數(shù)據(jù)接收到RXBUF0中。
7接收CANFD數(shù)據(jù)
在中斷函數(shù)RSCFD_A_GlobalMBReceiveIRQ中添加接收代碼。
左右滑動查看完整內(nèi)容
長按可保存查看大圖
使用PCAN發(fā)送以下ID(0x700)和數(shù)據(jù),注意要勾選“CAN FD”和“Bit Rate Switch”。
MCU可以正常接收,可以看到FDF和BRS的值都為1。
左右滑動查看完整內(nèi)容
長按可保存查看大圖
驗證如果PCAN發(fā)送的ID為0x701(除0x700以外的ID,此處以0x701為例),MCU不會進入中斷。
6. 需要注意的問題
1在接收中斷中,需要使用R_CAN_ReadRXMBInHandler,而并非R_CAN_ReadRXMB。
R_CAN_ReadRXMB
從RX消息緩沖區(qū)讀取接收到的數(shù)據(jù)。
R_CAN_ReadRXMBInHandler
從RX消息緩沖區(qū)讀取接收到的數(shù)據(jù)。(在中斷處理進程中)
2發(fā)送FD數(shù)據(jù),需要注意以下發(fā)送幀類型。
s_tx_frame.Head.Bits.FDCTR
可從以下幾種類型中進行選擇
左右滑動查看完整內(nèi)容
/* 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發(fā)送FD數(shù)據(jù)時,需要根據(jù)所用CANFD收發(fā)器的特性和所用波特率設(shè)置TDC(收發(fā)器延遲補償)。
原因:如果數(shù)據(jù)階段使用高波特率(例如5 Mbps),則發(fā)送器延遲可能會大于 TSEG1。在這種情況下,發(fā)送器將始終檢測到CAN-FD幀的數(shù)據(jù)階段中的位錯誤。TDC(收發(fā)器延遲補償)可補償發(fā)送器無法在該位的采樣點接收其自身發(fā)送的位。(詳情請參考RL78/F24硬件手冊中的“18.15.1.5 CAN Transmitter Delay Compensation”)。
RL78/F24硬件手冊
基于TDC原理和板上使用的高速CAN收發(fā)器。
對于此收發(fā)器,當波特率為2M時,應(yīng)將TDC設(shè)置為Disabled。
通過計算(1/(140+140)*10^9=3.57M),當使用的波特率超過3.57M時,請考慮使用TDC。
至此,使用RL78/F24進行CANFD發(fā)送和接收的參考例程已完成,參考例程請從Gitee上下載。用戶可以在此例程的基礎(chǔ)上,針對用戶板進行配置上的修改,也可以調(diào)整發(fā)送數(shù)據(jù)類型。
-
微控制器
+關(guān)注
關(guān)注
48文章
7552瀏覽量
151417 -
mcu
+關(guān)注
關(guān)注
146文章
17148瀏覽量
351182 -
瑞薩
+關(guān)注
關(guān)注
35文章
22309瀏覽量
86304 -
CANFD
+關(guān)注
關(guān)注
0文章
58瀏覽量
4945
原文標題:RL78/F24 CANFD參考例程
文章出處:【微信號:瑞薩MCU小百科,微信公眾號:瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論