版本历史:
- 2023-05-21 初始版本,使用RASC 4.4.0
- 2023-05-28 更新图片,使用RASC 4.2.0
一、简单开箱
感谢电子发烧友平台组织本次试用活动,这次试用的开发板是——瑞萨FPB-RA6E1快速原型板。
按照惯例,先来个简单的开箱。
拆开快递,首先看到的是开发板包装盒:

可以看到生产日期、批号等信息,以及“MADE IN UK”一行字(英国制造)。
打开包装盒是纸质版的快速上手指南(一页A4彩色打印,内容和电子版的快速上手指南一样):

拿走这张纸之后,就是包裹的很严实的开发板了:

拆开气泡袋,还有一层粉红色防静电袋(很亮眼啊,兄弟们):

拆开防静电袋之后,就可以看清开发板了:

可以看到,
- 主控芯片型号为:RA7FA6E10F2CFP
- 板载JLink调试器,也就是所谓的JLink OB(On Board);
- 带有Arduino扩展接口
- 带有两个PMOD扩展接口
- 里带有两个50pin扩展接口
- 板载两个按键
- 板载两个LED灯
- 沉金工艺,看起来很高端,
好了,开箱就到这里了。
二、资料下载
活动帖: https://bbs.elecfans.com/jishu_2351918_1_1.html
原文中提供了,相关资料的下载链接,这里不再赘述。
后续开发过程中,比较常用的是原理图文件 fpb-ra6e1-v1-schematic.pdf ,一定要下载。
fpb-ra6e1-v1-schematic.pdf (170.37 KB)
另外比较重要的是数据手册:
- RA6E1参考手册(英文): https://www.renesas.com/us/en/document/dst/ra6e1-group-datasheet?r=1521986
- RA6E1参考手册(中英): https://www.ramcu.cn/public/uploads/files/20220902/b4d9ed4dba3629b2dbdee41b8d7f8483.pdf
三、芯片简介
RA6E1系列MCU主要特性:
- 支持 TrustZone 的 200MHz Arm Cortex-M33
- 512kB – 1MB 闪存和 256kB SRAM
- 8KB 数据闪存,提供与 EEPROM 类似的数据存储功能
- 1kB 休眠用 SRAM
- 从 48 引脚封装扩展至 100 引脚封装
- 支持 以太网MAC
- 全速 USB 2.0,支持主机模式和设备模式
- CAN 2.0B
- 四线 SPI
- 串行通信接口(UART、简单 SPI、简单 I2C)
- 独立SPI/I2C 多主接口
- SDHI 和 MMC
本次活动试用的瑞萨FPB-RA6E1快速原型板,主控芯片型号为:RA7FA6E10F2CFP。
查阅官方网站,可以知道,它的闪存为1MB,SRAM为256 KB。
四、开发环境搭建
这里搭建的是RASC+Keil开发环境,使用开发板自带的JLink调试器进行调试和下载。自带JLink相对于使用串口烧录,好处是不需要单独下载烧录软件,使用方便。另外,JLink调试器支持断点调试,通过串口也是无法实现的。
4.1 安装RASC
Flex Software Package,简称FSP,它包含了HAL库和配置工具;其中,配置工具叫 RA Smart Configurator,简称RASC。
FSP官网下载页面:https://www2.renesas.cn/cn/zh/software-tool/flexible-software-package-fsp
FSP GitHub下载页面:https://github.com/renesas/fsp/releases
注意:不要下载4.4.0 和 4.3.0 版本的FSP或者RASC,经本人实测这两个版本的 RASC 生成的代码,在FPB-RA6E1开发上,启动阶段会卡住 Systemlnit() -> R_BSP_Init_RTC() 函数中,无法继续向下运行。
RASC v4.2.0下载链接:https://github.com/renesas/fsp/releases/download/v4.2.0/setup_fsp_v4_2_0_rasc_v2022-10.exe
PS:国内可以通过ghproxy.net加速链接下载: https://ghproxy.net/https://github.com/renesas/fsp/releases/download/v4.2.0/setup_fsp_v4_2_0_rasc_v2022-10.exe
打开RASC 4.2.0安装程序后,界面如下:

安装没啥难度,一路“下一步”就好了,安装完成界面如下:

4.2 安装Keil MDK
Keil MDK下载地址: https://www.keil.com/download/product/
Keil MDK安装,默认设置,一路下一步就好了,没啥难度,不再详细介绍。
4.3 安装RA6E1的MDK支持包
Keil默认不支持RA系列MCU,需要安装瑞萨RA系列MCU Keil支持包才能支持RA系列MCU。
FSP GitHub下载页面也有MDK支持包下载链接:
https://github.com/renesas/fsp/releases/download/v4.4.0/MDK_Device_Packs_v4.4.0.zip
国内推荐使用ghproxy.net加速下载,链接为:
https://ghproxy.net/https://github.com/renesas/fsp/releases/download/v4.4.0/MDK_Device_Packs_v4.4.0.zip
下载完成记得校验一下MD5,看看和GitHub下载页面上的是否一致:

另外,瑞萨RA系列MCU Keil支持包,可以在Keil官网找到下载页面:
MDK5 - Renesas R7FA6E10F (keil.com)
Keil下载页面指向的也是瑞萨的网站,直接下载链接:
https://www2.renesas.eu/Keil_MDK_Packs/Renesas.RA_DFP.4.4.0.pack
下载完成后,双击安装即可(安装了Keil之后,pack文件会被自动关联到使用Keil打开),不再赘述。
五、GPIO点灯指南
本节以点灯为例,详细记录了从创建项目、编写代码、编译代码、烧录固件、运行程序的完整操作步骤,即便你此前完全没有使用过瑞萨MCU,参考这里的步骤也可以顺利完成整个过程。
5.1 创建RASC项目
开始菜单,打开“Renesas RA Smart Configurator 4.2.0”,开始创建RASC项目,例如输入项目名为RA6E1_Blinky:

其中,项目名称、保存路径可以修改。
接下来是选择设备(点击Device右侧的省略号图标弹出Device Selection窗口):

本次试用的瑞萨FPB-RA6E1快速原型板主控MCU型号是RA7FA6E10F2CFP;
点OK继续,接下来选择IDE:

这里选Keil MDK Version 5,点击Next继续。
TrustZone类型选择:

这里不使用TrustZone,因此选择第一个。
接下来是RTOS类型选择:

我们先尝试裸机点灯,不使用RTOS,下拉菜单无需修改。通过这里的下来菜单,可以知道FreeRTOS和AzureRTOS也是支持的。
接下来是项目模板选择:

因为前面选择了“No RTOS”,这一步只有一个裸机(Bare Metal)可供选择了。
到这里,创建项目所需的选择全部完成,点击Finish之后,FSP界面如下:

这里需要留意的是这几个地方,后续会用到:

5.2 查阅开发板原理图
开发板原理图中,开发板LED相关原理图:

可以看到,两个LED对应引脚分别为:
5.3 设置LED1引脚为输出
接下来回到FSP软件,点击pins标签,切换到引脚配置视图,找到P407引脚:

修改mode配置:

修改后,Ctrl+S保存,再点击右上角的“Generate Project Content”生产Keil项目。
3.4 编写LED1闪烁的代码
FSP生成Keil项目后,可以切回到Summary视图,查看项目位置。点击右侧的小箭头按钮,可以在文件管理器中打开位置:

双击打开Keil项目文件RA6E1_Blinky.uvprojx后,可以在Keil中看到项目文件结构如下:

打开hal_entry.c开始编写代码:

在/* TODO: add your own code here */
代码下方添加代码:
R_BSP_PinAccessEnable();
while(1) {
R_BSP_PinWrite(BSP_IO_PORT_04_PIN_07, BSP_IO_LEVEL_HIGH);
R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);
R_BSP_PinWrite(BSP_IO_PORT_04_PIN_07, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);
}
编写代码时,可以查阅FSP API参考,具体可以通过FSP Summary页的帮主文档图标打开本地网页,或者查看在线的API文档:https://renesas.github.io/fsp/modules.html
PS:API参考对后续开发非常有用,毕竟这么多底层接口不可能全部记住。
比如,可以查阅上面点灯代码用到的:
- IO访问接口(这里的R_BSP_PinWrite):https://renesas.github.io/fsp/group___b_s_p___i_o.html
- MCU接口(这里的R_BSP_SoftwareDelay):https://renesas.github.io/fsp/group___b_s_p___m_c_u.html
另外,点灯使用如下代码也可以:
while(1) {
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_07, BSP_IO_LEVEL_HIGH);
R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_07, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS);
}
二者差别是:
- 使用
R_BSP_PinWrite
之前,需要先调用R_BSP_PinAccessEnable
,否则后续的R_BSP_PinWrite
不起作用;
R_BSP_PinWrite
是两个参数,而R_IOPORT_PinWrite
是三个参数,前者更方便、更优雅一些;
接下来就可以准备 编译、烧录、运行 了。
5.5 编译Keil项目
添加完了代码之后,就可以编译项目了。
在Keil中编译项目,可以直接点击编译按钮,或者按F7键;编译完成后,build output视图输出如下:

5.6 修改Keil调试器设置
编译成功后,可以准备下载程序了。
下载之前,需要修改Keil项目的调试器设置。
具体操作步骤为:
-
左侧Project视图中,右击“Target 1”,选择“Options for Target 1”菜单,如下图所示;

-
点Debug标签页,如下图所示;

确认调试器选择的是JLink,则不需要修改。
-
点击JLink/JTrace Cortex右侧的Settings,弹出JLink设置界面,如下图所示:

此时如果你已经正确连接了开发板,并且你的电脑已经安装了JLink驱动,则会在SW Device窗口中识别一个CoreSight设备。
-
点击Flash Download标签,如下图所示:

-
可以看到Programming Algorithm为空白,点击Add后,弹出界面:

-
一次将RA6E1的三个加上即可,加上之后,如下图所示:

-
RAM for Algorithm,Start填写0x20000000,Size填写0x1000:

-
最后,勾选Reset and Run便于调试:

-
点击确定,完成所有修改。
5.7 下载和运行程序
完成上述所有修改后,使用Keil的烧录按钮,或者F8快捷键,开始下载程序:

下载程序完成后,Build Output输出如下:

如无意外,此时应该可以看到LED2闪烁了。
5.8 已知问题和解决方案
经本人测试发现,使用最新版本的 FSP 4.4.0、4.3.0 生成的代码在本次试用的瑞萨FPB-RA6E1上无法正常启动,点灯程序下载完成复位后无法看到LED灯闪烁。如果此时,用手触摸RTC晶振Y1附近的焊点,则可以正常运行下去。
经断电调试,最终发现——流程卡在了RESET_Handler()
-> SystemInit()
-> R_BSP_Init_RTC()
函数中。
**【解决方案】**换成FSP 4.2.0 以下版本,即可正常启动;对比生成的项目源码发现,4.2.0以下版本的SystemInit()
中没有调用 R_BSP_Init_RTC()
函数。
六、参考链接
- RA6E1参考手册(英文): https://www.renesas.com/us/en/document/dst/ra6e1-group-datasheet?r=1521986
- RA6E1参考手册(中英): https://www.ramcu.cn/public/uploads/files/20220902/b4d9ed4dba3629b2dbdee41b8d7f8483.pdf
- RA6E1硬件手册(英文): https://www.renesas.cn/cn/zh/document/mah/ra6e1-group-users-manual-hardware?r=1521986
- FPB-RA6E1开发板快速入门指南: https://www.renesas.com/us/en/document/qsg/fpb-ra6e1-quick-start-guide?r=1529471
- FSP GitHub下载页面:https://github.com/renesas/fsp/releases
- Keil MDK下载页面: https://www.keil.com/download/product/
- 瑞萨RA系列MCU的Keil MDK支持包: https://github.com/renesas/fsp/releases/download/v4.4.0/MDK_Device_Packs_v4.4.0.zip