屏就是乙個裝置,我們在給它上電後,它需要有一段時間後才啟動完畢,對於大多數屏來講,這個時間都比較短,一般要求大於幾十毫秒,之後我們就可以給它送data & clock;
當它收到我們的訊號後,它開始要安排輸出,這個準備的時間會比較長,不同的屏差異也比較大,普遍是在800ms~1400ms。在這個時間裡,
我們不能將背光開啟,否則就會看到各種閃線或是花屏。這兩個delay 資料都可以從屏的規格書裡找到。
mstar panel ,vb1上電是分開的,但是針對不同的屏 時,時序有差異,也就是這兩者的啟動時間間隔是不一樣的,下面我們分享一下除錯經驗。
從硬體原理圖上看,panel on/off 由pin d2 控制;vb1 由pin e4 控制。
這兩個pin都屬於簡單的gpio口,只需要配置為輸出模式,通過高低電平來控制外設。
原理圖上面的pin 在board 資訊裡面定義,e4,d2如下:
#define ball_e4 pad_gpio0_pm
#define pad_gpio0_pm 6
#define gpio_pad_6 gpio5
#ifndef ball_e4_is_gpio
#define ball_e4_is_gpio 0
#endif
#ifndef pad_gpio0_pm_is_gpio
#define pad_gpio0_pm_is_gpio ball_e4_is_gpio
#endif
#define ball_d2 pad_sar2
#define pad_sar2 32
#define gpio_pad_32 gpio31
#ifndef ball_d2_is_gpio
#define ball_d2_is_gpio 0
#endif
#ifndef pad_sar2_is_gpio
#define pad_sar2_is_gpio ball_d2_is_gpio
#endif
@ vendor\mstar\supernova\projects\board\m7221\chipinfo\msd96buxm8.h
有了pin 的定義,我們就可以定義其功能,狀態。
mboot 配置
//panel
#define pad_sar2_is_gpio gpio_out_low //panel_on/off(l: panel off h: panel on)
//vbl_ctrl
#define pad_gpio0_pm_is_gpio gpio_out_low //h : backlight off ,l : backlight on ,
@ vendor\mstar\mboot\mboot\sboot\inc\m7221\board\bd_mst160d_ah_m7221.h
mboot 裡面配置d2 為輸出模式且預設輸出low狀態,e4 也是為輸出模式預設輸出low 狀態
supernova 配置
static gpioinfo_t board_gpio_setting[board_gpio_num] = , //panel_on/off
// vb ctrl
,
......
}@vendor\mstar\supernova\projects\board\m7221\serials\mst160d_10abqm_18443_dtmb_ah\board.h
在supernova 中配置完成以後,就通過panel_ctl,inv_ctl來控制著兩個gpio狀態。
狀態控制
void mapi_display::internalonoff(mapi_bool bon)
}if (gptr2 != null)
delaytime = g_ipanel.ontiming(e_apipnl_power_timing_1);
os_delay_task(delaytime);
g_ipanel.enable(bon);
#if (enable_lite_sn == 0)
#if (mstar_tvos ==1 )
if(mapi_display::get_bootlogo_display() == false)
#endif
#endif
delaytime = g_ipanel.ontiming(e_apipnl_power_timing_2);
os_delay_task(delaytime);
if (gptr1 != null)
}else
delaytime = g_ipanel.offtiming(e_apipnl_power_timing_1);
os_delay_task(delaytime);
g_ipanel.enable(bon);
delaytime = g_ipanel.offtiming(e_apipnl_power_timing_2);
os_delay_task(delaytime);
if (gptr2 != null)
}}@\vendor\mstar\supernova\mstarsdk\src\display\mapi_display.cpp
mapi_gpio::getgpio_dev 分別獲取兩個gpio的控制指標,
首先判斷屏和背光是否已經全部開啟;
如果開啟則返回,反之進入下一步;
先拉高d2,進行屏供電;
中間通過ontiming,分別給屏兩個時序控制;
// e_apipnl_power_timing_1,e_apipnl_power_timing_2
時序給完之後,拉高e4,背光開啟;
上面是標準的屏上電,背光開啟的流程。針對不同屏的時序除錯,需要通過屏參檔案的引數進行調整
###########################
# output tmming setting #
###########################
.............
m_wpanelontiming1 = 30;
m_wpanelontiming2 = 200;
m_wpanelofftiming1 = 220;
m_wpanelofftiming2 = 10;
.............
在panel vcc 上電到 panel data&clock 過程中,給時序m_wpanelontiming1; 在paneldata&clock到 開啟背光的過程中
給時序m_wpanelontiming2。
m_wpanelofftiming1,m_wpanelofftiming2 為關機斷電時序引數。
在應用上通過apipnl.h中定義api g_ipanel.ontiming,g_ipanel.offtiming來設定。
Mstar 848 修改背光頻率
mstar 848 修改背光頻率 背光頻率 針對 pwm 調光的頻,每個型號的屏有乙個背光的頻率範圍。如果背光不在 要求的範圍內,就會出現乙個滾動的黑條 水波紋 占空比 針對 pwm 背光的屏,用來調節背光的亮度,當正占空比越大時,背光越亮,越小時,背光就暗。當占空比不在 100 時,使用手機拍照,...
Mstar平台編譯說明
直接把cygwinportable.exe解壓縮到c盤根目錄即可,不需要單獨安裝rvct和cygwin 執行c盤根目錄的cygwin.bat,切換目錄至proj下,新工程config使用.tng configure.pl命令 新編譯使用make release speed或者make release...
linux 驅動除錯筆記二 背光
2014年1月6號 遇到的問題 背光出現混亂 現象描述 背光0 255,背光從0到255,亮度出現跳變,在中間 100 可能最亮,在255 檢視了一下使用的背光電源晶元資料,上邊有兩種調節的方法 根據上面的表,發的脈衝越少,輸出的電流值越大,用option1方法寫的程式不管怎麼調節,得到的背光值總是...