测试目标
本次测试用的是RA生态工作室提供的R7FA2L1AB2DFL demo板,测试CLKOUT提供时钟驱动CAN通讯。
CAN模块的时钟
CLKOUT配置
晶振配置
CAN配置
生成代码后添加外部时钟初始化
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。
打开CAN的上位机发送接收数据。
显示接收发送都成功,接收帧和程序里面一样。
结论
CLKOUT输出时钟代替外部晶振,可以驱动CAN,节省一个外部晶振。
编辑:黄飞
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)