微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 6515内置背光无法调节亮度?

6515内置背光无法调节亮度?

时间:10-02 整理:3721RD 点击:
6515内置背光无法调节亮度?

你的FLASH 是EMMC 的,还是NAND的?
加PWM控制

你是用的哪种Mode?

boost 模式 ?

{"lcd-backlight",     MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_LCD_BOOST

flash是nand

上层 给出来的等级是0 -255
boost 等级只有0- 15 级 所以要除以17

你的FLASH 是EMMC 的,还是NAND的?----另有目的,与此问题无关。
加PWM控制----这个跟问题有关。

背光一般都用PWM进行控制吧,对于智能机而言,一般都有8颗以上的灯

背光一般分pwm和线控(实际上也是模拟pwm)2种控制方式:
共同点:都要在kernel里面cust_leds.c文件中做相应的配置,对应的uboot也要做与kernel一样的配置;
不同点:
1.pwm模式:(通过调节pwm的占空比来控制背光灯的电流,达到调节背光的目的)
上层传下来的是0~255,我们可以在leds.c文件中将其转行成0~64(0~32和32~64),这样做就是要把与占空比的算法对应起来,eg:pwm_setting.PWM_MODE_FIFO_REGS.SEND_DATA0 =  (1 << level) - 1;这个就是用来算占空比的。
2.线控模式:(查看背光Ic中用来模拟pwm的对应的gpio脚,通过拉高拉低延时来模拟出一个周期的方波,所谓的线控就是不同级别的光(0~255)对应多少个周期方波的问题)
这里面通常所说的多少个级别,这要看相关的datasheet ,它让你分y级别,你就分y个级别,即把0~255 分成y份(不是均分,类似一个等差数列),不同的级别对应不同的周期数目的方波,从而达到调节背光的目的。

需要 修 改 一下  等級映射, 我 是 直接除以17
else if(pmic_type == MT65XX_LED_PMIC_LCD_BOOST)
        {
                /*
                if(backlight_init_flag[1] == false)
                {
                        hwBacklightBoostTuning(PMIC_PWM_0, 0xC, 0);
                        backlight_init_flag[1] = true;
                }
                */               
                if (level)
                {
                        level = brightness_mapping(tmp_level);
                        if(level == ERROR_BL_LEVEL)
                                level = tmp_level/17;
       
                        upmu_boost_isink_hw_sel(0x1);
                        upmu_boost_mode(PMIC_PWM_0);
                        upmu_boost_cabc_en(0);

好的 谢谢 学习了

我现在 在 划动 背光 调节亮度 的时候出现 屛 闪的 情 况 ,
{"lcd-backlight",     MT65XX_LED_MODE_CUST, (int)Cust_SetBacklight},
Cust_SetBacklight
        mapped_level = 16 - (level - 25)/15 ;   ///level:30~255, mapped_level:1~16
        n = mapped_level<=16 ? mapped_level : 0;

你是一线脉冲方式的控制的背光还是PWM控制的背光?
有些一些脉冲方式IC是要记住上次脉冲个数的,需要发的脉冲个数不是这次新算出来的个数,如果这个没算对,背光就会跳,亮的会变暗的,暗的会变亮的

mark
学习了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top