USB-CAN変換アダプタCANtact-mini

2年ぶりの更新ですが, まずは生存報告, 生きてます.
生きるのって大変ですね.


とある事情でUSB-CAN変換アダプタが必要になりそうでしたのでつくってみました.
当初はハードウェアからファームウェアまですべて自作する計画でしたが, 調べていくうちにCANtactと呼ばれるUSB-CAN変換アダプタを発見. ハードもファームもいい感じに完成しておりクリエイティブ・コモンズで公開されていたので, 方針変更. CANtactをベースにサイズを小型化したCANtact-miniを作者さんのEric Evenchick氏に感謝しつつ再設計してみました.

回路図

f:id:Strobo:20160919174537p:plain

基板

f:id:Strobo:20160919174633p:plain
f:id:Strobo:20160919171615p:plain

Linuxから使う

f:id:Strobo:20160818231430j:plain:right:w320

CANtactはPCから見るとUSBシリアル変換デバイスとして見え, SLCANと呼ばれるプロトコルでお話することでシリアル-CANの変換を実現しています.

LinuxにはSLCANのドライバが内蔵されているのでcan-utilsをインストールするだけでCAN通信を行うことができます.以下にLinuxで簡単なCAN通信を行うコマンドを書きます.

CANインターフェースの設定

modprobe can
slcand -o -c -s6 /dev/ttyACM0 can0
ifconfig can0 up

送信

cansend can0 123#DEADBEEF

受信

candump can0

Windows, Macから使う

f:id:Strobo:20160820235310j:plain:right:w320

Win, MacにはSLCANのドライバは実装されていないのでアプリレベルでSLCANを実装する必要がありますが, CANardと呼ばれるPython製のライブラリを利用する事でCANtactを使用できます.