基于R7FA2L1AB2DFL demo板测试CLKOUT时钟驱动CAN通讯

基于R7FA2L1AB2DFL demo板测试CLKOUT时钟驱动CAN通讯,第1张

测试目标

本次测试用的是RA生态工作室提供的R7FA2L1AB2DFL demo板,测试CLKOUT提供时钟驱动CAN通讯。

CAN模块的时钟

基于R7FA2L1AB2DFL demo板测试CLKOUT时钟驱动CAN通讯,206c1e88-2a77-11ed-ba43-dac502259ad0.png,第2张

CLKOUT配置

基于R7FA2L1AB2DFL demo板测试CLKOUT时钟驱动CAN通讯,208e2122-2a77-11ed-ba43-dac502259ad0.png,第3张

 

基于R7FA2L1AB2DFL demo板测试CLKOUT时钟驱动CAN通讯,20a67128-2a77-11ed-ba43-dac502259ad0.png,第4张

晶振配置

基于R7FA2L1AB2DFL demo板测试CLKOUT时钟驱动CAN通讯,20d80792-2a77-11ed-ba43-dac502259ad0.png,第5张

CAN配置

基于R7FA2L1AB2DFL demo板测试CLKOUT时钟驱动CAN通讯,20f5cad4-2a77-11ed-ba43-dac502259ad0.png,第6张

生成代码后添加外部时钟初始化

 

void CLK_Init (void)

{

/* Define the units to be used with the software delay funcTIon */

const bsp_delay_units_t bsp_delay_units = BSP_DELAY_UNITS_MILLISECONDS;

/* Unlock CGC and LPM protecTIon registers. */

R_SYSTEM->PRCR = 0xA503;

/* Configure main oscillator drive. */

// R_SYSTEM->MOMCR = 0x00;

R_SYSTEM->MOMCR = 0x40;

/* Set the main oscillator wait TIme. */

R_SYSTEM->MOSCWTCR = 0x09;

R_SYSTEM->MOSCCR = 0U;

/* Wait for main oscillator to stabilize. */

FSP_HARDWARE_REGISTER_WAIT(R_SYSTEM->OSCSF_b.MOSCSF, 1U);

/* Lock CGC and LPM protecTIon registers. */

R_SYSTEM->PRCR = 0xA500;

R_BSP_SoftwareDelay(10, bsp_delay_units);

}

在CAN初始化之前调用void CLK_Init (void) 函数。

搭建测试环境

硬件上把CLKOUT和EXTAL相连接。

把CANH、CANL连接到CAN板的CANH、CANL。

基于R7FA2L1AB2DFL demo板测试CLKOUT时钟驱动CAN通讯,213ca616-2a77-11ed-ba43-dac502259ad0.png,第7张

打开CAN的上位机发送接收数据。

基于R7FA2L1AB2DFL demo板测试CLKOUT时钟驱动CAN通讯,218390d0-2a77-11ed-ba43-dac502259ad0.png,第8张

显示接收发送都成功,接收帧和程序里面一样。

结论

CLKOUT输出时钟代替外部晶振,可以驱动CAN,节省一个外部晶振。

编辑:黄飞

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2999007.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-26
下一篇 2022-09-26

发表评论

登录后才能评论

评论列表(0条)

保存