Mstar 平台背光時序除錯

2021-09-29 04:21:37 字數 3697 閱讀 7589

屏就是乙個裝置,我們在給它上電後,它需要有一段時間後才啟動完畢,對於大多數屏來講,這個時間都比較短,一般要求大於幾十毫秒,之後我們就可以給它送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方法寫的程式不管怎麼調節,得到的背光值總是...