Skip to main content
SLEE.6
Associate II
March 5, 2021
Solved

How to run SPC58EC ETHERNET RMII mode

  • March 5, 2021
  • 3 replies
  • 7031 views

I have SPC58EC-DISP,

now I use sample code(Network Gateway Test),it's MII mode and working;

then,I want to use RMII mode,I set PHY MODE = RMII,it's not working,

how to do it?

ps:The OSC is changed to 50MHz,and SB5 Close & SB6 Open.

0693W000008w6hdQAA.jpg

This topic has been closed for replies.
Best answer by MRO

Finally, I just correct my IP / mac address and the ping works.

So, for SPC58NG-DISP , to run in RMII, I do 3 modifications :

1) I add the Oscillator chip 50 MHz on the board

2) Change MSCR configuration CRS to CRS_DV

According DP8348 datasheet §6.4.2

The following pins are used in RMII mode:

• TX_EN

• TXD[1:0]

• RX_ER (optionnal for MAC)

• CRS_DV

• RXD[1:0]

• X1 (RMII Reference clock is 50 MHz)

In SPC58xG, the pin configuration is :

0693W000008xEtUQAU.pngOn board.h file ( add 512 on SIUL MSCR)

#define MSCR_MUX_PIN_CRS_0          414U => #define MSCR_MUX_PIN_CRS_0          413U

3) On MDIO , the pin are not correctly configure (in MII or RMII), this pin is bi directional pin

On file board.c, the configuration is

 {(int16_t)MSCR_IO_PIN_MDIO_0, (iomode_t) PAL_SPC5_SSS(13) | PAL_SPC5_OERC(0) | PAL_SPC5_ODC(2) | PAL_SPC5_SMC | PAL_SPC5_ILS(0) | PAL_SPC5_IBE), PAL_LOW},

So the MDIO is configure in Push pull and that not correct.

Change the configuration to Open Drive => PAL_SPC5_ODC(1) 

3 replies

MRO
Associate II
March 17, 2021

I have the same problem with a SPC58NG-DISP :

  • There is the shunt to change OSC to 50 MHz, but Oscillator chip 50 Mhz is not mount the board. So the hardware can't work directly
  • When a change pin configuration CRS to CRS_DV on SPC58EG, the RX debug counter change

On SPC58NG-DISP , there are 3 shunts : MII/RMII , 25/50 MHz , TXCLK

With this modification :

  • An ARP frame is send at startup
  • The RX debug counter change

But Ping doesn't work.

MRO
MROBest answer
Associate II
March 18, 2021

Finally, I just correct my IP / mac address and the ping works.

So, for SPC58NG-DISP , to run in RMII, I do 3 modifications :

1) I add the Oscillator chip 50 MHz on the board

2) Change MSCR configuration CRS to CRS_DV

According DP8348 datasheet §6.4.2

The following pins are used in RMII mode:

• TX_EN

• TXD[1:0]

• RX_ER (optionnal for MAC)

• CRS_DV

• RXD[1:0]

• X1 (RMII Reference clock is 50 MHz)

In SPC58xG, the pin configuration is :

0693W000008xEtUQAU.pngOn board.h file ( add 512 on SIUL MSCR)

#define MSCR_MUX_PIN_CRS_0          414U => #define MSCR_MUX_PIN_CRS_0          413U

3) On MDIO , the pin are not correctly configure (in MII or RMII), this pin is bi directional pin

On file board.c, the configuration is

 {(int16_t)MSCR_IO_PIN_MDIO_0, (iomode_t) PAL_SPC5_SSS(13) | PAL_SPC5_OERC(0) | PAL_SPC5_ODC(2) | PAL_SPC5_SMC | PAL_SPC5_ILS(0) | PAL_SPC5_IBE), PAL_LOW},

So the MDIO is configure in Push pull and that not correct.

Change the configuration to Open Drive => PAL_SPC5_ODC(1) 

SLEE.6
SLEE.6Author
Associate II
March 19, 2021

Great,I can works too,

for the network gateway, 1 modification must be add:

1) add the Oscillator 50 MHz pin to TX_CLK.