首先,我们需要在FSP工程中进行配置。第一步是添加CAN模块组件。这可以通过在FSP配置界面中选择相应的组件来实现。添加后,我们可以进行以下通用配置:
1. 波特率和采样点的设定:波特率是CAN总线通信中非常重要的参数,决定了数据的传输速率。采样点则决定了数据采样的精度。根据实际需求进行设定。
2. 中断配置:为了实现高效的数据处理,我们需要为CAN模块配置中断。这可以通过在FSP配置中设置中断优先级和中断服务程序来实现。
3. 过滤器和Mailbox的配置:过滤器用于确定哪些CAN报文应该被接收,而Mailbox则用于存储接收到的报文。这些配置可以确保只有特定的报文被处理。
接下来,是管脚配置。如图10所示,我们需要将特定的管脚与CAN模块关联起来,确保CANH和CANL信号正确连接。这一步骤对于硬件设计和信号完整性至关重要。
生成工程是配置过程的最后一步。在FSP配置界面中,点击“Generate Project Content”按钮,系统将自动生成代码。生成的模块文件存放在工程文件夹的ra->fsp目录中,而配置参数则在工程文件夹的ra_gen->hal_data.c文件中。
在完成配置后,我们需要进行调试和注意一些关键点:
1. 模块初始化:调用R_CAN_Open函数进行模块初始化。这是开始任何CAN通信之前的重要步骤。
2. 发送数据:使用R_CAN_Write函数发送数据。在实际应用中,我们需要根据通信协议构建正确的报文,并通过CAN总线发送。
3. 接收数据:数据接收通常在中断服务程序中完成。接收规则如图15所示,确保正确设置Mailbox,以便正确接收和处理数据。
4. 注意点:在设置过滤规则时,需要注意以下几点: - Mailbox的过滤规则由Mailbox ID和Group Mask共同决定。Group Mask中置1的位需要与接收报文ID的对应位进行比较。 - 过滤规则是从Mailbox编号较小的开始,依次递增。如果满足某个条件,则不会继续比较后续的Mailbox。 - 使用FIFO时,需要注意FIFO占用的Mailbox是最后四个。确保前面的规则不会影响FIFO的正常使用。
通过以上步骤,我们可以成功地配置和调试RA微控制器的CAN模块。在实际应用中,还需要根据具体的通信需求和硬件环境进行适当的调整和优化。掌握这些技巧,将有助于我们在嵌入式系统中有效地使用CAN通信。
使用FSP配置RA的CAN模块
目录
1. 简介
2. FSP工程配置
(1) 首先添加CAN模块组件
(2) 通用配置
(3) 波特率&采样点的设定
(4) 中断
(5) 过滤器和Mailbox的配置
(6) 管脚配置
(7) 生成工程
3. 调试及注意点
(1) 模块初始化
(2) 发送数据
(3) 接收数据
(4) 注意点
(6)管脚配置
Pin脚配置,如图10所示,来设定对应的管脚关联到CAN模块上。

图10
(7)生成工程
如图11所示,单击Generate Project Content按钮,生成代码。
生成的模块文件在工程文件夹的ra->fsp中;配置参数在工程文件夹的ra_gen->hal_data.c中。

图11
3.调试及注意点
(1)模块初始化
调用R_CAN_Open函数,进行模块初始化,如图12所示。

图12
(2)发送数据
调用R_CAN_Write函数来发送数据,如图13所示,测试结果如图14所示。

图13

图14
(3)接收数据
数据接收,在中断中接收,如图15所示为接收的mailbox的规则。测试结果如图16所示。

图15

图16
(4)注意点
过滤规则设定注意点:
1、mailbox的过滤规则是由mailbox_id和Group Mask共同决定的。Group Mask的bit置1,则mailbox_id的相对应的bit需要与接收报文id相对应的bit进行比对;反之Group Mask的bit置0,则mailbox_id的相对应的bit无需与接收报文id相对应的bit进行比对。
2、接收报文的过滤规则是从mailbox编号小的开始,依次递增。如果前面有条件满足,则不会继续往下面的mailbox继续比对。使用FIFO时须留意,FIFO占用的mailbox是最后4个,所以需确保前面的设定的规则不会影响到FIFO。