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.

DP83TC811S-Q1: dp83tc811s-q1 chip is hanging during data transmission

Part Number: DP83TC811S-Q1

Hi,

We are using dp83tc811s-q1 phy for RMII interface with Atmel micro controller SAMV71Q21B.

Following are the issues faced.

1. While sending the data from the PHY to micro controller with fixed periodicity, the PHY is getting hanged after 12Hrs when the number of bytes transmitted is 130 bytes.

2. Recently we have increased the number of transmitted bytes to 277 bytes, the PHy chip is getting hanged with in 3Hrs.

3. We tried to reset the PHY using reset line and reconfigured the PHY settings, but still we are not able to see any communication on Tx data lines of PHY.

Can you please let us know how to proceed on this issues and why PHY is behaving like this.

Please let us know if you need any more information.

Regards,

PraveenKumar.

  • Hi Praveen,

    The behaviour is strange. Can you please share the following details for debug :

    1. Is phy in RMII master or slave mode?

    2. Schematic showing the clock path (RMII clock and XI pin of 811) 

    3. What is the signature of phy getting hanged? Is cu link still up? 

    4. When this "hang" state happens? If you do chip reset, does phy becomes functional?

    5. You mentioned about writting configuration to phy after reset, which registers you change?

    --

    Regards,

    Vikram

  • Hi Vikram,
    Here are my comments for your points.
    1. We configured PHY chip in slave mode.
    2. I am attaching our schematic design here for your reference
    3. We are seeing linkup status but we are not receiving any data from PHY.
    4. We are actually doing reset in every three minutes once as we are seeing the PHY is getting hanged after 13 hrs. we are able to communicate with PHY but we are not receiving data from PHY.
    5. We are writing BMCR register for default configuration and we are using RMII as communication from micro controller to PHY chip and 100Mbps speed.
    Here is out scenario how we are communication with destination device.
    From HW point of view:
    Our board is designed to handle certain features for validating ECU's. Now we received new requirement to handle automotive ethernet packets.
    As the board is already designed and using for different test cases, we have designed daughter card which handle the ethernet communication.
    This daughter card we are placing bit far from micro controller(on front panel which is exposed to outside). We have connected daughter card and controller with single stand wires.
    From SW point of view:
    The PHY chip is configured to RMII and 0 as PHY address. We are writing only BMCR register as initial and able to do data transmission.
    When we tested long run like 24hrs, we have seen that we are not receiving any packets after 13hrs even though the ECU is transmitting (which can be seen with RadGalaxy monitoring tool).
    We though the length might be the issues and we replaced daughter card near to the controller but the issue is same.
    Later we increased the data length of packet to 273 bytes and the hanging is happening after 3 hrs.
    We tried resetting every 3 minutes once using Reset PIN by giving low to high pulse with 1ms duration. After reset we are again writing the BMCR register and transferring the data.
    Still we are seeing the same issue. We are getting link status but the data transfer is not happening from PHY RMII lines.
    I am attaching my schematic also here, Please check once and let us know how to resolve the issue.
  • Hi Praveen,

    I was suspecting that may be because of some frequency difference between phy and MAC some fifo is getting overflown and communication is getting stuck. But I see that you are using RMII master mode and hence giving RMII clock of MAC from phy itself.

    And if phy is stuck because of some reason than reset should have recovered the phy from bad state. But looks like during stuck state even reset is not helping to restart the data flow on RMII. Is it possible to check rx_d0,rx_d1,rx_d3 on scope when data transfer is stuck? Also if possible do check tx_d0 and tx_d1. This will help us know that whether the problem is with phy or it is with MAC? Also lets capture frequency of clock on rx_d3.

    One thing that I noticed that are not using pull straps on rx_d0 and rx_d1 to configure rmii master mode by hardware. Can you please share the registers you are configuring in phy? Also once in stuck state, please try writting reg<0x001F> = 0x4000 in the "end" of your configuration for phy. This will make sure that phy state machines are re-freshed after configuratoin is written (just in case that's the issue).

    --

    Regards,

    Vikram

  • Hi Praveen,

    Were you able to root cause the issue and make your system working?

    --

    Regards,

    Vikram