目录
硬件candleLight
固件candleLight_fw
web在线烧写固件
USB DFU-util烧写
上位机cangaroo
国产版本Cando
照理来说,USB-CAN这种东西应该已经被做的烂大街的工具,国内居然没有一个拿得出手的开源方案。淘宝上各种虚拟串口方案、替换dll兼容某立功软件的各种方案....价格都很低,性能和可靠性嘛.......就不多说了。
这里推荐一个国外的开源工具CANable,ta有完全开源的软硬件及上位机支持,支持windos和linux Stock can并且都免驱哦。且支持Python。
并且与网上众多的USB CAN采用虚拟串口的方式实现免驱不同,CANable采用的winUSB的免驱方案,USB bulk双缓冲的模式,实际传输性能远超那些虚拟串口的USB-CAN,甚至比ZLG早期的产品的每秒帧数还高很多。
下面重点来了:本文将介绍如何DIY一个你自己的CANable(后文介绍有成品可以在tb上买到)。
CANable实际上应该是3个项目组成:
主页 : https://canable.io/
硬件设计是比较简单的,就是一块带usb和can的stm32f0 + CAN收发器TJA1051/3。
github:https://github.com/HubertD/candleLight
pdf原理图:https://github.com/HubertD/candleLight/blob/master/export/v1.1/pdf/candleLight-v1.1.pdf
这个因为是开源项目,用的pcb软件是kicad,不习惯kicad可以直接去仓库下面export\v1.1目录下查看输出文件,包括gerber,bom,pdf等等,基本上可以直接拿来打样加工了。原理图本身很简单的,有兴趣的也可以自己画一版。
下面这个是我自己DIY的板子。
套了一个蓝色的外壳,做了一个贴纸,看起来还不错,为了区别原版的,暂且叫做CANable Z吧。
因为PCBA打样做了一批板子和材料就多做了一些CANable Z,有需要的童鞋可以私信我或者扫下面这个二维码。
手机某宝APP扫码 给卖家私信留言“CANable 开源项目推荐”,会给大家一个打样的成本价“打骨折”。
https://github.com/candle-usb/candleLight_fw
需要注意的是这个固件工程是在linux下面开发的,编译和烧写的说明均为在linux下的操作。
在Windows上编译这个源码需要花时间重新建立工程。
总之呢,提供源码的好处就是可以自行修改固件添加自己想要的功能,或者学习USB和CAN代码。
正常开发呢,可以使用板子的SWD接口进行仿真和烧写,STM32出厂自带了一个USB BootLoader,大家也可以用下面的两种方法通过CANable自带的USB进行烧写。
如果只是想copy一个来用用,不需要去自己编译烧写,可以直接用STM32的USB DFU通过USB下载固件。
canable还提供了一个web的烧写页面 https://canable.io/updater/
用谷歌浏览器打开这个页面,把板子的boot0接高电平,在用USB连接电脑。选择candlelight的固件,再点connect and update就可以直接通过网页进行烧写。
注:这个网页上只能烧写candlelight或者slcan的默认固件,自行编译的固件无法烧写。
dfu-util --dfuse-address -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D candleLight_fw.binary
cmd /k
D:\workspase\USB-CAN-adapter\CANtact\dfu-util-0.9-win64>dfu-util --dfuse-address -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D candleLight_fw.binary
dfu-util 0.9
Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/
Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Opening DFU capable USB device...
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading to address = 0x08000000, size = 36108
Download [=========================] 100% 36108 bytes
Download done.
File downloaded successfully
github:https://github.com/normaldotcom/cangaroo
zip下载:https://canable.io/utilities/cangaroo-win32-0363ce7.zip
其实国内已经有人把这个项目拿来做出产品了,叫做Cando,其实就是CANable修改而来的。
虽然ta没有告诉大家这个是基于CANable的一个东西(软硬件都兼容,其实就是一样的东西),并且固件和硬件设计都是非开源的。但是Cando做了一些文档和资料还是不错的,这些资料大家自己diy的CANable和CANable Z 也是都适用的。
Cando的资料下载链接:
链接:https://pan.baidu.com/s/1Gx0nUHvOJFJO3EC2g3hcsQ
提取码:a3ha