RX71M TCP/IP M3S-T4-Tinyサンプルプログラムのlan_open()でエラー

お世話になっております。

RX71MとLAN8710をRMIIで配線した基板で、TCP/IP M3S-T4-Tinyサンプルプログラムを組み込んだところ、main() -> lan_open()でエラーが返ってきてしまい先に進めなくなってしまいました。

(phy_init関数内でタイムアウトエラーとなっているようでした)

他社製のTCP/IPプロトコルスタックのライブラリを使用したプログラムではRMIIでTCP/IP通信が行えていますので、ハードウェアは問題ないと考えています。

何が原因かわかりますでしょうか?

 

・サンプルプログラム入手先

https://www.renesas.com/jp/ja/software/D6000791.html

 

・開発環境

CPU:RX71M 176pin

統合開発環境:e2studio v6.3.0

コンパイラ:CC-RX v2.08.00

デバッガ:E1

 

・サンプルプログラム変更箇所

\rx71m_rsk\r_config\r_ether_rx_config.hのdefineを変更

#define ETHER_CFG_MODE_SEL 1

#define ETHER_CFG_USE_LINKSTA 0 
 
\rx71m_rsk\r_pincfg\r_pinset.cに以下を追加

/***********************************************************************************************************************
* Function Name: R_ETHER_PinSet_ETHERC0_RMII
* Description : This function initializes pins for r_ether_rx module
* Arguments : none
* Return Value : none
***********************************************************************************************************************/
void R_ETHER_PinSet_ETHERC0_RMII()
{
R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_MPC);

/* Set REF50CK0 pin */
MPC.P76PFS.BYTE = 0x12U;
PORT7.PMR.BIT.B6 = 1U;

/* Set RMII0_TXD_EN pin */
MPC.P80PFS.BYTE = 0x12U;
PORT8.PMR.BIT.B0 = 1U;

/* Set RMII0_TXD1 pin */
MPC.P82PFS.BYTE = 0x12U;
PORT8.PMR.BIT.B2 = 1U;

/* Set RMII0_TXD0 pin */
MPC.P81PFS.BYTE = 0x12U;
PORT8.PMR.BIT.B1 = 1U;

/* Set RMII0_RXD1 pin */
MPC.P74PFS.BYTE = 0x12U;
PORT7.PMR.BIT.B4 = 1U;

/* Set RMII0_RXD0 pin */
MPC.P75PFS.BYTE = 0x12U;
PORT7.PMR.BIT.B5 = 1U;

/* Set RMII0_RX_ER pin */
MPC.P77PFS.BYTE = 0x12U;
PORT7.PMR.BIT.B7 = 1U;

/* Set RMII0_CRS_DV pin */
MPC.P83PFS.BYTE = 0x12U;
PORT8.PMR.BIT.B3 = 1U;

/* Set ET0_MDC pin */
MPC.P72PFS.BYTE = 0x11U;
PORT7.PMR.BIT.B2 = 1U;

/* Set ET0_MDIO pin */
MPC.P71PFS.BYTE = 0x11U;
PORT7.PMR.BIT.B1 = 1U;

R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_MPC);
}

/***********************************************************************************************************************
* Function Name: R_ETHER_PinSet_ETHERC1_RMII
* Description : This function initializes pins for r_ether_rx module
* Arguments : none
* Return Value : none
***********************************************************************************************************************/
void R_ETHER_PinSet_ETHERC1_RMII()
{
R_BSP_RegisterProtectDisable(BSP_REG_PROTECT_MPC);

/* Set REF50CK1 pin */
MPC.PG0PFS.BYTE = 0x15U;
PORTG.PMR.BIT.B0 = 1U;

/* Set RMII1_TXD_EN pin */
MPC.P60PFS.BYTE = 0x15U;
PORT6.PMR.BIT.B0 = 1U;

/* Set RMII1_TXD1 pin */
MPC.PG4PFS.BYTE = 0x15U;
PORTG.PMR.BIT.B4 = 1U;

/* Set RMII1_TXD0 pin */
MPC.PG3PFS.BYTE = 0x15U;
PORTG.PMR.BIT.B3 = 1U;

/* Set RMII1_RXD1 pin */
MPC.P95PFS.BYTE = 0x15U;
PORT9.PMR.BIT.B5 = 1U;

/* Set RMII1_RXD0 pin */
MPC.P94PFS.BYTE = 0x15U;
PORT9.PMR.BIT.B4 = 1U;

/* Set RMII1_RX_ER pin */
MPC.PG1PFS.BYTE = 0x15U;
PORTG.PMR.BIT.B1 = 1U;

/* Set RMII1_CRS_DV pin */
MPC.P92PFS.BYTE = 0x15U;
PORT9.PMR.BIT.B2 = 1U;

/* Set ET1_MDC pin */
MPC.P31PFS.BYTE = 0x14U;
PORT3.PMR.BIT.B1 = 1U;

/* Set ET1_MDIO pin */
MPC.P30PFS.BYTE = 0x14U;
PORT3.PMR.BIT.B0 = 1U;

R_BSP_RegisterProtectEnable(BSP_REG_PROTECT_MPC);
}

Parents
  • みみみさん

    こんにちは、シェルティです。

    RXマイコンや関連ソフトを担当しております。
    本件ですが、PHYチップとの通信に用いるPHYアドレスの設定(RX71Mマイコン側ソフト)が怪しいです。

    セミナー資料を添付します。

    以下のURLからダウンロードしてください:
    <upload.hdedrive.com/.../SB1538049512-d48bd5d6-5c00-416b-8444-d5c03c924aac>
    ダウンロードパスワード: Dn/9JhmJ5XVP
    URLの有効期限: 2018年10月11日 午後8時59分

    page156にGR-SAKURAにおけるPHYアドレスの解説を書いてありますので参考にしてください。
    あと貼って頂いたMPCの設定も、実験に使っているボードの実際の配線と合致しないと
    PHYチップとの通信がうまくいかずlan_open()失敗します。

    逆にPHYアドレスの値とMPCの設定がただしければlan_open()を正常終了で抜けてきます。
    ここまでこればTCP/IP通信も動くと思います。動かなければまたご質問ください。

    以上です
  • シェルティさん

    こんにちは、SMと申します。

    RX65Nになりますが、みみみさんと同様にTCP/IP M3S-T4-Tinyサンプルプログラムを組み込んだところlan_open()でエラーが返ってきており原因調査をしております。

    この投稿に記載の"セミナー資料"を拝見したいのですが、再度添付して頂けないでしょうか。

    宜しくお願い致します。

  • SMさん

    シェルティです、こんにちは。

    すみません返信が遅くなりました。申し訳ありません。

    セミナ資料をGitHubのRX72N Envision Kitの解説wikiの中のT4のページにアップしておきました。

    https://github.com/renesas/rx72n-envision-kit/wiki/1-Ether-TCP-IP#%E3%82%BB%E3%83%9F%E3%83%8A%E8%B3%87%E6%96%99

    lan_open()でエラーとのことなので、マイコン-PHYチップ間の通信がうまくいってないように思いますね。マイコン側の端子設定(具体的に言うとMPCというマイコン機能)において間違っているところがあると、lan_open()でエラーになることがあります。

    以上です

  • シェルティさん

    SMです、こんにちは。

    ご対応頂き、誠にありがとうございます。

    拝見させて頂きます。

    当方、イーサネット通信を実装するのは初めてでして、いろいろ調査した結果、回路構成から問題がありました。

    通信の検証はしばらく先になるかと思いますが、また問題が発生したら質問させてください。

    以上です。

Reply
  • シェルティさん

    SMです、こんにちは。

    ご対応頂き、誠にありがとうございます。

    拝見させて頂きます。

    当方、イーサネット通信を実装するのは初めてでして、いろいろ調査した結果、回路構成から問題がありました。

    通信の検証はしばらく先になるかと思いますが、また問題が発生したら質問させてください。

    以上です。

Children
No Data