PHYのソフトウェアリセットでphy_read時にMDIの値が常に1

いつもお世話になっております。

RX65NでM3S-T4-Tinyを使用しています。

phy_init関数内のwhileループで、phy_read関数で読み出すMDIの値が常に1になる状況になっています。

 

スマートコンフィグレータでr_t4_rx、 r_t4_driver_rx、 r_sys_time_rx、 r_cmt、 r_ether_rx、 r_bspの最新バージョンにしています。

MPCとPMRで端子設定し、イーサFITモジュールの初期化、EtherC、EDMACのモジュールストップ解除をしています。

(アプリケーション部分はサンプルプログラムを利用しています)

その後にR_ETHER_Open_ZC2関数でPHYのソフトウェアリセットをする箇所で表題の状態になります。

 

PIRに値を書き込むことはできているので、EtherCは動いていると認識しています。

原因を調べる手掛かりになるようなことがあれば幸いです。

Parents
  • ななさん

    こんにちは、モッチーです。

     

    RX65NでイーサーネットFITモジュールを使用されているんですね。

    イーサーネットFITモジュールのコンフィグファイルである「r_ether_rx_config.h」の内容を確認してみてください。

    RX65NのPHYアクセス関連で確認する設定は以下の2つだと思います。

    ETHER_CFG_CH0_PHY_ADDRESS:アクセスするPHYのアドレスを設定します。使用するPHYの設定によってここを変更してください。

    ETHER_CFG_CH0_PHY_ACCESS:ETHERCチャネル0が使用するPHYのアクセスチャネルを設定します。RX65Nの場合は、ここは基本「0」だと思います。

     

    また、以下のアプリケーションノートにRX65N用のM3S-T4-Tinyのデモプログラムが同梱されているので、参考になるかもしれません。

    「RXファミリ 組み込み用 TCP/IP M3S-T4-Tiny 導入ガイド Firmware Integration Technology アプリケーションノート」

     

    以上よろしくお願いします。

  • モッチーさん
    リプライありがとうございます。

    ご指摘にあるr_ether_rx_config.hの2か所は以下の値で設定していました。

    ETHER_CFG_CH0_PHY_ADDRESS ⇒ RX65Nを使うので"30"
    ETHER_CFG_CH0_PHY_ACCESS ⇒ "0"

    私もこの値を正しく設定できれば良いと考えておりましたが、これだけでは上手くいきませんでした。

    処理の流れをつかむためにデモプログラムを走らせる上で起きたので、スマートコンフィグレータやヘッダファイルの設定が他に必要と考えてます。
  • ななさん

    こんにちはモッチーです。

    ご確認ありがとうございます。

    Renesas Starter Kit+ for RX65Nを使用されているんですね。であれば2ヶ所の設定は問題なさそうです。
    (PHYアドレスの設定はマイコン依存ではなく、PHYの設定依存なのでご注意ください)

    後は、MPCの設定をもう一度確認してみてください。
    Renesas Starter Kit+ for RX65Nでは、PHYアクセスに使用する端子機能ET0_MDC、ET0_MDIOはそれぞれP72、P71を使用するようです。
    スマートコンフィグレータでは他の端子にも割り当てられるようなのでご注意ください。

    デモプログラムがあるのなら、一度デモプログラムをインポートして、そのまま動かしてみて正常に動作するか確認してみてください。
    そうすると、ボードが悪いのかソフトウェアが悪いのか切り分けることができます。

    以上よろしくお願いします。

  • モッチーさん
    リプライありがとうございます。

    私が勘違いしていました。

    PHYアドレス"30"というのは、Renesas Starter Kit+ for RX65Nに載っているPHYのアドレスなんですね。
    RX65Nを使うなら常にアドレス30だと思っていました。
    評価ボードではなく、RX65Nマイコンを載せた独自作成の基板の場合は、その基板にあるPHYのアドレスを調べる必要があるということですね。
  • ななさん

    こんばんは、モッチーです。

    そうですね。PHYアドレス"30"というのは、Renesas Starter Kit+ for RX65Nに載っているPHYのアドレスのことです。
    なので、その他のボードについては、その基板に実装されているPHYのアドレスを調べる必要があります。
    ちなみに、PHYアドレスはPHYに電源投入後の各端子の状態で決まることが多いようです(ストラップオプション)。
    PHYのデータシートと基板の回路図を見て、PHYアドレスを調べてみてください。

    以上よろしくお願いします。

  • モッチーさん

    丁寧にご教示くださりありがとうございます。

    PHYアドレスをr_ether_rx_config.hへ適切に設定することで解決できました。
    引き続き、イーサネット通信を実現できるように進めていきます。
Reply
  • モッチーさん

    丁寧にご教示くださりありがとうございます。

    PHYアドレスをr_ether_rx_config.hへ適切に設定することで解決できました。
    引き続き、イーサネット通信を実現できるように進めていきます。
Children
No Data