【产品应用】MX2000上如何拓展CAN接口?

mx2000平台接口虽然丰富,但其本身不具备can接口。如果在实际产品应用中,需要使用到can接口的时候那该怎么办呢?本文将以新产品mx2000核心板为例讲述如何解决该问题。
概述
mx2000平台上不具备can接口,但可通过我司csm300(a)系列spi(uart)转can模块进行拓展can接口。在实际产品应用场景中如果需要使用can接口,则可以参考本文进行拓展、测试、评估。
软硬件准备
硬件:mx2000-ev-board评估板一块、csm300(a)模块一个、csm-eval评估套件一个、连接线缆若干、电源等;软件:mx2000 sdk、csm300(a)技术支持包等。
 硬件设计和连接使用spi转can功能时,需要将csm300(a)的mode引脚接至高电平(3.3v)。mcu的spi接口与csm300(a)的spi接口连接,同时mcu需要提供gpio与rst、int、ctl0、ctl1引脚连接,实现对csm300(a)的有效监测与控制。若需要通过mcu对csm300(a)进行配置,则需要额外的gpio与cfg引脚连接。图1是csm300a的参考电路。不使用的模块引脚只需悬空而不用连接,以免因电路连接不当从而造成模块损坏。
图1 csm300参考电路图如果仅需评估,则可以通过csm-eval评估套件将csm300(a)和mx2000-ev-board连接。csm-eval评估套件需要使用一路spi接口和5个电平为3.3v的gpio;mx2000-ev-board在j28上引出了spi1和若干个电平为3.3v的gpio,具体接线可以参考表1所示。表1 csm-eval接mx2000-ev-board引脚对应表
csm-eval引脚
mx2000-ev-board端引脚
csm-eval引脚
mx2000-ev-board端引脚
ssel
ssi1_ce0
cfg
pb27
sck
ssi1_sck
int
pc20
miso
ssi1_di
ctl0
pb24
mosi
ssi1_do
ctl1
pb25
gnd
gnd
rst
pb26
vcc
3.3v
软件改动1. 修改设备树在设备树中增加如下节点:
                             &spi1 { status = okay; pinctrl-names = default; pinctrl-0 = , ; spi-max-frequency = ; num-cs = ; cs-gpios = ; ingenic,chnl = ; ingenic,allow_cs_same = ; ingenic,bus_num = ; ingenic,has_dma_support = ; ingenic,spi-src-clk = ;/*0.ext; 1.ssi*/
/delete-node/ spidev@0; // 删除原有spidev节点 csm300@0 { compatible = zhiyuan,csm300; status = okay; spi-max-frequency = ; reg = ; gpios = ; interrupt-parent = ; interrupts = ; };};
2. 增加驱动并修改内核配置
驱动文件请联系fae或者销售工程师。将驱动文件csm300.c,放置于kernel/drivers/net/can/spi/文件夹下。并在该目录的makefile文件中加入以下内容:
 obj-$(config_can_csm3xx) += csm300.o/*添加至文件末尾*/
同时在该目录下的kconfig文件中加入以下内容:
    config can_csm3xx tristate csm3xx spi can controllers help driver for csm3xx spi can controllers.
最后在menuconfig菜单中或defconfig配置文件中,打开对应内核配置,重新编译内核并烧录到评估板中。
成功加载并且硬件连接无误的情况下,会出现如下log打印。
    [root@mx2000:~]# dmesg | grep csm[ 0.991286] csm300 check id response:[ 0.991356] csm300 spi0.0: csm300 check id succeed[ 0.991717] csm300 spi0.0 can0: csm300 successfully initialized.
如果硬件连接不正确,则会在初始化时候出现以下错误log打印。
图2 csm300(a)初始化错误log图
性能测试
将csm-eval评估套件通过usb can卡usbcan-4e-u和电脑连接,框图如图3所示。
图3 连接框图参考以下命令,对can进行配置:
                  [root@mx2000 ]# ip link set can0 down[root@mx2000 ]# ip link set can0 type can bitrate 1000000 #设定比特率[ 3205.411204] set bitrate is 1000000[root@mx2000 ]# ip link set can0 up #挂起can卡[ 3210.251020] csm300 check id response: [ 3210.251031] 0xf7 [ 3210.255100] 0xf8 [ 3210.257092] 0x2 [ 3210.259082] 0x13 [ 3210.260984] 0x1e [ 3210.451014] csm300 setup response: [ 3210.453010] 0xf7 [ 3210.456620] 0xf8 [ 3210.458610] 0x1 [ 3210.460599] 0x13 [ 3210.462498] 0x1d [ 3210.464486] csm300 setup succeed[root@mx2000 ]# echo 204800 > /sys/class/net/can0/tx_queue_len #设置发送队列长度
mx2000端推荐使用以下命令进行测试。其中-g 后面所带参数代表间隔时间(单位:s),经过测试会直接影响丢包率,最优为0.1。
 [root@mx2000 ]# cangen -g 0.1 -i 0x122 -l 8 -d i can0 -n 204800
电脑端使用zcanpro专业软件进行测试,得出结果在此帧率下丢包率为0%,如图4所示。
图4 性能测试结果图

工程师说 | 基于RX的数字电源转换能力用RX单片机实现图腾柱交错式PFC
深度聊聊4D毫米波雷达技术及发展
人工智能、量子计算等技术或压倒网络安全防线
智能电视对电视企业带来了怎样的颠覆
制冷设备、空气分离设备安装工程施工及验收规范GB50274-
【产品应用】MX2000上如何拓展CAN接口?
“安装优选”正式上线,采用共享经济模式,解决智能家居安装痛点
在无人机专用武器领域美国AGM-114C/K反坦克导弹是标配
人工智能将如何改变泛家装产业
韩国的5G下载速度位居世界第二
Mini/Micro LED厂商研发应用的最新进展
工业触控显示设备可以应用于哪些工业场景
MSCl210在微位移传感器系统的应用
热插拔和非热插拔的区别
瑞萨将举办MCU技术论坛 最新的RX产品蓝图
苹果信心满满的推出iOS10.3正式版 结果有点小尴尬
台积电将在美国建设5nm晶圆厂,计划2024年量产
励磁涌流与故障电流的区别?
LED节能灯的种类与市场分析
BUCK电路EMI辐射干扰分析实例