MCP2515によるCAN通信のRL78/G13のサンプルコードあるいは使い方

皆様、

CANインターフェースを持つ携帯基地局用の電源のデータを取得する必要が出て来ました。

本サイトのスレッドにもMCP2515を使いCAN通信についての書き込みがありますが、サンプルコード等はないのでしょうか?

当方の理解では、G13のSPI端子機能がMCP2515とのインターフェースとして機能すると思っています。なお、当該の電源には、CAN-H/CAN-Lの2本の線が出ており、これとMCP2515を接続するつもりです。当方は、これまでUARTあるいはIICの使用経験はありますが、CANは初めてで勉強中です。

よろしくご指導お願いします。

  • tok2010 さん
    ほや です。こんにちは。

    初めてであれば外付けのCANコントローラをSPI通信で操るより、CANコントローラが内蔵されたマイコンを使って外付けのトランシーバーを通して通信した方がやり易いのでは。それならサンプルコード等もあるし。

  • ほやさん

    早速のご意見ありがとうございます.

    ただ,CANコントローラ内臓のマイコン利用とは別の方法を検討しております.

  • MCP2515決め打ちだったら、この辺りを参考にすれば良いかと。

    動かして学ぶCAN通信
    http://reclearnengoolong.blog.fc2.com/blog-entry-1150.html

    コードの書き方までは分らなくても何をすべきかは読み取れると思います。

  • ほやさん

    ありがとうございました.

    「動かして学ぶCAN通信」は,まったく知りませんでした.15回のシリーズもので,参考になります.

    まずは,内容拝見したいと思います.

  • こんにちはNAKAといいます。

    RL78/F15でマイクロチップのCANコントローラはMCP2518FD(CAN-FD)を使ったことがあります。(CAN⇔CAN-FD GW)

    最近はRH850でCAN-FDしますのでほとんど使わなくなっちゃった!

    RL78ではないですが、マイクロチップ製のARMマイコンを使ったサンプルプログラム(下記)があったと思います。

    SPI部分をRL78にすればいいので使えるかも?

    CAN-FDはクラッシックCANと上位互換なので使えるかもしれません。

    SugachanceさまがMCP2515を良く使われるそうなので、アドバイスいただけるといいのになぁ~

    http://ww1.microchip.com/downloads/jp/DeviceDoc/20005678B_JP.pdf

  • こんにちは、Sugachanceです。

    なんか呼ばれた気がしました。


    仕事で作成したコードなので、アップはできませんが…(^^;

    基本的には、ほや様が紹介されていたサイトで使用されている
    書籍を参考にしながら作成できましたよ!

  • NAKAさん,Sugachanceさん

    情報ありがとうございます.

    ほやさんにご教示いただいた15回シリーズを今順番に読んで,次のサンプルコードをコピーし,Modify中です.

    RL78/G13 Microwire 通信による EEPROM 制御 CC-RL(添付SPI_G13参照)

    ひとつ教えていただきたいのですが,SPIのクロックは,15回シリーズでは1MHzになっており,私も添付のとおり,CSI20を1MHzに設定しております.CAN通信のボーレートは,125KHzをトライしてみたいと思っています(手元にはまだMCP2515がありませんが,入手中です).RL78のCSI用クロックはこのままでよいのか,変更が必要なのか,CAN通信のことがわからずお聞きしていますが,ご教示いただければ幸いです.

    SPI_G13.pdf

  • チョコです。

    Microwire通信とSPI通信はCS信号の論理が逆なので、注意してください。

    また、Microwire通信は、可変長ビットで、そのためにスタート・ビットが存在します。SPIでは、8ビット単位での通信になるので、単純に送受信するだです。

    MCP2515のデータシートを眺めると、RL78ではCSIをタイプ4に設定すればいいはずです。

  • チョコ先生

    いつもお世話になりますNAKAです。

    MCP2515はわかりわかりませんが、MCP2518FDや2517FDは外付け水晶の1/2までSPI速度が可能なので、40MHzだとMAX:20Mbpsまで可能です。CANのクラッシックは車載機器だと500Kbpsが標準だと思います。民生機器は?です。

    ネットワーク負荷によりますが、125Kなら1Mでも多くないメッセージなら通信できると思います。

    P.S.

    チョコ先生にアドバイスできるなんて、うれしー。 わずかでもいつもの恩返しになったかな?(笑)

    CAN-FDを試されるときは、下のような評価ボードが便利ですよ!

    https://jp.rs-online.com/web/p/communication-wireless-development-tools/1682991/

  • チョコです。

    NAKAさん、お久しぶりです。

    RL78では、ハードウェアとしてはCSI00だけは16Mbpsで、その他はその半分の8Mbpsまでです。しかし、ソフトでの割り込み処理では処理が間に合わないので、DMAやDTCを併用しないとそこまでは出せないですね。

    以前、G12でSPI通信をやった時には、2Mbps程度までだったような。

    ということで、ソフトが絡むと高速化は苦しいですね。