This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Ethernet packets are missed at c6670 PHY when packets are sent and received at less than 1ms intervals

Hello,

Im using the c6670 EVM to send and recive UDP Packets from a remote machine on the network. Im using the PDK and NDK along with the NIMU transport drivers available under MCSDK 2.0.0.11.

Im continously sending packets of size 500 - 1000 bytes to a remote machine on the system and receiving packets each of size 500 - 1000 bytes with the time interval of sending and receiving packets to be within 1milli second.

Ive kept the RX_INT_THRESHOLD to 1, and loadCount to 40 . This indicates that the PDSP accumulator will interrupt when 1 packet is received or when the Timer Count expires ie 25* 40 = 1ms . These changes are made in the file nimu_internal.h and nimu_eth.c available under the "transport" folder of the PDK directory.

Ive seen that in between when the test is running, some packets are missed to be received by the c6670 PHY. i can see that the packets in the Wireshark application, but they fail to be picked up by the PHY and processed further on to the application thro the NDK and NIMU drivers. Is it so that the Interrupt is missed in between... or is there another version of the NIMU driver present where an optimized setting of the EmacRxISR () or the Rx Thresholds have been set for optimum performance , so that none of the packets are missed to be received by the NIMU driver.

Pls help me out. This causes a panic in my app when a packet goes missing.

Regards

Santosh

  • 1. Can you try with the latest MCSDk available here :  
    http://software-dl.ti.com/sdoemb/sdoemb_public_sw/bios_mcsdk/latest/index_FDS.html

    2. Also can check the EMAC statistics register to see if the packets are not received or if there is any other error.

  • Hi, .

    I eventually success the use of dual port ethernet a week ago.

    But, I met another problem nowadays.

    That is when I sent multicaste messages every 1ms, It becomes back out. i mean die the whole system.

    But every 100ms is OK with my borad.

    Our spec of this :

    1. get multicast messages every 1ms from linux server (40Byte)

    2. assemble the data around 126Byte and send back to linux server.

    I don't know what do I have to do now. Just I am doing changing all of variable which I think concerned with this problem.

    But as I mentioned it doesn't work.

    Please help me.

    Thanks, Ryan.

  • I make progress here a little bit.

    Actually  it's not a progress, :) just I check one thing more.

    That is just eth0 works fine but eth1 doesn't work with 1ms multicast receive but it works with 100ms muticast recevie.

    Just I think It doesn't work with accumulator when it set up in Setup_Rx in numu_eth.c.

    Anybody have any ideas? Please tell me someone who have any idea about this.

    Thanks, Ryan