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.

TSB43AB23: About PHY layer control.

Guru 10385 points
Part Number: TSB43AB23

Hi team.

My customer are trying to use TSB43AB23 to read the PHY Register.

However, rdDone(b31) did not change to 1 from 0. rdReg(b15) changed to 0 from 1.

(They want to read bit31~bit0.)

In this case, is the lead data sent?

Please tell me if there is a cause.

Sincerely.

Kengo.

  • Kengo

    To read a register, the address of the register is written to the regAddr field along with a 1 in the rdReg bit. When the read request has been sent to the PHY, the rdReg bit is cleared to 0. When the PHY returns the register , the rdDone bit transitions to one. The address of the register received is placed in the rdAddr field and the contents in the rdData field. 

    Which PHY register are you trying to access and do you see the rdAddr updated with the last reqAddr?

    Thanks

    David

  • David.

    Thank you for your reply.

    They are trying to read PHY Register address7~0.

    However they can not read only 'address0'.

    They will replace TSB43AB23 from μPD72874.

    They use the PHY Layer Control Register (Offset = ECH) of the OHCI register on the PCI-Bus to reference the PHY Register value.

    The procedure is as follows.

    1.Set PHY Register address in rdAddr (b27-23) and rdReg(b15)=1.

    2.Wait for rdReg (b15) == 0, rdDone (b31) = 1

    3.Read PHY Register value from rdData (b23-b16).

    Sincerely.

    Kengo.

  • Kengo

    This is an expected behavior. Per the OHCI spec, software shall not issue a read of PHY register 0. The most recently available contents of this register shall be reflected in the NodeID register (section 5.11). The Host Controller shall only write the contents of PHY register 0 into the nodeID register, and never into the PHY control register.

    Thanks

    David