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.

[参考译文] SN65DP159:用于TPS1/2和PRBS23测试的寄存器设置和输入模式

Guru**** 2468460 points
Other Parts Discussed in Thread: SN65DP159

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/641132/sn65dp159-register-setting-and-input-patterns-for-tps1-2-and-prbs23-test

部件号:SN65DP159

大家好,TI正在使用SN65DP159 + FPGA构建2.0 PHY (最大比特率5.94GHz,不是显示端口),硬件连接如下所示:

      LVDS (印刷电路板上)                LVDS (印刷电路板上)                 TMDS (2.0 电缆)
FPGA ----------------------- >大写字母(0.1uF)----- > SN65DP159 --------------------------- >电视机。

到目前为止,我们可以在4K30P和4K60P电视机上显示色条,SN65DP159在复位驱动程序模式下工作(对于4K60P,颜色有一些错误)。

现在,我们尝试在4K30P或4K60P的重新计时器模式下运行SN65DP159,但始终失败。 电视机可以识别分辨率格式,并显示条形,但颜色绝对错误。 我们已按照您的SLLA358指南和其他有关此芯片的在线资源进行操作,但问题仍然存在。

下面是我的问题,登记册设置和我们工作的程序,请帮助检查,非常感谢:

问题1:对于main()中的Step1-5,寄存器设置和向SN65DP159进纸是否正确?
问题2:如果我们在main()中执行PRBS23验证步骤5,从0x0F读取的正常值是什么?
问题3:SN65DP159上是否有任何寄存器指示ch0-ch2之间的对齐状态?
问题4:或者如何对齐ch0-2?
    FPGA可以为每个通道执行相移和位滑动,但SN65DP159可以提供哪些反馈来完成调整?

//--注册设置

void  main(){   
//--1. 馈电TPS1至sn65dp159:ch0/CH1/ch2,带2.97G (1/2比特率)时钟,
//                             CH ck,时钟为148.5MHz。
TX_TPS1();

//--2. sn65dp159初始化
write_csr (0xFF,0x00);

write_csr (0x09,0x0a);//关闭电源,然后打开sn65dp159。
Delayms(100);
write_csr (0x09,0x02);

initial_prog_dp159();

//--3. 执行TPS1测试。
tp1_prog_dp159();

//--4. 将TSP2推进至sn65dp159:具有重复A型的CH0/CH1/CH2 (K 28.5 ,11.6 ,28.5 +,11.6 ,DK 10.2 , 10.2 ,10.2 ,10.2 ,10.2 ,10.2)。
//                             CH ck,时钟为148.5MHz。
tx_tps2();

tp2_prog_dp159();

//--5. FED PRBS23至sn65dp159:带有PRBS23的CH0/CH1/CH2。
//采用148.5MHz时钟的机架。
tx_prbs23();

write_csr (0xFF,0x00);
write_csr (0x10,0x11);
write_csr (0x0E,0x07);//启用prbs23检查。
READ_CSR (0x0F);//要检查结果:应为0x00? 它在我的测试中读取不稳定的值:0xFF,0x0,0x1E,....

//--6. 已将正常视频送入sn65dp159:带有TMDS数据的ch0/CH1/ch2,
//                                   CH ck,时钟为148.5MHz。
//
TX_TMDs();
}


void  inital_prog_dp159  (void)  {
printf ("\n正在初始化DP159...");
write_csr (0xFF,0x00);//选择页面0
write_csr (0x09,0x36);//启用X模式
write_csr (0x0A,0x7B);//禁用HPD_SNK直通至HPD_SRC。 启用AUX
write_csr (0x0D,0x80);// AUX上的时钟为1/20数据速率并已启用。

write_csr (0x0C,0x6D);//将TX回转设置为最大值
write_csr (0x10,0x00);//关闭模式验证器
write_csr (0x16,0xF1);//启用DP_TST_EN (禁用所有通道上的字符对齐)

write_csr (0xFF,0x01);//选择第1页

//配置PLL块
write_csr (0x00,0x02);//启用Bandgap。
write_csr (0x04,0x80);// PLL_FBDIV为40
write_csr (0x05,0x00);//
write_csr (0x08,0x00);//
write_csr (0x0D,0x02);//选择Lane0作为时钟。
write_csr (0x0E,0x03);// cdr_config[4:0]。 固定,LN0。
write_csr (0x01,0x01);// cp_en为PLL模式
write_csr (0x02,0x3f);// cp_current
write_csr (0x0B,0x33);//测试。 可能不使用。
write_csr (0xA1,0x02);//振荡器启用。
write_csr (0xA4,0x02);//覆盖启用。
write_csr (0x10,0xF0);// ENTX禁用
write_csr (0x11, 0x30);// TX_rate为全速率,TX_TERM = 75至150,TX_INVPAIR =无
write_csr (0x14,0x00);// HDMI_TWPST1为0dB去重
write_csr (0x12,0x03);// cswing_CTRL为正常,回转为600mV。
write_csr (0x13,0xFF);// FIR_UPD。 加载TX设置
write_csr (0x13,0x00);//

write_csr (0x30,0xE0);//禁用接收器
write_csr (0x32,0x00);// pd_RXINT
write_csr (0x31,0x00);// RX_rate已满
write_csr (0x4D,0x08);// EQFTC = 1,EQLEV = 2
write_csr (0x4C,0x01);//启用固定EQ (禁用RX时不得使用自适应)
write_csr (0x34,0x01);//启用偏移校正(由Rx_ld门控)!!!!
write_csr (0x32,0xF0);//加载Rx设置
write_csr (0x32,0x00);//
write_csr (0x33,0xF0);//加载均衡器设置

write_csr (0xFF,0x00);//选择页面0
write_csr (0x0A,0x3B);//启用HPD_SNK传递到HPD_SRC。 再计时器。
write_csr (0xFF,0x01);//选择第1页
}


无效  TP1_prog_dp159  ()  {

u8 rtxen,eqreg,tsten;
rtxen = 0x0F;
eqreg = 0x08;
tsten = 0xF1;// 1:0x11,2:0x31,4:0xF1

//在此处添加所有BW_handler处理...
write_csr (0x00,0x02);//启用Bandgap,禁用PLL,清除a_lock_OVR (重置它)
write_csr (0x01,0x01);// cp_en = PLL (参考)模式
write_csr (0x0B,0x33);//设置PLL控制
write_csr (0x02,0x3f);//设置cp_current
write_csr (0x30,0x0F);//启用RX通道
write_csr (0x00,0x03);//启用Bandgap,启用PLL,清除A_LOG_OVR
write_csr (0x4C,0x01);//启用固定均衡器(重置自适应均衡器逻辑)
write_csr (0x4D,0x08);//设置EQFTC和EQLEV (固定EQ)

//等待PLL锁定...
lock_cnt = 0;
锁状态= 0;
ReadBuffer[0]=0;
同时(ReadBuffer[0]== 0 && lock_cnt < lock_wait){
Read_CSR (0x00);
ReadBuffer[0]= ReadBuffer[0]和0x40;// 0x80;
锁定_cnt++;
}

write_csr (0x10,0x0F);//启用TX通道
write_csr (0x00,0x23);//启用PLL和Bandgap,设置A_LOG_OVR,并设置扩展LPRES
write_csr (0x02,0x5f);// cp_current
write_csr (0x0B,0x30);//设置PLL控制
write_csr (0x01,0x02);// cp_en为PD模式
write_csr (0xFF,0x00);//选择第0页
write_csr (0x16,0xF1);//根据#通道设置DP_TST_EN,锁定FIFO错误
write_csr (0x10,0x00);//禁用PV (允许char对齐和8b10解码操作)
write_csr (0xFF,0x01);//选择第1页
}


void tp2_prog_dp159 (XTmrCtr *InstancePtr,u8 link_lanecnt,u16 link_bw){
write_csr (0x4C,0x03);//启用自适应均衡器
write_csr (0xFF,0x00);//选择第0页
write_csr (0x15, 0x18);//清除BERT计数器和TST_INTQ闩锁-- DP159中的自清除
err_cnt = read_csr (0x18);//读取内核Bert计数器[7:0]
err_cnt +=((read_csr(0x19)& 0xF)<<8);//读取核心BERT计数器[11:8]
write_csr (0xFF,0x01);//选择第1页
}

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

    请您分享您的应用程序示意图吗? 我想看看它,看看它是否有问题。 您是否还可以共享有关视频特征的信息? 如刷新率,色位深度,色度采样?

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

    您好,Francisco,

    感谢您的重播。 我们正在主板上尝试3840x2160x60p视频2160视频(4Kx2K60P),刷新率:60F/s,颜色深度:8位, YUV4:4:4,位帧(ch0-ch2:5.95GHz)。  

    实际上,我们已经尝试了SN65DP159在重驱动器和重计时器模式下工作,并使用不同格式的色条:1080p60 (ch0-CH2位速率:1.485GHz),  4Kx2K30P (ch0-CH2位速率:2.97GHz)和4Kx2K60P (ch0-CH2位速率:5.94GHz)。 结果如下:

    视频格式       SN65DP159 处于恢复驱动程序模式       SN65DP159 处于重新计时器模式  

    -----------------------------------------------------------------------------------------------------------------------------------------------------

    1080p60           好的                                 失败

    4Kx2K30P          好的                                 失败

    4Kx2K60P          2个色条中出现颜色错误                 失败

    “OK”表示 电视可以显示色条,颜色正确。

    “失败”意味着电视可以显示条,但颜色完全错误。

    听起来,我们尚未启动设备以重新计时器模式工作。

    SN65DP159是由I2C控制的。我会试着给你们发送一张原理图的图片。

    谢谢!

    盛华

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

    您好,Francisco,

    我的工作PC没有连接到互联网,我只是在 这里附上了一张示意图的照片。 很抱歉,我不是很清楚。

     谢谢!

    盛华

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

    你好,沈华

    很抱歉,但从图片上看,查看示意图有点困难。 我附上一份核对表,请与您的原理图进行比较,如果您发现不同之处,请修复并告知您的结果。

    通过快速查看,我无法在OE引脚处找到任何电容器,这是必要的。 如果此引脚上有一个上拉电阻器,则不需要它,因为它有一个内部上拉resistor.e2e.ti.com/.../dp159Checklist.xlsx

    此致

    弗朗西斯科

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

    您好,Francisco,

    我根据您的列表检查了原理图,发现2个引脚为NC: eq_sel/A0和  swap/pol。 对于OE,我们有一个按钮和一个0.1uF盖帽。

    但是,当EQ_SEL/A0和  SWAP/POL通过68K欧姆电阻器向下拉至GND时,色条仍然是来自我们的板的错误输出。  

    我在第一篇文章中列出的SN65DP159的过程或注册设置是否有任何错误?

    我们没有在SCDC总线上使用设备的snoop功能,因此我们将Reg[0x0B].[1]/[0]设置为1s (在第0页上),以便使用2.0 4Kx2K60P视频。 是否正常?

    在设备上的PRBS23检查中,如果一切正常,从Reg [0x0F](Page0)读取的值是多少? 我们尝试了此类测试,Reg [0x0F]读取0x1E,0x00,...,始终更改。

    谢谢!

    盛华

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

    根据你在第一条评论中的描述,我想确认一些事情。 您使用的是哪种来源? 您是否有LVDS信号? 如果是,很遗憾,DP159不是正确的设备,则此设备可与交流耦合TMDS信号和Display Port Dual模式配合使用。 我们还有其他设备可以处理这一问题。

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

    您好,Francisco,

    我们向SN65DP159提供的视频源是 来自HD38TX的视频(40x2160,60F/s) 2.0 , TMDS编码,串行化并以LVDS模式传输。   

    谢谢!

    盛华

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

    很抱歉耽误我的时间,我不在办公室。 我可以看到的问题是,您在输入中处理LVDS模式,而这些信号是不同的,您可以通过TMDS发送这些信号。 此设备能够与交流耦合TMDS或显示端口双模式配合使用。 如果你可以用这种来源测试,我认为你应该有好的结果。
    另一方面,我也再次查看了您的原理图,我发现您的I2C上拉电阻器是错误的。 我们建议使用2k上拉电阻器。 您能否上传pdf格式的示意图? 我想详细了解一下。

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

    您好,Francisco,

    感谢您的努力和帮助。 我的问题主要是SN65DP159的重新计时器工作模式。

    正如你所说,我把I2C总线上的上拉设置更改为2K,但问题一直到现在。 我还检查了SN65DP159的输入,Vswing (差速器输入的Vpp)在范围内。 在复位驱动器模式下,电视上的4kx2k3p色条显示正常,因此在复位器模式下,故障可能是由于输入计时,寄存器设置或其它原因,而不是由于输入模式。  

    在重新计时器模式下,芯片是否重新对齐从3个数据通道捕获的信号? 如果是,它何时 对齐数据? 应向其提供什么特殊的数据模式?  

    我还想通过S/W调整3个数据通道FPGA侧的输出计时(校准类型),但是S/W如何知道通道的特殊延迟是否正常? SN65DP159在寄存器中是否有此类反馈线索?

    (尽管我认为这是必要的,但很抱歉,我没有办法上传我们原理图的pdf文件。 公司的政策阻止了流出。)

    谢谢!

    盛华

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

    Shenhua您好!

    从最初的E2E帖子中,您似乎正在 使用DP159的xmode的示例代码。  仅当DP159用作DP到DP再定时器时,才应使用Xmode。  这似乎不是您的用例。   尝试在没有该代码的情况下运行DP159,只需使用默认引脚配置,您就可以看到重新计时器模式正常工作。

    此致,

    JMMN

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

    如JMMN所说,请尝试仅使用默认引脚配置进行测试,并告知我们您的结果。 另一方面,如果您愿意,您可以通过电子邮件向我发送示意图,如果可以,请告诉我,我可以向您发送电子邮件。

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

    您好,Francisco和JMMN:

    我尝试了JMMN提到的方法,它确实有效,我只设置了2个寄存器(ReG[0x0B]=0x9b,然后ReG[0x0a]=0x3f)重置后,电视现在可以显示色条。 非常感谢。

    BRS,

    盛华