お世話になっております。
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に以下を追加
#define ETHER_CFG_USE_LINKSTA 0
/************************************************************************************************************************ 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;
シェルティさん
こんにちは、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です、こんにちは。
ご対応頂き、誠にありがとうございます。
拝見させて頂きます。
当方、イーサネット通信を実装するのは初めてでして、いろいろ調査した結果、回路構成から問題がありました。
通信の検証はしばらく先になるかと思いますが、また問題が発生したら質問させてください。
以上です。