UDP traffic reception stops

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
MoNo_2793136
Level 2
Level 2

The WICED API stops outputting the UDP packets after a few minutes of receiving UDP packets over the Wi-Fi connection from an Android application. The Android application transmits around 10 Kilo Bytes of data every 50 milliseconds (20 Hz) to the WICED. The UDP packets are received through the WICED API wiced_udp_receive(socket, &packet, WICED_WAIT_FOREVER).

For the first few minutes of the transmission, the function wiced_udp_receive, outputs the UDP packets but then it stops outputting packets even though the sniffer confirms that the Android APP is transmitting UDP packets to the WICED.

Also, it was observed that the wiced_udp_receive function recovers and starts outputting UDP packets if the Android stops  and then resume the transmission of UDP packets but again the function wiced_udp_receive stops outputting the UDP packets after a couple of minutes. This indicates that some internal buffers are getting filled up. What parameters should be modified to remedy this problem?

Thanks,

0 Likes
1 Solution

We have a SEND_UDP_RESPONSE ,  So your application is replace the SEND_UDP_RESPONSE with writing to SPI device by DMA ,   maybe you can stop the DMA transfer in first step , check if the original flow in your environment is ok.

View solution in original post

6 Replies
Zhengbao_Zhang
Moderator
Moderator
Moderator
250 sign-ins First comment on KBA 10 questions asked

hello:

which chip and snip are you using now ?  I will have a try to see if the issue can be duplicated from my side.

0 Likes
0 Likes

The platform that I am using is Murata Type1 LD.

0 Likes

Hello:

Now I want to know Wiced side sample code you are using for the test .

0 Likes

I modified the snip.udp_receive. My current version of the UDP receive includes DMA write to the SPI. The receive loop in my code handles fragmented packets. So, my version of the code is a bit different from the example. Also, my OS and stack are ThreadX and NetX respectively.

Thanks, Mohammad

0 Likes

We have a SEND_UDP_RESPONSE ,  So your application is replace the SEND_UDP_RESPONSE with writing to SPI device by DMA ,   maybe you can stop the DMA transfer in first step , check if the original flow in your environment is ok.