本文主要针对于开发者使用龙迅MIPI DSI转LVDS/TTL芯片LT9211,在开发过程中碰到的关于PCR 调试的说明指导,让开发者更快速上手。
一、 调试条件
Pcr(pixel clock recover)的目的是把 MIPI 信号中的 pixclk 恢复出来并用于输出稳定的 pixclk,由于无法直接获取到 MIPI 的 pixclk,所以需要通过对比每一行的像素数来确定真正的像素时钟。Pcr 稳定的前提是需要 MIPI 信号有稳定的、周期性的数据流,因此需要先确认源端输出的 MIPI 信号行时间、帧时间是否稳定,消隐行要和有效行的行时间一致,LT9211 内读取的寄存器为:0x8686~0x8687(行时间),0x8688~0x868a(帧时间),注意读取时先往 0x8620寄存器写 0x22。行时间的波动不能超过 3 个系统时钟(即晶振时钟的倒数,25MHZ 晶振的系统时钟就是 40ns),帧时间/行时间为总行数,计算出来的行数不得波动超过 2 行,并且 LT9211 配置的 timing 的总行数 vtotal 要和实际的总行数一致,否则无法将 pcr 调稳。
也可以用示波器/逻辑分析仪测量精确的行时间和帧时间,如下所示:
二、 PCR 寄存器配置
HDMI_WriteI2C_Byte(0xff,0xd0);
HDMI_WriteI2C_Byte(0x0c,0x60); //fifo position
HDMI_WriteI2C_Byte(0x1c,0x60); //fifo position
HDMI_WriteI2C_Byte(0x24,0x70); //pcr mode( de hs vs) bit6:vsync mode;bit5:hsync mode bit4:de mode,一般是三种都选,选择的模式越少条件越宽松
HDMI_WriteI2C_Byte(0x2d,0x30); //M up limit
HDMI_WriteI2C_Byte(0x31,0x02); //M down limit
/*stage1 hs mode*/ //粗调
HDMI_WriteI2C_Byte(0x25,0xf0); //line limit //值越大,条件越严,这是进入细调的条件 1
HDMI_WriteI2C_Byte(0x2a,0x30); //step in limit //值越大,条件越宽松,这是进入细调的条件 2
HDMI_WriteI2C_Byte(0x21,0x4f); //hs_step //粗调的幅度 0xd021 bit[3:0] :高 4 位;0xd022:低 8 位
HDMI_WriteI2C_Byte(0x22,0x00);
/*stage2 hs mode*/
HDMI_WriteI2C_Byte(0x1e,0x01); //RGD_DIFF_SND[7:4]:细调开始调节的条件;RGD_DIFF_FST[3:0]:粗调开始调节的条件//值越大越宽松,如果无法
stable 可以把 1e 适当改大
HDMI_WriteI2C_Byte(0x23,0x80); //hs_step //细调的幅度
/*stage2 de mode*/
HDMI_WriteI2C_Byte(0x0a,0x02); //de adjust pre line
HDMI_WriteI2C_Byte(0x38,0x02); //de_threshold 1
HDMI_WriteI2C_Byte(0x39,0x04); //de_threshold 2
HDMI_WriteI2C_Byte(0x3a,0x08); //de_threshold 3
HDMI_WriteI2C_Byte(0x3b,0x10); //de_threshold 4
HDMI_WriteI2C_Byte(0x3f,0x04); //de_step 1
HDMI_WriteI2C_Byte(0x40,0x08); //de_step 2
HDMI_WriteI2C_Byte(0x41,0x10); //de_step 3
HDMI_WriteI2C_Byte(0x42,0x20); //de_step 4
HDMI_WriteI2C_Byte(0x2b,0xa0); //stable out
三、 判断 PCR 稳定的依据
1、 读 0xd087 bit4 为 1 时粗调稳定,bit3 为 1 时细调稳定,只有粗调稳定了细调才会稳定。
2、读 m、k 值(0xd094~0xd097)不再大幅波动。PCR 稳定后,k 值的后两个字节存在小幅波动属于正常现象,如果 m、k 值一直在跳动说明 PCR 没有稳定。
3、读 0xd098/0xd099 是否和 0xd09a/0xd09b 接近,如果 pcr 稳定,Frist pkt_dec de delay和 Pcr de mode delay几乎相等。
4、如果 PCR 一直处于粗调阶段,即 0xd087 bit4 为 0(粗调不稳定),bit3 为 0(细调不稳定),则需要降低进入细调的两个条件 0xd025/0xd02a,或者降低粗调调节的幅度 0xd021 bit[3:0] & 0xd022 bit[7:0]。
5、如果 PCR 一直处于细调阶段,即 0xd087 bit4 为 1(粗调稳定),bit3 为 0(细调不稳定),则需要降低细调调节的幅度 0xd023 bit[7:0].
6、PCR 稳定后可以把最终稳定的 m 值和 k 值(设定最高的字节即可)设定为初始值(0xd026~0xd027),这样可以使 PCR 更快稳定。
天浩旭科技专注于音视频方案开发,可为客户提供专业的软硬件设计及专用芯片Turn-key服务,基于LT9211的更多应用,我们可提供完整的HDK、SDK服务,可联系我司取得更多相关应用介绍和技术支持。
关注微信号,惊喜等你来
x