Skip to main content
Visitor II
April 13, 2021
Question

Problems with UDP packets transmission on STM32F407

  • April 13, 2021
  • 1 reply
  • 700 views

Good day!

I have some problems with UDP packets transmission. Seems that UDP packets sometimes not sent

Board was developed on STM32F407VET6 using LAN8742A driver.

UDP packets with size 1200 bytes are sending using timer 10 in 200 ms interval.

void HAL_TIM_PeriodElapsedCallback (TIM_HandleTypeDef *htim)

{

    if (htim->Instance == TIM10)

    {

       static uint8_t flag = 0;

       uint16_t sz = 1200;

       uint8_t Data[sz];

       if (flag)

           memset(Data, 0, sz);

       else

           memset(Data, 127, sz);

       flag = ~flag;

       struct pbuf *p;

       ip_addr_t addrPC;

       addrPC.addr = 0x3703000A;

       p = pbuf_alloc(PBUF_TRANSPORT, sz, PBUF_RAM);   // Allocate packet buffer

       memcpy (p->payload, (void*) Data, sz);

       err_t volatile err = udp_sendto(voiceSocket, p, &addrPC, 11000);

       pbuf_free(p); // De-allocate packet buffer

    }

}

With the help of some analizing tools I found that ETH_TX_EN signal disappears randomly.

0693W000008zNQ6QAM.pngEthernrt controller settings are:

/* Init ETH */

 uint8_t MACAddr[6] ;

 heth.Instance = ETH;

 heth.Init.AutoNegotiation = ETH_AUTONEGOTIATION_ENABLE;

 heth.Init.Speed = ETH_SPEED_100M;

 heth.Init.DuplexMode = ETH_MODE_FULLDUPLEX;

 heth.Init.PhyAddress = LAN8742A_PHY_ADDRESS;

 MACAddr[0] = 0x00;

 MACAddr[1] = 0x80;

 MACAddr[2] = 0xE1;

 MACAddr[3] = 0x01;

 MACAddr[4] = 0x23;

 MACAddr[5] = 0x45;

 heth.Init.MACAddr = &MACAddr[0];

 heth.Init.RxMode = ETH_RXPOLLING_MODE;

 heth.Init.ChecksumMode = ETH_CHECKSUM_BY_SOFTWARE;

 heth.Init.MediaInterface = ETH_MEDIA_INTERFACE_RMII;

0693W000008zNQaQAM.pngCan anyone got a similar problem?

    This topic has been closed for replies.

    1 reply

    Visitor II
    June 30, 2021

    Hello @Sergey Titov​ ,

    Welcome to our ST Community :)

    I recommend you to take a look at the example provided in our F4 firmware package ( Path : Projects\STM324x9I_EVAL\Applications\LwIP\LwIP_UDP_Echo_Client )

    Use it as inspiration.

    BeST Regards,

    Walid