FRDM-K64FにCANトランシーバをつける

FRDM-K64FにはFlexCANモジュールが付いてますが、そのままでは、CAN信号の送受信ができません。CANトランシーバがボードについてないからです。

今回は外付けでCANトランシーバをつけてみて、実際にCANをつかってみたので、その時の回路を簡単にまとめます。

トランシーバは何するかちょっとみてみた?

CANコントローラは、RXDを受信、TXDを送信用の信号として、トランシーバに渡してます。CANプロトコルの説明の記事でも調べましたが、

CAN信号は基本、HIGHとLOWの二線間の差動電圧で、0 or 1の信号を決めます。

トランシーバのデータシートをみると下のようなブロック図がでてました。

TXDとRXDの時点では、シングルエンドの信号なので、トランシーバは、内部的にTXDのHIGH/LOWを検知して(図のDominant Detect)、ドライバが作動電圧をつくりだしてるみたいですね。

逆にRXDはCAN-H とCAN-Lの差圧をとって、コントローラに渡してます。

他のメーカのトランシーバのデータシートにも似たような図がでてました。こっちは入出力がDとRと標記されてますが、DがTXD、RがRXDになります。これも似た感じですね。

MCP2551

Microchip製のCANトランシーバです。ピン配は以下のとおり。

実際に使った回路は下のような感じになりました。

ブレッドボードをつかって、配線すると、こんな感じになりました。

CAN信号をPCでモニタするってなると、何かしらのCANインターフェースが必要ですけど、今回は、PEAK-SYSTEM という会社がだしてるPCAN-USBというのをつかいました。

PCAN-USB

All prices are plus the at present valid value added tax! The PCAN-USB adapter enables simple connection to CAN networks. Its compact plastic casing makes it suitable for mobile applications. The opto-decoupled version guarantees galvanic isolation of up to 500 Volts between the PC and the CAN side.

CANといえばVector社の製品があまりにも有名ですけど、このPCAN-USBで使える無償ソフトPCAN-VIEWは気軽にCANの信号をチェックするのに便利です。

CAN信号をだすサンプルコードの作り方は、別記事にまとめましたので、参考にしてください。

サンプルコードではID=0x787の信号で受信するように設定して、PCAN-USBから、そのIDで信号を送信してみます。

下がPCAN-Viewの画面で、下側のTransmitと書いてある所で、ID=0x787のパケットを値を00,AAと交互に値を変えて流してみます。

下がMCUXpresso上でID=0x787で受信した信号をモニタしたものです。

めでたくとれてました。トランシーバぐらいボードに実装してくれればいいのに。

MCP2551バンザイ:)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です