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.

[参考译文] TFP410:外部 HDMI 显示器无视频

Guru**** 2382480 points
Other Parts Discussed in Thread: TFP410, MSP430G2230
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/852086/tfp410-no-video-on-external-hdmi-monitor

器件型号:TFP410
主题中讨论的其他器件: MSP430G2230

这是此线程中项目的扩展:

https://e2e.ti.com/support/interface/f/138/p/851103/3151025#3151025

您可以在上面的链接中找到我的原理图和代码。

我现在遇到的问题是 HDMI 显示器没有视频输出。 当我插入并拔下 HDMI 电缆时、显示器将发出一条消息"无 HDMI 信号"、该消息仅在连接或拔下 HDMI 电缆时出现。 因此、我相信我的 HPD 工作正常-它至少检测到它正在插入。  

I.K.在上面的线程中、我建议我的 DE 信号可能有问题、我将使用我的代码生成该信号。 根据提供的原理图和 C 文件、是否可以确定此"无信号"错误的原因是什么?

有一点背景:我正在修改旧的现有设计以生成 HDMI 输出。 原始设计使用8位 R、G 和 B 信号、这些信号被馈送到模拟器件 ADV7125芯片中、从而产生800x480 VGA 输出。 我将 ADV7125替换为 TFP410、因为它还可以接受8位 R、G 和 B 信号作为输入、但产生 HDMI 输出而不是 VGA (我的新显示器没有 VGA 端口)。 DE 值以及其他规格基于 VGA 器件、我不能完全确定在切换到 HDMI 发送器时是否需要更改。

谢谢、
Isaiah Washburn

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

    您好 Isaiah、

    您可以检查以下项目吗?  

    1.您在示波器上看到输入/输出时钟吗? 它是正确的频率/振幅吗?

    2. HYSNC/VSYNC 信号是否看起来正确? 我也会询问 DE、但我不确定您是否能够查看该信号、因为它是在内部生成的。

    3.您能否查看数据表中有关 HTPLG、MSEN 和 RSEN 的第7.4.3节?

    CTL_1_MODE 寄存器中 PD#位的状态是什么?

    5. TFP410需要在上电后进行复位。 您是否可以将其绑定到系统复位(请参阅第7.4.4节)、而不是拉取 ISEL/RST#?

    此致、

    I.K.    

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

    尊敬的 I.K.:

    [引用 user="I.K. 阿尼亚姆"]

    1.您在示波器上看到输入/输出时钟吗? 它是正确的频率/振幅吗? [/报价]

    输入时钟的测量频率为40MHz、符合预期(通道1、黄色)。 输出 TMDS CLK+为3.3V 纹波电压(通道2、绿色)。

    [引述]2. HYSNC/VSYNC 信号是否看起来正确? 我也会询问 DE、但我不确定您是否能够查看该信号、因为它是内部生成的。

    HSYNC 和 VSYNC 看起来正确。 HSYNC 测量37.88kHz、VSYNC 测量60.12Hz、这与800x600p 驱动器(通过 FPGA 实现)一致。

    [引述]3. 您能否查看数据表中有关 HTPLG、MSEN 和 RSEN 的第7.4.3节?

    根据第7.4.3节:

    '当 I2C 被启用时、DVI 链路和 HTPLG 感测引脚的连接状态由 CTL_2_MODE 寄存器提供'

    我的 HTPLG (HPD)引脚直接连接到 HDMI 连接器的引脚#19。 MSEN 通过一个4.53k 电阻器被拉为高 电平、并在固件中输出 HTPLG 位(main.c 中的第49行和第50行-忽略注释、指出它被禁用、这是不准确的)。 我不确定我应该如何处理这些引脚/位/值。

    [引述]4. CTL_1_MODE 寄存器中 PD#位的状态是什么?[/QUERP]

    在 main.c 的第46行和第47行中、PD#设置为1 (正常运行)

    [引述]5. TFP410 需要在上电后进行复位。 您是否可以将其绑定到系统重置(请参阅第7.4.4节)?

    遗憾的是、我没有系统复位。 目前、微控制器与 TFP410同时打开(与电路板的其余部分同时加电)、而 ISEL 只是连接到 Vdd。 您说这不能正常工作吗? 我是否需要切断将 ISEL 连接到电源的迹线(如果我甚至可以连接到电源)并将其连接到微控制器上的 I/O 引脚之一、以便我可以在固件中启用/禁用它?

    谢谢、
    Isaiah Washburn

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

    您好 Isaiah、

    是的、请找到控制 ISEL 的方法。 TFP410需要在上电后复位、因此只有在电源稳定后 ISEL 才应置为高电平。  

    我还记得另一位客户也遇到过类似的问题(间歇性地在显示屏上显示无/坏视频)、他们也在使用 I2C 来访问 DE 发生器。 他们的 ISEL 引脚刚刚连接到 Vdd、但当他们将其连接到系统复位时、它解决了该问题。

    您是否还能提供 TFP410的寄存器转储、以便我们可以检查是否所有内容都被正确写入?

    此致、

    I.K.  

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

    [引用 user="I.K. 阿尼亚姆"]

    您好 Isaiah、

    是的、请找到控制 ISEL 的方法。 TFP410 需要在上电后复位、因此只有在电源稳定后 ISEL 才应置为高电平。  

    我还记得另一位客户也遇到过类似的问题(间歇性地在显示屏上显示无/坏视频)、他们也在使用 I2C 来访问 DE 发生器。 他们的 ISEL 引脚刚刚连接到 Vdd、但当他们将其连接到系统复位时、它解决了该问题。

    您是否还能提供 TFP410的寄存器转储 、以便我们可以检查是否所有内容都被正确写入?

    此致、

    I.K.  

    [/报价]

    您好、我、感谢您的耐心等待。 我一直在度假、刚刚回到这里。

    我提起了 TFP410的 ISEL 引脚并将跳线焊接到该引脚上、然后将其带到 MSP430G2230的 P1.2上。 我在以下代码中添加了:

    //配置 I2C 使能(ISEL)输出
    P1SEL |= BIT2;//选择 P1.2作为 I/O
    P1DIR |= BIT2;//将 P1.2设置为输出
    P1OUT |= BIT2;//将 P1.2设置为高电平
    
    //等待电源位以稳定
    __DELAY_CYCLES (50000);
    
    //重置 P1OUT
    和= BIT2寄存器;//将 P1.2设置为高电平~//禁用 I2C
    __delay_cycles (10000);//延迟10ms
    P1OUT |= BIT2;//重新启用 I2C
    
    I2C_Init ();//初始化 I2C 引脚 

    配置 MSP430时钟后、我在 I2C_init()函数之前添加了此代码。 我不确定要使用什么来解决延迟问题、因此我猜到了- 50ms 让电源稳定、10ms 再重新启用 I2C。 不幸的是,这似乎没有奏效。

    您建议我布置一个 TFP410的寄存器转储。 您能告诉我如何操作吗?  

    谢谢、

    Isaiah W.

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

    您好 Isaiah、

    对于寄存器转储、只需读回寄存器映射中的所有 TFP410寄存器。  

    此外、再看一下您的时钟波形、输入时钟的振幅看起来大约为6V、这超过了数据表中列出的绝对最大额定值。 您能否将振幅降低至3.3V、使其处于直流规格范围内?  

    下面是一些要检查的附加项目:

    1.您是否可以访问显示器中的接收器? 如果是、您能否查看接收器的 DE、HSYNC、VSYNC 和时钟输出? 我们可以看到、这些引脚可用于输入端的 TFP410、但它们可能无法传输到接收器。  

    2.您能否检查 TFP410的输出 TMDS 数据通道上是否有任何活动? 由于接收器侧的端接、输出时钟看起来像是被拉至3.3V、但看起来并不像是实际输出时钟。

    此致、

    I.K.  

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

    [引用 user="I.K. Anyiam"]对于寄存器转储、只需读回 寄存器映射中的所有 TFP410寄存器。 [/报价]

    哦、当然、我应该知道这一点。 假设我有时间处理该项目、我明天将对此进行拍摄。

    [引用]此外、再看一下您的时钟波形、输入时钟的振幅看起来大约为6V、这超过了数据表中列出的绝对最大额定值。 您能否将振幅降低至3.3V、使其处于直流规格范围内? [/报价]

    很好的收获,我甚至没有注意到! 我刚刚检查了原理图、我似乎缺少了时钟线上的75欧姆电阻器、我想这会消除这些峰值。 您可以在图像中看到时钟波形应该达到的电平。 在达到该电平之前会出现较大的峰值。 我将必须查看是否可以修改现有板以将其放入其中。

    [报价]下面是一些需要检查的附加项目:

    1.您是否可以访问显示器中的接收器? 如果是、您能否查看接收器的 DE、HSYNC、VSYNC 和时钟输出? 我们可以看到、这些引脚可用于 输入端的 TFP410、但它们可能无法传输到接收器。 [/报价]

    我不知道这一点、但我必须在现有已知问题得到纠正后深入探讨这一点。

    [引述]2. 您能否检查 TFP410的输出 TMDS 数据通道上是否有任何活动? 由于接收器侧的端接、输出时钟看起来像是被拉至3.3V、但看起来并不像实际输出时钟。

    这也是我的本能。 一旦已知问题得到解决、我可以再次探测这些引脚。

    我一收到这些信息、就会立即返回给您、并提供其他信息。

    谢谢、
    Isaiah W.

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

    你好、

    今天晚上、我终于完成了这一轮测试、结果如下。

    我能够切断线迹、在两侧扫描阻焊层、并在 FPGA 输出和 TFP410时钟输入引脚之间焊接一个100欧姆电阻器。 我本来会使用75欧姆、但没有任何具有该值的电阻器。 这样可以极大地清除时钟信号:

    我的下一步是在(应该)写入 I2C 寄存器后读回这些寄存器。 其中一个寄存器的写入如下所示-所有寄存器看起来都是按顺序排列的:

    为了回读数据,我在 I2C_WriteData()调用的正下方添加了以下一行代码以及随后的1ms 延迟:

    I2C_ReadData (缓冲区、SLV_ADDR、CTL_2_MODE、1);
    

    遗憾的是、结果看起来不是很好:

    您可以看到、当它应该读回0x39时、它正在读回0x00。 下面是我的 I2C_ReadData()函数内容:

    /*------------------
    函数:I2C_ReadData
    用途 :从 I2C 总线
    参数中读取 n 个字节:buff -用于存储值的缓冲区指针
    视频地址-器件地址
    寄存器 -寄存器地址
    n 长度 -
    要读取的字节数返回值 无:无
    ------------------------------------------------------------ //
    空 I2C_ReadData (unsigned char *缓冲区、unsigned char DeviceAddr、unsigned char 寄存器、unsigned char nLength)
    {
    unsigned char nIndex;
    I2C_Start();
    I2C_WriteByte (DeviceAddr << 1);
    I2C_WriteByte (寄存器);
    I2C_Stop ();
    _NOP(); //短延迟
    I2C_Start();
    _NOP(); //短延迟
    I2C_WriteByte ((DeviceAddr << 1)| 1);
    for (nIndex = 0;nIndex < nLength;nIndex++)
    {
    *(buff + nIndex)= I2C_ReadByte ();
    if (nIndex > 0) I2C_Writebit (ACK);
    }
    I2C_Writebit (NACK);
    I2C_Stop();
    } 

    我尝试在 I2C_Stop()和 I2C_Start()之后增加延迟,但这似乎没有任何效果。 由于我显然未正确配置寄存器、我怀疑这就是为什么我在 TMDS 端看不到任何时钟的原因。  

    不幸的是、我似乎无法访问显示器中的接收器。  

    什么可能会导致配置数据无法正确写入 TFP410、即使我仍在接收 ACK?

    谢谢、
    Isaiah W.

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

    嗯,这很有趣。 您的写入/读取过程似乎是正确的,因此我不知道导致这种情况的原因,除了在您读取之前以某种方式重置寄存器(默认值为0x00)。

    我将在实验练习中查看是否可以重新创建此项。

    此致、

    I.K.

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

    [引用 user="I.K. 阿尼亚姆"]

    嗯,这很有趣。 您的写入/读取过程似乎是正确的,因此我不知道导致这种情况的原因,除了在您读取之前以某种方式重置寄存器(默认值为0x00)。

    我将在实验练习中查看是否可以重新创建此项。

    此致、

    I.K.[/报价]

    尊敬的 I.K.:

    非常感谢您的持续支持。 您是否能够重现此问题?

    最棒的
    Isaiah W.

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

    您好 Isaiah、

    很抱歉耽误你的时间。 遗憾的是、我无法找到该器件的电路板。 此器件的实验工作似乎已经完成了相当长的一段时间。

    与此同时、我又看了 I2C 写入波形、发现了一些奇怪的东西。   

    除非我计算错误、否则在操作结束时、SCL 上似乎有一个额外的脉冲(我用红色标记了 ACK 周期)。

    此外、在每个 ACK 位之后、但在下一个字节开始之前、SDA 上似乎有一些快速脉冲。 您知道这些脉冲的来源是什么吗? 我无法真正判断它们与 SCL 的关系、但我想知道它们是否会错误地触发启动/停止条件。

    此外、寄存器0x09是否是唯一返回全部0的寄存器? 例如、您能否读取寄存器0x00 (VEN_ID)? 该寄存器应返回0x4C。  

    此致、

    I.K.  

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

    大家好、谢谢大家的回答。

    我尝试通过在 I2C_Init()调用之后立即运行这一行代码并重新启动 I2C 总线来读取地址0x00:

    I2C_ReadData (缓冲区、SLV_ADDR、0x00、1); 

    这也返回了0x00:

    不过、在写入操作期间、额外的 SCL 时钟脉冲得到良好的捕获。 我必须查看我的代码、看看我是否可以确定代码的来源。 我明天会尝试。 无论如何、我不希望这会对上述测试产生影响。 我在写入任何内容之前执行该操作、该寄存器(0x00 - VEN_ID)是只读的。

    所有寄存器似乎都在返回0x00。

    谢谢、
    Isaiah W.

    更新:我今晚决定再扫描一次代码、看看我是否可以跟踪该额外的 SCL 脉冲、我发现了导致它的原因。 修复简单、因此不再是问题:

    不过、读回寄存器时仍然存在相同的问题。

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

    您好 Isaiah、

    刚刚注意到数据表中的内容:  

    器件可能处于断电模式、因为这是复位后的默认状态:

    这可能是您读取的每个寄存器返回0的原因。 您可以在复位后立即尝试在寄存器0x08中的位0写入1吗?

    此致、

    I.K.  

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

    [引用 user="I.K. 阿尼亚姆"]

    您好 Isaiah、

    刚刚注意到数据表中的内容:  

    器件可能处于断电模式、因为这是复位后的默认状态:

    这可能是您读取的每个寄存器返回0的原因。 您可以在复位后立即尝试在寄存器0x08中的位0写入1吗?

    此致、

    I.K.  

    [/报价]

    这可能会解释我检查 VEN_ID 不起作用的原因、但它不能解释为什么其他功能不起作用。 复位后、我通过 I2C 发送的第一条命令为:

    /*配置 TFP410数字发送器*//
    
    0x37、T.M.D.S.使能状态由 PD
    sData = 0x37确定;
    I2C_WriteData (&sData、SLV_ADDR、CTL_1_MODE、1); 

    0x37向#PD 位写入1。 此外、#PD 仅用于 TMDS 输出、不是吗? I2C 模块仍应运行、否则您将无法通过总线配置 TFP410。 即使 TFP410处于断电模式、我仍希望能够读取固定的 I2C 寄存器。 我在这里弄错了吗?

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

    您好 Isaiah、

    对、我相信您是正确的。 除了器件处于某种断电状态外、我不确定会导致这种情况的原因。 您的 I2C 读取过程也与数据表中指定的过程完全相同、因此很奇怪、每个寄存器返回0。 如果您有以下选项、请尝试以下附加实验:

    现在让我们忽略 I2C、看看我们是否可以在引脚设置模式下获得有效的时钟输出。 由于没有 DE 信号、您不会在显示屏上看到任何内容、但我想如果我们可以这样做并看到有效的时钟输出、那么它将指向与 I2C 接口有关的根本原因。  

    为此、您需要进行以下修改:

    1.保持 ISEL 低电平(接地)

    2、PD#应连接高电平而不是接地

    此致、

    I.K.  

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

    [引用 user="I.K. 阿尼亚姆"]

    您好 Isaiah、

    对、我相信您是正确的。 除了器件处于某种断电状态外、我不确定会导致这种情况的原因。 您的 I2C 读取过程也与数据表中指定的过程完全相同、因此很奇怪、每个寄存器返回0。 如果您有以下选项、请尝试以下附加实验:

    现在让我们忽略 I2C、看看我们是否可以在引脚设置模式下获得有效的时钟输出。 由于没有 DE 信号、您不会在显示屏上看到任何内容、但我想如果我们可以这样做并看到有效的时钟输出、那么它将指向与 I2C 接口有关的根本原因。  

    为此、您需要进行以下修改:

    1.保持 ISEL 低电平(接地)

    2、PD#应连接高电平而不是接地

    此致、

    I.K.  

    [/报价]

    好的、我看到你要去的地方。 调制电路板以将#PD 拉至高电平将会很棘手、因为接地连接在芯片下方。 我必须提起销、根据过去的经验(提起 ISEL 销时)、这些销极易损坏。 我将在明天看到我是否能够做到这一点。

    谢谢、
    Isaiah W.

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

    尊敬的 I.K.:

    我能够将 ISEL 连接到低电平、将#PD 连接到高电平、然后将电路板插入我的系统。 探测时钟线、我看到以下情况:

    这里看起来 有点像时钟,但对我来说似乎有点不连贯。。。

    谢谢你

    更新:
    在我看来、我没有以理想的方式探测时钟。 我的探头上有一个较长的接地线夹、并且连接到时钟+和-引脚的长 mod 导线。 此外、我使用的是1 Mohm 输入阻抗。 我怀疑这种不连续性会导致反射、并且容易受到噪声的影响、因此波形看起来很奇怪。 在禁用 I2C 的情况下运行时、我似乎收到了 HDMI 时钟。

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

    您好 Isaiah、

    由于您可以在引脚搭接模式下获得输出时钟、这意味着 I2C 有一些问题。 现在、我唯一能想到的是器件处于某种断电状态、但这并不能解释您读取的每个寄存器返回0的原因。

    不过、如果 I2C 读取有问题、那么 I2C 写入也可能有问题。 如果这种情况下、并且 TFP410未正确识别您的寄存器写入、则器件将处于断电模式、因为您必须成功写入寄存器0x08才能使其退出断电模式。  

    我们有其他客户成功 使用了 I2C 接口、因此我不认为这是器件本身的问题、但我需要与我的团队讨论这一点、并看看这里到底会出现什么问题。  

    此致、

    I.K.  

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

    我已经取得了一些进展! 我将 ISEL 移回微控制器的 P1.2、将#PD 移回接地、并修改了 I2C 代码。 问题是、在读取函数期间我额外停止了、创建了 I2C  重启而不是 I2C  重复启动。 我能够实现位 bang 正确的重复起始条件、现在数据正在正确读取、无论是从只读寄存器还是我写入的寄存器:

    我似乎在 HDMI 连接器上生成时钟输出、但由于我的探测技术较差(在系统中使用此电路板进行适当探测非常困难)、它看起来非常不连贯。 我怀疑如果我的探针上的接地导线非常短、并且直接监控引脚、会更干净。  

    遗憾的是、我仍然没有获得任何视频输出。 还有什么想法吗?

    非常感谢您的持续支持。

    最棒的
    Isaiah W.

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

    您好 Isaiah、

    好消息是您使 I2C 正常工作。 您现在能否提供 TFP410的寄存器转储、以便确保所有寄存器都已正确写入?

    此致、

    I.K.  

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

    [引用 user="I.K. 阿尼亚姆"]

    您好 Isaiah、

    好消息是您使 I2C 正常工作。 您现在能否提供 TFP410的寄存器转储、以便确保所有寄存器都已正确写入?

    此致、

    I.K.  

    [/报价]

    这里是寄存器/值、减去"保留"的寄存器/值

    寄存器 寄存器名称 数据类型
    0x08 CTL_1_MODE unsigned char 0x37
    0x09 CTL_2_MODE unsigned char 0xBC
    0x0A CTL_3_MODE unsigned char 0x80
    0x0B 配置 unsigned char 0x24
    0x32 DE_DLY unsigned char 0xD8
    0x33 DE_CTL unsigned char 0x70
    0x34 DE_TOP unsigned char 0x1b
    0x36 DE_CNT_L unsigned char 0x20
    0x37 DE_CNT_H unsigned char 0x03
    0x38 DE_LIN_L unsigned char 0xE0
    0x39 DE_LIN_H unsigned char 0x01
    0x3A H_RES_L unsigned char 0x08
    0x3B H_RES_H unsigned char 0x00
    0x3C V_RES_L unsigned char 0x0B
    0x3D V_RES_H unsigned char 0x00

    我注意到地址0x09 (CTL_2_MODE)显示的值是0xBC、而不是0x39、就像我写入的那样:

    sData = 0x39;
    I2C_WriteData (&sData、SLV_ADDR、CTL_2_MODE、1); 

    但是、VLOW (位7)和 RSEN (位2)是只读的、因此 CTL_2_MODE 中的这些差异是合理的。 MDI (位0)是监控器检测中断模式、因此我希望它会因监控器是否插入而异。 这似乎也是合乎逻辑的、因此所有寄存器都与我预期的匹配。 也许我错误地确定了其中一个值?

    谢谢、
    Isaiah W.

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

    您好 Isaiah、

    您能否再次检查 DE 的时序要求?  

    根据您的寄存器值、我们具有:

    • DE_DLY = 216
    • DE_TOP = 27
    • DE_CNT = 800
    • DE_LIN = 480

    但是、来自寄存器转储的 H_RES 和 V_RES 值没有意义:   

    • H_RES = 8
    • V_RES = 11

    这些是只读寄存器、应反映 TFP410接收到的总水平和垂直像素。 这也可能意味着您的视频源无法正确输出正确的分辨率。  

    此致、

    I.K.  

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

    [引用 user="I.K. 阿尼亚姆"]

    您好 Isaiah、

    您能否再次检查 DE 的时序要求?  

    根据您的寄存器值、我们具有:

    • DE_DLY = 216
    • DE_TOP = 27
    • DE_CNT = 800
    • DE_LIN = 480[/报价]

    这很有意思。 我提出的我需要的值如下:

    • DE_CNT= 800px
    • DE_LIN = 600px
    • DE_DLY = 216px
    • DE_TOP = 27px

    确定之后、我可能从未更新过 DE_LIN 的设置?

    [引用]但是、寄存器转储中的 H_RES 和 V_RES 值没有意义:   

    • H_RES = 8
    • V_RES = 11

    这些是只读寄存 器、应反映 TFP410接收到的总水平和垂直像素。 这也可能意味着您的视频源无法正确输出正确的分辨率。

    该信息是如何从监护仪传输到控制器的? 它是否使用 I2C 总线? 请记住、当我遇到 I2C 问题时、我会将电平转换器拉回。  

    我感觉我们越来越接近了!

    谢谢、
    Isaiah W.

    更新:


    以下是修复 DE_LIN 后更新的寄存器转储:

    寄存器 寄存器名称 数据类型
    0x08 CTL_1_MODE unsigned char 0x37
    0x09 CTL_2_MODE unsigned char 0x3C
    0x0A CTL_3_MODE unsigned char 0x80
    0x0B 配置 unsigned char 0x00
    0x32 DE_DLY unsigned char 0xD8
    0x33 DE_CTL unsigned char 0x70
    0x34 DE_TOP unsigned char 0x1b
    0x36 DE_CNT_L unsigned char 0x20
    0x37 DE_CNT_H unsigned char 0x03
    0x38 DE_LIN_L unsigned char 0x58
    0x39 DE_LIN_H unsigned char 0x02
    0x3A H_RES_L unsigned char 0x00
    0x3B H_RES_H unsigned char 0x00
    0x3C V_RES_L unsigned char 0x00
    0x3D V_RES_H unsigned char 0x00

    但是、对于 RES、仍然没有任何信息、实际上这是完全空白的。  

    我的时序值来自以下页面: http://tinyvga.com/vga-timing/800x600@60Hz

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

    您好 Isaiah、

    H_RES 和 V_RES 不是由监视器确定的、而是由 TFP410在其来自视频源的输入上接收到的内容决定的。

    TFP410计算 VSYNC 脉冲之间的 HSYNC 脉冲总数、以及 HSYNC 脉冲之间的总像素数。 出于某种原因、TFP410似乎没有看到任何 HSYNC/VSYNC 脉冲。 作为完整性检查、您是否确定您的视频源已打开并输出数据? 您在 H_RES 和 V_RES 中看到的值非常奇怪。 根据上述时序、我预计 H_RES 为1056、V_RES 为628。  

    此外、由于您使用的是 DE 发生器、因此您需要确保时序与您的源匹配、而不是与您的监视器匹配。 您能否再次检查您的源是否输出您列出的 SVGA 信号参数(在您提到的原始帖子800x480中)?  

    此致、

    I.K.  

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

    嗯、似乎我一直在浪费你的时间、因为我们使 I2C 正常工作。 我重新检查了 PCB、我之前已经多次检查过、使用10倍的眼孔时发现   IC 边缘下方有几个焊接桥。 嗯、 有几个 可能是一个轻描淡写。 TFP410的几乎一侧短接在一起! 桥很难看到,但它们确实在那里! 这就是您自己用一个焊料芯和一个焊接烙铁组装一个密集的电路板的方法! 几个小时后、我设法清除了焊料桥、并且确定了、它立即启动! 该图像有一点点绿光、因此我可能尚未完全清除所有焊接桥、但至少我有一个图像!  

    在过去几周中、您一直非常乐于助人、我非常感谢您的努力!

    非常感谢、
    Isaiah W.

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

    您好 Isaiah、

    您发现问题的好消息! 我一直在想知道为什么您提供的不同寄存器转储中的"VLOW"字段从0翻转为1、因为它是一个反映 Vref 引脚状态的只读寄存器。 这可能是由于焊接桥造成的。 希望现在您能够在进一步清理电路板后获得清晰的图像。  

    此致、

    I.K.