![02df45ee-0fe5-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/BB/wKgaomTn9Y6AfcVKAAABH5UOQQI000.jpg)
MX2000平台上不具备CAN接口,但可通过我司CSM300(A)系列SPI(UART)转CAN模块进行拓展CAN接口。在实际产品应用场景中如果需要使用CAN接口,则可以参考本文进行拓展、测试、评估。
![02e7ad06-0fe5-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/BB/wKgaomTn9Y6AeUsQAAABH5UOQQI056.jpg)
![02e7ad06-0fe5-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/BB/wKgaomTn9Y6AeUsQAAABH5UOQQI056.jpg)
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 |
![02e7ad06-0fe5-11ee-962d-dac502259ad0.jpg](https://file1.elecfans.com//web2/M00/9D/BB/wKgaomTn9Y6AeUsQAAABH5UOQQI056.jpg)
&spi1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi1_pe_normal>, <&spi1_pe_cs>;
spi-max-frequency = <2000000>;
num-cs = <1>;
cs-gpios = <0>;
ingenic,chnl = <0>;
ingenic,allow_cs_same = <1>;
ingenic,bus_num = <0>;
ingenic,has_dma_support = <0>;
ingenic,spi-src-clk = <1>;/*0.ext; 1.ssi*/
/delete-node/ spidev@0; // 删除原有spidev节点
csm300@0 {
compatible = "zhiyuan,csm300";
status = "okay";
spi-max-frequency = <1000000>;
reg = <0>;
gpios = <&gpb 24 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS /* CTL0引脚 */
&gpb 25 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS /* CTL1引脚 */
&gpb 26 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS /* RST引脚 */
&gpb 27 GPIO_ACTIVE_LOW INGENIC_GPIO_NOBIAS /* CFG引脚 */
>;
interrupt-parent = <&gpc>;
interrupts = <20 IRQ_TYPE_LEVEL_LOW>;
};
};
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打印。
[
][
] csm300 check id response:[.0: csm300 check id succeed
] csm300 spi0[.0 can0: csm300 successfully initialized. ] csm300 spi0
如果硬件连接不正确,则会在初始化时候出现以下错误log打印。
性能测试
将CSM-Eval评估套件通过USB CAN卡USBCAN-4E-U和电脑连接,框图如图3所示。
[
][
][set bitrate is 1000000
] [
][
] csm300 check id response: [0xf7
] [0xf8
] [0x2
] [0x13
] [0x1e
] [
] csm300 setup response: [0xf7
] [0xf8
] [0x1
] [0x13
] [0x1d
] [
] csm300 setup succeed[ ]
MX2000端推荐使用以下命令进行测试。其中-g 后面所带参数代表间隔时间(单位:s),经过测试会直接影响丢包率,最优为0.1。
[ ]
电脑端使用ZCANPRO专业软件进行测试,得出结果在此帧率下丢包率为0%,如图4所示。
技术交流群
长按识别如下二维码可加入“工控板/核心板技术交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信:zlgmcu-888。
-
致远电子
+关注
关注
13文章
409浏览量
31472
原文标题:【产品应用】MX2000上如何拓展CAN接口?
文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
基于WT2000P4录音IC的宠物喂食器应用方案-支持手机APP功能拓展,远程下载更新
![基于WT<b class='flag-5'>2000</b>P4录音IC的宠物喂食器应用方案-支持手机APP功能<b class='flag-5'>拓展</b>,远程下载更新](https://file1.elecfans.com/web2/M00/8B/83/wKgaomSagEWAVS_tAAPQiIMOKhw250.png)
千兆以太网解决方案:MX2000核心板,高性能不高价
![千兆以太网解决方案:<b class='flag-5'>MX2000</b>核心板,高性能不高价](https://file.elecfans.com/web2/M00/50/DA/pYYBAGLH6TyAB71EAAAPQ7KgtYA038.png)
![](https://file1.elecfans.com/web2/M00/06/A1/wKgaombeTm6AO2Q7AAj5DUv-txw550.jpg)
CAN总线的接口类型
芯力特车规TVS产品助力CAN/LIN通讯接口保护
![芯力特车规TVS<b class='flag-5'>产品</b>助力<b class='flag-5'>CAN</b>/LIN通讯<b class='flag-5'>接口</b>保护](https://file.elecfans.com/web2/M00/17/2C/poYBAGFhX_qAYZVwAABJroHBLOE408.png)
如何使用CAN盒测出目标CAN设备的波特率
如何将PSoC CAN控制器与NMEA 2000网络结合使用?
GPIB-USB-HS采集卡的产品应用
![GPIB-USB-HS采集卡的<b class='flag-5'>产品应用</b>](https://file1.elecfans.com//web2/M00/E1/60/wKgaomY4cIqADG8oAADJ2giqv8c15.jpeg)
全新Linux环境PCAN驱动程序发布!CAN/CAN FD通信体验全面升级!
![](https://file1.elecfans.com/web2/M00/C7/E5/wKgZomYXT9KAK0rzAAD857QFBlM343.jpg)
评论