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.

[参考译文] DS90UB941AS-Q1:调试图形发生器

Guru**** 2540720 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1260625/ds90ub941as-q1-debug-with-the-pattern-generator

器件型号:DS90UB941AS-Q1

大家好、

客户使用内部图形发生器来测试主从之间的硬件连接是否正确。 遵循"探索 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:

然后、使用内部时序和内部 pclk 执行图形发生器的寄存器配置脚本"941as_800x480p_PATGEN.sh":

#!/bin/bash

# 800x480p60,双链路 FPD III
# PCLK = 33.264MHz
# DSI CLOCK = 99.792MHz
# DSI 通道速度= 199.584Mbps/通道
# 4 lases DSI
# DSI 输入端口0
#图形发生器模式
#内部时钟和内部
#使用 i2c-tools 调试

设置-e

I2C_BUS_NUMBER=1
UB941AS_ADDR=0x12

#重置
i2cset -y -f -r $I2C_bus_number $UB941AS_ADDR 0x01 0x02

#睡眠0.1秒
睡眠1。

#禁用 DSI
i2cset -y -f -r $I2C_bus_number $UB941AS_ADDR 0x01 0x08

#选择 FPD-Link III 端口0 (默认端口0)
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x1E 0x01

# 1. 设置像素时钟和活动帧大小
# PIXE clock = 33.264MHz 分频器= 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. 设置总帧大小
#总水平宽度= 40(后沿)+ 800(前沿)+ 40(前沿)+ 48(HSYNC len)
#= 928 = 0011 1010 0000
#总垂直宽度= 31 (vbacklog)+ 480 (vactive)+ 13 (vfrontend)+ 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. 设置后沿
# H 后沿= 40 = 0010 1000
# V 后沿= 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. 设置同步宽度
# H 同步宽度=48=0011 0000
#垂直同步宽度= 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. 设置同步极性
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x66 0x0E
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x67 0x00

# 6. 启用图形生成
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x65 0x03
i2cset -y -f -r $I2C_BUS_NUMBER $UB941AS_ADDR 0x64 0x11

您能帮助检查这个案例吗? 谢谢。

此致、

切里

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Cherry:

    由于 E2E 维护造成的延迟、我们将在周一与您联系!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Cherry:

    [报价 userid="496057" url="~/support/interface-group/interface/f/interface-forum/1260625/ds90ub941as-q1-debug-with-the-pattern-generator ]i2cset -y -f -r $I2C_bus_number $UB941AS_ADDR 0x65 0x03
    i2cset -y -f -r $I2C_BUS_number $UB941AS_ADDR 0x64 0x11[/报价]

    以下命令将 patgen 设置为首先显示黑色图形。 它还设置时序选择、以从外部视频获取时序。 您可以设置0x65[2]=1吗? 这将使图形发生器能够根据您已编程的时序创建其自己的视频。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ben:

    感谢您的支持。

    当941启用图形发生器时、如果928正确生成了测试视频、是否有反馈方法? 例如读取某些寄存器值。  

    谢谢。此致、

    切里

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Cherry:

    没有办法检查928的时序。 "你是不是在担心我?"

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ben:

    您能设置0x65[2]=1吗? 这将使图形发生器能够根据您编程的时序创建自己的视频。

    设置 0x65[2]=1并将图形设置为"红色/青色"以便于查看,但屏幕上仍然没有测试图形。

    此外、

    1) 1)读取 DES_ID_DES_ID_1寄存器0x06会读取解串器的 ID、这是否表示主器件和从器件之间的连接正常?

    2)如果要通过 i2c 访问触摸 IC 等,则需要哪些设置? 例如、触摸 IC 地址为0x41、正如手册中提到的设置 i2c 模式以及设置从器件 ID 等、您能提供一个示例吗?

    3) 3)正确连接从设备后、主设备将自动识别、如果需要通过 i2c 直接访问从设备、则对问题2中从设备后面挂起的触控的访问是否采用相同的操作方法?  

    谢谢。此致、

    切里

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Cherry:

    1)读取 DES_ID_DES_ID_1寄存器0x06可以读取解串器的 ID、这是否表明主设备和从设备之间的连接正常?

    该寄存器将指示在某个时刻存在链路。 最好查看941AS 的寄存器0xC 的位0进行 链路检测、或查看928的寄存器0x1C 以确定是否存在 锁定。

    2)如果要通过 i2c 接入触摸 IC 等,需要哪些设置? 例如、触摸 IC 地址为0x41、如手册所述、用于设置 i2c 模式、以及设置从器件 ID 等、您能举个例子吗?

    如果与触控器件的通信是 I2C、则客户可能需要设置别名、可以使用 SlaveID 和 SlaveAlias 寄存器在941AS 上设置它。 还需要通过寄存器启用 I2C 直通。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ben:

    感谢您的答复。

    941地址:0x12

    加电后、不进行其他配置、仅将寄存器0x3配置为值0x28以开启 I2C 直接模式、从而可以访问从器件的寄存器。 当 I2C 设置为直通时、从 i2cdetect 可以看到来自从器件928的地址为0x2C:

    然后 检查 941AS 的寄存器0xC 和928的寄存器0x1C、 941寄存器0xC 的值为0x03、而 928寄存器0x1C 的值为0x03。

    您可以看到、941寄存器0xC bit 0 = 1、bit 1 = 1。  根据手册、这表示检测到电缆链路、但在与解串器通信期间发生了 CRC 错误。 在没有额外操作和配置的情况下、上电后、此错误可能有什么问题? 位1 = 1是否可能导致上述屏幕无显示问题?  

    谢谢。此致、

    切里

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Cherry:

    我很高兴928现在有锁定和 I2C 地址可被识别。 CRC 错误可能与硬件有关、也可能是启动后残留的 CRC。 客户是使用定制 PCB 还是 EVM?

    此外、您能否检查928上的映射、并确保显示屏能够接收所选的颜色映射?

    928数据表中还有显示不同颜色方案的表格。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ben:

    您能检查928上的映射并确保显示屏可以接收选定的颜色映射吗?

     设置地图后,它起作用了!

    客户使用941与928,图形生成器的手册提到,如果使用928,需要配置0x39,以启动图形生成器内部时钟。  无论是否配置寄存器、该模式都是可见的。 那么、这里的图形发生器内部时钟指的是哪个内部时钟?

    也就是说、941可以向928生成内部时钟并返回至 LCD、或者928可以直接向 LCD 生成自己的内部时钟? 是否正确?

    谢谢。此致、

    切里  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Cherry:

    如果您使用内部 CLK 图形发生器、则将使用同一器件的内部振荡器。 因此、如果您要在928上生成模式 、它将使用它自己的内部时钟。