SemiDrive E3 MCAL 开发系列(9)– Can 模块的使用

一、  概述

本文将会介绍 SemiDrive E3 MCAL CAN 模块的简介以及基本配置。此外会结合实际操作的介绍,帮助新手快速了解并掌握这个模块的使用,文中的 MCAL 是基于 PTG3.0 的版本,开发板是官方的 E3640 网关板。

二、  CAN 模块简介

SemiDrive E3 系列最多支持 24 路 CAN/CANFD,如表 2.1 是 E3 系列各型号支持的 CAN 数量。其中每路 CAN 最多支持 64 个邮箱,每路 CAN 支持两个 RAM Block,每个 RAM Block 的长度可单独配置。另外 E3 只支持 RX FIFO,TX FIFO 不支持,并且 RX FIFO 和 CANFD 不能同时使用。

E3 各型号

CAN 数量

E3640/E3648

24

E3420/E3430

16

E3340

4

E3210/E3110/E3206/E3106

8

E3205/E3105/E3104/E3103/E3102

4

表 2.1 E3 系列各型号 CAN 数量统计

三、  CAN 模块的主要配置

下面具体介绍 CAN 模块的相关配置。首先需要在 MCU 模块中使能对应的 CAN 模块,我们的例子以 CANFD7 为例,如图 3.1 所示,勾选我们要使用的 CAN 模块。

图 3.1 使能 CAN 模块

然后配置 CAN 模块中用到的引脚,具体配置如图 3.2 所示。

图 3.2 CAN 模块引脚配置

接着配置 CAN 模块,其中需要注意的是配置该 CAN 模块的实际物理地址。CAN 模块的物理地址通过芯片的用户手册进行查找。

图 3.3 配置 CAN 控制器的物理地址

接着配置 CAN 模块的采样点以及波特率,如图 3.4 所示。具体配置项的说明如下:

CanControllerBaudRate:该选项用于配置 CAN 的波特率,最大可以配置为 2000 Kbps。

CanControllerBaudRateConfigID:配置 ID,按照默认即可。

CanControllerPropSeg:同步段长度的配置,单位为位时间。

CanControllerSeg1:相位缓冲段 1 长度的配置,单位为位时间。

CanControllerSeg2:相位缓冲段 2 长度的配置,单位为位时间。

CanControllerSyncJumpWidth:同步跳变宽度的配置

图 3.4 配置 CAN 的波特率以及采样点

关于采样点的计算可以按照以下公式:

采样点 = (1 + progSeg + Seg1)/(1 + progSeg + Seg1 + Seg2)

这里波特率配置为 500 Kbps,采样点配置为 75%。

下面配置 CAN 报文的数据长度,标准 CAN 只能配置为 8 个字节,CANFD 可以配置为 16、32、64 字节。

图 3.5 配置 CAN 报文的数据长度

然后配置 CAN 的HardwareObject,具体的配置项目如下:

CanHandleType:选择 BASIC 可以发送或者接收多帧,选择 FULL 只能发送或接收一帧。

CanHwObjectCount:配置 Object 数量,跟邮箱数量有关。

CanIdType:选择使用标准帧、扩展帧或者混合。

CanObject:配置该 Object 是用于发送还是接收。

CanControllerRef:选择具体的 CAN 控制器实例。

图 3.6 配置 CAN HardwareObject

最后配置 CAN 的过滤掩码,具体如下图所示。

图 3.7 配置 CAN 过滤掩码

四、   实际操作

完成以上配置后,便可以生成配置文件,然后需要修改测试代码,具体如下图所示。

图 4.1 测试代码 1

图 4.2 测试代码 2

最后编译代码下载到板子运行,这里就不具体介绍,测试时需要将 CAN 的引脚接到 CAN 盒子,上电后可以看到串口每隔 1S打印一次 TxConfirmation 的信息,表示发送成功,并且 CAN 上位机可以收到发送的报文。

 图 4.3 串口打印信息

图 4.4 CAN 上位机信息

接着可以测试 CAN 的接收,通过上位机向板子发送报文,可以看到板子的串口会把接收报文的数据打印出来,至此,关于 CAN 模块的配置便介绍完毕了。

图 4.5 CAN 接收验证

五、参考资料

1.《SemiDrive_E3_MCAL_User_Guide_Rev03.00.pdf》,2023.08

点击此处阅读更多系列文章吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值