Part Number: TM4C129ENCPDT
We currently have a system comprised of multiple modules communicating over Ethernet in a half duplex setup. When reconfiguring the system to a full duplex auto negotiation mode, some modules continue to communicate normally while others loss communications. We found that changing:
This,
//
// Enable and reset the Ethernet modules.
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_EMAC0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_EPHY0);
SysCtlPeripheralReset(SYSCTL_PERIPH_EMAC0);
SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0);
To this,
//
// Enable and reset the Ethernet modules.
//
SysCtlPeripheralEnable(SYSCTL_PERIPH_EMAC0);
SysCtlPeripheralReset(SYSCTL_PERIPH_EMAC0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_EPHY0);
SysCtlPeripheralReset(SYSCTL_PERIPH_EPHY0);
Solves our communication issue.
In the the TivaWare Peripheral Driver User Guide (www.ti.com/.../spmu298e.pdf document we found an example on page 203 that shows enabling both peripherals prior to resetting them. However, on page 164, there is the example that shows enable, reset, enable, reset of the peripherals (which is what we changed it too).
Can you clarify what exactly these calls do and how they affect communication?
Thank you,