CSM300调试心得

2 篇文章 0 订阅
1 篇文章 0 订阅

起因:

近期调试了一款周立功的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空闲状态下的电平。
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值