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.

DP83848C MDC-MDIO INTERFACE

Other Parts Discussed in Thread: DP83848C, USB-2-MDIO

Hi,

I have a  design in which are used, on the same card, two DP83848 PHYs and I am observing a strange behaviour for the MDIO registers value.

The two PHY's use the same wires for the MDC-MDIO interface.

The PHY that use the address 0x03 always responds properly while the PHY that use the address 0x02 often responds wrong or nothing (value 0xffff).

When the MDIO value is 0xffff the MDIO interface is blocked and is necessary to reset the PHY in order to unblock the MDIO signal.

Could be that the behavior described above depends on wrong device initialization ?

The Power-Up timing of Figure 5.1 (see DP83848C) shows that the MDC clock has to be enabled after the minimum T2.1.2 time.

Is this time essential ?

Help!

Aniello

  • Hi Aniello,

    It looks like the PHY ID of '2' is not correct since the device it not responding. 0xFFFF means that the MDIO line is just being held high by the pull-up resistor. 

    I would suggest you try the other 29 PHY ID possibilities since you already know ID 3 works and ID 2 does not work. Try starting with PHY ID 0 and work your way up to ID 31. Also, send me the strap configuration you are using.

    Kind regards,

    Ross

  • Hi Ross,
    at moment I can not change the PHY ID because I need to use the card with SW application that runs only with PHY ID=2.

    The strap configuration is :

    - pin 42 (PHYAD0) connected with a pull down resistor (value = 2.21K)
    - pin 43 (PHYAD1) connected with a pull up resistor (value = 2.21K).

    I think that the device address 2 is correctly read by DP83848 device but the MDIO interface doesn't respond right.

    I can observe three typical situations :

    a) the address is read correctly but the DP83848 registers show wrong values (in the same time the ethernet link is up)

    note that the OUI value is correct but the registers value are 0xffff

    => mii info
    PHY 0x02: OUI = 0x80017, Model = 0x09, Rev = 0x00, 100baseT, HDX
    PHY 0x03: OUI = 0x80017, Model = 0x09, Rev = 0x00, 10baseT, HDX
    => mdio read 2 0-19
    Reading from bus FSL_MDIO
    PHY at address 2:
    0 - 0xffff
    1 - 0xffff
    2 - 0xffff
    3 - 0xffff
    4 - 0xffff
    5 - 0xffff
    6 - 0xffff
    7 - 0xffff
    8 - 0xffff
    9 - 0xffff
    10 - 0xffff
    11 - 0xffff
    12 - 0xffff
    13 - 0xffff
    14 - 0xffff
    15 - 0xffff
    16 - 0xffff
    17 - 0xffff
    18 - 0xffff
    19 - 0xffff
    =>


    b) the OUI value is wrong for PHY 0x02 (in the same time the ethernet link is up)

    => mii info
    PHY 0x02: OUI = 0x3C34D6, Model = 0x12, Rev = 0x01, 100baseT, HDX
    PHY 0x03: OUI = 0x80017, Model = 0x09, Rev = 0x00, 10baseT, HDX
    =>



    c) the BMCR register value , for PHY 0x02 (in the same the ethernet link is up), is

    - initially correct
    - the value change
    - then the value is 0xffff and the MDIO bus is blocked (to unblock the MDIO bus is necessary to reset the PHY 0x02)


    Firmware 'Microcode version 0.0.1 for P1021 r1.0' for 1021 V1.0
    QE: uploading microcode 'Microcode for P1021 r1.0' version 0.0.1
    In: serial
    Out: serial
    Err: serial
    Net: eTSEC1 [PRIME]
    Hit any key to stop autoboot: 0
    =>
    =>
    => mdio read 2 0
    Reading from bus FSL_MDIO
    PHY at address 2:
    0 - 0x3100

    => mdio read 3 0
    Reading from bus FSL_MDIO
    PHY at address 3:
    0 - 0x3100

    => mdio read 2 0
    Reading from bus FSL_MDIO
    PHY at address 2:
    0 - 0x3100

    => mdio read 2 0
    Reading from bus FSL_MDIO
    PHY at address 2:
    0 - 0x3001

    => mdio read 2 0
    Reading from bus FSL_MDIO
    PHY at address 2:
    0 - 0x3001

    => mdio read 2 0
    Reading from bus FSL_MDIO
    PHY at address 2:
    0 - 0x3101

    => mdio read 2 0
    Reading from bus FSL_MDIO
    PHY at address 2:
    0 - 0x3101

    => mdio read 2 0
    Reading from bus FSL_MDIO
    PHY at address 2:
    0 - 0x3100

    => mdio read 2 0
    Reading from bus FSL_MDIO
    PHY at address 2:
    0 - 0xffff


    Do you Know if there is a condition that can block the MDIO interface of DP83848 device ?

    Could you comment me the Power-Up timing of Figure 5.1 (page 17 of data sheet) ?
    The MDC clock must be delivered after the RESET ?

    Thank you in advance

    Regards Aniello
  • Hi Aniello,

    Situation A does not seem like the address is read correctly. If you read all 0xFFFF, this means that the PHY did not respond to the Master's request. This is almost always because the PHY ID of the device you request to talk to does not match PHY ID in the message. The PHY can still get link and operate fine if PHY ID is not correct because you don't need register access for the PHY to operate.

    What is the strength of the pull-up resistor on MDIO? 

    The MDIO/MDC of the PHY should not go into any "condition that can block". The MDIO/MDC should always be accessible unless the device is not powered or in a POR.

    The controller that you are using to communicate with the PHY must wait a minimum of 167ms after the PHY is powered-up.

    The controller must also wait a minimum of 3uS after the PHY is brought out of RESET.

    Is this being followed?

    Kind regards,

    Ross

  • Hi Ross ,
    the MDIO pull-up resistor is 1.5k .
    After the power-up the controller begin to communicate with the PHY after 558 ms (at this time the controller
    makes available the MDC signal whose frequency is about 2.5 MHz); while the MDIO signal is available after 1.7s .

    About the statement “The controller must also wait a minimum of 3uS after the PHY is brought out of RESET”
    I have two questions :
    Q1 – Is the RESET essential before to begin the MDC/MDIO communication ?
    Q2 – Can I active the RESET signal indifferently before or after the MDC activation at power-up ?
    (Obviously respecting the minimum wait of 167ms after power-up).

    Kind regards,

    Aniello
  • Hi Aniello,

    No, RESET is not required as an addition to power-up. There is an internal POR that occurs without the need for RESET. 

    Can you send me a schematic? I am wondering if there might be internal pulls on your MAC that care changing the PHY ID.

    Kind regards,

    Ross

  • Hi Ross,

    due to confidentiality issues I need your email.

    It is important for us that the schematic does not appear on the FORUM.


    I don't know the way to insert a file when the post has already been created and

    and how not to make it visible on the FORUM.


    Thank you in advance.

    Aniello
  • Hi Aniello,

    Please email it to me if you can.

    r-pimentel@ti.com

    Thank you,
    Ross
  • Hi Ross,

    the DP83348 devices interface with P1021 Controller of Freescale Semiconductor.

    Below I describe the connections between PHY Address 0 to 4 and the Controller.


    PHY ID=02 :

    PHYAD0 (pin 42) is connected with an external pull-down resistor of 2.21K

    PHYAD1 (pin 43) is connected with TSEC1_RXD0 (pin AH25) signal of Controller; the wire has an external pull-up resistor of 2.21K

    PHYAD2 (pin 44) is connected with TSEC1_RXD1 (pin AD21) signal of Controller

    PHYAD3 (pin 45) is floating (internal PULL-DOWN)

    PHYAD4 (pin 46) is floating (internal PULL-DOWN)




    PHY ID=03 :

    PHYAD0 (pin 42) ) is floating (internal PULL-UP)

    PHYAD1 (pin 43) is connected with TSEC3_RXD0 (pin AE24) signal of Controller; the wire has an external pull-up resistor of 2.21K

    PHYAD2 (pin 44) is connected with TSEC3_RXD1 (pin AJ23) signal of Controller

    PHYAD3 (pin 45) is floating (internal PULL-DOWN)

    PHYAD4 (pin 46) is floating (internal PULL-DOWN)



    Kind Regards

    Aniello
  • Hi Ross,

    I need a check about PHY's Marking codes.

    Are the followings Marking Codes associated to manufacturing lots of good devices ?

    N
    VQ24AC
    DP83848VV
    VBI

    N
    VQ13AC
    DP83848VV
    VBI

    N
    41W0857
    DP83848VV
    VBI

    Thank you in advance.

    Kind Regards

    Aniello
  • Checking this for you now.

    Have you had a chance to change the PHY ID and try to ping other addresses?

    Also, we have a tool called USB-2-MDIO that you can use to debug this issue with:
    www.ti.com/.../usb-2-mdio

    You would need to get an MSP430 Launchpad.
    www.ti.com/.../launchpads-msp430-msp-exp430f5529lp.html

    Kind regards,
    Ross
  • Hi Ross,

    I have already tried to change the the PHY ID setting to 1 the PHYAD4 (pin 46)
    and also with address 0x12 the results are the same !

    Kind Regards

    Aniello
  • Hi Ross,

    I have already tried to change the the PHY ID setting to 1 the PHYAD4 (pin 46)
    and also with address 0x12 the results are the same !

    Kind Regards

    Aniello
  • Hi Ross,

    do you have some information about DP83848 marking codes ?

    Thank you in advance.

    Kind Regards

    Aniello
  • Hi Ross,

    do you have some information about DP83848 marking codes ?

    Thank you in advance.

    Kind Regards

    Aniello

  • Hi Aniello,

    There is no issue with those lots. 

    Have you tried using the USB-2-MDIO tool to debug?

    Have you done an ABA swap by moving the unit with the incorrect PHY ID to the other socket? Does the issue stay with the IC or the socket?

    Kind regards,

    Ross

  • Hi Ross,

    No I haven't the USB-2-MDIO tool.

    I don't understand what do you mean with "ABA swap".

    In any case I remember you that I haven't an incorrect PHY ID but a situation where the MDIO registers are read with wrong values for one of two PHY's.

    Kind regards,

    Aniello