CAN 接続の実験系は確保したのですが、製作中の MIDI/CV モジュールから CAN 信号を送っても信号が認識されません。受け側トランシーバの Rx に信号が来ないのです。ならば、バス上の信号を見れば何かわかるに違いないと、オシロスコープで観測することにしました。
しかし CAN バスは下図のように CANH と CANL の二本線の電圧の差分を見るものですから、オシロスコープのグラウンドをどこにあてれば良いか迷います。


試行錯誤してわかったのは当たり前のことで、オシロスコープのグラウンドが測定する回路から独立していることが重要で、そうであればあとはどこへなり好きにあてなさいと。今使っているオシロスコープは PicoScope という USB で PC につないで使うもので、オシロスコープのグラウンドは USB のグラウンドと共通しています。したがって同じ回路に同じ PC の USB から一つでもオシロスコープ以外の接続があると、オシロスコープのグラウンドは回路から独立している状態ではなくなってしまいます。なので、回路につながっていたシリアル通信ドングルだのマイクロコントローラのプログラマだのロジックアナライザだの (これらも USB タイプ) 全部外しました。この状態なら単純に CANL をグラウンドに、CANH にプローブを当てれば測定できますが、信号線にグラウンドをつなぐのはやっぱり何か気持ち悪いです。なので、CAN トランシーバの Vref をグラウンドにとってプローブ二本を CANH と CANL にあてたところきれいに波形が観測できました。
以下は正しく動いている CAN 信号を観測したものです。青線が CANH で赤線が CANL です。波形の乱れはプローブの校正不足のせいも混じっている気がしますが校正するにはそれ用の道具を作るか買う必要があり、後日対応したいなあと思ってます。

しかし、製作中の MIDI/CV から発生した CAN 信号はおかしいのです。以下は送信側トランシーバの Tx 端子から取り出した信号ですけれども、最終的にエラーで終わってひたすら再送されています。CAN のプロトコルはすっかり忘れてしまいましたが、確かメッセージを送った時誰か別のモジュールが応答しないとエラーになってひたすら再送する仕様だったはず。他の受信側のトランシーバの Rx 端子を見ると信号が来ていないので、信号が認識されていないようです。どういうこと?

ということで、オシロスコープ波形を見てみました。信号来てるよなあ。電圧も低すぎることなさそうだし。あれ?でも青が CANH で赤が CANL だろ?極性が逆じゃね?

なんという間抜けでしょう。極性をひっくり返したら再送が止まりました。やっとメッセージが認識されるようになった模様。が、ずいぶん語長が長いな。

ロジックアナライザを見たら通信中何かのエラーが発生している模様。

でも詳細が思い出せないけどこのエラーはソフトウェア的なものの気がします。とりあえず信号が認識されないハードウェア的な問題は解決したのでやっと MIDI/CV モジュールでの CAN 通信実装に進めます。