首先感谢RT-Thread和Renesas给我这次评测的机会,很荣幸成为本次评测的一员。
本次评测的开发板为Renesas的CPK-RA6M4开发板,它是一款Renesas官方基于RA6M4 MCU群组设计的一款中国本地评估板。如下图所示:
图1 CPK-RA6M4开发板
该板板载资源相对来说也比较丰富了:
板载MCU为:R7FA6M4AF3CFB,200MHz,Arm Cortex®-M33 内核,1MB 代码闪存, 256kB SRAM
开发板集成了J-link调试器,可以使用配套赠送的MicroUSB电缆很方便的下载以及调试程序,如图1中所示的USB调试端口。
板中还自带了红色用户LED指示灯,绿色电源LED指示灯,红色调试LED指示灯,一个用户按钮,一个复位按钮,模拟电位计,数字光线传感器,还有两个Digilent Pmod连接器,便于扩展功能。另外还配备了Arduino连接器以及双排针引脚引出。
本次评测我所需要评测的模块为:SDIO模块。
RA6M4的SDIO模块简单介绍
RA6M4的SDIO模块根据手册应该称为SDHI(SD/MMC Host Interface),该接口提供了MCU连接各种外部存储卡所需要的功能。SDHI可以支持1-bit和4-bit总线用于连接SD、SDHC以及SDXC不同格式的存储卡,也可以支持1-bit、4-bit和8-bit的MMC总线,用于供eMMC4.51(JEDEC标准JESD84-B451)设备的接入与访问。
图2 SDHI(SD/MMC Host Interface)框图
评测所需要的环境和相关软件
1.RT-Thread studio及SD Manager中Renesas:CPK-RA6M4的bsp,版本为1.2.0(在线比较慢,我是离线下载然后再导入的),还需要另外两个包,如图3红框所示:
图3 Renesas:CPK-RA6M4 BSP(1.2.0)
2.setup_fsp_v3_5_0_rasc_v2021-10.exe和CPK_RA6M4_BSP_FSP3.5.0.zip
下载完成安装setup_fsp_v3_5_0_rasc_v2021-10.exe,安装好了之后将CPK_RA6M4_BSP_FSP3.5.0.zip解压,将里面的internal目录内的内容对应的拷贝到fsp_v3.5.0内对应目录增加,这样就可以使用FSP配置CPK-RA6M4开发板的相关引脚配置了,类似stm32cubemx的功能。
环境搭好就可以开始干活啦,我的评测任务是SDIO,详见下面步骤
评测步骤:
1.打开RT-Thread Studio,新建基于RT-Thread的项目,项目名称ra6m4_sdio,选择基于开发板,开发板选择CPK-RA6M4,BSP选择1.2.0,类型选择模板工程,其他默认,点击完成。
2.配置RA Smart Configurator路径,如图4所示,右击RA Smart Configurator,弹出RA Smart Configurator,点击并选择FSP3.5.0的安装路径。
图4 修改RA Smart Configurator路径
只有修改了这个路径,才能在RT-Thread Studio中使用FSP修改引脚配置并同步到RT-Thread Studio创建的ra6m4的工程。
3.双击RA Smart Configurator,就会打开芯片的配置界面。如图5所示:
图5 RA Smart Configurator配置界面
4.配置芯片SDHI功能,首先在pin中关闭了一些功能,如IIC和SPI,因为有的引脚和SDHI引脚重复了,然后在pin中找到Storage:SDHI下面的SDHI0,在右边的pin configuration中的Operation Mode选择SD_MMC 1-Bit,引脚如图6所示:
图6 SDHI引脚配置
5.配置SDHI功能所需要的stack configuration,这里的配置会自动生成SDHI的相关驱动,包括中断等,在stack标签页右侧点击new stack,点击storage下面的SD/MMC(r_sdhi),具体配置如图7所示:
图7 配置r_sdhi驱动
6.点击g_sdmmc0 SD/MMC(r_sdhi)下面的Add_Transfer_Driver(DMA or DTC),点击new,选择Transfer (r_dmac),如图8所示:
图8 配置r_dmac驱动
7.到这里FSP的配置就完成了,点击右上角的Generate Project Content,就会自动生成SDHI的相关引脚配置和相关驱动并同步到RT-Thread Studio的RA6M4_SDIO工程内了,如图9所示:
图9 配置自动生成并同步的相关文件
下面就全部进入RT-Thread Studio操作了:
8.双击工程的RT-Thread Settings,点亮DFS、Fatfs、串口、Pin、软件模拟RTC、SDIO,如图10 所示:
图10 RTT Settings(1)
9.打开详细配置,依次如下面图示配置:
图11 图10 RTT Settings(2)
图12 图10 RTT Settings(3)
图13 图10 RTT Settings(4)
10.保存,编译,下载,打开串口终端,即可显示如图14所示:
图14 运行的RT-Thread和SD card初始化
11.测试,相关命令如下:
mkfs -t elm sd0 初始化sd卡为fat32格式
mount sd0 / elm 将sd卡挂在到/目录
ehco “hello” hello.txt 将hello输入到hello.txt文件
cat hello.txt 显示hello.txt文件的内容
ls 显示目录内的内容
mkdir ra6m4 创建ra6m4目录
cd ra6m4 进入ra6m4目录
具体测试如图15所示:
图15 sd卡测试
最后附上实物运行图(图16)和RT-Thread Studio的ra6m4_sdio工程源码,使用import导入即可
图16 实物运行图
附上sd卡原理图及对应引脚,如图17所示
图17 sd卡原理图及RA6M4对应引脚
图中1-bit使用蓝色引脚,4-bit再加上红色引脚,4-bit要同时修改stack里面为4-bit,以及RT-Thread Settings里硬件-芯片设备驱动-Enable SDHI下面的1-bit禁能。
心得体会:
总的来说,难点在于对ra6m4不熟悉,不熟悉fsp的使用,在慢慢熟悉了之后,用起来还是挺方便的,再者RT-Thread的驱动框架比较完善,在有相应驱动的情况下用起来还是比较得心应手的,但是如果没有做好的驱动,自己一步一步增加的话,还是很有难度的。得力于RT-Thread完善的驱动,使用上非常便利,很适合快速开发应用。后面还会再多试试其它的外设应用,也会多多参与进来。
原作者:itschina999