0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

AGk5_ZLG_zhiyua 来源:未知 2023-06-21 11:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MX2000平台接口虽然丰富,但其本身不具备CAN接口。如果在实际产品应用中,需要使用到CAN接口的时候那该怎么办呢?本文将以新产品MX2000核心板为例讲述如何解决该问题。

02df45ee-0fe5-11ee-962d-dac502259ad0.jpg  概述

MX2000平台上不具备CAN接口,但可通过我司CSM300(A)系列SPI(UART)转CAN模块进行拓展CAN接口。在实际产品应用场景中如果需要使用CAN接口,则可以参考本文进行拓展、测试、评估。

02e7ad06-0fe5-11ee-962d-dac502259ad0.jpg软硬件准备
  1. 硬件:MX2000-EV-Board评估板一块、CSM300(A)模块一个、CSM-Eval评估套件一个、连接线缆若干、电源等;
  2. 软件:MX2000 SDK、CSM300(A)技术支持包等。
02e7ad06-0fe5-11ee-962d-dac502259ad0.jpg硬件设计和连接使用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的参考电路。不使用的模块引脚只需悬空而不用连接,以免因电路连接不当从而造成模块损坏。

02fea1a0-0fe5-11ee-962d-dac502259ad0.png

图1CSM300参考电路图如果仅需评估,则可以通过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
02e7ad06-0fe5-11ee-962d-dac502259ad0.jpg软件改动1. 修改设备树在设备树中增加如下节点:
&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打印。

[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打印。

032b7504-0fe5-11ee-962d-dac502259ad0.png

图2CSM300(A)初始化错误LOG图

02e7ad06-0fe5-11ee-962d-dac502259ad0.jpg性能测试

将CSM-Eval评估套件通过USB CAN卡USBCAN-4E-U和电脑连接,框图如图3所示。

034b9b72-0fe5-11ee-962d-dac502259ad0.png

图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所示。

03592ef4-0fe5-11ee-962d-dac502259ad0.png

图4性能测试结果图

02e7ad06-0fe5-11ee-962d-dac502259ad0.jpg技术交流

长按识别如下二维码可加入“工控板/核心板技术交流群”,与志同道合的朋友交流,并有专业技术人员为您答疑解惑,如有问题可以咨询小致微信zlgmcu-888。

0370d59a-0fe5-11ee-962d-dac502259ad0.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 致远电子
    +关注

    关注

    13

    文章

    421

    浏览量

    32375

原文标题:【产品应用】MX2000上如何拓展CAN接口?

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    E203的F指令集拓展

    《在手把手教你RISC-V CPU》 3.F拓展的软件实现 为实现对蜂鸟E203的F拓展,笔者未采用蜂鸟E203中遗存的FPU端口,选择NICE接口完成蜂鸟E203浮点运算指令
    发表于 10-20 09:23

    嵌入式接口通识知识之CAN接口

    1.1 基础概念CAN的全称是Controller Area Network,译为控制器区域网络,是一种用于车辆、电力系统、工业设备等嵌入式系统的半双工异步串行通信协议和物理接口CAN是一种
    发表于 08-21 16:49

    产品添加与架API接口设计指南

    ​ 在现代电商或库存管理系统中,产品添加与架是关键流程。通过API接口实现自动化操作,能显著提升效率。本文将分步解析如何设计和使用“产品添加”与“
    的头像 发表于 07-24 14:45 438次阅读
    <b class='flag-5'>产品</b>添加与<b class='flag-5'>上</b>架API<b class='flag-5'>接口</b>设计指南

    解锁CAN接口开发高效路径!五个核心要点一次讲透

    高效开发CAN接口,关键在于把握协议基础、硬件适配、错误管理、性能优化与调试五大核心要点。下面将逐一剖析每个环节的技术细节与实践方法,助力开发者快速突破难点,实现可靠通信。 在Air780EPM
    的头像 发表于 06-23 16:08 980次阅读
    解锁<b class='flag-5'>CAN</b><b class='flag-5'>接口</b>开发高效路径!五个核心要点一次讲透

    Analog Devices / Maxim Integrated MX31828和MX31829低功耗温度开关特性/应用/框图

    Analog Devices MX31828和MX31829低功耗温度开关在-40°C至+125°C(12位)温度范围内提供±1°C的精度。该开关具有I^2^C/SMBus接口,采用小型6焊球晶圆级
    的头像 发表于 06-22 11:12 564次阅读
    Analog Devices / Maxim Integrated <b class='flag-5'>MX</b>31828和<b class='flag-5'>MX</b>31829低功耗温度开关特性/应用/框图

    米尔NXP i.MX 91核心板发布,助力新一代入门级Linux应用开发

    本帖最后由 blingbling111 于 2025-5-30 16:17 编辑 米尔电子基于与NXP长期合作的嵌入式处理器开发经验,在i.MX 6和i.MX 8系列核心板领域已形成完整产品
    发表于 05-30 11:20

    湖南银河电气有限公司产品应用案例

    湖南银河电气有限公司产品应用案例
    发表于 04-23 11:21 0次下载

    关于隔离DCDC辅助电源解决方案与产品应用科普

    隔离方案无任何优势,因此,隔离电源的应用,多数是用在产品/功能有强制隔离需求的方案。 一般集中在: ○ 电路板内有高干扰器件,隔离干扰; ○ 存在人体直接接触的空间; ○ 远程工业通信的供电
    发表于 04-17 16:41

    在i.MX93和i.MX8M Plus都使用UART,遇到了RTS/CTS连接问题求解决

    我在 i.MX93和 i.MX8M Plus 都使用 UART,并遇到了 RTS/CTS 连接问题。 在 i.MX93 ,以下接线工作正
    发表于 04-04 07:16

    工程师在产品选型的时究竟是选CAN还是CANFD接口卡呢?

    很多工程师在产品选型的时候会疑惑,究竟是选CAN接口卡还是CANFD接口卡呢?两者之间有什么区别呢?影响选择的关键因素又是什么?我们今天一个一个来拆解。1.波特率传统的
    的头像 发表于 03-21 11:37 709次阅读
    工程师在<b class='flag-5'>产品</b>选型的时究竟是选<b class='flag-5'>CAN</b>还是CANFD<b class='flag-5'>接口</b>卡呢?

    CAN接口不足?CSM330A来帮忙!

    导读在新能源汽车、医疗设备和工业自动化等领域,CAN总线接口不足已成为工程师面临的常见难题。本文将介绍一款高性能的国产芯片—CSM330A,为解决CAN接口不足问题提供了高效、可靠的方
    的头像 发表于 03-10 11:34 724次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>接口</b>不足?CSM330A来帮忙!

    上海雷卯提供1KV的CAN浪涌方案 CAN接口浪涌损坏测试

    CAN接口
    上海雷卯电子
    发布于 :2025年03月07日 19:13:43

    DLP2000EVM和DLP2010EVM是否可以从光机模块取下来装到电路板对应的接口上使用?

    DLP2000EVM和DLP2010EVM这两款上面的DMD是否可以从光机模块取下来装到电路板对应的接口上使用。如果不可以,又没有对应的开发板可以实现这个功能,有的话可以推荐型号
    发表于 02-27 07:04

    CAN总线十万个为什么 | 如何轻松应对CAN(FD)接口不足?

    导读项目扩张时,CAN(FD)接口不足常常成为硬件工程师的痛点。本期将为您介绍一种高效解决方案,帮助您从根本上解决接口瓶颈问题,同时提升项目效率和系统可靠性。很多硬件工程师在项目扩张的时候,都需要
    的头像 发表于 02-21 11:36 810次阅读
    <b class='flag-5'>CAN</b>总线十万个为什么 | 如何轻松应对<b class='flag-5'>CAN</b>(FD)<b class='flag-5'>接口</b>不足?

    基于WT2000P4录音IC的宠物喂食器应用方案-支持手机APP功能拓展,远程下载更新

    01背景简介宠物喂食器越来越受宠物爱好者喜欢,要紧紧的抓住消费者需求,已不仅仅停留在对宠物进行投食的简单功能,同时还需具备掌握宠物喂食情况并与宠物互动的功能。本方案宠物喂食器采用了WT2000
    的头像 发表于 01-08 17:06 1027次阅读
    基于WT<b class='flag-5'>2000</b>P4录音IC的宠物喂食器应用方案-支持手机APP功能<b class='flag-5'>拓展</b>,远程下载更新