跳转到主要内容

RA2L1:使用CLKOUT给MCU CAN模块提供时钟

cathy 提交于

<strong><font color="#4e5e9e">测试目标</font> </strong>

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

<strong><font color="#4e5e9e">1、CAN模块的时钟</font> </strong>

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100563810-269565-1.png&…; alt=“RA2L1:使用CLKOUT给MCU CAN模块提供时钟" /></center>

<strong><font color="#4e5e9e">2、CLKOUT配置</font> </strong>

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100563810-269566-2.png&…; alt=“RA2L1:使用CLKOUT给MCU CAN模块提供时钟" /></center>
<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100563810-269567-3.png&…; alt=“RA2L1:使用CLKOUT给MCU CAN模块提供时钟" /></center>

<strong><font color="#4e5e9e">3、晶振配置</font> </strong>

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100563810-269568-4.png&…; alt=“RA2L1:使用CLKOUT给MCU CAN模块提供时钟" /></center>

<strong><font color="#4e5e9e">4、CAN配置</font> </strong>

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100563810-269569-5.png&…; alt=“RA2L1:使用CLKOUT给MCU CAN模块提供时钟" /></center>

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

<pre style="overflow-x:auto; background-color:#e9e9e9;">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);

}</pre>

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

<strong>搭建测试环境</strong>

1)硬件上把CLKOUT和EXTAL相连接。

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

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100563810-269570-6.png&…; alt=“RA2L1:使用CLKOUT给MCU CAN模块提供时钟" /></center>

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

<center><img src="http://mcu.eetrend.com/files/2022-09/wen_zhang_/100563810-269571-7.png&…; alt=“RA2L1:使用CLKOUT给MCU CAN模块提供时钟" /></center>

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

<strong><font color="#4e5e9e">结论</font> </strong>

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

更多信息请点击链接:<a href="http://www.superfly.com.cn/">http://www.superfly.com.cn/</a&gt;

来源:<a href="https://mp.weixin.qq.com/s/-B720YPw1Kb4H44WF0FYDg">瑞萨MCU小百科</a&gt;
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。