您好,我首先使用内部图案生成器来测试主器件和从器件之间的硬件连接是否正常,按照“探索 FPD-Link III IVI 器件的内部测试图形生成特性”该文档的操作后,似乎屏幕上没有任何图形显示,可以帮我看一下寄存器配置和流程是否正确或完整吗?
连接简图如下所示,目前先调试LCD显示功能:

启动板子后,使用i2c-tools可以看到941器件地址为0x12

I2C_BUS_NUMBER=1
941_ADDR=0x12
读取 DES_ID_DES_ID_1 寄存器0x06,值为0x76,右移一位得到928解串器ID为0x3B
![]()
然后执行以下图形生成器的寄存器的配置的脚本“941as_800x480p_PATGEN.sh”,使用内部timing和内部pclk:
#!/bin/bash
# 800x480p60, Dual Link FPD III
# PCLK = 33.264MHz
# DSI clock = 99.792MHz
# DSI Lane Speed = 199.584Mbps/lane
# 4 Lanes DSI
# DSI input port 0
# Pattern Generator Mode
# Internal clock and Internal
# use i2c-tools to debug
set -e
I2C_BUS_NUMBER=1
UB941AS_ADDR=0x12
# Reset
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x01 0x02
# sleep 0.1s
sleep .1
# Disable DSI
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x01 0x08
# Select FPD-Link III Port 0 (default port0)
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x1E 0x01
# 1. Set Pixel Clock and Active Frame Size
# pixe clock = 33.264MHz divider = 200/33.264 ≈ 6
# hactive = 800 vactive = 480
#
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x03
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x06
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x07
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x20
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x08
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x03
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x09
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x1E
# 2. Set Total Frame Size
# Total H Width = 40(hback porch) + 800(hactive) + 40(hfront porch) + 48(hsync len)
# = 928 = 0011 1010 0000
# Total V Width = 31(vback porch) + 480(vactive) + 13(vfront porch) + 1(vsync len)
# = 525 = 0010 0000 1101
#
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x04
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0xA0
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x05
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0xD3
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x06
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x20
# 3. Set Back Porch
# H Back Porch = 40 = 0010 1000
# V Back Porch = 31 = 0001 1111
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x0C
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x28
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x0D
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x1F
# 4. Set Sync Widths
# H Sync Width = 48 = 0011 0000
# V Sync Width = 1 = 0000 0001
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x0A
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x30
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x0B
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x01
# 5. Set Sync Polarities
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x0E
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x00
# 6. Enable Pattern Generation
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x65 0x03
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x64 0x11


