RM新时代网站-首页

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

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

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

瑞薩RA2L1系列MCU簡(jiǎn)介和CAN通信應(yīng)用例程

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2023-10-27 15:50 ? 次閱讀

瑞薩RA2L1系列MCU簡(jiǎn)介

RA2L1產(chǎn)品組基于Arm Cortex-M23 核心(現(xiàn)今 Arm Cortex-M系列中功耗最低的 CPU)。這款產(chǎn)品采用優(yōu)化的制程和瑞薩電子的低功耗工藝技術(shù),是業(yè)界一流水平的超低功耗微控制器。RA2L1產(chǎn)品組能夠支持1.6V至5.5V寬電壓工作,CPU時(shí)鐘頻率最高48MHz,且運(yùn)行模式電流和待機(jī)模式電流更低。RA2L1產(chǎn)品群配備了增強(qiáng)型電容式觸摸感應(yīng)單元(CTSU2)、CAN控制器局域網(wǎng)總線,串行通信接口、高精度模擬電路和定時(shí)器。產(chǎn)品封裝從48引腳到100引腳。

71b5d63c-749d-11ee-939d-92fbcf53809c.png

控制器局域網(wǎng)CAN模塊簡(jiǎn)介

控制器局域網(wǎng)(CAN)模塊使用基于消息的協(xié)議在電磁噪聲應(yīng)用中的多個(gè)從機(jī)和主機(jī)之間接收和傳輸數(shù)據(jù)。

該模塊符合ISO11898-1(CAN2.0A / CAN2.0B)標(biāo)準(zhǔn),最多支持32個(gè)郵箱,可配置為普通郵箱和FIFO模式下的發(fā)送或接收。支持標(biāo)準(zhǔn)(11位)和擴(kuò)展(29位)消息格式。CAN模塊需要額外的外部CAN收發(fā)器。

CAN模塊框圖

71ec1e86-749d-11ee-939d-92fbcf53809c.png

注意事項(xiàng):

CAN需要外部高速晶體作為時(shí)鐘源,使用CAN模塊前需要先配置好外部高速時(shí)鐘。

CAN模塊參數(shù)規(guī)格

720ad628-749d-11ee-939d-92fbcf53809c.png72167316-749d-11ee-939d-92fbcf53809c.png

RA2L1 CAN通信應(yīng)用例程

使用官方e2 studio開發(fā)工具創(chuàng)建RA2L1工程,并添加CAN外設(shè)模塊底層應(yīng)用。

722d2a5c-749d-11ee-939d-92fbcf53809c.png

配置CAN模塊參數(shù)(包括通信速率、引腳配置等)。

7240af96-749d-11ee-939d-92fbcf53809c.png

CAN應(yīng)用參考代碼

左右滑動(dòng)查看完整內(nèi)容

#define WAIT_TIME            (500U)       //wait time value
#define CAN_MAILBOX_NUMBER_TX      (0U)        //mail box number
#define CAN_MAILBOX_NUMBER_RX      (1U)
#define CAN_FRAME_TRANSMIT_DATA_BYTES  (8U)        //data length
#define ZERO              (0U)


/* Private global variables*/
/* Flags, set from Callback function */
static volatile bool b_can_tx = false;         //CAN transmission status
static volatile bool b_can_rx = false;         //CAN receive status
static volatile bool b_can_err = false;         //CAN error status
/* CAN frames for tx and rx */
static can_frame_t g_can_tx_frame;           //CAN transmit frame
static can_frame_t g_can_rx_frame;           //CAN receive frame


void hal_entry(void)
{
  /* TODO: add your own code here */
  fsp_err_t err = FSP_SUCCESS;
  uint32_t time_out = WAIT_TIME;                   // time out
  uint8_t can_tx_msg[CAN_FRAME_TRANSMIT_DATA_BYTES] = {0,1,2,3,4,5,6,7};
  uint8_t can_rx_msg[CAN_FRAME_TRANSMIT_DATA_BYTES] = {0};


  /* Initializes the CGC module. */
  err = R_CGC_Open(&g_cgc0_ctrl, &g_cgc0_cfg);
  /* Handle any errors. This function should be defined by the user. */
  assert(FSP_SUCCESS == err);


  /* Start the CGC_CLOCK_MAIN_OSC. */
  err = R_CGC_ClockStart(&g_cgc0_ctrl, CGC_CLOCK_MAIN_OSC, NULL);
  assert(FSP_SUCCESS == err);


  /* Initialize CAN module */
  err = R_CAN_Open(&g_can_ctrl, &g_can_cfg);
  /* Error trap */
  if(FSP_SUCCESS != err)
  {
    __asm("BKPT #0
");
  }
  g_can_tx_frame.id = CAN_MAILBOX_NUMBER_TX;
  g_can_tx_frame.type = CAN_FRAME_TYPE_DATA;
  g_can_tx_frame.data_length_code = CAN_FRAME_TRANSMIT_DATA_BYTES;


  /* copy the tx data frame with TX_MSG */
  memcpy((uint8_t*)&g_can_tx_frame.data[ZERO], (uint8_t*)&can_tx_msg[ZERO], CAN_FRAME_TRANSMIT_DATA_BYTES);
  err = R_CAN_Write(&g_can_ctrl, CAN_MAILBOX_NUMBER_TX, &g_can_tx_frame);
  /* Error trap */
  if (FSP_SUCCESS != err)
  {
    err = R_CAN_Close(&g_can_ctrl);
    if (FSP_SUCCESS != err)
    {
      __asm("BKPT #0
");
    }
  }


  while(1)
  {
    /* check if receive flag is set */
    if (true == b_can_rx)
    {
      /* Reset flag bit */
      b_can_rx = false;


      g_can_rx_frame.data[CAN_FRAME_TRANSMIT_DATA_BYTES-1] = g_can_rx_frame.id;


      /* Transmit the rx data frame as acknowledging the data transfer is successful */
      err = R_CAN_Write (&g_can_ctrl, CAN_MAILBOX_NUMBER_TX, &g_can_rx_frame);
      /* Error trap */
      if (FSP_SUCCESS != err)
      {
        err = R_CAN_Close(&g_can_ctrl);
        if (FSP_SUCCESS != err)
        {
          __asm("BKPT #0
");
        }
      }
      /* wait for transmit flag bit to set */
      while ((true != b_can_tx) && (time_out--));
      if (0 == time_out)
      {
        __asm("BKPT #0
");
      }
      /* Reset flag bit */
      b_can_tx = false;
    }
  }
}


void can_callback(can_callback_args_t *p_args)
{
  switch (p_args->event)
  {
    case CAN_EVENT_TX_COMPLETE:
    {
      b_can_tx = true;    //set flag bit
      break;
    }


    case CAN_EVENT_RX_COMPLETE:
    {
      b_can_rx = true;
//copy the received data to rx_frame
  memcpy(&g_can_rx_frame, p_args->p_frame, sizeof(can_frame_t));       break;
    }


    case CAN_EVENT_MAILBOX_MESSAGE_LOST:  //overwrite/overrun error event
    case CAN_EVENT_BUS_RECOVERY:      //Bus recovery error event
    case CAN_EVENT_ERR_BUS_OFF:       //error Bus Off event
    case CAN_EVENT_ERR_PASSIVE:       //error passive event
    case CAN_EVENT_ERR_WARNING:       //error warning event
    {
      b_can_err = true;          //set flag bit
      break;
    }
  }
}

CAN通信實(shí)測(cè)驗(yàn)證

RA2L1芯片內(nèi)部只有CAN控制器,需要與外部CAN設(shè)備通信時(shí),還需要外接CAN收發(fā)器。

CAN收發(fā)器應(yīng)用參考原理圖

725424ae-749d-11ee-939d-92fbcf53809c.png

使用USB-CAN工具測(cè)試CAN通信

726d8066-749d-11ee-939d-92fbcf53809c.png

a. 接收不到ID為0的數(shù)據(jù)

7276013c-749d-11ee-939d-92fbcf53809c.png

b. 禁止Mask功能后,可接收所有ID的數(shù)據(jù).

7285d634-749d-11ee-939d-92fbcf53809c.png

審核編輯:湯梓紅

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

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350979
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9084

    瀏覽量

    367380
  • CAN通信
    +關(guān)注

    關(guān)注

    5

    文章

    93

    瀏覽量

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

    關(guān)注

    35

    文章

    22308

    瀏覽量

    86238

原文標(biāo)題:瑞薩RA2L1系列CAN通信應(yīng)用

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RA2系列開發(fā)板體驗(yàn)】RA2L1試用筆記

    前言??早聽說過這個(gè)芯片品牌,好像是電賽的贊助商。有機(jī)會(huì)申請(qǐng)到了RA2L1 的開發(fā)板試用,因?yàn)楣ぷ魃蠒?huì)用到CAN通信所以專門選了帶
    發(fā)表于 12-14 15:15

    RA2系列開發(fā)板體驗(yàn)】開箱體驗(yàn)-Hg

    的 CPU)。 這款產(chǎn)品采用優(yōu)化的制程和電子的低功耗工藝技術(shù),是業(yè)界一流水平的超低功耗微控制器。 RA2L1 產(chǎn)品組能夠支持 1.6V 至 5.5V 寬電壓工作,CPU 時(shí)鐘頻率最高 48MHz
    發(fā)表于 12-21 01:04

    RA2系列開發(fā)板體驗(yàn)】基于Keil MDK環(huán)境搭建及最快上手例程

    一、開發(fā)板簡(jiǎn)介RA2L1 基于 Arm? Cortex?-M23 核心(現(xiàn)今 Arm? Cortex-M 系列中功耗最低的 CPU)。 這款產(chǎn)品采用優(yōu)化的制程和
    發(fā)表于 12-23 22:15

    RA2系列開發(fā)板體驗(yàn)】+RA2AL開發(fā)板試用筆記

    前言??早聽說過這個(gè)芯片品牌,好像是電賽的贊助商。有機(jī)會(huì)申請(qǐng)到了RA2L1 的開發(fā)板試用,因?yàn)楣ぷ魃蠒?huì)用到CAN通信所以專門選了帶
    發(fā)表于 12-28 13:19

    Renesas RA2L1開發(fā)板之PWM方波配置相關(guān)資料推薦

    1、Renesas RA2L1開發(fā)板之PWM方波配置  工程的配置  時(shí)鐘的配置  本次直接基于官方的例程進(jìn)行開發(fā),使用
    發(fā)表于 11-02 15:31

    基于RA2L1開發(fā)板的初識(shí)點(diǎn)燈

      1. 開發(fā)板  2. 開發(fā)板介紹  RA2L1產(chǎn)品組屬于48MHz Arm? Cortex?-M23 超低功耗通用微控制器 ,能夠支
    發(fā)表于 04-03 16:55

    RA2L1 ANE加解密協(xié)處理系統(tǒng)簡(jiǎn)介

    芯片的模式,可以更好的增加安全性并且可以使用隨機(jī)秘鑰加強(qiáng)防破解能力?! ?b class='flag-5'>1、簡(jiǎn)介  以下介紹的是采用RA2L1作為專用加解密協(xié)處理器的方
    發(fā)表于 04-03 17:28

    RA2L1系列MCU在BMS電池管理系統(tǒng)的應(yīng)用

    BMS電池管理系統(tǒng)一般包含以下幾個(gè)部分:電壓采樣、電流采樣、充放電控制、硬件過流保護(hù)、SOC算法、對(duì)外的通信接口等。本案例中SOC算法和通信接口,由RA2L1(R7FA2L1A93CF
    發(fā)表于 10-12 10:53 ?929次閱讀

    電子RA2L1英文數(shù)據(jù)手冊(cè)

    本資料包含電子RA2L1英文數(shù)據(jù)手冊(cè)
    發(fā)表于 10-21 16:21 ?0次下載

    電子RA2L1硬件用戶手冊(cè)

    本資料包含RA2L1英文硬件用戶手冊(cè)
    發(fā)表于 10-21 16:30 ?6次下載

    RA2 MCU ADC轉(zhuǎn)換時(shí)間測(cè)試方法

    ,RA2L1系列低功耗及帶CAN總線,RA2A1系列增強(qiáng)模擬功能、帶16位ADC及24位Sigma-Delta ADC,RE
    的頭像 發(fā)表于 02-08 11:25 ?1398次閱讀

    產(chǎn)品 | 超低功耗RA2L1 MCU產(chǎn)品群,具有高級(jí)電容式觸摸感應(yīng)功能,打造經(jīng)濟(jì)節(jié)能的IoT節(jié)點(diǎn)HMI應(yīng)用

    產(chǎn)品 | 超低功耗RA2L1 MCU產(chǎn)品群,具有高級(jí)電容式觸摸感應(yīng)功能,打造經(jīng)濟(jì)節(jié)能的IoT節(jié)點(diǎn)HMI應(yīng)用
    的頭像 發(fā)表于 12-13 11:12 ?1307次閱讀
    產(chǎn)品 | <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>超低功耗<b class='flag-5'>RA2L1</b> <b class='flag-5'>MCU</b>產(chǎn)品群,具有高級(jí)電容式觸摸感應(yīng)功能,打造經(jīng)濟(jì)節(jié)能的IoT節(jié)點(diǎn)HMI應(yīng)用

    RA2L1:使用CLKOUT給MCU CAN模塊提供時(shí)鐘

    RA2L1:使用CLKOUT給MCU CAN模塊提供時(shí)鐘
    的頭像 發(fā)表于 11-02 16:27 ?720次閱讀
    <b class='flag-5'>RA2L1</b>:使用CLKOUT給<b class='flag-5'>MCU</b> <b class='flag-5'>CAN</b>模塊提供時(shí)鐘

    RA2L1系列CAN通信應(yīng)用

    RA2L1系列CAN通信應(yīng)用
    的頭像 發(fā)表于 06-26 08:06 ?603次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b><b class='flag-5'>RA2L1</b><b class='flag-5'>系列</b><b class='flag-5'>CAN</b><b class='flag-5'>通信</b>應(yīng)用

    電子RA2L1 MCU產(chǎn)品介紹

    RA2L1 MCURA家族RA2系列廣受歡迎的
    的頭像 發(fā)表于 12-10 10:51 ?240次閱讀
    <b class='flag-5'>瑞</b><b class='flag-5'>薩</b>電子<b class='flag-5'>RA2L1</b> <b class='flag-5'>MCU</b>產(chǎn)品介紹
    RM新时代网站-首页