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.

DP83867 duplex mode

Genius 16465 points

Hello,

I have some questions about DP83867 duplex mode.

1
I want to use ONLY full-duplex mode (want to disable half-duplex mode).
Can it be realized with DUPLEX MODE(BMCR register) = 1 setting?

2.
To detect which duplex mode is used, can it be known by reading "DUPLEX MODE" bit field in PHYSTS register?

Regards,
Oba 

  • Hi Oba-san,

    1. BMCR bit 8 only controls duplex mode IF auto-negotiation is disabled. This works for forced modes of operation only.
    a. If you want to still use auto-negotiation feature (which IS required for 1000base-t mode) then you should disable half-duplex mode auto-negotiation advertisements in register 0x4 (10base and 100base advertisement) and 0x9 (1000base).

    2. Correct, PHYSTS register address 0x11 bit 13 indicates the duplex mode of the link that is established between the DP83867 and the link partner.

    Best Regards,
  • Hello,

     

    I have an additional question regarding disabling half-duplex with auto-negotiation.

     

    >a. If you want to still use auto-negotiation feature (which IS required for 1000base-t mode) then you should disable >half-duplex mode auto-negotiation advertisements in register 0x4 (10base and 100base advertisement) and 0x9 (1000base).

     

    Regarding 1000BASE-T, I can understand how to configure it,

    setting “0” to bit 8 (1000BASE-T HALF DUPLEX) of 0x0009 register.

     

    You mentioned 0x04 register is used for 10/100base, but I can’t find any corresponding bit field in 0x04 register.

    How to configure?

     

    bit 9 of 0x0009 register is “100BASE-T FULL DUPLEX”. I think the explanation of this bit field is confusing because “HALF” and “FULL” word is mixed.

    What is correct?

     

    Regards,

    Oba

  • Hi Oba,

    There is a typo in register 0x0009, bit 9. This bit is for 1000 Base-T Full Duplex Advertisement.

    9 100BASE-T FULL DUPLEX 0, RW Advertise 1000BASE-T Full Duplex Capable:
    1 = Advertise 1000Base-T Half Duplex ability.
    0 = Do not advertise 1000Base-T Half Duplex ability.

    As for register 0x0004, below is the bit description:

    8 TX_FD Strap, RW 100BASE-TX Full Duplex Support:
    1 = 100BASE-TX Full Duplex is supported by the local device.
    0 = 100BASE-TX Full Duplex not supported.
    7 TX Strap, RW 100BASE-TX Support:
    1 = 100BASE-TX is supported by the local device.
    0 = 100BASE-TX not supported.
    6 10_FD Strap, RW 10BASE-Te Full Duplex Support:
    1 = 10BASE-Te Full Duplex is supported by the local device.
    0 = 10BASE-Te Full Duplex not supported.

    5 10 Strap, RW 10BASE-Te Support:
    1 = 10BASE-Te is supported by the local device.
    0 = 10BASE-Te not supported.


  • Hello Hung,

    Thanks for your reply.

    Regarding bit 9 in register 0x0009, I think the below yellow line should be "FULL" instead of "HALF".



    I want to confirm the meaning of bit 7 and 5 in register 0x0004.
    Do bit 7 and 5 means half duplex mode (there is no description about dulpex mode on the "DESCRIPTION" feild)?

    Regards,
    Satoshi Obata

  • Hi Oba,

    Yes, bit 7 and 5 are for 100Base-TX half duplex and 10Base-Te half duplex, respectively.

    Regards,

    Hung Nguyen