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.

TSB81BA3E Phy Always Root When Connected to PC with Windows Compliant Driver

Other Parts Discussed in Thread: TSB81BA3E

We are using a TI TSB81BA3E Phy with Xilinx Spartan 3E FPGA.  The link layer is composed firmware (Micro Blaze)/gateware (CamBlink) on the FPGA. 

In a three node configuration a few bus resets occur and the PC becomes the root and the bus is stable.   In a two node configuration our board becomes the root.  This occurs, before the peripherals become active on the FPGA/Firmware.  We are assuming the phy is making this decision, before the firmware/gateware is active.

Reading the phy registers on our board as soon as the FPGA peripherals are enabled indicates that the the root bit is set, the root hold bit is not set, the gap counter is max (3F), the contender bit is not set and there are no set bits for the interrupts.

The windows driver should reset the bus, if it determines that the root is not a cycle master.  We are not a cycle master.  We may not be getting to that point, since we have observed on a forced root (to our board) that our board resets on a read request from the PC.  Sometimes this results in a reset storm, but usually a several second reset.

The question is why would the phy on our board continue to be set as root?  We are able to observe that the PC has the contender bit set so it should try to become root?

  • Hello Mike,

    What is happening is a Root Contention, when this happens, the two nodes set a random timer to wait and then start again to contend for the root, if the TSB81 always sets its timer slower than the PC, then it always is going to be the root.  Have you tried several hardware resets and bus resets? Does the TSB81 is always the root?

    How does the LLC signal a bus reset? by writing to the IBR bit? You should not write to the IBR bit to signal a bus reset, instead you may write to the ISBR bit.

    If you power your board up, wait for the LLC to load the registers, clear the R, RHB bit and set the Gap_Count to 3Fh, and after that you connect your board to the PC which already has the R and RHB bits set, does the TSB81 still configure itself as the root?

    Are you communicating on 1394a or 1394b ?

     

    Regards.

     

  • Hi Elias,

    We have tried bus (ISBR) and hardware resets (via the page 7, reg 6-SWR).

    We can't clear the R (root) bit in the TSB81BA3E, since it is a read only bit.  It can be done only by a bus reset.  Just after our peripherals become active we are able to see that the RHB is clear and the gap counter is at 3F.  Our power is derived from the bus so we either turn on with the PC or after the PC powers up.  Phy negotiations occur, before we can interact.

     

    I separately powered our board, and observed the root bit set (RHB clear and gap at 3F), before I connected to the PC.  When I connect the PC the bus reset should clear the root bit, but our board remains a root.  Is there anything other than the RHB that would always force it to be a root?

    We are using both 1394a and b.

     

    Thanks,

     

     

  • Hello Mike,

    All the steps you are doing should keep the 81BA3 from becoming the root.

    Can you send a register dump before and after connecting to the PC.

    Regards.