嵌入式技术论坛
直播中

王涛

7年用户 1234经验值
私信 关注
[经验]

CPK-RA6M4开发板的RTC和WatchDog模块评测

本次评测的开发板为Renesas的CPK-RA6M4开发板,它是一款Renesas官方基于RA6M4 MCU群组设计的一款中国本地评估板。如下图所示:

99daab6f4aed2e087e0de3d9e9a4b20a_d73031de02dee3ae30474a7164cd12e5.jpg

介绍一下本次评测我所需要评测的模块为: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,如下图:

8feb9c9e3943893939341560713a33a0_e0800a0a0d7a50986ccacac5ed19521f.png.webp

2、新建基于RT-Thread的项目,项目名称ra6m4_sdio,选择基于开发板,开发板选择CPK-RA6M4,BSP选择1.2.0,类型选择模板工程,其他默认,点击完成。如下图:

2d7a9f19977282338d2bff6c6db82007_ae1735e8f779cd0c88110b8879b9750e.png.webp

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的安装路径。如下图:

b6dfe0ef12ed61159464e506cb0a3820_59d66adb9b99f0826f46f5d09d93514b.png

,配置好后在stack标签页右侧点击new stack,

e214934b038b9dad7dbcf8bf8af59533_9ba05d891a1aa03e564a9ab6d5f5a9da.png.webp

然后看下项目默认打开的调试口是g_uart7;

aaeff324c6925543e35900bdd1b302c4_26c6dee0a86aa13678ec99cdc14e35cc.png.webp

;

关注调试串口TXD7是P613Pin,RXD7是P614Pin,使用杜邦线连接ttl转usb,接上电脑下载程序,以115200的波特率打开串口调试助手就可以看到东西输出的了。如下图:

2c316c7407e2f2ef8444e4acfb703ebe_7d7b32feef11200d34d0fca604a9729b.png

串口通了后,那么开始启动评测的模块,打开RTC和WTD,到这里FSP的配置就完成了,点击右上角的Generate Project Content,如下图:

919b99d2a2a0b79c6b9620116b9a7650_75bc3b825e45524aa9bdd9d2424cb926.png.webp

4、打开RT-Thread Setting 配置本次评测的RTC和WTD

9b0fd29bbcbdea5033f232f6dc870eea_53ca6b647ccb5aa6f31884cec17411f4.png.webp

81a7f8683d471c1289f93abaa768089d_9219868a04579ea16b4458a3444273ce.png.webp

4bdc7e933caa7c356cae7746458ba8a9_dadac22e77ffd1e6621e0529d94da386.png.webp

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官方的例程,然后注册到调试口上:

9b9171266e340b858a8e3d825a6136ae_1c35ebfcfef7a8620ac2b32ca5c59478.png.webp

然后入口函数进行一个修改,一秒更新一次函数,如下图:

e3851cf23e8e559d9fad3c9297549498_6e886783d9fd11ac0223bf3a594b0152.png.webp

然后修改WatchDog的官方例程,并将程序放在入口函数里

11.测试,相关命令如下:

rtc测试:设置日期时间命令:set_datetime 2022 3 21 23 19 30

8f98facd3f32720264a2afcd4b530ffe_0945672a9e976fd0614f73c65c73a71d.png

可以看出程序正常一秒更新一次时间。

WatchDog:设置开启看门狗并打印输出命令:iwdg_sample

c5c0fa8401296fa2d4d7ac9b8acb8cbb_4b1c676f187da2515c03c6df1bc1d9e2.png

RT-Thread Studio的ra6m4 rtc工程源码,使用import导入即可,

RT-Thread Studio的ra6m4 wtd工程源码,使用import导入即可,

心得体会:

总的来说,难点在于对ra6m4不熟悉,不熟悉fsp的使用,在慢慢熟悉了之后,用起来和cubeMx软件差不多,还是挺方便的,再者RT-Thread的驱动框架比较完善,在有相应驱动的情况下用起来还是比较得心应手的,但是如果没有做好的驱动,自己一步一步增加的话,还是很有难度的。得力于RT-Thread完善的驱动,使用上非常便利,很适合快速开发应用。后面还会再多试试其它的外设应用,也会多多参与进来。希望我们都多多参与进来,让我们的社区变得越来越好。

原作者:冼群超

更多回帖

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