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.

DS90UB954-Q1: Steps for Enabling the BIST

Part Number: DS90UB954-Q1

Hi,

I am using C codes to re-write the BIST python script for my dev board, I saw there is a time.sleep(0.5) between WriteI2C, for example as below, I wonder is there any timing sequence describe what is the minimum delay time needed between commands? To my dev board, a time.sleep(0.5) (0.5 sec) is too long, I like to reduce the sleep time to minimum, or is there a register flag that I can check when a commend is finished?

## BIST_953_954_WithForcedError.py
##
## revision 1.1 June 13, 2017
##
########
######################
##
## This script file is used to check the link between the 953 and 954
##
## The Built In Self Test (BIST) generates a puesdo random sequence
## and checks for CRC errors between transmitted and received sequence.
##

## Rev. 1.1
## Added Parity Errors, restructured code
##
##
######################

...

# Digital Reset except for registers
board.WriteI2C(UB953, 0x01, 0x01) #Resets 953
time.sleep(0.5)    # <======= what is the min. delay needed?
board.WriteI2C(UB954, 0x01, 0x01) #Resets 954
time.sleep(0.5)   # <======= what is the min. delay needed? is there a register flag to check cmd finished, instead of using delay?
print ("Devices Reset")

Very appreciated if you can provide some info on this issue.

  • Hi James,

    There isn't a register that will confirm if the digital reset is complete. However, there's other registers that confirm the device is operating with the serializer such as LOCK. I want to explicitly state that LOCK is not an alternative to checking digital reset is complete but you could monitor LOCK status to see if the serializer and deserializer are locked with each other.

    Because you are not reseting the registers with your digital reset. We do provide a spec for the deserializer lock time at startup with a max of 300ms. This max value accounts for a worst case of how long it would take for the deserializer to lock to the serializer at startup. The typical value for this is 20ms. I'm not sure if 300ms is any better for you than 500ms but it's another option.

    Regards,

    Mandeep Singh

  • Dear Mandeep,

    I tried 20ms which is good for my dev board, very appreciated for your quick response and complete answer :)

    Regards,

    James Chen