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.

DP83822IF: unable to initialize

Part Number: DP83822IF

Dear,
We are using DP83822IF transceiver however it is not working as expected. We want run it at PHY_ADDR = 0x00 and enable RMII in master mode.
We are setting all the straps in the default position, but COL (Mode 1: PHY_ADDR== 0x00) and RX_DV (Mode 3 to enable RMII).
When we read the register SOR1 to check if the default straps are Reading fine, we get the value 0x2001, which makes no sense at all.
We are also measuring the RX_D3 pin to check if the 50MHz output clock is available, however it is not working either. When we read this pin in the oscilloscope we see what appears to be a random value at it.
When we make a software initialization, we send '1' to bit 15 from register 0x0000 and then we wait until it goes back to '0' by reading it. When reset is done we check the SOR1 value, we initialize IOCTRL1 (0x0462) = 0x0301 and RCSR (0x0017) = 0x0021.
Is there any initialization procedure that we might be missing?

  • Hello William,

    Can you share your schematic to understand why the desired strap configuration is not being latched into the PHY and SOR1/SOR2 registers? Are you configuring the PHY to RMII Master or RMII slave mode, what clock source are you providing to the PHY through XI pin?

    Can you confirm you are reading the extended register set using the operation described in 8.4.2.1 in the datasheet?

    Regards,
    Justin 

  • Hello Justin,
    After your reply we figured out that we were not using the "extended register set reading". We thought that we should perform the reading for everything in the same way. Thanks for that.
    When we implemented the "extended reading", we noticed that the straps reading at the bootstrap is working fine, however we still have a problem. We need to setup the device as RMII master because our MAC is expecting it, however we still have the problem that PIN RX_D3 is not outputting the RMII Master Reference Clock.
    When we setup RX_D3 on IOCTRL1 to output "XI Clock" or "Internal Reference Clock: 25-MHz" it works fine and we see 25MHz clock on it, however when we set it to output "MAC IF Clock" or "RMII Master Mode Reference Clock: 50 MHz", it does not output the 50MHz clock. It shows same random values on our oscilloscope.
    So we have the following question: How do we set DP83822 as RMII Master Mode? So for we have done the following:
    - 4-Level Straps Pin: default for everyone, but COL (mode 1) and RX_DV (mode 3). We also have tried RX_DV at mode 4
    - RCSR: we have written 0x0021 to it (Enable RMII Mode. All other bits as default)
    - IOCRTL1: we have tried to write 0x0301 to it and 0x401 to it (RX_D3 50 MHz and LED_1 as LED_1)

    Regards,

  • Hi William, 

    Are your SOR registers showing the correct straps latched into the PHY? Are the registers you are writing set to something other than the values you are writing above?

    Can you see 50MHz clk under the following conditions:

    RX_D3 if you write 0x462=4300

    LED_1 if you write 0x462=0003

    LED_1 if you write 0x462=0043

    Regards,

    Justin 

  • Hello,

    We have checked and SOR registers are being latched correctly.
    Our external crystal is a 25MHz.
    Now we are using Extended Register Space Access when needed
    When we initialize the system we have:

    Straps:
    - COL – MODE 1 (Disable FX and set PHY Address as 0x0000)
    - RX_D0 – MODE 1 (default)
    - RX_D1 – MODE 1 (default)
    - RX_D2 – MODE 1 (default)
    - RX_D3 – MODE 1 (default), we have also tried MODE 2 (Force 1000BaseTX)
    - LED_0 – MODE 4 (default)
    - CRS – MODE 4 (default)
    - RX_ER – MODE 4 (default)
    - RX_DV – MODE 3, we also have tried MODE 4

    When we initialize we do the following (pseudo C code):

    // Reset
    PHY_REG_CONTROL <= 0x8000; // (normal write)
    While (PHY_REG_CONTROL == 0x8000);

    // Configure registers
    RCSR (0x0017) <= 0x0021 (Enable RMII Mode. All other bits as default) // normal write
    IOCRTL1 (0x0462) <= (all option you gave me). // Extended write

    An interesting point is when we set IOCRTL1 as 0x0303 or 0x0300 or 0x0003, we can see a 25 MHz clock on pins RX_D3/LED_1, when we use RX_DV in mode 4. When we use in mode 3 we just see a random signal.

    When we set it to 0x4343, 0x4300 or 0x0043 we see a random signal on pins RX_D3/LED_1 when both mode 3 and mode 4.


    The conclusion that we arrive is that it is not generating 50MHz. Maybe because we were not able to enable the master mode. What are we missing here?

    Regards,

    William

  • Hi William,

    Can you please share your schematic and register data for registers 0x00-0x1F as well as 0x0467 and 0x0468?

    This will help identify if the straps are being latched properly. Kindly also confirm if you are able to establish an MDI link with the DP83822, separate from the MAC interface?

    Regards,

    Justin 

  • Hello, 

    We have attached the schematic and table with the registers values.

    About MDI link we have connected a network cable to the board but we have seen no changes.

    PS: We have conneted the pins 4 and 5 of J7 to +3.3_ETH

    Reg Value
    0x0000 0x3100 
    0x0001 0x7849 
    0x0002 0x2000 
    0x0003 0xa240 
    0x0004 0x81e1 
    0x0005 0x0000 
    0x0006 0x0004 
    0x0007 0x2001 
    0x0008 0x0000 
    0x0009 0x0000 
    0x000A 0x0100 
    0x000B 0x1000 
    0x000C 0x0000 
    0x000D 0x401f 
    0x000E 0x0000 
    0x000F 0x0000 
    0x0010 0x4002 
    0x0011 0x4108 
    0x0012 0x4000 
    0x0013 0x4000 
    0x0014 0x0000 
    0x0015 0x0000 
    0x0016 0x0000 
    0x0017 0x0061 
    0x0018 0x0400 
    0x0019 0x0421 
    0x001A 0x0000 
    0x001B 0x007d 
    0x001C 0x007d 
    0x001D 0x0000 
    0x001E 0x0000 
    0x001F 0x001f 
    0x0467 0x0fe3
    0x0468 0x0000 

  • Hello,

    Any updates?

    Regards,

  • Hi William,

    I would expect the 50MHz clock to be present based on your strap settings so can you try some additional items to verify your setup. 

    Can you confirm that external strap resistors are applied to LED_1 if you are using it as an LED? 

    Can you also confirm that the extended register write process is correct implemented, if you write and extended register, do you read back the written value?

    Can you write register 0x0462=0x4301 and let me know if you see the 50MHz clock when strapped into RMII master mode?

    Regards,
    Justin 

  • ello Justin ,

    About your asks,

    Can you confirm that external strap resistors are applied to LED_1 if you are using it as an LED? 

    We have confirmed that external strap resistors over LED_1 pin is right. We have connected the leds in the following way:

     

    Can you also confirm that the extended register write process is correct implemented, if you write and extended register, do you read back the written value?

    We believe that it is right because we are able to control IOCTRL1 (0x0462) as expected (we were able to see the 25 MHz clock signal both in pins RX_D3 and LED_1/GPIO_1).

    We are also were able to read back the register value and it was correct.

     

    We have recorded two videos to show you what we get in the oscilloscope.

    The first video, we can see what happens when we set the register as you suggested.

    The second video, we can see the 25 MHz signal works fine.

    Do you have any idea of what might be the signal of the first video?

    Could you confirm what the steps to enable the RMII Master Mode are?

    Regards,

    William

  • Hi William,

    I agree that the first video looks like the signal I would expect from MII or RGMII mode, that the device is sending data over the RX_D3 pin. 

    Have you tested this across multiple devices and boards?

    To enter RMII Master Mode I would write register 0x0017=0x0021. 

    Regards,

    Justin 

  • Hello Justin,

    Could you please send us the straps position and the values that we have to write for each register to enable RMII Master Mode?

    We want the most basic setting to start work with DP83822IF.

    Regards,

    William

  • Hi William,

    To configure the DP83822IF in RMII master mode the bootstraps needed are the following:

    RX_DV: Mode 3 (RMII_EN = 1, XI_50 = 0). R_h = 5.76kOhms, R_l = 2.49kOhms. 

    RX_ER: Mode 0 or Mode 4 (RGMII_EN = 0)

    Regards,

    Justin 

  • Hi Justin,

    We have tested only on our prototype board. We have sent the schematic some messages above.

    We have followed the all steps suggested to configure the DP83822IF to RMII master mode and didn't have success

    How could RX_D3 output data if it do not have this option available? We are sure that DP83822IF is outputing this data because we have cut the connection between DP83822IF and our microcontroller. There is nothing else connected in this pin.

    Could you send us the reference schematic for RMII master mode so we to compare with ours?

    We think that the oscillator currently using can be causing the problem. Do you have an example or suggestion about what oscillator that we should take to selecting the RMII master mode?

    Do you know if the Texas Instrument has a support contact in the Brazil?

    regards,

    William