首先市面上有许多种不同的开源CAN调试器产品,,在硬件上主要有如下区分:
- candleLight(STM32F072xB)
- cantact (STM32F042C6)
- canable(STM32F042C6)
- CANAlyze(STM32F042C6)
可以看到主要的调试器都是采用F072、F042的单片机的,因此很多固件都是兼容的。目前可以在上面这些硬件上跑的固件有如下几种:
- candleLight 使用更新的接口形式,支持Rust、Python 的 API,参考文档。支持cangroo、busmaster 等上位机,也对linux支持较好(SocketCAN)。
- SLCAN,canable,由cantact fork而来,两者均使用SLCAN协议,即串口协议,这个固件比较旧了。似乎只支持cangroo上位机。
- pcan 网上有人模拟的用于cantact的PCAN固件,可以使用PCAN兼容的上位机、开发库。非常优秀,不过这个仓库目前已经移除USB版权信息了,可能驱动识别不到,可能还得去网上找找。
开源的CAN上位机有如下两种:
- BusMaster 非常老牌的开源 CAN 上位机,功能很强大,支持PCAN、cantact以及其它奇奇怪怪的商用产品。BusMaster使用教程
- cangaroo 是另一款开源CAN上位机,只支持candlelight、slcan两种开源协议。
综上看的话,cantact提供的文档较为全面,便于进行程序开发。CANable也有一个教程,这个做的比较好,指导如何使用、更换固件等。
上面这些项目使用的芯片都带有DFU功能,因此既可以使用Jlink等调试器刷写,也可以使用DFU模式刷写。
参考
- BusMaster 开源 CAN 上位机
- BusMaster使用教程
- cantact 硬件
- cantact 文档
-
- candleLight: https://github.com/HubertD/candleLight (STM32F072xB)
- candleLight: https://www.linux-automation.com/en/products/candlelight.html (STM32F072xB)
- cantact: https://www.linklayer.com/tools (STM32F042C6)
- canable (cantact clone): http://canable.io/ (STM32F042C6)
- USB2CAN: https://github.com/roboterclubaachen/usb2can (STM32F042x6)
- CANAlyze: https://kkuchera.github.io/canalyze/ (STM32F042C6)
- VulCAN Gen1: https://shop.copperforge.cc/products/ac41 (STM32F042x6)
- Entreé: https://github.com/tuna-f1sh/entree (STM32F042x6)
- CANable-MKS: https://github.com/makerbase-mks/CANable-MKS (STM32F072xB)
- ConvertDevice-xCAN: https://github.com/ConvertDevice/xCAN (STM32F072xB)
- ConvertDevice-xCANFD: https://github.com/ConvertDevice/xCANFD (STM32G0B1CBT6)
- DSD TECH SH-C30A: https://www.deshide.com/product-details.html?pid=384242&_t=1671089557 (STM32F072xB)
- FYSETC UCAN: https://www.fysetc.com/products/fysetc-ucan-board-based-on-stm32f072-usb-to-can-adapter-support-with-canable-candlelight-klipper-firmware (STM32F072xB)