码迷,mamicode.com
首页 > 其他好文 > 详细

DVBS/S2在数字电视系统中的应用 七 (DVBS/S2案例分析之一)

时间:2016-04-19 19:48:43      阅读:1124      评论:0      收藏:0      [点我收藏+]

标签:

DVBS/S2在数字电视系统中的应用 七 (DVBS/S2案例分析之一)


前面六篇文章,老谢简明扼要的介绍了DVBS/S2接收系统中的LNB、DiSEqC、Unicable等知识。今天老谢想给大家分享一个最近发生的DVBS/S2相关的问题。


话说这个问题还算有难度,在老谢接手之前,已经有我的同事配合demodulator供应商以及终端客户三方处理了将近两个月时间。截至老谢接手此问题时,还未找到root cause,甚至可以说问题更加发散,到了无法收敛的地步。恰逢此时我的同事家中有事,需休假,老板就派老谢出马,记得当时还玩笑性质的和老板说道,终于是老谢站出来的时候了……


问题现象

言归正传,问题现象是:In satellite source after standby on off, TV is going to No Signal case,即在观看DVBS节目时,遥控器关机电视(不是关交流电哦)再按遥控开机(DC off/on),出现无信号的现象(即no signal)


现场环境接法

问题现场:DUT通过连接一个DiSEqC switch再连接到卫星,如下图:

技术分享


现象凌乱

在老谢接手此问题时,之前的一些信息总结如下:

  1. 我们在国内没有实际的欧洲卫星信号;
  2. 终端客户位于欧洲土耳其,时差较中国晚6小时,导致信息反馈非常慢;
  3. 同期客户有报另外一条问题,即DVBS扫台漏台。之前在分析DC off/on no signal问题时,将漏台问题搅在一起;
  4. 由于问题处理太久时间了,终端客户已经失去耐心,不愿做实验,量波形等;
  5. Demodulator vendor support力度不够;
  6. DC off/on概率性no signal? 到底是OK还是NG呢?信息不确定;
  7. DC off/on后切台很小几率的能出画面?信息不确定;
  8. AC on 100% OK;
  9. 对比机是OK的;

Debug flow

以上的信息已经非常混乱,使得问题越来越发散,无法聚焦问题点。此时,最好的办法是”归零法”,即重新审视这个问题,找到处理该问题的切入点,老谢找的切入点是:

  1. AC on 100% OK;
  2. DC on NG,无论是概率性NG,还是100% NG。

结合老谢的软件功底,我知道无论是AC on还是DC on,播放一个界面的flow是固定的,即:

  1. 设定DiSEqC command,使得正确的卫星信号可以通过DiSEqC switch进入到电视端口;
  2. 待第一步完成后,软件flow会去tune相应的频率,从而解出相应的电视界面(显示出画面)。

经过初步分析,基本感觉是第一步设置DiSEqC command出错的可能性比较大。在公司虽然没有欧洲现场的卫星信号,无法直观的看到“no signal”现象,但是,老谢可以量测波形。事不宜迟,说干就干:

  1. 通过量测对比AC on和DC on的LNBC输出电压13V or 18V,没有异常,即都能正常输出正确的电压;
  2. 继续比对调制于LNBC电压上的22k tone,果不其然,真让老谢抓到了差异点,即DC on时LNBC虽然有输出LNBC电压,但是没有输出22k调制信号。
    AC on
    技术分享

    DC on
    技术分享

如此,我们基本可以确认问题点:DC off/on电视起来后,按照正常的软件flow去tune某个台,但是由于发出去的DiSEqC command异常,使得DiSEqC switch没有正常响应,从而出现no signal现象。


如何修改

虽然老谢也算是处理过不少的DVBS相关的问题,但是面对这个搞了快两个月的问题,在找到问题点的瞬间,老谢还是非常激动的(这一刻是最有成就感的)。目前只是找到问题点,但问题还没有完,平复心情后,开始思考一个问题,为何在DC off/on后22k就消失了呢?

带着问题,继续往下分析,老谢通过示波器、万用表等仪器量测了LNBC的外围信号,并未发现异常。AC off/on, DC off/on都是和开关电相关的,那么老谢脑子里自然浮现出一个必须要做的实验,即给LNBC外灌12V供电的实验。

说干就必须干,待H/W rework完毕后,老谢做了这样的分析:

  1. 先给LNBC外灌12V,然后TV AC on,此时LNBC output正常;
  2. 此时,再DC off/on TV,LNBC 12V保持不变,测试LNBC output依然OK;
  3. 继续实验,先AC on TV, LNBC 12V不供电,待系统起来后,再给LNBC供12V电,此时LNBC out NG;
  4. 再DC off/on,LNBC 12V保持12V,此时依然NG;

可见, 一旦LNBC断电后再起电,只有AC on能OK, DC on NG。那么,AC on 和DC on对LNBC的操作不一样。

再看LNBC规格书,在规格书中,发现如下有关22k的内容:

技术分享

技术分享

  1. 发现sub address = 0x03这个寄存器必须要小心;
  2. 那么,在这样的情况下,通过如下CLI读取LNBC的寄存器0x03的值(sif.xr 1 0x100 0x10 1 0x03 1)
    a. AC on起来后,0x03的值为0x01,合理的;
    b. DC on起来后,0x03的值为0x00,不合理,spec上有说,reset后,每bit都为0。
  3. 请欧洲现场试(sif.xw 1 0x100 0x10 1 0x03 1 0x01)将正确的寄存器值设定到电视平台中,写下寄存器画面即刻恢复。

至此,我们算是找到了root cause。


回归软件

找到root cause后,自然就想到driver code中,DC on时,某个判断标志没有让LNBC正常initial。

果不其然,DC off时,如下图的全局变量没有清掉,DC on时,就不会再做LNBC initial。但是LNBC在DC off时已经被断电,DC on寄存器的值为reset后的default值。

技术分享

如上图中修改,在DC off时将该标志位清零,DC on时,就会正常initial LNBC了,从而能正常输出LNBC waveform,即能正常出画面了。


事情还没有完

本以为这一问题到此结束了,但是终端客户在现场测试上面solution时,发现DC off/on起来后出现画面之前会有3~4秒左右的no signal。老谢也是蒙圈了。怎会这样?

疑惑之后,细想问题还时需要从根本的LNBC waveform入手,于是再次开始量测波形,果然又有发现:

技术分享

从波形看出,在每次发送DiSEqC command之前都会出现一次电压变化的瞬间。大胆假设,小心求证,是否有可能正是这个power drop使得DiSEqC switch工作异常才会出现那3~4秒的no signal现象呢?

trace driver code后,发现软件在设置18V电压时,都会强制先设在13V,再设在18V,从而我们在波形上看到power drop的现象。

技术分享

最后,请客户将这个非常奇怪的行为去掉后,加上前面的一个修改,验证DC off/on no signal问题OK。

至此,此问题算是完全处理OK了。


非常感谢你看老谢这么啰嗦的文章分享,如有问题,欢迎联系老谢。


itxiebo
20160418

DVBS/S2在数字电视系统中的应用 七 (DVBS/S2案例分析之一)

标签:

原文地址:http://blog.csdn.net/itxiebo/article/details/51184788

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!