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.

DS90UB948-Q1: Script Enable DS90UB948-Q1 CMLOUT from DS90UB947-Q1

Part Number: DS90UB948-Q1

Hello Team,

The attached file could be ran in Analog Launch Pad (changing .txt to .py) to enable DS90UB948-Q1 CMLOUT from RX0 or RX1.

It can work with 947/948EVM.

Could you help check if there is any suggestion to improve the flow?

947_en_948_CMCLOUT.txt
import time

#947 address is 0x28.
#948 address is 0x58.

#reset 947
board.WriteI2C(0x28, 0x01, 0x03)
time.sleep(0.1)

#Enable 947 I2C passthrough
board.WriteI2C(0x28, 0x03, 0xda)
time.sleep(0.1)

#Reset 948
board.WriteI2C(0x58, 0x01, 0x03)
time.sleep(0.1)

print "0x28 0x4F lane mode select. 40h is 1-lane. 00h is 2-lane. 0x4F before is", hex(board.ReadI2C(0x28, 0x4F))
time.sleep(0.1)

print "0x28 0x5A bit-6 TX transmit status. High means TX transmits ok. 0x5A before pat en is", hex(board.ReadI2C(0x28, 0x5A))
time.sleep(0.1)

board.WriteI2C(0x28, 0x4F, 00)
time.sleep(0.1)

#select 947 pat gen timing as internal 
board.WriteI2C(0x28, 0x65, 0x04)
time.sleep(0.1)

#enable 947 pat gen
board.WriteI2C(0x28, 0x64, 0x11)
time.sleep(0.1)

print "0x28 0x5A bit-6 TX transmit status. High means TX transmits ok. 0x5A after pat en is", hex(board.ReadI2C(0x28, 0x5A))
time.sleep(0.1)

#====================================
#check port 0 quality
board.WriteI2C(0x58, 0x52, 0x00)
time.sleep(0.1)
time.sleep(0.1)
board.WriteI2C(0x58, 0x57, 0x02)
time.sleep(0.1)
time.sleep(0.1)
board.WriteI2C(0x58, 0x56, 0x08)
time.sleep(0.1)
time.sleep(0.1)

#check port 1 quality
#board.WriteI2C(0x58, 0x52, 0x80)
#time.sleep(0.1)
#time.sleep(0.1)
#board.WriteI2C(0x58, 0x57, 0x04)
#time.sleep(0.1)
#time.sleep(0.1)
#board.WriteI2C(0x58, 0x56, 0x08)
#time.sleep(0.1)
#time.sleep(0.1)
#====================================

print "0x28 0x4F lane mode reg value after is", hex(board.ReadI2C(0x28, 0x4F))
time.sleep(0.1)
print "0x58 0x52 sel port reg value after is", hex(board.ReadI2C(0x58, 0x52))
time.sleep(0.1)
print "0x58 0x57 sel port reg value after is", hex(board.ReadI2C(0x58, 0x57))
time.sleep(0.1)
print "0x58 0x56 en eye reg value after is", hex(board.ReadI2C(0x58, 0x56))
time.sleep(0.1)

Thank you.

Regards,

Ting