Part Number: TM4C129ENCZAD
Other Parts Discussed in Thread: DP83822I, DP83822EVM
Hello,
I have two boards a custom TM4C129EN based board and a STM32F4 dev kit connected together with a poorly made ethernet cable 90m in length. The two can communicate together for a short time (sometimes seconds some times hours) before reception on both boards comes to a complete stop. I have enabled the following options for the onboard MAC and PHY:
// Initialize the ethernet MAC and bus related DMA paramaters
ROM_EMACPHYConfigSet(EMAC0_BASE, EMAC_PHY_TYPE_INTERNAL |
EMAC_PHY_INT_ROBUST_MDIX |
EMAC_PHY_AN_10B_T_HALF_DUPLEX |
EMAC_PHY_INT_LD_ON_RX_ERR_COUNT |
EMAC_PHY_INT_LD_ON_MTL3_ERR_COUNT |
EMAC_PHY_INT_LD_ON_LOW_SNR |
EMAC_PHY_INT_LD_ON_SIGNAL_ENERGY);
ROM_EMACInit(EMAC0_BASE, _ClockFrequency,
EMAC_BCONFIG_MIXED_BURST | EMAC_BCONFIG_TX_PRIORITY,
32, 32, 0);
ROM_EMACConfigSet(EMAC0_BASE, (
EMAC_CONFIG_CHECKSUM_OFFLOAD |
EMAC_CONFIG_7BYTE_PREAMBLE |
EMAC_CONFIG_IF_GAP_96BITS |
EMAC_CONFIG_USE_MACADDR0 |
EMAC_CONFIG_SA_FROM_DESCRIPTOR |
EMAC_CONFIG_BO_LIMIT_16 |
EMAC_CONFIG_JABBER_DISABLE),
(EMAC_MODE_RX_STORE_FORWARD |
EMAC_MODE_TX_STORE_FORWARD |
EMAC_MODE_TX_THRESHOLD_64_BYTES |
EMAC_MODE_RX_THRESHOLD_64_BYTES |
EMAC_MODE_RX_ERROR_FRAMES), 0);
After the fault occurs I can observe both boards transmitting an ethernet frame but neither show up on the the others recivers. Performing a reset on the STM32 dev kit only yields a link down followed by a link up on my custom board as well as both units attempting to transmit ARP requests. However neither of them receive them. When I issue a soft PHY reset on the custom (TM4C) board communications comes alive again with both units rxing and txing frames again.
The PHY reset is issued by toggling the EMAC_PC_DIGRESTART bit in the register view.
Any help would be greatly appreciated in further steps to diagnosing this problem.
Thanks