cancel
Showing results for 
Search instead for 
Did you mean: 

Ethernet cable connection

momede
Associate II
Posted on December 05, 2013 at 14:45

Dear all,

I'm trying to work with ethernet communication and I started with ''

A

N3376: STM32F2x7 In-Application Programming (IAP) over Ethernet ''.

Example works properly but boards must be connected to the ethernet port before that power the board.

If I plug ethernet cable after powered the board I see ethernet led that blink but I'm not able to connect to the board.

Below code of my configuration:

static void ETH_MACDMA_Config(void)

{

  ETH_InitTypeDef ETH_InitStructure;

  /* Enable ETHERNET clock  */

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_ETH_MAC | RCC_AHB1Periph_ETH_MAC_Tx |

                        RCC_AHB1Periph_ETH_MAC_Rx, ENABLE);

                        

  /* Reset ETHERNET on AHB Bus */

  ETH_DeInit();

  /* Software reset */

  ETH_SoftwareReset();

  /* Wait for software reset */

  while (ETH_GetSoftwareResetStatus() == SET);

  /* ETHERNET Configuration --------------------------------------------------*/

  /* Call ETH_StructInit if you don't like to configure all ETH_InitStructure parameter */

  ETH_StructInit(&ETH_InitStructure);

  /* Fill ETH_InitStructure parametrs */

  /*------------------------   MAC   -----------------------------------*/

  ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Enable;

  //ETH_InitStructure.ETH_AutoNegotiation = ETH_AutoNegotiation_Disable;

  //  ETH_InitStructure.ETH_Speed = ETH_Speed_10M;

  //  ETH_InitStructure.ETH_Mode = ETH_Mode_FullDuplex;   

  ETH_InitStructure.ETH_LoopbackMode = ETH_LoopbackMode_Disable;

  ETH_InitStructure.ETH_RetryTransmission = ETH_RetryTransmission_Disable;

  ETH_InitStructure.ETH_AutomaticPadCRCStrip = ETH_AutomaticPadCRCStrip_Disable;

  ETH_InitStructure.ETH_ReceiveAll = ETH_ReceiveAll_Disable;

  ETH_InitStructure.ETH_BroadcastFramesReception = ETH_BroadcastFramesReception_Enable;

  ETH_InitStructure.ETH_PromiscuousMode = ETH_PromiscuousMode_Disable;

  ETH_InitStructure.ETH_MulticastFramesFilter = ETH_MulticastFramesFilter_Perfect;

  ETH_InitStructure.ETH_UnicastFramesFilter = ETH_UnicastFramesFilter_Perfect;

#ifdef CHECKSUM_BY_HARDWARE

  ETH_InitStructure.ETH_ChecksumOffload = ETH_ChecksumOffload_Enable;

#endif

  /*------------------------   DMA   -----------------------------------*/  

 

  /* When we use the Checksum offload feature, we need to enable the Store and Forward mode:

  the store and forward guarantee that a whole frame is stored in the FIFO, so the MAC can insert/verify the checksum,

  if the checksum is OK the DMA can handle the frame otherwise the frame is dropped */

  ETH_InitStructure.ETH_DropTCPIPChecksumErrorFrame = ETH_DropTCPIPChecksumErrorFrame_Enable;

  ETH_InitStructure.ETH_ReceiveStoreForward = ETH_ReceiveStoreForward_Enable;         

  ETH_InitStructure.ETH_TransmitStoreForward = ETH_TransmitStoreForward_Enable;     

 

  ETH_InitStructure.ETH_ForwardErrorFrames = ETH_ForwardErrorFrames_Disable;       

  ETH_InitStructure.ETH_ForwardUndersizedGoodFrames = ETH_ForwardUndersizedGoodFrames_Disable;   

  ETH_InitStructure.ETH_SecondFrameOperate = ETH_SecondFrameOperate_Enable;

  ETH_InitStructure.ETH_AddressAlignedBeats = ETH_AddressAlignedBeats_Enable;      

  ETH_InitStructure.ETH_FixedBurst = ETH_FixedBurst_Enable;                

  ETH_InitStructure.ETH_RxDMABurstLength = ETH_RxDMABurstLength_32Beat;          

  ETH_InitStructure.ETH_TxDMABurstLength = ETH_TxDMABurstLength_32Beat;

  ETH_InitStructure.ETH_DMAArbitration = ETH_DMAArbitration_RoundRobin_RxTx_2_1;

  /* Configure Ethernet */

  ETH_Init(&ETH_InitStructure, DP83848_PHY_ADDRESS);

}

Can someone help me to understan when I'm in wrong?

Thanks for your help.

Regards.
2 REPLIES 2
eng
Associate II
Posted on March 09, 2015 at 14:46

Hi, omede!

Do you solved your problem with ethernet cable connection?

Posted on March 09, 2015 at 15:59

Yeah, well I'd expect you have to detect the cable has been changed, and work on reconfiguring the PHY, the connection, and obtaining IP addresses, etc.

The examples have been simplified to ease comprehension, you still need to understand the system level requirements, and implement production ready code.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..