RX72NでのEtherenet通信(ETHERC1_RMII使用時)の設定について

こんにちは。TYと申します。

RX72NでETHERC1_RMIIを使用したEthernet通信を行おうとしております。動作環境は下記になります。

--動作環境-

  • 使用マイコン:RX72N(224pin)
  • 開発環境:e2studio,スマートコンフィグレータ
  • r_ether_rx(Ver.1.2)
  • r_t4_rx(Ver.2.09)
  • r_t4_driver_rx(Ver.1.08)

この環境下で、r_t4_driver.c(164行目)R_ETHER_Open_ZC2(1,1, (const uint8_t *) & _myethaddr[1], false);を実行するとpyh.cのphy_mii_write1関数のfor文でループ状態となります。

Ethernetに関する設定はSmartConfigurator上で行っているのですが、The register bus of PHY1 for ETHER0/1( ETHER_CFG_CH1_PHY_ACCESS)をUse ETHER0(0)にするとループ状態ではなくなります。ETHERC1_RMIIを使う場合、上記部分はUse ETHER1(1)を使うのが正しいのではないかと考えているのですが、こちらの設定で正常なのでしょうか。

この後に記述したEthernet関連の処理が上手くいかないため、一要因の判別として確認できればと思います。

情報の不足等がありましたら追加いたします。何卒よろしくお願いいたします。

[追記]本件、リプライにてご指摘いただいた内容で解決いたしました。数々のご協力誠にありがとうございます。

  • こちらに関して少し進展がありましたが、まだ解決ができていないためリプライにて投稿いたします…。

    シェルティさんからのアドバイスである

    ①t4_driver.c のch0の初期化コードを無効化
    ②config_tcpudp.cでT4_CFG_SYSTEM_CHANNEL_NUMBERを2に設定

    をしたところ、デバッグ状態でなければpingコマンドにてETHER1でEthernet通信が行えていることが確認できました。数々のアドバイスありがうございました。

    ですがデバッグ状態の場合、phy.c内のphy_initで実行しているphy_readにて、reg = 0xffffを読み取りdo-whileを繰り返します。(しばらくするとETHER_CFG_PHY_DELAY_RESETの設定値によって抜け出します。)

    回路側の可能性もあるとは思うのですが、中々検討がつかず難航しております。アドバイス等頂けると幸いです…。

    デバッグはE1エミュレータ,JTAGを使用しております。

    [追記]E1はSelf Check ProgramにてTEST3まで正常終了(PASS)のため、故障の可能性はなさそうです。

  • 本件解決いたしました。

    デバッグ接続時に上手く動作しなかったのは、基板側のリセット回路の問題でした。

    もともとのETHERC1のみでRMIIを動かす内容はご指摘いただいた内容を修正して問題なく動作しております。

    リプライにて数々のご助言、誠にありがとうございました。