ARM技术论坛
直播中

wang123a

8年用户 127经验值
擅长:嵌入式技术 控制/MCU RF/无线
私信 关注
[经验]

【RA-Eco-RA4M2开发板评测】 环境搭建和LED驱动

.RA4M2简介
  RA-Eco-RA4M2-100PIN-V1.0是一款基于100MHz Arm® Cortex®-M33内核架构的核心板,主控芯片为R7FA4M2AD3CFP RA4M2 32 位微控制器 (MCU) 产品群使用支持 TrustZone 的高性能 Arm® Cortex®-M33 内核。 与片内的 Secure Crypto Engine (SCE) 配合使用,可实现安全芯片的功能。 RA4M2 采用高效的 40nm 工艺,由灵活配置软件包 (FSP) 这个开放且灵活的生态系统概念提供支持,FSP 基于 FREERTOS 构建,并能够进行扩展,以使用其他实时操作系统 (RTOS) 和中间件。 RA4M2 适用于物联网应用的需求, 如多样化的通信功能、面向未来应用的安全功能、大容量嵌入式 RAM 和较低的运行功耗(从闪存运行 CoreMark® 算法时功耗低至 81µA/MHz)。硬件实物如图所示:




开发板资源信息:
   (1)1个复位按键
   (2)2用户按键
   (3)2个触摸按键
   (3)3LED
   (4)2PMOD接口
   (5)板载USBTTL模块,可用于串口通信和烧录
   (6)板载SWD接口,方便用户调试与下载
   (7)支持 TrustZone 100MHz Arm Cortex-M33安全芯片的功能512kB 闪存、64kB SRAM(支持奇偶校验)以及64kB ECC SRAM8KB数据闪存,提供与EEPROM类似的数据存储功能1kB休眠用SRAM
   (8)引脚个数:100引脚封装
   (9)电容式触摸传感单元 (CTSU)全速 USB 2.0,支持主机模式和设备模式

   (10)CAN 2.0B四线SPISCIUART、简单SPI、简单I2C独立SPI/I2C多主接口SDHI MMC

2.e2 studio软件安装
    e2 studio(简称为 e2 e2s)是瑞萨电子的一款包含代码开发、构建和调试的开发工具。e2 studio基于开源 Eclipse IDE 和与之相关的C/C++开发工具(CDT)。e2 studio 托管了瑞萨的FSP灵活配置软件包,这是一个用于支持瑞萨MCU开发的固件库。通过使用FSP库,我们可以轻松配置和管理瑞萨MCU,从而轻松实现复杂的应用程序。e2 studio 的下载页面为:https://github.com/renesas/fsp/releases


2.1 e2 studio安装
    e2 的安装步骤如下。首先双击e2s安装包,并且等待安装程序准备完成后,会弹出一个安装界面,如下图所示


点击选中“Quick Install,然后单击“Next”。接着稍等片刻,得到如下图所示的界面。




单击“Next,得到如下图所示的界面。然后勾上“I accept the terms of the Software Agreements”之后,单击“Install”即可开始安装。


2.2 e2 studio创建快捷方式
在安装路径下可以找到 e2 studio 的启动程序,如下图所示。建议单击右键发送 e2 studio 启动程序的快捷方式到桌面上,方便下一次可以直接在电脑桌面上双击图标来快速打开 e2 studio


2.3 e2 studio快捷键


3.创建工程
在首次打开e2 studio软件时需要创建一个工作区。如下图所示:


工作区创建完成,即可实现工程创建,如图所示:




设置工程名


选择芯片型号










工程创建成功,生成的工程信息如下所示:


手动打开工程窗口:


4. LED灯驱动示例4.1 LED硬件接口




当前开发板有3LED,分别接在P405P406P002引脚上,高电平驱动。
4.2 使用FSP库配置LED
P405配置为推挽输出模式。配置方式如下:


P404P002配置过程类似,这里则不在一一说明。最后生成代码:


4.3 设计LED灯代码
工程代码结构布局如图所示,用户代码仅需在hal_entry.c添加,main.c中会自动调用该函数


对于LED灯驱动,仅需启动IO端口、设置IO端口电平状态即可。IO端口启动调用R_IOPORT_Open函数。
函数原型如下:
  1. R_IOPORT_Open (ioport_ctrl_t * const p_ctrl, const ioport_cfg_t * p_cfg)
    形参:p_ctrl --- IOPORT专用控制块参数,在”common_data.h”有定义。
    p_cfg  ---引脚配置信息。
引脚读写函数:
  1. //设置引脚电平状态
    R_IOPORT_PinWrite (ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin, bsp_io_level_t level)
    //读取引脚电平状态
    R_IOPORT_PinRead (ioport_ctrl_t * const p_ctrl, bsp_io_port_pin_t pin,
    bsp_io_level_t * p_pin_value)
    形参:p_ctrl --引脚控制块
    pin   --哪一个引脚
    level  --设置/读取的电平状态
延时函数:
  1. void R_BSP_SoftwareDelay (uint32_t delay, bsp_delay_units_t units)
    形参:delay --延时时间
    units   --延时类型
    秒:BSP_DELAY_UNITS_SECONDS
    毫秒:BSP_DELAY_UNITS_MILLISECONDS
    微秒:BSP_DELAY_UNITS_MICROSECONDS
4.4 LED500ms闪烁一次示例
1.定义LED灯控制宏
  1. #define LED1(x) R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, (bsp_io_level_t)x)
    #define LED2(x) R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, (bsp_io_level_t)x)
    #define LED3(x) R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_02, (bsp_io_level_t)x)
实现LED500ms闪烁一次。
  1. void hal_entry(void)
    {
      /* TODO: add your own code here */
      //使能IO端口
      R_IOPORT_Open(&g_ioport_ctrl,g_ioport.p_cfg);
    uint8_t i=0;
    while(1)
    {
        i=!i;
       LED1(i);LED2(i);LED3(i);
       R_BSP_SoftwareDelay(i,BSP_DELAY_UNITS_MILLISECONDS);
    }
    #if BSP_TZ_SECURE_BUILD
      /* Enter non-secure code */
      R_BSP_NonSecureEnter();
    #endif
    }
4.5 LED呼吸灯示例
实现LED呼吸灯效果。通过修改高低电平占空比,从而实现LED亮度调节。代码实现如下所示:
  1. void hal_entry(void)
    {
    /* TODO: add your own code here */
    //使能IO端口
    R_IOPORT_Open(&g_ioport_ctrl,g_ioport.p_cfg);
    uint16_t i=0;
    while(1)
    {
    for(i=0;i<1000;i++)//暗-->亮
    {
    LED1(0);LED2(0);LED3(0);
    R_BSP_SoftwareDelay(i,BSP_DELAY_UNITS_MICROSECONDS);
    LED1(1);LED2(1);LED3(1);
    R_BSP_SoftwareDelay(1000-i,BSP_DELAY_UNITS_MICROSECONDS);
    }
    for(i=0;i<1000;i++)//亮-->暗
    {
    LED1(0);LED2(0);LED3(0);
    R_BSP_SoftwareDelay(1000-i,BSP_DELAY_UNITS_MICROSECONDS);
    LED1(1);LED2(1);LED3(1);
    R_BSP_SoftwareDelay(i,BSP_DELAY_UNITS_MICROSECONDS);
    }
    }
    #if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
    #endif
    }

5. 生成hex文件









6.串口程序下载
Rennasa Fash Programmer串口程序下载。第一次使用时需要先创建工程。





连接成功效果:




下载程序:


注意,若提示下载失败,要注意boot启动方式,然后再开始下载之后再按下复位即可。

LED呼吸灯

更多回帖

发帖
×
20
完善资料,
赚取积分