日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何配置LCD背光和LED,调试方法

發布時間:2025/4/16 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何配置LCD背光和LED,调试方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


LCD背光和LED配置文件
alps/custom/<proj name>lk/cust_leds.c
alps/custom/<proj name>/kernel/leds/mt65xx/cust_leds.c
drvgen.exe編輯修改codegen.dws
? ? 配置cust_leds.c參數: static struct cust_mt65xx_led cust_led_list[MT65XX_LED_TYPE_TOTAL] = {
?{"red",????????????????? MT65XX_LED_MODE_NONE, -1,{0}},
?{"green",?????????????? MT65XX_LED_MODE_NONE, -1,{0}},
?{"blue",???????????????? MT65XX_LED_MODE_NONE, -1,{0}},
?{"jogball-backlight", MT65XX_LED_MODE_NONE, -1,{0}},
?{"keyboard-backlight",MT65XX_LED_MODE_NONE, -1,{0}},
?{"button-backlight",?? MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_BUTTON,{0}},
?{"lcd-backlight",??????? MT65XX_LED_MODE_CUST_BLS_PWM, (int)disp_bls_set_backlight,{0}},
}; ?? LCD背光
MT6589
使用不同的控制源,配置模式:
1.BL_PWM (BLS_PWM)
?{"lcd-backlight",???? MT65XX_LED_MODE_CUST_BLS_PWM, (int)disp_bls_set_backlight,{0}},
?
2.PWM1~PWM7?
如果是PWM1~4
{"lcd-backlight",???? MT65XX_LED_MODE_PWM, PWM1,{0,0,0,0,0}},
{0,0,0,0,0}表示src_clk=32k時鐘,div=0,HDuration=4; LDuration=4,pmic_pad= 0
頻率計算:32K/(0+1)/64/4=125Hz
如果使用PWM5~7
{"lcd-backlight",???? MT65XX_LED_MODE_PWM, PWM5,{1,1,32,32,1}},
{1,1,30,30,1}表示src_clk=52M時鐘,div=1,HDuration=32; LDuration=32,pmic_pad= 1 (PWM5~7在PMIC6320)
頻率計算:52M/(1+1)/64/32=126.95KHz ?? 3.GPIO脈沖
?{"lcd-backlight",???? MT65XX_LED_MODE_GPIO, (int)Cust_SetBacklight,{0}},
通過實現Cust_SetBacklight(level,div)函數操作GPIO動作 ?? 4.類似OLED屏幕,通過寫LCM 寄存器實現
?{"lcd-backlight",???? MT65XX_LED_MODE_CUST, (int)Cust_SetBacklight,{0}},
通過實現
unsigned int Cust_SetBacklight(int level, int div)
{
mtkfb_set_backlight_level(level);
}
通過mtkfb_set_backlight_level(level);實現的函數指針將level傳到LCM driver
在LCM的driver中實現.set_backlight=lcm_setbacklight, ?? 5.PMIC6320的Isinks
MT6320只有3個Isink,應該不能滿足要求 ?? MT6572
和Mt6589有區別的:
1.PWM1~PWM5
{"lcd-backlight",???? MT65XX_LED_MODE_PWM, PWM1,{0,0,0,0,0}},
{0,0,0,0,0}表示src_clk=32k時鐘,div=0,HDuration=4; LDuration=4,pmic_pad=0
頻率計算:32K/(0+1)/64/4=125Hz
{"lcd-backlight",???? MT65XX_LED_MODE_PWM, PWM1,{1,1,32,32,0}},
{1,1,30,30,0}表示src_clk=66M時鐘,div=1,HDuration=32; LDuration=32,pmic_pad=0
頻率計算:66M/(1+1)/64/32=161.11KHz ?? 2.PMIC6323的Isinks
MT6323有4個Isink,每路24mA電流,可以double為48mA,可以接8個LED
{"lcd-backlight",???? MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_LCD_ISINK,{0}}, ? ?? Button LED ?
MT6589 ? PMIC mt6530有KPD LDO
?{"button-backlight",? MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_BUTTON,{0}},
?
MT6572 ? mt6323沒有KPD LDO,一般兼容使用Isink或者PWM
ISink0和Isink1合并做Button LED
?{"button-backlight",? MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK01,{0}},
注意:如果需要修改電流等級和double current,請修改leds.c
brightness_set_pmic()和led_blink_pmic()
電流等級接口:upmu_set_isinks_chx_step(0x0);//0x0 4mA;0x01 8mA;0x2 12mA;0x03 16mA 0x04 20mA;0x05 24mA
double current接口:upmu_set_isinks_chx_double_en(0x1); ?? PWM1~5
{"button-backlight",???? MT65XX_LED_MODE_PWM, PWM1,{0,0,0,0,0}}, ? ?? LED
MT6589
1.Pre-charger(PCH_DET) LED
主要使用由于關機充電LED,插USB charger點亮,lk階段關閉
如果需要打開PCH_DET:
在mt_leds.c(lk)和leds.c 中要打開pre-charger LED 的控制
Upmu_chr_chrind_on(1);//開啟
Upmu_chr_chrind_on(0);//關閉 ?? 2.使用Isink接LED
?{"red",?????????????? MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK0,{0}},
?{"green",???????????? MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK1,{0}},
?{"blue",????????????? MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK2,{0}}, ?? 3.使用PWM控制LED
?{"red",?????????????? MT65XX_LED_MODE_PWM,PWM5,{0,0,0,0,1}},
?{"green",???????????? MT65XX_LED_MODE_PWM,PWM6,{0,0,0,0,1}},
?{"blue",????????????? MT65XX_LED_MODE_PWM,PWM7,{0,0,0,0,1}},
注意:Mt6589上的PWM在sleep的時候沒有波形輸出的,如果sleep需要閃爍設計,請使用PMIC Mt6320上的PWM(PWM5~PWM7) ?? MT6572
與Mt6589的區別:
1.mt6572沒有pre-charger LED的PCH_DET pin 2.Mt6572的PWM1~5在sleep的時候,都是沒有波形輸出的,設計請注意 3.使用Isink設計時,如果1個isink接2路LED,請注意打開double current,或者step調大 ? ? Flash light
文件:alps/mediatek/custom/<proj name>/kernel/flashlight/constant_flashlight/leds_stobe.c
實現FL_enable()和FL_disable()?
MT6589有專門的flash LDO
MT6572 沒有Flash LDO,可以通過控制PWM,GPIO,ISINK等控制Flash light ?? 上層JNI lib文件
alps/mediatek/hardware/liblights/lights.c
如果需要同時打開2個以上的LED,請修改set_speaker_light_locked()里面的邏輯 ? ?? adb shell調試LCD背光和LED ?? adb命令查看LED或者backlight的亮度status
cd /sys/class/leds/xxx/brightness
(xxx表示的是light的名字,例如green,blue,red分別表示綠燈、藍燈和紅燈,lcd-backlight表示的是lcd背光。)?
如果出現LED或Backlight不正常時,可以通過進入到相應的folder執行如下命令去檢測是否driver有問題:
echo brightness_level > brightness? 檢查是否按照你設置的亮度顯示。 對于LED來說brightness_level只要不是0,driver都會讓led on。 ? LCD背光不支持blink,測試LED blink可以執行如下命令:
cd /sys/class/leds/xxx/
echo timer > trigger??????? 這個命令會創建delay_on和delay_off兩個文件。
echo on_time > delay_on 這個命令用于設置LED on的時間
echo off_time > delay_on 這個命令用于設置LED off的時間(On和off的時間都是以毫秒為單位的。)
echo timer > trigger??????? 命令清除delay_on和delay_off時間,讓led off。
echo none > trigger??????? 刪除delay_on/delay_off 節點? 在kernel_log 可以看到leds.s中函數調用的情況
?? 如 printk("mt65xx_leds_set_cust: set brightness, name:%s, mode:%d, level:%d\n", cust->name, cust->mode, level);
LCD背光和LED配置文件
alps/custom/<proj name>lk/cust_leds.c
alps/custom/<proj name>/kernel/leds/mt65xx/cust_leds.c
drvgen.exe編輯修改codegen.dws
?? 配置cust_leds.c參數: static struct cust_mt65xx_led cust_led_list[MT65XX_LED_TYPE_TOTAL] = {
?{"red",????????????????? MT65XX_LED_MODE_NONE, -1,{0}},
?{"green",?????????????? MT65XX_LED_MODE_NONE, -1,{0}},
?{"blue",???????????????? MT65XX_LED_MODE_NONE, -1,{0}},
?{"jogball-backlight", MT65XX_LED_MODE_NONE, -1,{0}},
?{"keyboard-backlight",MT65XX_LED_MODE_NONE, -1,{0}},
?{"button-backlight",?? MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_BUTTON,{0}},
?{"lcd-backlight",??????? MT65XX_LED_MODE_CUST_BLS_PWM, (int)disp_bls_set_backlight,{0}},
}; ??LCD背光
MT6589
使用不同的控制源,配置模式:
1.BL_PWM (BLS_PWM)
?{"lcd-backlight",???? MT65XX_LED_MODE_CUST_BLS_PWM, (int)disp_bls_set_backlight,{0}},
?
2.PWM1~PWM7?
如果是PWM1~4
{"lcd-backlight",???? MT65XX_LED_MODE_PWM, PWM1,{0,0,0,0,0}},
{0,0,0,0,0}表示src_clk=32k時鐘,div=0,HDuration=4; LDuration=4,pmic_pad=0
頻率計算:32K/(0+1)/64/4=125Hz
如果使用PWM5~7
{"lcd-backlight",???? MT65XX_LED_MODE_PWM, PWM5,{1,1,32,32,1}},
{1,1,30,30,1}表示src_clk=52M時鐘,div=1,HDuration=32; LDuration=32,pmic_pad=1(PWM5~7在PMIC6320)
頻率計算:52M/(1+1)/64/32=126.95KHz ??3.GPIO脈沖
?{"lcd-backlight",???? MT65XX_LED_MODE_GPIO, (int)Cust_SetBacklight,{0}},
通過實現Cust_SetBacklight(level,div)函數操作GPIO動作 ??4.類似OLED屏幕,通過寫LCM 寄存器實現
?{"lcd-backlight",???? MT65XX_LED_MODE_CUST, (int)Cust_SetBacklight,{0}},
通過實現
unsigned int Cust_SetBacklight(int level, int div)
{
mtkfb_set_backlight_level(level);
}
通過mtkfb_set_backlight_level(level);實現的函數指針將level傳到LCM driver
在LCM的driver中實現.set_backlight=lcm_setbacklight, ??5.PMIC6320的Isinks
MT6320只有3個Isink,應該不能滿足要求 ??MT6572
和Mt6589有區別的:
1.PWM1~PWM5
{"lcd-backlight",???? MT65XX_LED_MODE_PWM, PWM1,{0,0,0,0,0}},
{0,0,0,0,0}表示src_clk=32k時鐘,div=0,HDuration=4; LDuration=4,pmic_pad=0
頻率計算:32K/(0+1)/64/4=125Hz
{"lcd-backlight",???? MT65XX_LED_MODE_PWM, PWM1,{1,1,32,32,0}},
{1,1,30,30,0}表示src_clk=66M時鐘,div=1,HDuration=32; LDuration=32,pmic_pad=0
頻率計算:66M/(1+1)/64/32=161.11KHz ??2.PMIC6323的Isinks
MT6323有4個Isink,每路24mA電流,可以double為48mA,可以接8個LED
{"lcd-backlight",???? MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_LCD_ISINK,{0}}, ? ??Button LED?
MT6589?PMIC mt6530有KPD LDO
?{"button-backlight",? MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_BUTTON,{0}},
?
MT6572?mt6323沒有KPD LDO,一般兼容使用Isink或者PWM
ISink0和Isink1合并做Button LED
?{"button-backlight",? MT65XX_LED_MODE_PMIC, MT65XX_LED_PMIC_NLED_ISINK01,{0}},
注意:如果需要修改電流等級和double current,請修改leds.c
brightness_set_pmic()和led_blink_pmic()
電流等級接口:upmu_set_isinks_chx_step(0x0);//0x0 4mA;0x01 8mA;0x2 12mA;0x03 16mA 0x04 20mA;0x05 24mA
double current接口:upmu_set_isinks_chx_double_en(0x1); ??PWM1~5
{"button-backlight",???? MT65XX_LED_MODE_PWM, PWM1,{0,0,0,0,0}}, ? ??LED
MT6589
1.Pre-charger(PCH_DET) LED
主要使用由于關機充電LED,插USB charger點亮,lk階段關閉
如果需要打開PCH_DET:
在mt_leds.c(lk)和leds.c 中要打開pre-charger LED 的控制
Upmu_chr_chrind_on(1);//開啟
Upmu_chr_chrind_on(0);//關閉 ??2.使用Isink接LED
?{"red",?????????????? MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK0,{0}},
?{"green",???????????? MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK1,{0}},
?{"blue",????????????? MT65XX_LED_MODE_PMIC,MT65XX_LED_PMIC_NLED_ISINK2,{0}}, ??3.使用PWM控制LED
?{"red",?????????????? MT65XX_LED_MODE_PWM,PWM5,{0,0,0,0,1}},
?{"green",???????????? MT65XX_LED_MODE_PWM,PWM6,{0,0,0,0,1}},
?{"blue",????????????? MT65XX_LED_MODE_PWM,PWM7,{0,0,0,0,1}},
注意:Mt6589上的PWM在sleep的時候沒有波形輸出的,如果sleep需要閃爍設計,請使用PMIC Mt6320上的PWM(PWM5~PWM7) ??MT6572
與Mt6589的區別:
1.mt6572沒有pre-charger LED的PCH_DET pin 2.Mt6572的PWM1~5在sleep的時候,都是沒有波形輸出的,設計請注意 3.使用Isink設計時,如果1個isink接2路LED,請注意打開double current,或者step調大 ? ?Flash light
文件:alps/mediatek/custom/<proj name>/kernel/flashlight/constant_flashlight/leds_stobe.c
實現FL_enable()和FL_disable()?
MT6589有專門的flash LDO
MT6572沒有Flash LDO,可以通過控制PWM,GPIO,ISINK等控制Flash light ??上層JNI lib文件
alps/mediatek/hardware/liblights/lights.c
如果需要同時打開2個以上的LED,請修改set_speaker_light_locked()里面的邏輯 ? ??adb shell調試LCD背光和LED?? adb命令查看LED或者backlight的亮度status
cd /sys/class/leds/xxx/brightness
(xxx表示的是light的名字,例如green,blue,red分別表示綠燈、藍燈和紅燈,lcd-backlight表示的是lcd背光。)?
如果出現LED或Backlight不正常時,可以通過進入到相應的folder執行如下命令去檢測是否driver有問題:
echo brightness_level > brightness? 檢查是否按照你設置的亮度顯示。 對于LED來說brightness_level只要不是0,driver都會讓led on。 ? LCD背光不支持blink,測試LED blink可以執行如下命令:
cd /sys/class/leds/xxx/
echo timer > trigger??????? 這個命令會創建delay_on和delay_off兩個文件。
echo on_time > delay_on 這個命令用于設置LED on的時間
echo off_time > delay_on 這個命令用于設置LED off的時間(On和off的時間都是以毫秒為單位的。)
echo timer > trigger??????? 命令清除delay_on和delay_off時間,讓led off。
echo none > trigger??????? 刪除delay_on/delay_off 節點?在kernel_log 可以看到leds.s中函數調用的情況
?? 如 printk("mt65xx_leds_set_cust: set brightness, name:%s, mode:%d, level:%d\n", cust->name, cust->mode, level);

總結

以上是生活随笔為你收集整理的如何配置LCD背光和LED,调试方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日夜夜爱 | 久久久久久亚洲精品中文字幕 | 干爹你真棒插曲mv在线观看 | 热久久国产精品 | 国产精品普通话 | 国产精品精品软件视频 | 国产精品久久国产愉拍 | 日日夜夜免费精品 | 999视频在线 | 国产性xxx| caobi视频| 色六月婷婷 | 免费大片黄在线观看视频网站 | 91九色中文 | 免费在线黄网站 | 欧美激情图 | 精品肉丝脚一区二区三区 | 成人学院中文字幕 | 欧美亚洲色图视频 | 亚洲理论电影在线观看 | a天堂在线 | 亚洲午夜精品久久久久久人妖 | 日本高清免费视频 | 久久久久国产一区二区三区潘金莲 | 国产亚洲视频在线 | 欧美日韩在线免费播放 | 影音先锋男人的天堂 | 国产日韩欧美视频 | www色综合 | 精品国产三级a∨在线 | 精品少妇爆乳无码av无码专区 | 激情总合网 | 黑人中文字幕一区二区三区 | 日本欧美久久久久免费播放网 | 国产精品jizz在线观看老狼 | 插插操操| 成人在线播放网站 | 大咪咪dvd| 天天摸夜夜添狠狠添婷婷 | 69av网| 夜夜精品一区二区无码 | 男裸体无遮挡网站 | 欧美色图第一页 | 五月开心网 | 国产午夜三级一区二区三 | 香蕉狠狠爱视频 | 亚洲wwww | 久久综合一区二区 | 欧美视频一区二区三区四区 | 精品视频在线免费观看 | 午夜寂寞院 | 欧美特级黄色录像 | 妺妺窝人体色www在线下载 | 中文字幕人成乱码熟女香港 | 在线视频资源 | 九九午夜 | 日韩一级免费视频 | 黄色在线网| 国产精品日日摸天天碰 | 日韩欧美在线观看一区 | 东方av在线免费观看 | 国产在线观看无码免费视频 | 国产精品久久久久久一区二区 | 四虎影院污 | 日韩国产91 | 亚洲视频色图 | 成人久久在线 | 一级片毛片 | 日韩精品人妻中文字幕 | 97人妻精品一区二区三区动漫 | 91久久国产综合久久91精品网站 | 雪白的扔子视频大全在线观看 | 小泽玛利亚一区二区三区在线观看 | 足交在线观看 | 香蕉久久夜色精品 | 精产国品一区二区三区 | 欧美国产在线观看 | 中文字幕日韩人妻在线视频 | 殴美毛片 | 国产偷v国产偷v亚洲高清 | 777米奇影视第四色 五月丁香久久婷婷 | 96av在线视频 | 亚洲久久色 | 天天色天天插 | 一区二区三区久久 | 欧色丰满女同hd | 99热这里只有精品首页 | 成年人av在线播放 | 成年视频在线播放 | 日本黄色片 | 国产视频污在线观看 | 国产.com | 日本www高清视频 | 国产精品午夜久久 | 日本一区二区三区免费在线观看 | 玖草在线观看 | 国产黄色一区 | 在线观看污污网站 | 天天摸夜夜添狠狠添婷婷 |