前段时间,客户给我们反馈说是 在HDCP Rx 1.X CTS时, 多个items(1A_01, 1A_09, 1B_01a, 1B_01b, 1B_04b, 1B_05, 1B_06) fail。
从他们失败的log看,主要是如下错误
The encryption enable/disable value was not transmitted during the valid period (The valid period is anywhere from 512 to 528 pixel clocks inclusive from the active edge of VSYNC). The measured values are: Minimum number of pixel clocks: 511 Maximum number of pixel clocks: 527 |
HDCP CTS Spec明确规定,如果下面这3种case只要有一种发生,就会fail
在valid period收不到Encrption enable/disable value; 在keep-out period, 收到Data island或video data了;在LineKeyCal period收到了data island。
回到上面这个log,它就是失败在第一个case,即在检测到 vsync active edge后的第512个pixel到528期间 没有收到CTL3(enc_en/diable signal)。根据HDCP CTS spec,它只支持3个formats: 640x480; 480p and 576p。通过CEA spec 查阅到这3个formats 的vsync polarity 为负,而其它CEA formats,如720p等的极性均为正。 是不是HDCP CTS tool 只检测极性为负的Vsync?
后来客户的反馈印证了这个问题,他们SOC不小心输出720p格式,从而导致大面积的CTS fail。
问题总结: 遇到多个hdcp cts items fail类的问题,结合log,要先check是不是测试的format弄错了,毕竟如前所述,HDCP1.x CTS 只支持三种格式:640x480, 480p and 576p。
看似这个问题很简单,但很多客户经常会犯这样的错误。 费了很多时间debug,也没有进展。然后搬来一堆设备来我们公司寻求support,结果竟然是这样的问题。
特在此写篇总结,以警示后面的人不要烦类似的错误。:)