搜索
 找回密码
 立即注册

简单一步 , 微信登陆

TV待机下,DVD开机或按Play键无法通过CEC唤醒电视的解决办法

作者:Jack.Lin | 时间:2016-9-28 14:42:36 | 阅读:10254| 只看该作者

适用范围:具有CEC功能的MStar平台
关键字:    CEC唤醒 HDMI

问题现象:CEC功能打开,电视在待机下,DVD开机或按play键无法通过CEC唤醒电视。
分析:        在PM CODE中加入接收CEC的打印信息,发现在电视待机状态下,DVD开机或按play键并没有发送CEC指令出来给电视,量测Hotplug脚发现此时为低电平。
原因分析:在Hotplug脚为低时,此DVD并不会发送CEC指令,同我前面发贴中提到的原因其实是一样的。
解决办法:在电视任何source下进入待机,都在以下函数里面加入红色code,
目的是让电视在进入待机时让hotplug脚拉高,使DVD在开机时或按play键都能够发送CEC指令给电视。
void msAPI_Power_PowerDown_EXEC()
{
    //printf("msAPI_Power_PowerDown_EXEC()\n");
  #if (ENABLE_FACTORY_POWER_ON_MODE)
    {
      #if (EEPROM_DB_STORAGE==EEPROM_SAVE_NONE)
        extern void MApp_DB_SaveNowGenSetting(void);
     #endif
        stGenSetting.g_FactorySetting.g_u8DCOnOff = EN_POWER_DC_OFF;
        MApp_SaveFactorySetting();
#if (EEPROM_DB_STORAGE==EEPROM_SAVE_NONE)
        MApp_DB_SaveNowGenSetting();
#endif
    }
    MApp_Power_SetPowerMode();
  #endif


  #if ENABLE_CEC
    msAPI_CEC_IrdaKeyProcess(KEY_POWER);
    if ((stGenSetting.g_SysSetting.g_enHDMICEC==ENABLE)&& (stGenSetting.g_SysSetting.g_bHdmiCecDeviceAutoStandby==ENABLE))
    {
        MApi_CEC_TxSendMsg(E_LA_BROADCAST, E_MSG_STANDBY, NULL, 0);
    }
    //It has to be config in the HK side. otherwise the cec controller will be lost
    MApi_CEC_ConfigWakeUp();
  #endif

    //To let Hotplug high in standby,to avoid that the tv set can't power on when DVD DC ON,by Jack.lin 20120913
    #if (INPUT_HDMI_VIDEO_COUNT>=1)
    MApi_XC_Sys_SetHPD(ENABLE, MApi_XC_Mux_GetHDMIPort(INPUT_SOURCE_HDMI));
    #endif
    #if (INPUT_HDMI_VIDEO_COUNT>=2)
    MApi_XC_Sys_SetHPD(ENABLE, MApi_XC_Mux_GetHDMIPort(INPUT_SOURCE_HDMI2));
    #endif
    #if (INPUT_HDMI_VIDEO_COUNT>=3)
    MApi_XC_Sys_SetHPD(ENABLE, MApi_XC_Mux_GetHDMIPort(INPUT_SOURCE_HDMI3));
    #endif
    #if (INPUT_HDMI_VIDEO_COUNT>=4)
    MApi_XC_Sys_SetHPD(ENABLE, MApi_XC_Mux_GetHDMIPort(INPUT_SOURCE_HDMI4));
    #endif
    //<---------------
   
    puts("Power down \r\n");
    MApi_PNL_En(FALSE);


    MDrv_Power_ExecutePowerDown();
    while (1) // wait for really sleep
    {
        ;//MDrv_Sys_ClearWatchDog();
    }
}



收藏
收藏0
分享
分享
点赞
点赞48
反对
反对0
该会员没有填写今日想说内容.
回复

使用道具 举报

大神点评3

沙发#
Alanz 发表于:2016-9-28 14:44:35
回复

使用道具 举报

板凳#
Robby.zou 发表于:2016-9-28 22:48:48
该会员没有填写今日想说内容.
回复

使用道具 举报

地板#
steven 发表于:2016-9-29 10:12:49
红色code在哪?
回复 支持 反对

使用道具 举报

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