RX72M EtherCAT MII管理通信機能について

今までにEtherCATスレーブ開発はそれなりにこなしてきています(ESCとしてET1100をはじめRIN32-ECも使ったことがあります)。

PHYにはMicrelのKSZ8081MNXをよく採用します。RX72MマイコンのEtherCATは初めてなのでRTKOEMXDE 0C00000BJを購入して回路図面 R12TU0146EJ0100-MOTOR.PDF も確認しての質問です。

このPHYはアドレス0がブロードキャストに割り当てられているのでESC側でアドレスオフセットさせるかB -CAST_OFFをプルアップすることでブロードキャストを無効化することでポートごとにアドレスを割り当ててMII管理通信が可能になります。

今までの開発ではESCにアドレスオフセット機能がないものだったので B-CAST_OFFを使っていました。RTKOEMXDE 0C00000BJの回路図面でもPHYアドレスが0、1ではなく1, 2が使われているのはアドレスオフセットESC .PHYOFFレジスタを使えばできるのは理解できます。

私が理解できないのはCATn_LINKSTAがLED0ピンにつながっている点です。

このPHYのLED動作モード設定、リセット後はLED Mode=00が割り当てられているためLED0の動作はパケットが来るたびにトグル動作します。これはESCはリンクが切れたと通知を受け取ることになります。これを解決するためにはMII管理通信を使ってLED Mode=01にした後にESCから使えるようにする必要があります。私の知っている範囲でESCのMII通信レジスタはEtherCATマスター側からのアクセスが最初に有効化され、スレーブ側へアクセス権側渡されるまではMII通信を行えません。RX72Mではそれを避ける方法がるのでしょうか?例えばESCペリフェラルが動いていない状態でPHYのMII管理通信だけ行った後にESCペリフェラルを動かすというような方法という意味でです。

なお、今までのRX72M以外でのEtherCATスレーブ開発で、MII通信でLEDモードの切り替えができないのでLED1を利用しておりました。LED1はリンク状態で100BASEにならないとアクティブになりません(LED Mode=00時)。

Parents
  • 最終的な確認ができました。

    技術サポートに問い合わせしたら初期化時にMII管理通信を使っていて具体的にはEtherCATサンプルを見てくれとのことでした。この回答を得られた時にちょうど忙しくなってサンプルのどのソースコードだよ!と思いながら時間が取れたので確認しました。phy.cの中でwrite_phyregという関数が処理していました。Beckhoff系のIPはMII管理用のレジスタはEtherCATマスタ側からのMII管理通信発行ができてもPDI側(この場合はマイコンであるRX72Mとかですが)はマスタが通信側からアクセス権を渡さないと使えない仕様だったのですがルネサスはMIIPDIACCSSTATというレジスタを用意していてこれでESCのMII管理をマイコン初期化後はPDIから使えるようにしてあったということがわかりました。

    これにてクローズします。

Reply
  • 最終的な確認ができました。

    技術サポートに問い合わせしたら初期化時にMII管理通信を使っていて具体的にはEtherCATサンプルを見てくれとのことでした。この回答を得られた時にちょうど忙しくなってサンプルのどのソースコードだよ!と思いながら時間が取れたので確認しました。phy.cの中でwrite_phyregという関数が処理していました。Beckhoff系のIPはMII管理用のレジスタはEtherCATマスタ側からのMII管理通信発行ができてもPDI側(この場合はマイコンであるRX72Mとかですが)はマスタが通信側からアクセス権を渡さないと使えない仕様だったのですがルネサスはMIIPDIACCSSTATというレジスタを用意していてこれでESCのMII管理をマイコン初期化後はPDIから使えるようにしてあったということがわかりました。

    これにてクローズします。

Children
No Data