こんにちは。初心者です。
RX63NをHEW2で動かしています。
イーサネット通信がしたいのですが、イーサネット用LEDが「ACTIVITY」のものだけしか光らず、
他のイーサネット用LED(SPEED100, LINK, FDUPLEX)が定期的に点滅します。
もちろんpingは返ってきません。
ポート設定やレジスタの設定の段階だと思うのですが、どうすればよいでしょうか。
基本的なところからご教授いただけるとありがたいです。
以下、設定です。
_____________________________________________
PORTC.PMR.BIT.B4 = 0; //汎用 PORTC.PDR.BIT.B4 = 1; //出力使用 PORTC.PODR.BIT.B4 = 1; //NRST信号をHigh dly_tsk(0.000001/MSEC); //== 100ナノsec SYSTEM.PRCR.WORD = 0xA503; //PRCR書き換え許可&プロテクト解除 SYSTEM.SCKCR.BIT.PCKA = 0001; //ETHERC,EDMACモジュール用動作クロック SYSTEM.MSTPCRB.BIT.MSTPB15 = 0; //モジュールストップ状態の解除
//PFS書き込み許可 MPC.PWPR.BIT.B0WI = 0; MPC.PWPR.BIT.PFSWE = 1; //端子機能制御レジスタ MPC.P54PFS.BIT.PSEL = 10001; //ET_LINKSTA MPC.P55PFS.BIT.PSEL = 10001; //ET_EXOUT MPC.P71PFS.BIT.PSEL = 10001; //ET_MDIO MPC.P72PFS.BIT.PSEL = 10001; //ET_MDC MPC.P73PFS.BIT.PSEL = 10001; //ET_WOL MPC.P74PFS.BIT.PSEL = 10010; //RMII_RXD0 MPC.P75PFS.BIT.PSEL = 10010; //RMII_RXD1 MPC.P76PFS.BIT.PSEL = 10010; //REF50CK MPC.P77PFS.BIT.PSEL = 10010; //RMII_RX_ER MPC.P80PFS.BIT.PSEL = 10010; //RMII_TXD_EN MPC.P81PFS.BIT.PSEL = 10010; //RMII_TXD0 MPC.P82PFS.BIT.PSEL = 10010; //RMII_TXD1 MPC.P83PFS.BIT.PSEL = 10010; //RMII_CRS_DV //PFS書き込み禁止 MPC.PWPR.BIT.PFSWE = 0; MPC.PWPR.BIT.B0WI = 1; //イーサネット制御レジスタ MPC.PFENET.BIT.PHYMODE = 0; //RMII_mode //プルアップ(出力として使用している場合は無効になる) PORT5.PCR.BIT.B4 = 1; //ET_LINKSTA (in) PORT5.PCR.BIT.B5 = 1; //ET_EXOUT (out) PORT7.PCR.BIT.B7 = 1; //RMII_RXD_ER (in) PORT7.PCR.BIT.B6 = 1; //REF50CK (in) PORT7.PCR.BIT.B5 = 1; //RMII_RXD0 (in) PORT7.PCR.BIT.B4 = 1; //RMII_RXD1 (in) PORT7.PCR.BIT.B3 = 1; //ET_WOL (out) PORT7.PCR.BIT.B2 = 1; //ET_MDC (out) PORT7.PCR.BIT.B1 = 1; //ET_MDIO (in/out) PORT8.PCR.BIT.B0 = 1; //RMII_TXD_EN (out) PORT8.PCR.BIT.B1 = 1; //RMII_TXD0 (out) PORT8.PCR.BIT.B2 = 1; //RMII_TXD1 (out) PORT8.PCR.BIT.B3 = 1; //RMII_CRS_DV (out) //端子機能設定(PFS設定後に行う) PORT5.PMR.BIT.B4 = 1; PORT5.PMR.BIT.B5 = 1; PORT7.PMR.BIT.B7 = 1; PORT7.PMR.BIT.B6 = 1; PORT7.PMR.BIT.B5 = 1; PORT7.PMR.BIT.B4 = 1; PORT7.PMR.BIT.B3 = 1; PORT7.PMR.BIT.B2 = 1; PORT7.PMR.BIT.B1 = 1; PORT8.PMR.BIT.B3 = 1; PORT8.PMR.BIT.B2 = 1; PORT8.PMR.BIT.B1 = 1; PORT8.PMR.BIT.B0 = 1;
EDMAC.EDMR.BIT.SWR = 1; //ETHERC,EDMACのリセット dly_tsk(64*4); ETHERC.ECMR.BIT.RTM = 1; //100Mps ETHERC.RFLR.BIT.RFL = 0x618; //1560byte_受信(最大フレーム長) ETHERC.MAHR = 0x74905000; //MAC_address_上32 ETHERC.MALR.BIT.MA = 0x7901; //MAC_address_下16 ETHERC.ECMR.BIT.TE = 1; //送信機能有効 ETHERC.ECMR.BIT.RE = 1; //受信機能有効 ETHERC.ECMR.BIT.MPDE = 1; //Magic PacketTMの検出を許可 ETHERC.ECSIPR.BIT.ICDIP = 1; //割り込み許可 ETHERC.ECSIPR.BIT.MPDIP = 1; ETHERC.ECSIPR.BIT.LCHNGIP = 1; ETHERC.ECSIPR.BIT.PSRTOIP = 1;
EDMAC.IOSR.BIT.ELB = 1; //個別出力設定 EDMAC.EDTRR.BIT.TR = 1; EDMAC.EDRRR.BIT.RR = 1; _________________________________________________________________
ちなみにTCP/IPプロトコルスタックはiTRONのものを組み込んでいます(少なくとも組み込んでいるつもりです)