#ハードウェア
MCP2515を積んだ基板としてWSN217を使用。ただしraspberry piのロジックレベルが3.3Vなので、そのままでは完全に動作しない。回路図とパターンを見て、MCP2515の18番とMCP2551の3番をつなぐパターンを切断、MCP2515にはSPI端子の2番に3.3Vを入れて、3.3V駆動とした(一応動いたけど自己責任でお願いします/きちんとレベルシフタを入れた方が気分がいいですね)。
#Raspberry Pi側の設定
mt08さんの投稿を参考にさせていただきました
canインタフェースをループバックで設定する。
$sudo ip link set can0 type can bitrate 500000 loopback on
can0を手動でアップする
$sudo ifconfig can0 up
can0 Link encap:不明なネット ハードウェアアドレス 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
UP RUNNING NOARP MTU:16 メトリック:1
RXパケット:0 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:0 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:10
RXバイト:0 (0.0 B) TXバイト:0 (0.0 B)
can-utilのcan-dumpを起動
$ ./candump can0
もう一枚ターミナルを立ち上げて
$ ./cansend can0 123#deadbeef
$ ./cansend can0 123#0011223344556677889900
(この#の後が送信するメッセージとなる)
さきほどのcandumpを立ち上げているウインドウに以下のような表示がされればOK
ちなみに、実際に自動車につなげたデータをcansnifferで表示するとこんな感じになります(BGMが流れるので音量注意)。