This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP432E401Y: Ethernet problems

Part Number: MSP432E401Y
Other Parts Discussed in Thread: MSP-EXP432E401Y

Hi,

I'm having a little trouble getting the Ethernet interface on a new board to work. It is similar enough to the Launchpad that I can run the same TI RTOS project on both platforms, and compare the registers. The launchpad connects to an Ethernet switch and receives an IP address by DHCP. Our board will not even light the connection LED on the switch.

I see only minor differences in SYSCTL registers.

The EMAC registers only get configured once BIOS_start() has run so I step into there then suspend after a few seconds. I then notice a difference in EMAC_PP.
Launchpad - 0x0000055B
Our Board - 0x000007DB

The datasheet shows:
Table 15-93. EMACPP Register Field Descriptions

Bit Field Type Reset Description
31-11 RESERVED R 0x0
10-8 MACTYPE R 0x1 Ethernet MAC Type.
0x0 = Reserved
0x1 = MSP432E4 class MAC.
0x2 = Reserved
0x3 = Reserved
0x4 = Reserved
0x5 = Reserved
0x6 = Reserved
0x7 = Reserved
7-3 RESERVED R 0x0
2-0 PHYTYPE R 0x3 Ethernet PHY Type. This field specifies the type of PHY provided.
0x0 = Reserved
0x1 = Reserved
0x2 = Reserved
0x3 = MSP432E4 class PHY
0x4 = Reserved
0x5 = Reserved
0x6 = Reserved
0x7 = Reserved


Both boards seem to have PHYTYPE (bits 2-0) = "0x3 = MSP432E4" class PHY, as expected.

For MACTYPE (bits 10-8), the Launchpad seems to have "0x3 = Reserved" whereas our board has "0x7 = Reserved". Neither seems correct! Is this a red herring?

Any other ideas?

Thanks

Jim

  • Hi Jim,

      I see 0x56F on the MSP-EXP432E401Y LaunchPad. I tend to think what is important is the bit8 which indicates it is a MAC class for MSP432E. Whether it is 0x5 or 0x7, I don't think it should affect the result of Ethernet operation as there is only physical MAC on the chip. Can you provide some more information?

      - Do you have another of your custom board that you can try? Do you still see the same issue - no connection LED?

      - Despite no LED on your board, does it function as expected such as to send or receive data? Do you have wireshark captures to compare between the LaunchPad and your board?

      - Can you a stock MSP432E4 Ethernet example on both the LaunchPad and your board? Can you see LED running on your board?

      - If you still don't see LED running the stock example, then we need to look at how your hardware is different from the LaunchPad as far as the connection to the LED.

  • Hi,

    Thanks for the quick reply. I may have to try another board but it is the first prototype and needs a few mods to run!

    The connection LED that stays off is the one on the Ethernet switch - it can't see our board. As far as I can see, there is no communication of any kind.

    My code seems to be running OK other than the Ethernet bit - I can see task activity on the ROV, and I get debug_printf output in the console. The one thing I can't yet do is check the run LED as they have been fitted backwards :( 

    I have found a useful line Power_setDependency(PowerMSP432E4_PERIPH_EPHY0);  in  EMACMSP432E4_emacStart(struct NETIF_DEVICE* ptr_net_device)
    On this step, with the Launchpad, the Ethernet switch connection LED comes on. With our board, it does not.

    Our board uses a 25MHz silicon oscillator instead of the crystal but I can't see anything that requires different configuration for that!

    Thanks

    Jim

  • Hi Jim,

      Thanks for the clarification. My misunderstanding about the LED which is the one on the switch that is not blinking, not MCU side. In that case, I tend to think it may be a board level problem. 

    I have found a useful line Power_setDependency(PowerMSP432E4_PERIPH_EPHY0);  in  EMACMSP432E4_emacStart(struct NETIF_DEVICE* ptr_net_device)
    On this step, with the Launchpad, the Ethernet switch connection LED comes on. With our board, it does not.

    MSP432E does not have power domains. Power_setDependency(PowerMSP432E4_PERIPH_EPHY0); should merely enable the clock to PHY module. You might want to check the MCU PHY connection to RJ45. There should be transformer and protection diodes in between. If the PHY cannot establish a link with the switch then the LED may not light up on the switch. Perhaps also check if there is good soldering on all the components on your board. 

  • Hi,

    Just swapped to a new board, and it all seems to work.

    There must be a fault on the first board but none of us can spot it - perhaps we killed some of the Ethernet pins on the 432 while fixing earlier problems.