找回密码
 立即注册
快捷导航
电子元器件供应链服务平台芯联额温枪解决方案
查看: 2891|回复: 2

HDMI接先锋DVD,DVD开机,电视无法开机问题分析解决办法

[复制链接]
  • TA的每日心情
    奋斗
    2018-5-20 18:10
  • 签到天数: 45 天

    [LV.5]常住居民I

    50

    主题

    161

    帖子

    3291

    积分

    金牌会员

    Rank: 6Rank: 6

    积分
    3291
    发表于 2016-9-28 15:02:46 | 显示全部楼层 |阅读模式
    适用范围:MStar的V59 V69 MSD3393
    关键字:CEC   HDMI  无法开机
    问题: HDMI接先锋DVD时整机关机,DVD随着关机,但DVD再开机,电视却无法通过CEC唤醒开机。

    分析及解决办法:
    1、对比测试发现3391是正常的;
    2、众所周知,整机在收到以下三者之一才会通过CEC唤醒开机;
            case E_MSG_ACTIVE_SOURCE:             //broadcast, if addressed, ignored
            case E_MSG_OTP_IMAGE_VIEW_ON:     //if in standby, firstly power on
            case E_MSG_OTP_TEXT_VIEW_ON:     //if in standby, firstly power on
    3、接上882E,发现在DVD开机后,DVD并没有向3393发送能够通过CEC唤醒的命令(以上第2条三者之一),如附件图“DVDPowerOn_And_3393NotPowerOn.jpg”所示;
    4、接上882E,发现与3391相比,3393在整机关机时与DVD的CEC通信多了许多CEC ping,如附件图“3393_整机_power_off.jpg”所示;
    5、查看PM Code(3393 PM code与Sboot在一块),发现3393的PM Code中的void msAPI_CEC_ProcessCmd(void)里面多了如下代码,这些代码会导致整机在关机进入standby后会向DVD发送一些CEC指令,结果DVD在开机起来后就没有发送以上第2条三者之一的命令,所以把以下这段代码屏蔽掉后,整机关机DVD跟着关机后,当DVD再开机这时DVD就会有发送CEC唤醒命令给整机,于是整机就可以开机起来。
        #if SYSTEM_INFORMATION_SUPPORT
            case E_MSG_SI_REQUEST_PHY_ADDR:   
                CEC_DPRINTF(printf("got E_MSG_SI_REQUEST_PHY_ADDR \r\n"));
                if (MApi_CEC_CheckFrame(E_TRANS_DIRECT_MSG, 2)==0)  break;
       
                CEC_DPRINTF(printf("Report Power Status \r\n"));
                MApi_CEC_Msg_ReportPhycalAddress();
                break;
            case E_MSG_SI_REPORT_PHY_ADDR:
            {
                MS_U8 txbuf[2];
                txbuf[0] = para0;
                txbuf[1] = para1;
                CEC_DPRINTF(printf("got E_MSG_SI_REPORT_PHY_ADDR \r\n"));
                if(MApi_CEC_CheckFrame(E_TRANS_BROADCAST_MSG, 5) == 0) break;
                MApi_CEC_SetActivePhysicalAddress(para0, para1);
                CEC_DPRINTF(printf(" = SetActivePhysicalAddress 0x%x", para0));
                CEC_DPRINTF(printf(" 0x%x = \r\n", para1));
                MApi_CEC_SetActiveDeviceType((MsCEC_DEVICE_TYPE) para2);
                CEC_DPRINTF(printf(" = SetActiveDeviceType 0x%x = \r\n", para2));
                if (enDevice != E_LA_BROADCAST)
                {
                    MApi_CEC_TxSendMsg(MApi_CEC_GetActiveLogicalAddress(), E_MSG_OSDNT_GIVE_OSD_NAME, 0, 0);
                }
            }
                break;
        #endif


    DVDPowerOn_And_3393NotPowerOn.jpg
    3393_整机_power_off.jpg
    3391_整机_power_off.jpg
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-2-7 18:41
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    66

    主题

    207

    帖子

    806

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    806
    QQ
    发表于 2016-9-28 22:48:03 | 显示全部楼层
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    0

    主题

    28

    帖子

    145

    积分

    注册会员

    Rank: 2

    积分
    145
    发表于 2020-1-9 14:46:57 | 显示全部楼层
    不错的学习资料,谢谢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    社区