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: Unable to write to register 0x1834 bit 14

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

Tool/software:

Hi Everybody!

I'm trying to connect more than two DP83TD510E on the same network with stopped auto-negotiation (forced connect). I'll take care for the collision avoidance.

When I try to write to bit 14 of 0x1834 it seems like read only. I keep the rest of the bits in the register on the levels I read.

Does somebody know why I can't write to that bit?

Best Regards

Ivailo

  • Hi Ivailo,

    Register 0x1834 is an extended register and must be written to using the procedure given in section 6.3.10 of the datasheet (Note this register is in MMD1). Are you able to access extended registers other than 0x1834?

    Thanks,

    David

  • Hi David,

    I'm using the dev board DP83TD510E-EVM and USB-2-MDIO tool where 'Extended Register' option is selected to 'Yes'.

    PHY ID is zero and I successfully read the extended registers and I'm able to write to 0x8EE for example. But I'm unable to write to 0x1834 bit 14, 0x18F6 - bits 10 and 12, 0x18F8 - bits 13-15.

    Maybe the tool has some bug?

    I did the following test. Selected 'Extended Register" to 'No'

    0x1F -> 0xD

    0x1834 -> 0xF

    0x401F -> 0xD

    0 -> 0xE

    1 -> 0xD

    0x1834 -> 0xE

    0x4001 -> 0xD

    And read the register 0xE which returned 0x4002 instead of 2 - Can not write bit 14 to 0.

    If now I select 'Extended Register' to 'Yes' and read 0x1834 it returns 0x251 - it seems that USB-2-MDIO tool doesn't read properly. Least significant nibble is 1 which is reserved value.

    Best Regards

    Ivailo

  • Hi Ivailo,

    The USB-2-MDIO tool may have an issue reading/writing to MMD1. Please set 'Extended Register' option to 'No' and load the attached scripts.

    1834_Read.txt
    begin
    
    000D 0001
    000E 0834
    000D 4001
    000E
    
    end
    1834_Write.txt
    begin
    
    000D 0001
    000E 0834
    000D 4001
    000E 0002
    
    end

    Please also see FAQ.

    Let me know if you are able to correctly access now.

    Thanks,

    David

  • Hi David,

    Thank you for your help! I believe that you unintentionally wrote 0834 instead of 1834 in register 0xE or I'm missing something (page 36 www.ti.com/.../dp83td510e)

    The value that you write in register 0xD is '1' - the same for read and write. E.g. both scripts look the same with the only difference that at the end 0xE is written or read. Am I missing something or it is a mistake?

    Here are the results:

    1834_Read.txt file is open...
    Register 000D is: 0001
    Register 000E is: 0834
    Register 000D is: 4001
    Register 000E is: 4002
    End of file.

    1834_Write.txt file is open...
    Register 000D is: 0001
    Register 000E is: 0834
    Register 000D is: 4001
    Register 000E is: 0002
    End of file.

    1834_Read.txt file is open...
    Register 000D is: 0001
    Register 000E is: 0834
    Register 000D is: 4001
    Register 000E is: 0002
    End of file.

    I believe that this is the value of register 0x834.

    Here are the scripts what I think they should look like (write 0 in 0xD for 'write access' - page 28, and 1834 in 0xE):

    1834_Read_.txt:
    begin
    000D 0001
    000E 1834
    000D 4001
    000E
    end

    1834_Write_.txt
    begin
    000D 0000
    000E 1834
    000D 4000
    000E 0002
    end

    Results after I modified the scripts

    1834_Read_.txt file is open...
    Register 000D is: 0001
    Register 000E is: 1834
    Register 000D is: 4001
    Register 000E is: 4002
    End of file.

    1834_Write_.txt file is open...
    Register 000D is: 0000
    Register 000E is: 1834
    Register 000D is: 4000
    Register 000E is: 0002
    End of file.

    1834_Read_.txt file is open...
    Register 000D is: 0001
    Register 000E is: 1834
    Register 000D is: 4001
    Register 000E is: 4002
    End of file.

    Do you have any thoughts?

    Thank you very much for your time!

    Best Regards!

    Ivailo

  • Hi Ivailo,

    See below note from a different datasheet (this note applies to all PHYs and should be present in DP83TD510E datasheet as well).

    I see you are correctly able to read and write to register 0x1834 with the scripts I provided.

    Thanks,

    David

  • Hi David,

    Thank you for your time checking on this!

    Are you sure that the most significant nibble have that purpose in this chip?

    There is an example on page 36 showing that it shouldn't be masked:

    What about the read and write - you suggest to write value 1 on reg 0xD for both operations - am I missing something here?

    Thank you!

    Ivailo

  • Hi Ivailo,

    The example on page 36 is an error and will be corrected in the next datasheet. This FAQ applies to all of our PHYs. As you can see with the shared scripts you are able to read the correct value of 0x4002 from register 0x1834, write the value of 0x0002, and read 0x0002 back again.

    Thanks,

    David

  • Hi David,

    Thank you very much! It is all clear now. I hope I'll be able to help you so much some day.

    Best Regards

    Ivailo