0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RA MCU CANFD在FSP中的配置詳解

瑞薩MCU小百科 ? 來(lái)源:瑞薩MCU小百科 ? 2023-10-20 14:46 ? 次閱讀

瑞薩RA系列MCU產(chǎn)品中,目前RA4E2、RA4T1、RA6E2、RA6T2和RA6T3搭載了CANFD Lite(硬件手冊(cè)中成為CANFD_B)模塊,相關(guān)的詳細(xì)IP介紹,請(qǐng)參見(jiàn)之前的文章

本篇將為您介紹如何使用FSP配置CANFD Lite模塊,請(qǐng)注意與RA6M5搭載的CANFD模塊的配置略有區(qū)別,這里不詳細(xì)講述。

首先,簡(jiǎn)單介紹一下FSP。瑞薩的Flexibility Software Package(FSP)是一種嵌入式軟件和開(kāi)發(fā)工具包,提供了集成的軟件平臺(tái),幫助開(kāi)發(fā)者快速設(shè)計(jì)、開(kāi)發(fā)和部署嵌入式系統(tǒng)。FSP提供了一系列軟件組件、設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)抽象層和中間件,以及與瑞薩微控制器相配套的開(kāi)發(fā)工具。通過(guò)使用FSP,開(kāi)發(fā)者可以減少開(kāi)發(fā)時(shí)間和成本,快速構(gòu)建高度可靠、高性能的嵌入式系統(tǒng)。

FSP具有以下特點(diǎn)和優(yōu)勢(shì):

靈活性和可擴(kuò)展性:FSP支持瑞薩廣泛的微控制器產(chǎn)品系列,使開(kāi)發(fā)者能夠選擇適合其需求的合適解決方案。

高度集成的軟件平臺(tái):FSP提供了一整套軟件組件,包括設(shè)備驅(qū)動(dòng)程序、操作系統(tǒng)抽象層和中間件,簡(jiǎn)化了系統(tǒng)開(kāi)發(fā)流程。

快速上手和開(kāi)發(fā):FSP提供了豐富的示例代碼、開(kāi)發(fā)工具和文檔,使開(kāi)發(fā)者能夠快速開(kāi)始開(kāi)發(fā)工作,并加速產(chǎn)品上市時(shí)間。

兼容性和維護(hù)性:FSP基于開(kāi)放標(biāo)準(zhǔn),并與瑞薩的先進(jìn)開(kāi)發(fā)工具集成,可以輕松集成第三方軟件和工具,同時(shí)享受瑞薩長(zhǎng)期的技術(shù)支持和維護(hù)。

通過(guò)FSP的圖形化界面可以設(shè)置RA CANFD Lite模塊的引腳和功能,使用FSP生成的函數(shù)可以執(zhí)行CANFD Lite模塊的初始化,發(fā)送&接收數(shù)據(jù),這樣可以加快項(xiàng)目完成,縮短用戶開(kāi)發(fā)時(shí)間。

而使用FSP如何設(shè)置RA CANFD Lite功能,將從以下幾個(gè)方面進(jìn)行說(shuō)明:

1添加CANFD Lite模塊

在e2 studio雙擊工程中的configuraion.xml文件,在Stacks選項(xiàng)卡中,點(diǎn)擊New Stack,選擇CANFD Lite (r_canfdlite)。

78c94dee-6f13-11ee-939d-92fbcf53809c.png

2設(shè)置時(shí)鐘

CANFD時(shí)鐘默認(rèn)為禁用狀態(tài)。選擇Clocks選項(xiàng)卡,將CANFDCLK設(shè)置為40MHz:

將PLL(鎖相環(huán))分頻器改為Div / 2

將PLL乘法器改為Mul x16.0

將CANFDCLK改為Src: PLL

將CANFDCLK分頻器改為Div /4

78d8096a-6f13-11ee-939d-92fbcf53809c.png

3設(shè)置引腳

選擇Pins Tab,點(diǎn)擊CANFD0,Pin Group Selection選擇Mixed的情況下,Operation Mode選擇Enabled,CRX0自動(dòng)選擇P102、CTX0自動(dòng)選擇P103,也可以通過(guò)右側(cè)的下拉箭頭根據(jù)用戶需要選擇其他可用引腳。

78ef9526-6f13-11ee-939d-92fbcf53809c.png

4設(shè)置CANFD Lite模塊屬性

切回Stacks選項(xiàng)卡,選擇CANFD lite,轉(zhuǎn)至Properties窗口(確保當(dāng)前為FSP配置透視圖的情況下,點(diǎn)擊右上方:

7911e9dc-6f13-11ee-939d-92fbcf53809c.png

打開(kāi)Properties窗口。

或者通過(guò)Window→Show View→Other

791ebfea-6f13-11ee-939d-92fbcf53809c.png

搜索找到Properties窗口

793082fc-6f13-11ee-939d-92fbcf53809c.png

4.1 設(shè)置標(biāo)稱比特率(Nominal Rate)和FD數(shù)據(jù)比特率(FD Data Rate)

可以選擇自動(dòng)生成比特率或者手動(dòng)設(shè)置比特率

請(qǐng)注意,如果選擇自動(dòng)生成比特率,“Use manual settings”一項(xiàng)需要設(shè)置為No。

793f195c-6f13-11ee-939d-92fbcf53809c.png

4.2 修改AFL數(shù)量

由于RA6E2只有Channel 0,所以需要將“Channel 1 Rule Count”一項(xiàng)改為0。

另外,RA6E2的CANFD Lite模塊最多允許32個(gè)AFL條目。

795834fa-6f13-11ee-939d-92fbcf53809c.png

4.3 設(shè)置使用的TX Mailbox 0(TX MB0)

例如通過(guò)TX Mailbox 0(TX MB0)發(fā)送數(shù)據(jù),則勾選“TX MB0”一項(xiàng)。

796bd9f6-6f13-11ee-939d-92fbcf53809c.png

4.4 設(shè)置發(fā)送優(yōu)先級(jí)

發(fā)送優(yōu)先級(jí)有可以選擇CAN ID優(yōu)先(Message ID)或者消息緩沖區(qū)編號(hào)優(yōu)先(Buffer Number)。

797a5ba2-6f13-11ee-939d-92fbcf53809c.png

4.5 設(shè)置接收MB的數(shù)量和大小

798b8c7e-6f13-11ee-939d-92fbcf53809c.png

4.6 設(shè)置接收FIFO的中斷模式、中斷閾值、大小和深度

79a5e7a4-6f13-11ee-939d-92fbcf53809c.png

請(qǐng)注意,RX MB和FIFO位于有限的RAM區(qū)域中,所以在設(shè)置RX MB和FIFO時(shí),大小和深度的最大值取決于可用的RAM區(qū)域。從FSP v4.3.0開(kāi)始,如果超出CANFD RAM區(qū)域,F(xiàn)SP會(huì)提示錯(cuò)誤。

4.7 設(shè)置Callback函數(shù)名和優(yōu)先級(jí)

79b4ec4a-6f13-11ee-939d-92fbcf53809c.png

4.8 設(shè)置通道和全局錯(cuò)誤中斷,根據(jù)用戶實(shí)際需要進(jìn)行勾選

79c7e5e8-6f13-11ee-939d-92fbcf53809c.png

5添加AFL

RA CANFD使用AFL條目來(lái)過(guò)濾接收到的消息,AFL 的主要參數(shù)如下:

79d6b906-6f13-11ee-939d-92fbcf53809c.jpg

點(diǎn)擊查看大圖

例如想接收到以下要求的數(shù)據(jù),那么在hal_entry.c文件中hal_entry()函數(shù)前需要復(fù)制以下const來(lái)設(shè)置AFL:

Classical CAN Bus

Standard ID (11 bits)

RX MB 0 (to receive messages IDs 0x40 or 0x41)

左右滑動(dòng)查看更多

const canfd_afl_entry_t p_canfd0_afl[CANFD_CFG_AFL_CH0_RULE_NUM] =
{
 {
   .id =
   {
     .id     = 0x40,
     .frame_type = CAN_FRAME_TYPE_DATA,
     .id_mode  = CAN_ID_MODE_STANDARD,
   },
   .mask =
   {
     .mask_id     = 0x7FE,
     .mask_frame_type = 0,
     .mask_id_mode  = 1,
   },
   .destination =
   {
     .minimum_dlc = CANFD_MINIMUM_DLC_0,
     .rx_buffer  = CANFD_RX_MB_0,
   },
 },
};

6CANFD相關(guān)API

79f1796c-6f13-11ee-939d-92fbcf53809c.jpg

點(diǎn)擊查看大圖

7用戶代碼中添加初始化函數(shù)、發(fā)送函數(shù)、接收函數(shù)和Callback函數(shù)

7.1 添加幾個(gè)變量聲明和一個(gè)宏定義

左右滑動(dòng)查看更多

/* Flags to be set in Callback function */
bool b_canfd_tx_complete = false;
bool b_canfd_rx_complete = false;
bool b_canfd_err_status = false;


/* CANFD RX and TX variables */
can_frame_t g_can_tx_frame;
can_frame_t g_can_rx_frame;
can_frame_t g_can_rx_frame_fifo;


uint8_t tx_data[64];
#define DATA_LENGTH         (8) 

7.2 添加初始化函數(shù)

左右滑動(dòng)查看更多

  /* Initialize CANFD Lite driver*/
  R_CANFD_Open(&g_canfd0_ctrl, &g_canfd0_cfg);

7.3 添加發(fā)送函數(shù)

左右滑動(dòng)查看更多

    for( uint16_t i = 0; i < DATA_LENGTH; i++)
 ? ? ? ?{
 ? ? ? ? ? ?tx_data[i] ? ? ? ? ?= (uint8_t) (i + 1);
 ? ? ? ?}
 ? ? ? ?memcpy((uint8_t*)&g_can_tx_frame.data[0], (uint8_t*)&tx_data[0], DATA_LENGTH);
 ? ? ? ?g_can_tx_frame.id ? ? ? ? ? ? ? = 0x60;
 ? ? ? ?g_can_tx_frame.id_mode ? ? ? ? ?= CAN_ID_MODE_STANDARD;
 ? ? ? ?g_can_tx_frame.type ? ? ? ? ? ? = CAN_FRAME_TYPE_DATA;
 ? ? ? ?g_can_tx_frame.data_length_code = 64;//8;
 ? ? ? ?g_can_tx_frame.options ? ? ? ? ?= CANFD_FRAME_OPTION_FD | CANFD_FRAME_OPTION_BRS;//0;
 ? ? ? ?g_can_tx_frame.options ? ? ? ? ?= 0;


 ? ? ? ?/* Write some data to the transmit frame */
 ? ? ? ?R_CANFD_Write(&g_canfd0_ctrl, 0, &g_can_tx_frame);

7.4 當(dāng)使用RX MB接收數(shù)據(jù)時(shí),添加以下代碼

左右滑動(dòng)查看更多

    /* Get the status information for CAN transmission */
    R_CANFD_InfoGet(&g_canfd0_ctrl, &can_rx_info);


    /* Check if the data is received in FIFO */
    if((can_rx_info.rx_mb_status & (1<<0)) == (1<<0))
 ? ? ? ?{
 ? ? ? ? ? ?/* Read the input frame received */
 ? ? ? ? ? ?R_CANFD_Read(&g_canfd0_ctrl, 0, &g_can_rx_frame);
 ? ? ? ?}

7.5 添加Callback函數(shù)

左右滑動(dòng)查看更多

使用FIFO接收時(shí),需要在Callback中讀取接收到的數(shù)據(jù)。

/* Callback function */
void canfd0_callback(can_callback_args_t *p_args)
{
  /* TODO: add your own code here */
  switch (p_args->event)
  {
    case CAN_EVENT_TX_COMPLETE:
    {
      b_canfd_tx_complete = true;    //set flag bit
      break;
    }
    case CAN_EVENT_RX_COMPLETE: // Currently driver don't support this. This is unreachable code for now.
    {
      b_canfd_rx_complete = true;
      memcpy(&g_can_rx_frame, &p_args->frame, sizeof(can_frame_t));
      break;
    }
    case CAN_EVENT_ERR_WARNING:       //error warning event
    case CAN_EVENT_ERR_PASSIVE:       //error passive event
    case CAN_EVENT_ERR_BUS_OFF:       //error Bus Off event
    case CAN_EVENT_BUS_RECOVERY:      //Bus recovery error event
    case CAN_EVENT_MAILBOX_MESSAGE_LOST:  //overwrite/overrun error event
    case CAN_EVENT_ERR_BUS_LOCK:      // Bus lock detected (32 consecutive dominant bits).
    case CAN_EVENT_ERR_CHANNEL:       // Channel error has occurred.
    case CAN_EVENT_TX_ABORTED:       // Transmit abort event.
    case CAN_EVENT_ERR_GLOBAL:       // Global error has occurred.
    case CAN_EVENT_FIFO_MESSAGE_LOST:   // Transmit FIFO is empty.
    case CAN_EVENT_TX_FIFO_EMPTY:      // Transmit FIFO is empty.
    {
      b_canfd_err_status = true;     //set flag bit
      break;
    }
  }
}

通過(guò)以上內(nèi)容,我們可以看到,瑞薩的FSP為嵌入式系統(tǒng)開(kāi)發(fā)者提供了一種快速、靈活和可靠的軟件開(kāi)發(fā)平臺(tái),幫助使用者快速將創(chuàng)意轉(zhuǎn)化為端產(chǎn)品,并滿足不同市場(chǎng)的需求。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7454

    瀏覽量

    150850
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16885

    瀏覽量

    349912
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3551

    瀏覽量

    129103
  • 瑞薩
    +關(guān)注

    關(guān)注

    34

    文章

    22282

    瀏覽量

    85938
  • FSP
    FSP
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    7100

原文標(biāo)題:RA MCU CANFD在FSP中的配置詳解

文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RA MCU CANFD的應(yīng)用實(shí)例(上)

    本篇文章將以RA6E2為例,介紹如何使用瑞薩電子FSP CAN-FD lite的堆棧來(lái)設(shè)計(jì)和實(shí)現(xiàn)基于CAN的簡(jiǎn)易系統(tǒng)。最后,使用兩套FPB-RA6E2和CAN收發(fā)器模塊通過(guò)CAN實(shí)現(xiàn)相互通信,按下一塊板上的按鍵S1會(huì)發(fā)送
    的頭像 發(fā)表于 10-25 15:53 ?1115次閱讀
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b> <b class='flag-5'>CANFD</b>的應(yīng)用實(shí)例(上)

    瑞薩RA產(chǎn)品家族通過(guò)PSA 2級(jí)和SESIP認(rèn)證 進(jìn)一步擴(kuò)大物聯(lián)網(wǎng)安全領(lǐng)域的領(lǐng)導(dǎo)地位

    配備靈活配置軟件包(FSP)的RA6M4 MCU已通過(guò)PSA 2級(jí)認(rèn)證,RA4和
    發(fā)表于 03-11 09:15 ?2842次閱讀

    RA系列使用FSP配置外設(shè)驅(qū)動(dòng)相關(guān)資料介紹

    1、RA系列使用 FSP 配置外設(shè)驅(qū)動(dòng) MDK 添加用于啟動(dòng)FSP的自定義命令打開(kāi) MDK,
    發(fā)表于 07-14 10:53

    【瑞薩RA4系列開(kāi)發(fā)板體驗(yàn)】基于Renesas FSP配置USART

    ● Smart card interface● Manchester interface● Extended Serial interfacekeil工程,打開(kāi)FSP配置:之后跳出
    發(fā)表于 12-08 21:08

    使用RA2E1 MCUFSP實(shí)現(xiàn)超低設(shè)計(jì)

      RA2E1 MCU 組評(píng)估套件 FPB-RA2E1實(shí)施各種連接器,允許訪問(wèn) RA2E1 MCU、板載 E2 仿真器、用戶開(kāi)關(guān)、LED 上
    的頭像 發(fā)表于 04-25 10:10 ?2025次閱讀
    使用<b class='flag-5'>RA</b>2E1 <b class='flag-5'>MCU</b>和<b class='flag-5'>FSP</b>實(shí)現(xiàn)超低設(shè)計(jì)

    使用瑞薩e2 studio FSP基于RA2E1定時(shí)器配置PWM輸出

    瑞薩電子e2 studio FSP 瑞薩電子靈活配置軟件包(FSP)是一款增強(qiáng)型軟件包,旨在為使用瑞薩電子RA系列ARM微控制器的嵌入式系統(tǒng)設(shè)計(jì)提供簡(jiǎn)單易用且可擴(kuò)展的高質(zhì)量軟件。
    的頭像 發(fā)表于 03-10 15:35 ?1307次閱讀

    瑞薩MCU RA6T2的16位模數(shù)轉(zhuǎn)換器操作 [4] 配置RA6T2 ADC模塊 (1)

    2?配置RA6T2 ADC模塊 RA6T2 MCU包含兩個(gè)噪聲整形SAR型A/D轉(zhuǎn)換器單元,二者采用混合式架構(gòu),兼具SAR型和ΔΣ調(diào)制型的特性。 R
    的頭像 發(fā)表于 07-24 17:45 ?1.4w次閱讀
    瑞薩<b class='flag-5'>MCU</b> <b class='flag-5'>RA</b>6T2的16位模數(shù)轉(zhuǎn)換器操作 [4] <b class='flag-5'>配置</b><b class='flag-5'>RA</b>6T2 ADC模塊 (1)

    RA MCU CAN和CANFD IP介紹

    瑞薩RA MCU(Renesas RA Microcontroller Unit)是一種高性能且多功能的微控制器單元,由瑞薩電子公司推出。它是基于ARM Cortex-M內(nèi)核的先進(jìn)微控制器系列,專為
    的頭像 發(fā)表于 07-28 12:15 ?1356次閱讀
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b> CAN和<b class='flag-5'>CANFD</b> IP介紹

    使用瑞薩e2 studio FSP基于RA2E1定時(shí)器配置PWM輸出

    使用瑞薩e2 studio FSP基于RA2E1定時(shí)器配置PWM輸出
    的頭像 發(fā)表于 08-01 00:13 ?645次閱讀
    使用瑞薩e2 studio <b class='flag-5'>FSP</b>基于<b class='flag-5'>RA</b>2E1定時(shí)器<b class='flag-5'>配置</b>PWM輸出

    使用FSP配置RA的CAN模塊(上)

    使用FSP配置RA的CAN模塊
    的頭像 發(fā)表于 08-05 08:08 ?543次閱讀
    使用<b class='flag-5'>FSP</b><b class='flag-5'>配置</b><b class='flag-5'>RA</b>的CAN模塊(上)

    使用FSP配置RA的CAN模塊(下)

    使用FSP配置RA的CAN模塊
    的頭像 發(fā)表于 08-05 08:08 ?417次閱讀
    使用<b class='flag-5'>FSP</b><b class='flag-5'>配置</b><b class='flag-5'>RA</b>的CAN模塊(下)

    RA MCU CAN和CANFD IP介紹

    瑞薩RA MCU(Renesas RA Microcontroller Unit)是一種高性能且多功能的微控制器單元,由瑞薩電子公司推出。它是基于ARM Cortex-M內(nèi)核的先進(jìn)微控制器系列,專為滿足廣泛的嵌入式應(yīng)用需求而設(shè)計(jì)
    的頭像 發(fā)表于 12-26 08:06 ?556次閱讀
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b> CAN和<b class='flag-5'>CANFD</b> IP介紹

    RA Overwrite模式FSP的支持

    前面介紹了MCUboot的基礎(chǔ)知識(shí),您可通過(guò)上方鏈接回顧,本章將著重介紹其中的Overwrite模式,以及FSP如何配置、如Flash怎樣劃分、安全校驗(yàn)的方式等。本文以
    的頭像 發(fā)表于 06-13 10:52 ?465次閱讀
    <b class='flag-5'>RA</b> Overwrite模式<b class='flag-5'>在</b><b class='flag-5'>FSP</b><b class='flag-5'>中</b>的支持

    如何使用RA MCUADC窗口比較功能

    如何使用RA MCUADC窗口比較功能
    的頭像 發(fā)表于 04-12 08:06 ?295次閱讀
    如何使用<b class='flag-5'>RA</b> <b class='flag-5'>MCU</b><b class='flag-5'>中</b>ADC窗口比較功能

    RA MCU CANFDFSP配置詳解

    RA MCU CANFDFSP配置
    的頭像 發(fā)表于 06-19 08:06 ?420次閱讀
    <b class='flag-5'>RA</b> <b class='flag-5'>MCU</b> <b class='flag-5'>CANFD</b><b class='flag-5'>在</b><b class='flag-5'>FSP</b><b class='flag-5'>中</b>的<b class='flag-5'>配置</b><b class='flag-5'>詳解</b>