本次评测的开发板为Renesas的CPK-RA6M4开发板,它是一款Renesas官方基于RA6M4 MCU群组设计的一款中国本地评估板。如下图所示:
介绍一下本次评测我所需要评测的模块为:RTC和WatchDog。
RTC 简介
RTC (Real-Time Clock)实时时钟可以提供精确的实时时间,它可以用于产生年、月、日、时、分、秒等信息。目前实时时钟芯片大多采用精度较高的晶体振荡器作为时钟源。有些时钟芯片为了在主电源掉电时还可以工作,会外加电池供电,使时间信息一直保持有效。
WATCHDOG 简介
硬件看门狗(watchdog timer)是一个定时器,其定时输出连接到电路的复位端。在产品化的嵌入式系统中,为了使系统在异常情况下能自动复位,一般都需要引入看门狗。
当看门狗启动后,计数器开始自动计数,在计数器溢出前如果没有被复位,计数器溢出就会对 CPU 产生一个复位信号使系统重启(俗称 “被狗咬”)。系统正常运行时,需要在看门狗允许的时间间隔内对看门狗计数器清零(俗称“喂狗“),不让复位信号产生。如果系统不出问题,程序能够按时“喂狗”。一旦程序跑飞,没有“喂狗”,系统“被咬” 复位。
一般情况下可以在 RT-Thread 的 idle 回调函数和关键任务里喂狗。
一、要使用开发板,必须先了解开发板
该板板载资源相对来说也比较丰富了:
板载MCU为:R7FA6M4AF3CFB,200MHz,Arm Cortex®-M33 内核,1MB 代码闪存, 256kB SRAM;开发板集成了J-link调试器,可以使用配套赠送的MicroUSB电缆很方便的下载以及调试程序,
二、然后学会使用工具并搭建好RA开发板的开发环境搭建
基于 RT-Thread Studio开发环境搭建RA 开发环境搭建必备工具
1、RT-Thread Studio 集成IDE安装过程就不再重复了。
2、灵活配置软件包 (FSP) :可快速配置开发板的外设功能,请使用 v3.5.0 版本,目前可在github上下载3.5.0版本(注意文件名称为:setup_fsp_v3_5_0_rasc_v2021-10.exe)<注意官网为3.6.0版本,不向前兼容,使用3.6.0版本会会导致本工程不可用>;在安装完后,就可以使用FSP配置CPK-RA6M4开发板的相关引脚配置了,类似stm32cubemx的功能。需要什么功能就裁剪什么功能,十分的好用。
首先来看看我的环境配置:
1、在RT-Thread Studio装上RA6M4的SDK,如下图:
2、新建基于RT-Thread的项目,项目名称ra6m4_sdio,选择基于开发板,开发板选择CPK-RA6M4,BSP选择1.2.0,类型选择模板工程,其他默认,点击完成。如下图:
3、配置好RA Smart Configurator的路径:我的路径是:C:RenesasRAsc_v2021-10_fsp_v3.5.0,修改RA Smart Configurator路径;只有修改了这个路径,才能在RT-Thread Studio中使用FSP修改引脚配置并同步到RT-Thread Studio创建的ra6m4的工程。配置RA Smart Configurator路径,右击RA Smart Configurator,弹出RA Smart Configurator,点击并选择FSP3.5.0的安装路径。如下图:
,配置好后在stack标签页右侧点击new stack,
然后看下项目默认打开的调试口是g_uart7;
;
关注调试串口TXD7是P613Pin,RXD7是P614Pin,使用杜邦线连接ttl转usb,接上电脑下载程序,以115200的波特率打开串口调试助手就可以看到东西输出的了。如下图:
串口通了后,那么开始启动评测的模块,打开RTC和WTD,到这里FSP的配置就完成了,点击右上角的Generate Project Content,如下图:
4、打开RT-Thread Setting 配置本次评测的RTC和WTD
5:关注入口函数:
应用入口函数
应用层的入口函数在 bsp
a6m4-cpksrchal_emtry.c 中 的 void hal_entry(void) 。用户编写的源文件可直接放在 src 目录下。
void hal_entry(void)
{
rt_kprintf(“
Hello RT-Thread!
”); while (1)
{
rt_pin_write(LED3_PIN, PIN_HIGH);
rt_thread_mdelay(500);
rt_pin_write(LED3_PIN, PIN_LOW);
rt_thread_mdelay(500);
}
}
自己新建用户的文件夹,分别存放user_inc和user_src,如下图稍微修改rtthread 的RTC官方的例程,然后注册到调试口上:
然后入口函数进行一个修改,一秒更新一次函数,如下图:
然后修改WatchDog的官方例程,并将程序放在入口函数里
11.测试,相关命令如下:
rtc测试:设置日期时间命令:set_datetime 2022 3 21 23 19 30
可以看出程序正常一秒更新一次时间。
WatchDog:设置开启看门狗并打印输出命令:iwdg_sample
RT-Thread Studio的ra6m4 rtc工程源码,使用import导入即可,
RT-Thread Studio的ra6m4 wtd工程源码,使用import导入即可,
心得体会:
总的来说,难点在于对ra6m4不熟悉,不熟悉fsp的使用,在慢慢熟悉了之后,用起来和cubeMx软件差不多,还是挺方便的,再者RT-Thread的驱动框架比较完善,在有相应驱动的情况下用起来还是比较得心应手的,但是如果没有做好的驱动,自己一步一步增加的话,还是很有难度的。得力于RT-Thread完善的驱动,使用上非常便利,很适合快速开发应用。后面还会再多试试其它的外设应用,也会多多参与进来。希望我们都多多参与进来,让我们的社区变得越来越好。
原作者:冼群超