《犀牛派X1》CAN总线通讯数据收发教程

经常关注番茄公众号的朋友们应该都不陌生,番茄主要专注于ROS智能小车方面的知识分享,既然涉及到车辆,那肯定必不可少的要使用CAN通讯。

刚好最近番茄拿到了最新版的《犀牛派X1》开发板,根据文档介绍手册,该款开发板内置的CAN通讯硬件特性,今天就把这个硬件特性深度挖掘一下,对比赛感兴趣的读者可以看一下番茄之前发的文章。

进入正文,根据开发板文档手册介绍内容分析发现,CAN 接口位于 40-Pin 1.8V GPIO 扩展接口 是,详细引脚定义如下:

Rhino Pi-X1 配备了一个板载 40-PIN 简牛 2.5 间距连接器,用于扩展 1.8V GPIO 扩展。更好的适配不同 IO 电平要求的外设。

40 PIN GPIO 接口 | APLUX Doc Center

Function PIN# PIN# Function
NC 1 2 1.8V OUT
NC 3 4 GND
GPIO_70 5 6 I2S1_CLK
NC 7 8 I2S1_WS
GND 9 10 I2S1_DATA0
GPIO_36 11 12 I2S1_DATA1
GPIO_37 13 14 GND
Uart TX 15 16 1.8V/100mA
Uart RX 17 18 SENSOR_I3C_SCL
MAG_ALPS_I2C_SCL 19 20 SENSOR_I3C_SDA
MAG_ALPS_I2C_SDA 21 22 SENSOR_I2C_SCL
GPIO_06 23 24 SENSOR_I2C_SDA
ADC IN0 25 26 I2S3_DATA1
Debug_UART_TX 27 28 5V OUT/300mA
Debug_UART_RX 29 30 I2S3_DATA0
I2S3_CLK 31 32 ADC IN1
I2S3_WS 33 34 GND
GND 35 36 ADC IN2
CAN_L 37 38 GND
CAN_H 39 40 PWM

既然知道了引脚定义,还需要在开发板上找一下跳线实际物理位置,开发板正面图向上,CAN引脚所在位置如下:

探索到这里,正常情况下就可以接线了。但是作者的实际使用经验发现,有些开发板在此处引出的引脚是需要单独外接《CAN收发器》模块的,但是当前的文档资料上没有明确说明是否需要单独外接CAN收发器,且文档资料缺失对应的CAN收发测试示例,所以这块硬件特性需要确认一下方可放心接线,毕竟一块AI开发板和一套CAN分析仪工具价值也不菲。

首先确认开发板使用的CAN驱动器芯片,根据开发板框图可知使用的是 MCP2518 芯片,如下图所示(最右下角灰色的部分):

框图中描述的是 MCP2518 直接连接到了 40P 引脚的连接器排针,但根据以往使用经验来分析,应该不会这么简单,需要进一步确认一下。那么就从 MCP2518 芯片入手分析吧!

解题的第一步,当然是找到芯片数据手册了,根据数据手册可以了解到芯片的引脚定义、典型应用原理图等关键信息。

MCP2518FD 数据手册PDF

https://www.microchip.com.cn/newcommunity//Uploads/documents/20006027a_cn.pdf

下图是 MCP2518FD 芯片的封装与引脚定义,可以非常直观清楚的知晓每个引脚的功能。

下图是 MCP2518FD 芯片引脚IO功能详细说明。

下图是 MCP2518FD 的典型应用原理图,这时候关键点信息来了,中间的框是 MCP2518FD CAN驱动芯片,最左侧是 MCU,最右侧也是常说的收发器芯片,有些开发板为了节省物料成本,会直接省掉这颗收发器芯片,用户在使用的时候,需要自己单独外接一个收发器模块,但外接收发器模块依然需要从开发板上取 VCC 供电,所以这块也是需要再三核对细节的原因。

根据 MCP2518FD 的典型应用图可以得知,要想正确使用CAN总线进行通讯,必须要外接一颗CAN收发器芯片,由于开发板没有文档手册介绍这块内容,所以需要一些必要的物理方式验证了。

~~~拆板~~~

下面记录拆板过程:

图1:开发板正面

背面图

图2:根据结构分析,需要先拆掉风扇上的4颗螺丝

拆掉的风扇背面,取风扇的时候需要小心一些,散热器上粘贴的有导散热的贴片(这个正式名称叫什么?硅胶片吗?)。

拆掉的风扇正面,需要小心轻取出风扇的插头。

图3:取下散热片之后的开发板

图4:根据结构分析,这一步骤需要拧下核心板上的2颗螺丝,然后取下核心板。取出的核心板如下图所示:

核心板正面图,金手指封装,板子有点薄,应该是0.8或0.6厚的PCB,这个厚度应该是个2层板(作者猜测,未实际验证),最中间的那颗就是 QCS8550 芯片了。

外层带屏蔽罩的部分就是加了内存与存储的二次封装模组了,封装形式有点像BGA(作者猜测,未实际验证)

核心板的背面图,就是一些简单的走线。

图5:取下核心板之后的底板图

这个金属夹层的作用应该是个高频信号屏蔽用的,可以直接拿下来。

图6:金属屏蔽板

大家知道这个金属板是什么材料吗?好像经过了电镀和氧化。

金属板背面图

图7:取下金属评测板后的最后一层底板,也叫做载板。

到这里,能取出的已经全部取干净了,下面就是找出 MCP2518FD 是否外接了收发器的证据了,首先需要找出 MCP2518FD,这块芯片很好找,一般都是 SOIC 封装,可以还比较大,很容易与那些 LQFP 的封装区分开来。

在进行下一步之前,先统计一下取出的物料清单,方便重新装回去。

图8:按封装类型找近似芯片,局部高清特写。

图9:按封装定位找出最可能的芯片区域。

图8:给 MCP2518FD 高清体检一下

到这一步骤,基本上已经 99% 的概率实锤开发板已经内置焊接了 CAN 收发器芯片了,40P 连接器导出的引脚 99% 概率是从收发器上引出的,在没有原理图的情况下,剩下的 1% 未知概率怎么验证一下呢?

可以看到开发板 CAN 功能的实现也是使用官方推荐的典型应用原理图架构,收发器也是同一个系列的型号,符合 MCP2518FD 的典型应用。到这里已经收集完所需要的全部信息了,把刚刚拆的物料小心安装回去,然后给开发板上电开机测试。

图9:复原后上电开机测试,确保没有装错与漏装。

要完成剩下 1% 的验证,还需要解开 ATA6561 这颗CAN收发器芯片的谜底,当然还是找到芯片的数据手册:

https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/20005991B.pdf

根据 ATA6561数据手册信息,可以获取到一下关键信息:

1、ATA6561 芯片的封装形式与引脚定义

2、物理芯片的1号引脚位置与方向(该款物理芯片中间无缺口)

3、典型应用原理图

可以非常清楚地看到,通过 ATA6561 收发器导出的引脚才是真正的 CAN_H、CAN_L。

到这里,所需的基本必要信息全部收集完成了,这个时候就需要另一个神器派上用场了

~~~万用表~~~

测量实验

1、MCP2518FD 典型应用图验证依据

共2个测量点,万用表打到蜂鸣器档位,表笔分别接触两颗芯片对应的引脚,听到滴的长鸣即可:

2、ATA6561 验证依据,共3个测量点,方法通上

验证结果,作者这里当然是全部通过的。终于剩下的 1% 疑问也彻底消除了,终于可以放心的接线了。

接上CAN分析仪设备,连接杜邦线,网络连通之后,调整CAN网络120欧姆电阻,确保整个CAN网络为60欧姆即可,这步需要断电情况下使用万用表测量,靠体感测量不准确~

上电开机测试,为了更好的观察数据情况,一次打开三个窗口

  watch -n 1 ifconfig can0

candump can0

cansend can0 010#0011223344556677

Win PC上位机CAN分析仪数据收发结果

X1 开发板CAN数据收发示例

可以看到CAN数据总线双向均可以正常进行数据收发操作。

至此,整个实验完毕。

1 个赞