相信大家调试TV,配屏的时候,会经常出现USB播放视频画面滚动。
这个问题出现频率很高,通常也都知道是调试maxset和minset和Total,但是可能调试起来可能没有什么方向,以下是一个比较有效的调试方法。
附件是一个mstar给的V56的一个开XC log的lib(其它NonOS方案可以直接找mstar要这样一个lib或者就直接先用V56RJ来点),导入后,播放视频抓下打印可看到:
[XC,LPLL][MDrv_SC_set_output_dclk, 3410] u32PllSet = 0xF01896, u32UpBound = 0x73A83A, u32LowBound = 0x33F84C
其中u32Pllset值必须要落在minset和maxset之间。
但是如上面的u32PllSet值显然偏大,是不正常的,因此通常在E_PNL_CHG_VTOTAL的模式下,加大Htotal值,即可减小u32PllSet,使其与算出来的masxet和minset的理论值差距不要太大(算法如下:),最后微调maxset和minset使u32PllSet在这两个值之间,USB下播放视频画面滚动问题即应该可以解决。
算法:
#define PNL_MAX_SET (DWORD)((216*524288*16)/(PNL_MIN_DCLK*7*(2-PNL_DUAL_PORT)))
#define PNL_MIN_SET (DWORD)((216*524288*16)/(PNL_MAX_DCLK*7*(2-PNL_DUAL_PORT)))
其中:216是Mstar芯片的频率
这里也提醒对于有些小分辨率的屏,规格书拿不到的情况下不要以为Total值就是比分辨率大一点,也可能大很多!