经常关注番茄公众号的朋友们应该都不陌生,番茄主要专注于ROS智能小车方面的知识分享,既然涉及到车辆,那肯定必不可少的要使用CAN通讯。
刚好最近番茄拿到了最新版的《犀牛派X1》开发板,根据文档介绍手册,该款开发板内置的CAN通讯硬件特性,今天就把这个硬件特性深度挖掘一下,对比赛感兴趣的读者可以看一下番茄之前发的文章。
进入正文,根据开发板文档手册介绍内容分析发现,CAN 接口位于 40-Pin 1.8V GPIO 扩展接口 是,详细引脚定义如下:
Rhino Pi-X1 配备了一个板载 40-PIN 简牛 2.5 间距连接器,用于扩展 1.8V GPIO 扩展。更好的适配不同 IO 电平要求的外设。
| 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数据总线双向均可以正常进行数据收发操作。
至此,整个实验完毕。





























