.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)3个LED (4)2个PMOD接口 (5)板载USB转TTL模块,可用于串口通信和烧录 (6)板载SWD接口,方便用户调试与下载 (7)支持 TrustZone 的 100MHz Arm Cortex-M33安全芯片的功能,512kB 闪存、64kB SRAM(支持奇偶校验)以及64kB ECC SRAM,8KB数据闪存,提供与EEPROM类似的数据存储功能,1kB休眠用SRAM (8)引脚个数:100引脚封装 (9)电容式触摸传感单元 (CTSU),全速 USB 2.0,支持主机模式和设备模式
(10)CAN 2.0B、四线SPI,SCI(UART、简单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硬件接口
当前开发板有3个LED,分别接在P405、P406和P002引脚上,高电平驱动。 4.2 使用FSP库配置LED
将P405配置为推挽输出模式。配置方式如下:
P404和P002配置过程类似,这里则不在一一说明。最后生成代码:
4.3 设计LED灯代码工程代码结构布局如图所示,用户代码仅需在hal_entry.c添加,main.c中会自动调用该函数。

对于LED灯驱动,仅需启动IO端口、设置IO端口电平状态即可。IO端口启动调用”R_IOPORT_Open”函数。 函数原型如下:
R_IOPORT_Open (ioport_ctrl_t * const p_ctrl, const ioport_cfg_t * p_cfg) 形参:p_ctrl --- IOPORT专用控制块参数,在”common_data.h”有定义。 p_cfg ---引脚配置信息。
复制代码
引脚读写函数:
//设置引脚电平状态 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 --设置/读取的电平状态
复制代码
延时函数:
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 LED灯500ms闪烁一次示例
1.定义LED灯控制宏
#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)
复制代码
实现LED灯500ms闪烁一次。
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亮度调节。代码实现如下所示:
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呼吸灯
|