2020年7月11日土曜日

USB2CANはPCAN-USBとして使えるのか?

ラズパイ用のUSB2CANなんだけど、この手の安価なUSB-CAN変換アダプタってデバイス構成がほぼ同じらしい?マイコンにUSBとCAN対応のSTM32F042かSTM32F072を使用しているのが多いみたいで、同じマイコンが搭載されているやつだとファームウェアも使い回せるらしい。この手の変換アダプタ用のオープンソースファームウェアが色々出ているっぽい。
このSTのSTM32F0x2はBluePillのSTM32F103とかと違って、USBとCANが同時に使えるらしく、安価なUSB-CANアダプタとしてよく使われている模様。
STM32F103の場合はCANを使うとUSBが使えなくなるのでUSB-UART変換ICを別に搭載してSLCANとか。

pcan_cantact
InnomakerのUSB2CANはSTのSTM32F072C8T6をメインチップとして使っていて、CANtactやCANableに使われているSTM32F042よりは上位のCPUを搭載している。
詳細は比較してないけどFlashやSRAMの容量が違うのかな…
F042用のバイナリはF072でも動かせるみたいだし。(パッケージによっては出ていないIOがあるけど)

まぁオリジナルファームウェアでもラズパイで使う分にはSocketCANで使えるから便利なんだけど、BUSMASTERで使えないかなと思って調べていたらCANtactをPCAN-USBとして使えるファームウェアを発見した。BUSMATERはパッチを当てればUSB2CANでも使えるらしいことをあとから知ったんだけど、PCAN-USB用のツールも結構便利らしいし、ファームウェアを書き換えたほうが色々便利そうな気がする。


ただしUSB2CANはCANtactとLEDのピン配が違ったりi2cのEEPROMが乗ってたりハードウェアに差異があるのでそのままでは使えなさそう。まぁLED気にしないんだったらそのまま動きそうではあるけど。ファーム書き換えはBluePillをBlackMagicProbe化すればなんとかなるかな…

裏面にちゃんとデバッグ用のシルクを入れてくれてたり、空きピンをTPで出してくれていたりと安価な割に至れり尽くせり。
水晶発振子用の空きパッドもあったり。(FA238-16MHzあたりが載りそう)
CANtact用のファームを使うならクリスタル載せないとだめかも?でももともとのファームが内蔵発振器で動いてるので内蔵クロックバージョンでコンパイルすれば行けるのかな。USB2CANはどちらかというとCANableに近いかも。
ちなみにLink LEDはPB11、Rx LEDはPB10、Tx LEDはPB2に繋がってるっぽい。
なのでCANable用のビルドオプションでLEDのポート設定だけ修正してビルドすれば動きそうな気も。
もとに戻せるようにオリジナルのファームが吸い出せるかどうか…
もしくはSTM32F042C6Tを別に買ってきて載せ替えるか?
どうもUSB2CANの振る舞い的にはcandleLight_fwベースっぽい気がするけど。WCIDでWindowsでも標準ドライバで認識するし、Linuxではgs_usbで認識するし。

でも意外とWindowsで使う分にはmicrobusでそのまま使えちゃうのでそこまでしてPCAN-USB化しなくてもなーと思ったり…
Windows上のPythonで使いたいときはいいかもしれないけど。

追記:結局PCAN-USB化してみた。

0 件のコメント:

コメントを投稿