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

MSD6488:水波纹与PWM动态同步

  [复制链接]

该用户从未签到

1

主题

1

帖子

1

积分

新手上路

Rank: 1

积分
1
发表于 2016-7-21 17:18:10 | 显示全部楼层 |阅读模式
本帖最后由 SMC_lirt 于 2016-7-21 17:18 编辑

平台:MSD6488概述:播放片源时,场频vfreq与PWMfreq不同步时会引起水波纹;以下以场频50hz切到60hz为例
相关内容:同步pwm主要在文件mapi_pql_customer.cpp内,如下:
1、场频变化时,底层会去执行PWM同步函数:void mapi_pql_customer::SetBacklightPWMFreq2PanelVFreq(void);之前msd6488用的不是动态同步pwm,即在同步pwm时直接获取到场频相关的值MS_U32 OutputVFreqX100 = MApi_XC_GetOutputVFreqX100();通过这个值来设定pwm;因为场频相关寄存器的值是一个渐变的过程,所以OutputVFreqX100 值不一定是准确的,从而造成场频和pwm不同步,出现水波纹;基于寄存器值渐变的依据,就有了动态同步的过程;      动态过程:用循环一次次去读寄存器的值,比较前后两次的值看是否已经稳定,当前后两次的差值已经在设定的允许范围之外就去同步pwm;
2、同步pwm时,首先跑到进程void* mapi_pql_customer::threadSignalMonitor(void *arg),通过读寄存器来获取场频值:
        u8TempReg1 = MApi_XC_ReadByte(L_BK_LPLL(0x23));
        u8TempReg2 = MApi_XC_ReadByte(H_BK_LPLL(0x23));
        u8TempReg3 = MApi_XC_ReadByte(L_BK_LPLL(0x24));
        u8TempReg4 = MApi_XC_ReadByte(H_BK_LPLL(0x0c));
        VFreqreg = (MS_U32)u8TempReg3;
        VFreqreg = ((VFreqreg << 16) + ((MS_U32)u8TempReg2 << 8) + (MS_U32)u8TempReg1) & 0x00FFFFFF;
        tempVreq = (MS_FLOAT)24000000 / VFreqreg;
        OutDlck = (MS_U32)(tempVreq * 1000 * (((u8TempReg4 >> 4) & 0x0F) + 1));  // / ((u8TempReg4 & 0x0F) + 1)

        并且与上一个值对比,来确认是否同步pwm;            if(abs(OutDlck_pre - OutDlck) > 20)
            {
                printf("\n\033[1;31m [%s:%d]need to sync \033[0m \n",__FUNCTION__, __LINE__);
                mapi_pql::GetInstance(MAPI_PQ_MAIN_WINDOW)->SetBacklightPWMFreq2PanelVFreq_cus();
                OutDlck_pre = OutDlck;
            }

       整个动态的过程可以通过设定循环次数来保证准确性,这个值可以根据实际情况合理设置;
        if(Compare_Valid_Count == 15)  
                break;

原始问题:如果没有动态同步PWM,在切换片源的时候会有很大的几率出现水波纹;



回复

使用道具 举报

  • TA的每日心情
    开心
    2017-9-27 14:47
  • 签到天数: 31 天

    [LV.5]常住居民I

    25

    主题

    161

    帖子

    1718

    积分

    高级会员

    Rank: 4

    积分
    1718
    发表于 2016-7-21 17:37:13 | 显示全部楼层
    水波纹处理方法
    把水灌满
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-5-29 10:46
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    5

    主题

    13

    帖子

    277

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    277
    发表于 2019-4-7 12:18:15 | 显示全部楼层
    学习了,不知有没MSD6A648的 datasheet呢? 能否帮忙发我一份呢
    大家好!!!!!!
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    社区