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.

DP83TD510E: Configuring registers

Part Number: DP83TD510E
Other Parts Discussed in Thread: USB-2-MDIO, DP83869HM

Hi,

We have designed a board using the DP83TD510E and connected it to an STM32F4 micro with MAC and RMII interface.  We have not done an Ethernet product before and don't know what we need to do to properly configure the part so the Stack we are using (lwIP) can communicate with it.

It seems to me that a SPE PHY would have some registers that a 'normal' PHY would not, but it isn't clear to me which registers are normal and which are specific to handling SPE things.

I have a copy of the scripts used to work with the EVM but also can't make sense of what they are doing - can I get an explanation for the Autonegotiate and one of the Forced scripts (what each line in the file is doing)?

Thanks,

Mike.

  • Hi Mike,

    Thanks for sending in your question. We are reviewing the request and someone from our team will get back to you by Tuesday next week.

    -Regards

    Aniruddha

  • Hi Mike,

    Can you kindly provide the scripts being used?

    The thread below has text files containing annotated scripts used for 510 initialization. This can be used as a starting point, additionally I can check your script for any registers not included in the scripts from the thread below. 

    Thank you,

    Nikhil

  • Those are exactly the scripts that I downloaded, so I won't upload them.  Yes they are annotated but as I said before, I cannot make sense of them.  Take the AutoNegotiation script.  I assume column 1 is the register address in Hex and column 2 is the value to write to the register (this is not documented in the script).  In looking at the datasheet for the DP83TD510E in section 7.7, I don't see that this agrees with the register numbers listed so I'm stuck no knowing what the scripts are actually doing to the 510.  Then when you look at all of the Forced Negotiation scripts they are a completely different format (3 lines to perform one operation) with NO documentation on what is different and why.

    I understand that these scripts were written to use with the USB-2-MDIO tool, and I thought they would be a good starting point for what registers I need to configure in the 510 from my micro, but again, I can't make sense of what the scripts are writing to the 510.

    Mike.

  • Hi Mike,

    I understand your confusion. I am looking into this issue and will provide additional feedback by Thursday of this week.

    Thank you,

    Nikhil

  • Hi Mike,

    These registers deal with the internal circuitry of the PHY and we unfortunately cannot share any more details. The settings from the auto-negotiation script have been updated to be the default settings for the production silicon, there will be no need to run this initialization script in the production silicon. 

    As for the confusion regarding the forced negotiation scripts, using 3 lines to perform one operation: The proper method to accessing extended registers involves writing to registers 0xD and 0xE sequentially. Unfortunately, this section was missed in the DP83TD510E datasheet and will be included in the next revision of the datasheet. However, the process for accessing extended registers as other TI PHYs.  Please review section 9.4.9.1 of the DP83869HM datasheet for additional information on extended register access:

    I have also added some additional comments to one of the Forced Mode scripts here: 

    Force_1Vpp_Master_Init_additional_comments.txt
    begin
    001f 8000 //hard reset
    000d 0007 //Access extended register in MMD 07
    000e 0200 //Access extended register address 0x0200
    000d 4007 //Perform a write statement in MMD 07
    000e 0000 //write 0x0 to register 0x200 in MMD 07, disable auto-neg
    000d 0001 //Access extended register in MMD 01
    000e 0834 //Access extended register address 0x0834
    000d 4001 //Perform a write command in MMD 01
    000e 4000 //write 0x4000 to 0x0834 in MMD 01, force master mode
    000d 0001 
    000e 08f6
    000d 4001
    000e 0000 //force 1.0v swing through extended register MMD 01
    000d 001F 
    000e 0608 
    000d 401F 
    000e 003b //disable_0_transition
    000d 001F 
    000e 0862 
    000d 401F 
    000e 39f8 //AGC Gain during Autoneg
    000d 001F 
    000e 081a 
    000d 401F 
    000e 67c0 //deq offset for 1V swing
    000d 001F 
    000e 081c 
    000d 401F 
    000e fb62 //deq offset for 2.4V swing
    000d 001F 
    000e 0830 
    000d 401F 
    000e 05a3 //Enable energy lost fallback
    000d 001F 
    000e 0855 
    000d 401F 
    000e 1b55 //MSE Threshold change
    000d 001F 
    000e 0831 
    000d 401F 
    000e 0403 //energy detect threshold
    000d 001F 
    000e 0856 
    000d 401F 
    000e 1800 //good1 MSE threshold change
    000d 001F 
    000e 0857 
    000d 401F 
    000e 8fa0 //Enable fallback to phase 1 on watchdog trigger
    000d 001F 
    000e 0871 
    000d 401F 
    000e 000c //TED input changed to slicer_in without FFE
    000d 001F 
    000e 0883 
    000d 401F 
    000e 022e //Enable Rx Filter, Change PGA threshold for Short Cable detection
    000d 001F 
    000e 0402 
    000d 401F 
    000e 1800 //Adjusr LD swing
    000d 001F 
    000e 0878 
    000d 401F 
    000e 2248 //Change PI up/down polarity
    000d 001F 
    000e 010c 
    000d 401F 
    000e 0008 //tx filter coefficient
    000d 001F 
    000e 0112 
    000d 401F 
    000e 1212 //tx filter scaling factor
    000d 001F 
    000e 0809 
    000d 401F 
    000e 5c80 //AGC retrain
    000d 001F 
    000e 0803 
    000d 401F 
    000e 1529 //Master Ph1 Back-off
    000d 001F 
    000e 0804 
    000d 401F 
    000e 1a33 //Master Ph1 Back-off
    000d 001F 
    000e 0805 
    000d 401F 
    000e 1f3d //Master Ph1 Back-off
    000d 001F 
    000e 0850 
    000d 401F 
    000e 045b //hybrid gain & delay
    000d 001F 
    000e 0874 
    000d 401F 
    000e 6967 //kp step 0 for master
    000d 001F 
    000e 0852 
    000d 401F 
    000e 7800 //FAGC init gain
    000d 001F 
    000e 0806 
    000d 401F 
    000e 1e1e //Master/Slave Ph2 Back-off
    000d 001F 
    000e 0807 
    000d 401F 
    000e 2525 //Master/Slave Ph2 Back-off
    000d 001F 
    000e 0808 
    000d 401F 
    000e 2c2c //Master/Slave Ph2 Back-off
    000d 001F 
    000e 0850 
    000d 401F 
    000e 0590 //Hybrid Gain/Delay Code
    000d 001F 
    000e 0827 
    000d 401F 
    000e 4000 //Echo Fixed Delay
    000d 001F 
    000e 0849 
    000d 401F 
    000e 0fe4 //Hybrid Cal enable
    000d 001F 
    000e 084b 
    000d 401F 
    000e 04b5 //Echo Score Sel
    000d 001F 
    000e 0018 
    000d 401F 
    000e 0043 //Set CRS/RX_DV pin as RX_DV for RMII repeater mode
    000d 001F 
    000e 001f 
    000d 401F 
    000e 4000 //soft reset
    end

    When using the USB-2-MDIO tool, there is a dropdown menu labeled "Extended Register." For all extended registers in MMD 1F, this should be set to "yes", and the register can be directly written to or read without the four step process involving register 0xD and 0xE. For registers outside of MMD 1F, the "Extended Register" dropdown should be set to "no" and the four step process involving register 0xD and 0xE will need to be used.

    I hope this information is helpful. Please let me know if you have any further questions or if any further clarifications are needed.

    Thank you,

    Nikhil

  • Nikhil,

    Thank you for the reply.  So if I understand you correctly, there will be no need for the Auto negotiation script because this will be the way the chip powers up - right?  So, as I understand it, we have pre-production samples here that we were planning on putting on boards that we just got today.  How are we going to program them with Auto negotiation?  When will production parts be available?

    Beyond this, if I assume I have a production part so auto negotiation is taken care of, what else do I have to do to get the chip to talk to my STM32 micro using the RMII interface?  We are using the lwIP Ethernet stack.  Does it automatically know how to talk to the chip or do we have to do some configuration?

    Mike.

  • Hi Mike,

    Yes in the production silicon, the Auto-negotation script is not needed, these writes will be the default settings of the PHY. Register 0x3 should read 0x181 in the production silicon. Please let me know what value you are reading from register 0x3. Production parts should already be available via TI.com. 

    Auto-negotiation deals with a linkup on the MDI side of the PHY. From the PHY side, there should be no additional configuration necessary for RMII as long as the device is correctly strapped for RMII mode. You may read register 0x17 to confirm the PHY is set for RMII. 

    Please let me know if you have any further questions.

    Thank you,

    Nikhil 

  • Nikhil,

    Thank you for the information.  I checked on the parts we have and they have a "P" in front of the normal part number.  We bought them from the TI website in late November last year.  Do you know if they are configured as normal production?

    Thanks,

    Mike.

  • Hi Mike,

    Are you able to read the value from register 0x3? If this reads 0x181, this should be production silicon.

    Please let me know if you have any other questions. 

    Thank you,

    Nikhil

  • No.  We have not yet built the boards - could be 2 weeks - and I would rather know BEFORE we build them.  You can't tell by the date we ordered them from the TI website (11/24/20) and the "P" in front of the part number?

    Mike.

  • Hi Mike,

    Yes these will be pre-production. As boards have not been built yet, you should be able to order free samples of the production parts from the TI sample room, and use these for your board assembly. Please let me know if you need any help with this order.

    Thank you,

    Nikhil

  • OK, we will try to do that.

    Mike.

  • Nikhil,

    Well, we were going to use the Production parts.  My colleague order them online and a day later they cancelled his order.  Apparently they have no stock even though they did when he ordered.  So we are faced with having to use the PreProduction parts as we are ready to build boards today!  If we are going to use these, I need to know how to program them for Autonegotiation.  Can you help me with that?

    Mike.

  • Hi Mike,

    I am sorry to hear that your order was canceled. If you are using the pre-production parts, the auto-negotiation script provided by Justin will work for setting the PHY for auto-negotiation. Please let me know if you have any further questions.

    Thank you,

    Nikhil

  • OK, but if I remember right you would not tell me what the Auto negotiation script meant.  That script only works with the USB-2-MDIO tool.  I need to know how to program the device from the micro over SPI.  That script didn't seem to have register numbers in it.

    Mike.

  • Hi Mike,

    The first column of the script is the register address, the second column is the value to write to that address.

    To write to these registers, please review my previous reply::

    "

    As for the confusion regarding the forced negotiation scripts, using 3 lines to perform one operation: The proper method to accessing extended registers involves writing to registers 0xD and 0xE sequentially. Unfortunately, this section was missed in the DP83TD510E datasheet and will be included in the next revision of the datasheet. However, the process for accessing extended registers is the same as other TI PHYs.  Please review section 9.4.9.1 of the DP83869HM datasheet for additional information on extended register access:

    I have also added some additional comments to one of the Forced Mode scripts here: Force_1Vpp_Master_Init_additional_comments.txt

    When using the USB-2-MDIO tool, there is a dropdown menu labeled "Extended Register." For all extended registers in MMD 1F, this should be set to "yes", and the register can be directly written to or read without the four step process involving register 0xD and 0xE. For registers outside of MMD 1F, the "Extended Register" dropdown should be set to "no" and the four step process involving register 0xD and 0xE will need to be used.

    "

    Writing to extended registers or registers outside of MMD 1F will involve calling upon registers 0xD and 0xE.

    I hope this information is helpful. Please let me know if you have any further questions or if any further clarifications are needed.

    Thank you,

    Nikhil

  • Nikhil,

    I'm only interested in Auto negotiation for now.

    You say that the first column is the register address and the second is the value to write to the register.  Simple enough but it doesn't match what is in the datasheet.  For example the first line says address 001F.  If you look at section 7.7 in the datasheet, there is no register 1F.  Similarly for other registers listed in the script.

    In section 7.6 it mentions MMD but there is no explanation for what that is.  Am I supposed to read the DP83869HM datasheet to understand this?

    Mike.

  • Hi Mike,

    I have sent you a private message regarding this topic.

    Thank you,

    Nikhil