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: Using "ethernet-based io control" example off of launchpad

Part Number: MSP432E401Y

Tool/software:

Hello,

I am trying to execute the ethernet-based io control example on a custom board using the MSP432E401Y.  The code works perfectly on the launchpad, but can not run properly as originally designed for other circumstances.

The first cause for this seems to be the utilization of the FLASH programmed MAC address.  On our boards, we have an EEPROM with a MAC address, but just as a proof of concept I hard coded the same MAC address as we found on the launch pad.  This hardcoded variant works correctly on the launchpad, but an IP is never found.

Would you have any ideas on what else I might be missing, that could prevent this from working properly?  Thank you for your time.

  • What symptom are you seeing exactly? (I'm supposing you're not putting the Launchpad and your board on the network simultaneously.)

    Out of the box, this application expects to get the MAC address from USER_REG_0/1. These can only be written (erased) using a Factory Reset, i.e. changing them is non-trivial. Have you updated the code that does this?

  • No, they are not simultaneously on the network.  Instead of using the code to read the MAC using FlashUserGet, then writing it to the array that stores the MAC address, I just wrote to the array directly like this:



    Would there be any other code I need to change to ensure that it uses the MAC address I hard code?  I looked through the code and there is only one instance where it calls MAP_FlashUserGet, so I thought this would be sufficient.


    As far as symptoms go, the device never gets an IP address assigned.  The lwIPHostTimerHandler() gets to the "Waiting for link", which happens when the IP address returned from lwIPLocalIPAddrGet() is 0xffffffff.  After some time, it will try the lwIPLocalIPAddrGet() call and get a 0, showing it is "Waiting for an IP address", and then it will alternate.

    If I run this same code on the launchpad, it will get to the "Waiting for link", "Waiting for IP address", and then finally it will get an IP address which I can then connect to over a web browser.  I'm not really clear on why this only works on the launchpad.


    Thank you for your time.

  • Hi,

    I just wrote to the array directly like this:

      Are you sure the only difference between the code that works on the LaunchPad and your custom board is the way the MAC is address is written to pui8MACArray? In another word, if you do a diff between the two code, the hardcoded MAC is the only difference. I don't really see an issue with your hardcoded value. You might want to check your hardware against the LaunchPad on the Ethernet PHY interface. Do you have the RBIAS pin connected to GND through a 4.87-kohm resistor? 

  • Hello,

    Yes, the setting of the MAC address is the only difference in the code.  The modified code actually works on the launchpad too, but still does not work on my board.

    I checked the hardware, and didn't think there was an issue.  The magnetics are slightly different as this is a POE application, so the center taps are connected to diode bridges rather than being linked to caps.

    We do have the RBIAS pin connected to ground, via a 4.87k resistor.

    Thank you for your time

  • This is the part of the project where I found WireShark very useful.

  • That's a good idea, using wireshark.  I went ahead and compared the two boards, and I got the following for the launchpad:


    But for the custom board, I found nothing whatsoever.  I already disconnected the POE diode bridges and I think I'll take a look at the voltages on a scope next, to see if there's any voltage come off the pins.

    Thanks

  • Hi,

      I have not heard back from you. I will close this thread for now. If you have any update you can write back to this post and the status will automatically change to OPEN.