Other Parts Discussed in Thread: EK-TM4C1294XL, UNIFLASH
I've been building a simple TCP communication program using the LWIP Examples for the launchpad. I have it working fine on the launchpad, and when the custom board I will be using came in and we go the chip installed, we ran into some issues. First we had to program the MAC address, which we figured out and got done, and expected the application to work the same as on the launchpad from that point on.z
However, We are now running into an issue where inside the lwIPInit() call the code is hanging. I was able to use a debugger to trace it to the following lines from inside lwIPInit().
// // Enable the internal PHY if it's present and we're being // asked to use it. // if((EMAC_PHY_CONFIG & EMAC_PHY_TYPE_MASK) == EMAC_PHY_TYPE_INTERNAL) { // // We've been asked to configure for use with the internal // PHY. Is it present? // if(MAP_SysCtlPeripheralPresent(SYSCTL_PERIPH_EPHY0)) { // // Yes - enable and reset it. // MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_EPHY0); MAP_SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0); } else { // // Internal PHY is not present on this part so hang here. // while(1) { } } }
During the MAP_SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0); the debugger loses track of where the program is, and the board becomes unresponsive.
This only occurs on a board using a factory chip, the code works fine on the EK-TM4C1294XL launchpad we used to prototype the code. My thought is this may be a similar issue to the MAC address not being set, that there may be some setting related to EPHY0 not set by default. But I haven't been able to find much documentation on this type of problem online. So any help would be appreciated.