瑞萨单片机论坛
直播中

wang123a

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

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

1.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)。硬件实物如图所示:
image.png

  开发板资源信息:

  (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
image.png

2.1 e2 studio安装

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

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

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

  在 e2s 软件安装完成之后,会弹出如下界面,最后点“OK”即可完成安装。

2.2 e2 studio创建快捷方式

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

2.3 e2 studio快捷键

image.png

3.创建工程

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

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

image.png

  设置工程名
image.png

  选择芯片型号
image.png
image.png
image.png
image.png

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

  手动打开工程窗口:
image.png

LED灯驱动示例

4.1 LED硬件接口

  当前开发板有3个LED,分别接在P405、P406和P002引脚上,高电平驱动。
image.png

4.2 使用FSP库配置LED

  将P405配置为推挽输出模式。配置方式如下:
image.png

  P404和P002配置过程类似,这里则不在一一说明。最后生成代码:
image.png

4.3 设计LED灯代码

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

  对于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

}

生成hex文件

image.png

image.png

串口程序下载

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

image.png

image.png

  连接成功效果:
image.png

  下载程序:
image.png

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

LED呼吸灯

更多回帖

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