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