Other Parts Discussed in Thread: SEGGER, 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