适用范围:具有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();
}
}
|