SuperIC社区_

标题: 如何解决背光闪的问题 [打印本页]

作者: AlexWeng    时间: 2017-3-23 00:28
标题: 如何解决背光闪的问题
本帖最后由 AlexWeng 于 2017-3-23 00:30 编辑

如何解决背光闪的问题

关键字:PWM DC 背光闪
适应机种:MST6M181/182/306/309
         背光调节分PWM调光和DC调光两种。如果某些参数设置不对,就会导致背光闪。下面分情况说明:
    1.DC调光
    这种情况下出现的背光闪绝大多数跟频率有关。一般情况下,我们要将频率调至几十KHz,当然具体情况要根据屏的规格书而定,一般30K比较通用。调节频率的地方见下面代码的红色部分。
    2.PWM调光
    这种情况背光闪分两种情况。第一种同DC调光。第二种情况是PWM的所谓的VDBEN属性造成的。该属性见下图。一般这种属性设错后,从波形上我们也看的出来,即在主PWM方波旁边会出现一小尖波。具体代码修改见蓝色部分。
#if(defined(ADJUST_BACKLIGHT_TYPE)&&ADJUST_BACKLIGHT_TYPE)//added by Weng ,ADJUST_BACKLIGHT_TYPE为1表PWM调光
#define PWM0_SYNC_WITH_VSYNC  1
#else
#define PWM0_SYNC_WITH_VSYNC 0
#endif
#define PWM1_SYNC_WITH_VSYNC 0
#define PWM2_SYNC_WITH_VSYNC 0
#define PWM3_SYNC_WITH_VSYNC 0
//-----------------------------------------------------------------------------
void Mst_PwmPortInit( void )
{
    PWM_DbgLv   PWMDbLv = E_PWM_DBGLV_NONE;
    PWM_Result  PWMRet  = E_PWM_FAIL;
    PWM_ChNum   PWMPort;
    if(PWMRet == MDrv_PWM_Init(PWMDbLv))
        printf("PWM initial FAIL  !!!\n");
#if defined(PWM_UNIT_DIV)
    MDrv_PWM_UnitDiv(PWM_UNIT_DIV);
#else
    MDrv_PWM_UnitDiv(0);
#endif
#if defined(PWM0_PERIOD) && defined(INIT_PWM0_DUTY)
    if ( !PAD_PWM0_IS_GPIO )
    {
        PWMPort = E_PWM_CH0;
#if defined(ADJUST_BACKLIGHT_TYPE)//added by Weng
  MDrv_PWM_Period(PWMPort, BACKLIGHT_PERIOD);//调这里频率变动比较大
        MDrv_PWM_DutyCycle(PWMPort, INIT_PWM0_DUTY);
  MDrv_PWM_Div(PWMPort, BACKLIGHT_FREQUENCY);//细调频率调这里
#else
  MDrv_PWM_Period(PWMPort, PWM0_PERIOD);
        MDrv_PWM_DutyCycle(PWMPort, INIT_PWM0_DUTY);
        MDrv_PWM_Div(PWMPort, 0);
       #endif
        MDrv_PWM_Polarity(PWMPort, NON_INVERSE);
#if PWM0_SYNC_WITH_VSYNC
        MDrv_PWM_Vdben(PWMPort, YES);
#else
        MDrv_PWM_Dben(PWMPort, YES);
        MDrv_PWM_ResetEn(PWMPort, YES);

#endif
        MDrv_PWM_Oen(PWMPort, 0);   /* Set 0 for output enable */
    }
#endif
......
}


作者: Jack.Lin    时间: 2017-12-31 23:58
走过路过,不要错过。
作者: xuludestiny    时间: 2023-2-22 09:16
收藏学习,细节地方,平时不一定发现的了




欢迎光临 SuperIC社区_ (/) Powered by Discuz! X3.3