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: Get video resolution

Part Number: DS90UB948-Q1
Other Parts Discussed in Thread: ALP

Dear expert,

In 94x 92x Timing Detection Analysis.pdf,  Below script is for video resolution extraction. 

In customer side, the link is LOCKed. They send video from UB947, so they didn't need pattern gen. 

They followed below script and UB948 0x69 register always return 0. Could you give some guidance here?

BTW, when writing 0x19 to UB948 0x68 register, its read back value is 0x18.  And when writing 0x11 to 0x68 register, its read back is 0x10.  Bit 0 is always 0. Is it normal?

Thanks

------------script----------------------------

board.WriteI2C(UB948,0x68,0x19) # H active High monitor
time.sleep(0.1) # Critical delay! Needed for proper operation!
board.WriteI2C(UB948,0x68,0x19) # Need to write this register again after the delay// also tried to write 0x11
Hhigh = board.ReadI2C(UB948, 0x69, 1)
board.WriteI2C(UB948,0x68,0x09) # H active Low monitor
Hlow = board.ReadI2C(UB948, 0x69, 1)
board.WriteI2C(UB948,0x68,0x39) # V active High monitor
Vhigh = board.ReadI2C(UB948, 0x69, 1)
board.WriteI2C(UB948,0x68,0x29) # V active Low monitor
Vlow = board.ReadI2C(UB948, 0x69, 1)
mask = int('00111111',2)
hlowmask = Hlow & mask
hhighmask = Hhigh & mask
vlowmask = Vlow & mask
vhighmask = Vhigh & mask
hhighmask = hhighmask << 6
vhighmask = vhighmask << 6
Hactive = hhighmask | hlowmask
Vactive = vhighmask | vlowmask
print "Detected Resolution = ",Hactive,"x",Vactive

94x 92x Timing Detection Analysis.pdf

  • Hello Ryan,

    Are they trying to do this from the 947 side or from the 948 side? If they are doing this from the 947 side are they enabling I2C passthrough first with register 0x03? Are they using the correct I2C address for 948 in the script based on what the strapped address for the 948 is in their system?

    Best Regards,

    Casey 

  • Casey,

    They program at 948 side. (There is a MCU at 948 side)

    I also tried with UB948 EVM with ALP.

    After writing UB948 0x68 register with value 0x19, its read back is 0x18. 

    After writing UB948 0x68 register with value 0x11, its read back is 0x10. 

    Same as customer. Is it as expected?

    I don't have UB941 or UB947 EVM on hand. Can I let UB948 run pattern and read 0x69 to get resolution to verify?

    Need you quick guidance here. 

  • Hello Ryan,

    After writing UB948 0x68 register with value 0x19, its read back is 0x18. 

    After writing UB948 0x68 register with value 0x11, its read back is 0x10. 

    These are working as expected. Bit 0 is a self-clearing bit to trigger a sample to be captured in the reg. 

    I don't have UB941 or UB947 EVM on hand. Can I let UB948 run pattern and read 0x69 to get resolution to verify?

    No, this mechanism detects the RX resolution from the FPD side. It will not report timing that is generated internally from PATGEN so you need a remote SER to be providing PATGEN or normal video in order to be able to read this back. 

    Best Regards,

    Casey