玩转蜘蛛主板的Can总线
[youbanshan]相关链接:3D打印-富源盛8轴主板-FYSETC 蜘蛛(最后面含can链接方式和视频)
大树执笔-----
-2022.09.13
一、CANBUS简介
1.1什么是CANBUS
CAN 是 Controller Area Network 的缩写,是 ISO 国际标准化的串行通信协议。通俗来讲,CAN总线就
是一种传输数据的线,用于在不同的ECU之间传输数据。
CAN总线有两个ISO国际标准:ISO11898 和 ISO11519。其中:
ISO11898 定义了通信速率为 125 kbps~1 Mbps 的高速 CAN 通信标准,属于闭环总线,传输速率可达
1Mbps,总线长度 ≤ 40米。
ISO11519 定义了通信速率为 10~125 kbps 的低速 CAN 通信标准,属于开环总线,传输速率为40kbps
时,总线长度可达1000米。
1.2 CAN的常用拓扑结构
下图中,左边是高速CAN总线的拓扑结构,右边是低速CAN总线的拓扑结构。
如图中所示,CAN总线包括CAN_H 和 CAN_L 两根线。节点通过CAN控制器和CAN收发器连接到CAN总
线上。
Tips :通常来讲,我们常见的主流主板集成了CAN控制器和CAN收发器,但是也有没集成的,需
要自己外加。
二、如何玩转Klipper的CAN总线
2.1硬件介绍
蜘蛛主板的MCU采用了STM32F446VET6,它内置的两路CAN控制器可供使用,一路是与USB端口复用
的(PA11/PA12),另一路是独立的输出端口的(PD0/PD1)。本文着重介绍使用klipper的can bus
brige模式,通过蜘蛛主板的CAN收发器扩展板连接各种CanTools Board的用法。
2.2硬件连接
2.2.1、将Can收发器扩展板插入主板EXP1、EXP2口,注意对准位置,切勿插偏,通过通螺柱及垫片,
将扩展板固定。
2.2.2、主板通过TypeC口与上位机的USB口相连接
2.2.3、使用双绞屏蔽线将扩展板上的CANH、CANL与CanTools Board的CANH、CANL一一对应连接起
来,接地线采用单端接地的方式,即屏蔽网连接主板一侧的接地端子,CanTools Board一侧的屏蔽网悬
空绝缘处理。
2.2.4、将蜘蛛can收发器扩展板上和CanTools Board上的120Ω终端跳线帽插上:
2.3软件设置
2.3.1、重新编译蜘蛛主板的固件,修改为can bus bridge模式,编译参数如下图
2.3.2、重新编译、烧录(烧录过程可参考《葵花宝典》相关篇章)。
2.3.3、确认上位机系统版本:
目前使用的各类armbian或者debian系统,内核版本在5.xx.xx以上(如下图),可对can设备进行良好
支持,系统如果是4.xx.xx,会出现无法识别can设备的情况,在继续操作之前必须确认好系统版本。可
以使用一下命令查看当前系统的版本信息:
如果系统版本不是5.xx.xx以上的,那需要重新安装对应版本的系统。
2.3.4、在 ssh 终端中输入
sudo nano /etc/network/interfaces.d/can0
命令并粘贴一下内容:
uname -a allow-hotplug can0 iface can0 can static bitrate 1000000 up ifconfig $IFACE txqueuelen 1024
将 CANBus 速度设置为 500K(必须与固件中设置的速度一致 (1000000) CAN bus speed),修改后保存
(
Ctrl + S)并退出(Ctrl + X),输入
sudo reboot
重启树莓派 。
2.3.5、 CANBus 上的每个设备都会根据 MCU 的 UID 生成一个 canbus_uuid,先不要连接can tools
board,并确保蜘蛛主板已通电并正确连接USB线,然后运行:
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
如果主板及固件正常工作,会返回设备的 canbus_uuid:
记录上述ID为蜘蛛主板的ID。
2.3.6、将can tools board与蜘蛛的can扩展板连接,并插好跳线帽,给硬件通电,重复2.3.5步骤,将识
别到两个ID,其中新出现的则为can tools board的ID。
2.3.7、重要:如果 canbus_uuid已经在printer.cfg文件内被注册,Klipper 已经正常运行并且连接到此
设备,那么 canbus_uuid 将不会被搜索到,此为正常现象 。
2.3.8、将搜索到的canbus_uuid在printer.cfg内进行注册
蜘蛛主板的 canbus_uuid注册如下图
can tools board的canbus_uuid注册如下图
~/klippy-env/bin/python ~/klipper/scripts/canbus_query.py can0
Found canbus_uuid=fb6a3f77b3e2(这个ID每个主板不一样)
2.3.9、修改配置文件,如果要将原本接在蜘蛛主板上的设备(例如:加热棒、模型风扇、喉管风扇、
probe传感器、RGB灯等),需要将这些设备的pin修改为can tools board对应端口的pin即可
官网can连接图
蜘蛛主板+SB can板配置及固件烧录教程
本视频详细讲解了蜘蛛主板3.0和SB can 板配置及固件烧录教程。蜘蛛2.3如果使用can收发器和3.0参数设置一模一样。ucan的话选带usb字样的can。2.3只需要插一个跳线帽:3v3/boot
相关资料:
蜘蛛2.3与新版ebb使用can桥接模式配置教程
视频演示教程基于《如何使用八爪鱼的CAN接口 小雨V1.32》 图中所展示的can转接板为大树蜘蛛Can转接板打包文档地址为:https://www.aliyundrive.com/s/oPSGqbExbaG
EBB SB2240 2209 CAN v1.0 Build Guide.pdf
直接双击就可以解压。我没有使用辫子方案所以我的x限位没有改,还有一件事,这个1.25端子是真费眼睛。
还没有评论,来说两句吧...