起因:

近期调试了一款周立功的CSM300的芯片,采用的是其SPI转CAN的功能,现将其调试过程记录下来和大家分享下。

一. CSM300介绍

CSM300(A)系列隔离SPI/UART转CAN模块是集成微处理器、CAN收发器、DC-DC隔离电源、信号隔离于一体的通信模块,当用户控制板上的CAN 控制器资源不够时,可以通过SPI或UART接口扩展出更多的CAN总线接口。
该产品可以很方便地嵌入到具有SPI或UART接口的设备中,在不需改变原有硬件结构的前提下使设备获得CAN通讯接口,实现SPI设备或UART 设备和CAN总线网络之间的数据通讯。

1. 实现SPI或UART 与CAN接口的双向数据通信;CAN总线符合“ISO 11898-2”标准;
2. 集成1路SPI接口,支持用户自定义的速率,最高可达1.5Mbit/s(非自定义协议转换),或1Mbit/s(自定义协议转换);
3. 集成1路UART接口,支持多种速率,最高可达921600bps;集成1路CAN通讯接口,支持多种波特率,最高可达1Mbps;隔离耐压2500VDC;
4. 工作温度:-40℃~+85℃;电磁辐射EME较低;电磁抗千扰EMS 较高;

二. 上位机说明

2.1上位机一览

在本次配置的过程中,我们配置参数的方式是,用上位机进行配置,然后将配置的参数通过MCU发送到CSM300芯片中

2.2 配置CAN的波特率,ID和采样点

标准帧的ID范围为0x000~ 0x7FF,扩展帧的ID为0x00000000~ 0x1FFFFFFF

注:配置ID的时候注意转换参数中的允许CAN或IID转发到里串行帧中

注:CSM的CAN采样点为固定的,不能通过软件更改。具体参数为sjw=3,tseg1=14,tseg2=7。
采样点=(1+tsg1)/(1+tsg1+tsg2)=15/22=0.6819

2.3如何将配置的参数烧录入CSM300芯片

复制下面的参数,打开工程CSM300.c文件,将参数复制到config[65]数组里面

三 程序说明

3.1 进入CSM300的参数配置模式
改变的数组config[65]将会在主函数中的ConfigMoudule函数中被发送到CSM300中并生效


初始化程序烧录后,进入debug模式,全速运行后可以看到写配置回应帧存在receive[11]数组中

其格式为

3.2 切换回SPI转CAN模式

3.3写数据测试

在上面的配置函数中,我们将CAN的波特率配置为500K CAN的ID为0x01 23
在主函数中解除发送数据测试的注释

通过如上时序图控制单片机写数据

接收端上位机配置(这里用的是周立功的CAN卡和上位机)

3.4读数据测试

将while循环中的其他语句屏蔽,只留判断接收的部分,CSM300在接收到数据时INT引脚电平会被拉低,所以我们只要判断到INT脚电平变低就可以直接收了。


配置上位机发送数据,ID为0x00000123,数据改成自己想发的数据

运行程序,在接收端,收到的数据为如下所示

其中第一个字节,前四位为帧类型(标准帧为0000扩展帧为1000)和数据长度(范围为0000-1000)的参数
第二第三字节为帧ID
后八位为帧数据

总结

  1. 在设计时必须要严格按照推荐电路设计,不然特别容易出问题。硬件电路焊接好后,需要挨个检查引脚的对应功能,电平是否正常
  2. 调试过程中需要通过示波器看片选,时钟信号和发送接收的信号,是否严格遵循时钟电路。
  3. 在读取数据时,需要先通过主SPI即MCU发送空数据,空数据为MOSI空闲状态下的电平。

CSM300调试心得相关推荐

  1. AT91RM9200+pcf8563在linux2.6.20下的调试心得

    这两天调试了AT91RM9200+pcf8563在linux2.6.20下的驱动,记录一下我的调试过程以及调试心得,呵呵      在linux2.6.20/drivers/rtc目录下面已经有了pc ...

  2. 浅谈四轴PID调试心得

    以下内容转自阿莫论坛,写得很详细,是调试大四轴的.小四轴调试也可参照着调. PID调试心得 本人不是自动化出身,也没有受过专业训练,都是自己摸索,在这里浅述一下自己的PID参数整定心得.所言之物皆由实 ...

  3. 调试心得plc做主站(客户端)

    ##调试心得plc做主站(客户端) 调试软件,西门子博图15,PLC采用1200,协议抓包采用Wireshark抓包工具 发协议工具采用网络助手,绿色是PLC给我发的请求数据,蓝色我发的报文格式, 1 ...

  4. Ti ub954/953 Sensor调试心得

    Ti ub954/953 Sensor调试心得 前言 TI以及美信的串行器以及接串器是目前车载领域用的比较多的厂家,目前最近一直再用TI的954以及953进行双目sensor的调试,下面就简单记录下调 ...

  5. 阻容压降电路调试心得

    阻容压降电路调试心得 阻容压降电通常用于LED灯电源,智能电表等对成本要求较高的产品中.先说一下LED电源,L线进来后,串联0.39微法油铁电容,后面是全桥整流,然后是滤波,电容容量越大,电路输出的电 ...

  6. 记spi nor flash的调试心得

    flash 调试心得 前言 调试目的 调试步骤 检查 驱动 flash操作 改写 复位 访问模式 tips 内核下相关 文件系统 nor和nand的区别 前言 在工作中或者在开发板上或多或少都会遇到n ...

  7. NXP新出的Cortex-M7核单片机imx.rt1050调试心得

    感谢琳的出现,陪我度过开心的每一天.开心的日子总是过得很快,离上次写博客已经快两个月了.历经一年半的阴云密布,终于迎来了久违的万丈阳光,希望未来的岁月带来的是更多美好甜蜜,开心认真过好每一天. 乘着周 ...

  8. Linuxcnc-Ighethercat 调试心得

    Linuxcnc-Ighethercat调试心得 一.前言 如果想通过linuxcnc和ighethercat来实现对伺服电机的控制.那就要搞明白你需要经过哪几个步骤才能实现伺服控制. ① Linux ...

  9. JLINK在ADS中的调试心得

    JLINK在ADS中的调试心得 分类: ARM2010-01-03 19:39 138人阅读 评论(0) 收藏 举报 [分享]JLINK在ADS下调试心得 前两天一个客户用jlink在ADS来调试LP ...

  10. 基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得(二)-设备树刷厂商给的触摸屏固件...

    之前调试触摸屏的文章如下: 基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得_Bruce.yang的嵌入式之旅-CSDN博客 由于之前调触摸屏一直都对不上点,然后厂商又给了我新的驱动代码 ...

最新文章

  1. miniui文件上传 linux,MINIUI grid学习笔记
  2. 加密工具类 - CryptoUtils.java
  3. 神策 2020 数据驱动用户大会报名开启
  4. 【转载】推荐系统-矩阵分解-SVD-通俗易懂
  5. 论文阅读计划2(Deep Joint Rain Detection and Removal from a Single Image)
  6. Android ListView避免多线程加载一个同一资源
  7. 全球知名跨境电商,.Net软件工程师招聘,约么?
  8. UnixBench算分介绍
  9. 计算机单元格的引用计算,计算机应用 单元格的引用 单元格的引用.pptx
  10. java并发的艺术_Java并发编程的艺术(一)
  11. MQTT——具有.NET Core的消息队列遥测传输协议
  12. Abseil之字符串连接
  13. ios经验6:提交APP上架流程
  14. 【Java】JSON转EXCEL,支持多个数组生成多个sheet、附表头替换
  15. FileInputStreamFileOutputStream 和 BufferedInputStreamBufferedOutputStrem的性能测试小案例
  16. 微信小程序个人服务器搭建
  17. xamp设置web服务器
  18. MATLAB 如何在二维矩阵中快速找到最大值的位置
  19. 安卓期末作业-仿外卖app-简单app(附下载资源)
  20. 寻路算法 --- 广度寻路算法

热门文章

  1. python判断素数的函数_python中判断素数的函数
  2. shell中变量截取
  3. [INS-40719]IP address configured for Single Client Access Name(SCAN):test-pdb.xxxxxx is already assi
  4. html5图标用什么格式转换,ico转png 怎么把ico格式转换成png格式
  5. C++语法(五)数据类型
  6. 系统集成项目管理工程师10大管理47个过程域输入输出工具(项目进度管理)
  7. 浏览器图标及名称大全_估计真要卸载谷歌浏览器了!自带黑科技浏览器推荐(下)...
  8. mysql积分表和业务表_积分相关数据库表该如何设计?业务表和积分明细表该如何匹配上...
  9. 师从施一公,4年8篇CNS,作为西湖大学博士后,她又以一作发了Science
  10. 【中科院】分子生物学-朱玉贤第四版-笔记-第14-16讲 真核生物基因表达调控