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.

DP83TG720S-Q1: The setting to 0x1834 (PMA_PMD_CONTROL Register) is not reflected.

Part Number: DP83TG720S-Q1
Other Parts Discussed in Thread: USB-2-MDIO

Evaluation is performed using DP83TG720 Media Converter Evaluation Module.
(DP83TG720 Media Converter Evaluation Module is set to MASTER with hard strap)

I would like to do the following:
・ Change from MASTER to SLAVE
・ Change from 1000base-T1 to 100base-T1

Corresponding register: Address = 0x1834 (PMA_PMD_CONTROL Register)

Change the register setting value using USB 2 MDIO
(1) write 0x000D 0x0001
(2) write 0x000E 0x1834
(3) write 0x000D 0x4001
(4) write 0x000E 0x0000
Register read for confirmation
(5) write 0x000D 0x0001
(6) write 0x000E 0x1834
(7) write 0x000D 0x4001
(8) read 0x000E 0xC001 ← Why isn't it 0x8000?

Checklist
(1) How should I go if I want to change the register of 0x1834?
(2) Does DP83TG720 support 100base-T1?

  • Hello,

    1. Since you are using USB-2-MDIO, try setting the register address to 0x1834 as if you are writing to it directly. If you have extended register set to yes, the software should do all indirect addressing for you.
    2. DP83TG720 does not support 100Base-T1.

    Regards,

    Adrian Kam

  • 1. I tried it, but the result did not change.

    Also, I did it while observing the waveform using another device without using USB2MDIO, but the result was still as follows.
     (1) write 0x000D 0x0001
     (2) write 0x000E 0x1834
     (3) write 0x000D 0x4001
     (4) write 0x000E 0x0000
    Register read for confirmation
     (5) write 0x000D 0x0001
     (6) write 0x000E 0x1834
     (7) write 0x000D 0x4001
     (8) read 0x000E 0xC001 ← Why isn't it 0x8000?

    After all, is there any procedure to access this register?

    2. Is 100base-T1 really not supported?
     I think it is supported for the following reasons.
     address = 0x1834: PMA_PMD_CONTROL Register
     Bit [3: 0]: cfg_type_selection
     Type: R / W
     4b0000 = 100BASE-T1
     4b0001 = 1000BASE-T1
     The register type of cfg_type_selection is specified as R / W.
     Therefore, if I set it to 4b0000, it would be 100BASE-T1

  • Hello,

    1. Can you try the four step extended register access procedure again in USB-2-MDIO? This time, set the extended register setting in the software to "No" and see if it works this time.
    2. Are you able to read/write to any of the basic registers (0x00 to x1F) or read/write to any of the other extended registers?
    3. DP83TG720 does not support 100Base-T1. The option is in the datasheet because it is an IEEE standard register, but if you try to set it to 100Base-T1, the device will not work.

    Regards,

    Adrian Kam

  • Hello Adrian
    I'm sorry I often forgot to say hello.

    1.I set the software extension register setting to "NO"
     I set it up and tried it in a 4-step procedure.
     The result could not be written.

    2. I tried to access the register below.
     Extended mode register: TEST_MODE_CONTROL Register (Address = 0x1904)

     I was able to read and write the results.
     The software extension register using USB2MDIO is set to "no".
     The following is the result.


    Blank reading
     Register 000d is: 0001
     Register 000e is: 0904
     Register 000d is: 4001
     Register 000e is: 0000 ← Check normal_mode (Read operation)
    TEST_mode1 setting
     Register 000D is: 0001
     Register 000E is: 0904
     Register 000D is: 4001
     Register 000E is: 2000 ← Set Test_mode1 (Write operation)
    Check if it is set
     Register 000d is: 0001
     Register 000e is: 0904
     Register 000d is: 4001
     Register 000e is: 2000 ← Confirm that Test_mode1 is set. (Read operation)

    Why can I read and write with 0x1904 but not with 0x1834?

    3.I was able to understand. thanks you.

  • Hello,

    I noticed a difference when you are accessing 0x1904 vs 0x1834. On step 2, when writing to register 0x000E first, can you try writing the value 0x0834 (instead of 0x1834) and see if you can successfully write to 0x1834? The rest of the steps should be the same. It seems the first four bits are not needed since it is set in the first step of writing to 0x000D.

    Regards,

    Adrian Kam

  • Hello Adrian

    I was able to successfully transition to slave_ mode when I did as you taught me.
    thanks you.

    The results are shown below for reference.

    Register 000d is: 0001
    Register 000e is: 0834 ← 0834 instead of 1834 when writing
    Register 000d is: 4001
    Register 000e is: 8000
    Register 000d is: 0001
    Register 000e is: 1834
    Register 000d is: 4001
    Register 000e is: 8000

  • Hello,

    If your question has been answered and you have no more issues, please click the "This resolved my issue" button. Thank you.

    Regards,

    Adrian Kam