MTK lcm除錯總結及解決思路
一、常見lcm問題
LCD會注意到一下問題:
1.gamma是否超標。
2.重新整理率是否合適。
3.flicker現象是否嚴重或能否輕易察覺。
4.ESD是否合格。
5.背光調節是否存在問題,特別是自動調節是否有不平滑現象,或者亮度調定某個範圍螢幕出現閃爍等。
6.圖片顯示是否有失真的現象。
7.是否有噪點等問題。
介面型別:
1.並行介面:
MCU介面,LCD模組須有自己的GRAM。
RGB介面,通過時鐘同步來實現同步傳輸,此模式不需要LCD有GRAM來快取資料。
2.序列介面:
SPI介面。
MDDI介面,高通公司的一種介面方式,傳輸率高,功耗低。
DSI MIPI介面,MIPI聯盟推出的一種高速低耗介面。
遇到的問題:
1.ESD問題。
問題描述:正反打靜電,螢幕出現花屏或黑屏。
問題分析:LCD有可能被打死了,或者與LCD連線的時鐘或資料線被打亂,造成資料亂,顯示花屏。
解決方案:mtk平臺有一個時刻檢測LCD是否受到靜電干擾的執行緒,一旦發現問題會重新初始化LCD,具體的實現可參考MTK提供的文件 “DSI Video Mode Support v1.0.pdf”
2、 未打靜電情況下,如果出現lcm esd 暫存器讀取值返回錯誤的問題,也請聯絡屏廠解決。
3、打靜電時候,如果出現連續閃屏後無法自動恢復,按powerkey可以恢復(或者靜止手機一會,待電荷釋放後,按power可以正常亮屏),出現這種現象的原因是:連續recovery 5次LCM依然無法恢復正常,esd thread被停止。原因是由於LCM積累電荷太多導致。
4、 如果出現打靜電導致,系統hang住或宕機,可以提交e-service,交由MTK處理。
2.TP失效。
問題描述:xxx專案上出現TP偶爾失效的現象。有時開機就無法操作tp,有時開關螢幕就出現無法操作螢幕,有時長時間的使用也會偶爾出現tp失效。
問題分析:通過與TP FAE溝通了解,能夠影響TP的主要因素是LCD的Vcom訊號。同時,通過同LCD FAE溝通也瞭解到,LCD的重新整理率可能也會對TP造成影響。
解決方案:LCD的vcom訊號通過修改調節LCD相關暫存器得到一定的優化,同時TP那邊也通過調節韌體引數,TP失效的出現機率有所降低,最後再將LCD的重新整理率降低一些但不影響絕對實用,問題得到基本解決,測試也再沒發現此問題。
備註:此問題出現在video模式的LCD螢幕上,暫時在command模式的螢幕上沒有發現,同時與之搭配的TP也是很低廉的,做工也不是很精細,或許也是其原因。
3.噪點。
問題描述:在xxx專案上遇到的噪點問題,就是看上去麻點,看上去“很髒”,這個在使用者體驗上很不好。
問題分析:通過與MTK溝通了解,最終鎖定在MTK自己的為實現去除contour現象,就我們肉眼觀察最直接的就是像梯田一樣,一圈圈的,這種現象在一張漸變色彩的圖片上觀察最為明顯,但使用者體驗要好很多。對於contour現象,只是在LCD的解析度低於24bits時才會出現,因為本身的作業系統都是以24bits—RGB888真彩儲存的,最終處理後到LCD顯示,如果LCD低於24bits就會砍掉多餘的位,這樣顯示起來就會失真。
解決方案:①換螢幕,提高到24bits真彩的。②取消MTK自有的去噪功能,同時接受contour現象。最終選定為第二種,因為成本。
4.螢幕閃爍。
問題描述:xxx專案上遇到的問題。在將背光調到最低時,仔細觀察螢幕會看到在閃爍。
問題分析:因LCD背光控制通過PWM,PWM通過佔空比來實現對亮度的調節。PWM可通過調節頻率來降低這種閃爍的機率。
解決方案:提高PWM頻率的同時,對背光調節的亮度範圍重新設定,使其避開了會出現問題的值範圍。
5.xxx出現的開機logo顯示不正常問題。
問題描述:LCD在uboot中顯示不了bootlogo,但是在kernel中重新初始化LCD暫存器的話是可以顯示正常,以後都正常。
問題分析:首先懷疑是uboot中初始化程式碼的問題,但是kernel和uboot都是用的同一份程式碼,所以應該不是這個問題。但是可以比較確定是LCD初始化有問題,我們就會考慮上電是否正確,上電時序是否正確等等。
解決方案:通過排查,發現在uboot中有一個電壓並沒有在IC初始化前上好,這個問題解決了,但是uboot顯示的問題還沒解決,通過上電時序排查,在LCD的3個電壓全部上好後100ms,IC暫存器開始初始化,一般來說,上好電後,IC的正常工作至少應該要幾百毫秒,所以懷疑是上電後IC沒正常工作就開始暫存器設定了。將IC初始化時間延後,問題解決。
6、lcm喚醒時出現瞬間白屏顯現。
問題分析:白屏原因很多。不過白屏認真想一下,可以得到,背光開啟的時間早,mipi資料還沒有重新整理到屏上就打開了背光,所以就出現了白屏。
解決:找了FAE,經過FAE測量背光和mipi的資料,發現,確實是背光開啟的時間要早於重新整理資料的時間。
7、在打電話時,TP出現跳點。
分析問題:TP FAE升級韌體無效,最後懷疑是射頻的干擾
解決:經過檢查,多次做測試,發現確實是射頻訊號,離TP太近,導致TP在頻率為850的時候出現跳點。
閃屏:
[DESCRIPTION]
經常有客戶遇到閃屏問題,直接就提issue到MTK來解,其實這樣做效率並
不高。
因為造成閃屏的原因多種多樣,客戶提供過來的往往是一個現象,有時候
連現象都描述的不夠清楚,導致定位問題的時候難以找到正確的方向。
其實客戶在遇到閃屏問題時,可以做第一手分析,找到一個正確的切入點。
[SOLUTION]
常見的流程可以參考如下:
1、排除背光。
a、 把背光接固定背光,如果仍然閃屏,說明不是背光的問題;
如果屏不閃,說明是背光問題。
b、 如果是背光問題,繼續分析是否有開AAL功能,如果有開
AAL功能,請將AAL功能關閉。如果關閉AAL功能後,屏不閃,說明是
AAL導致的屏閃,請提issue給MTK。如果關閉AAL功能後,屏仍然閃,
請內部確認貴司是否有在framework層做改動,很多情況是由於改動
Framework,繞過LightService直接控制背光結點導致的問題。
c、 其實當定位到是背光的問題了,這個時候就可以提問題給
MTK了,抓取Mobile log給MTK。
2、排除ESD。
a、如果通過第一步(a)排除說不是背光閃,第二步可以檢查是否由於ESD check
導致的閃屏。可以先關閉ESD功能,看顯示是否仍然會閃。如果關閉ESD功能後,lcm不
再閃動,說明是ESD check導致的閃屏。這個時候就可以提把Mobile log抓過來給MTK看了。
如果關閉ESD功能後,lcm仍然閃動,說明和ESD check無關。
3、其他情況。
a、如果背光和ESD都給排除了,這個時候是bug的概率比較大。(常見的情況是待機
的時候不定時的閃屏),請抓取Mobilelog過來給MTK check。
===============================================================================================
開啟AAL功能(自動調節亮度)之後,在開機的時候,發現啟動kernel之後背光亮度會瞬間變亮,然後緩緩變暗。
[DESCRIPTION]
開啟AAL功能之後, 發現啟動kernel之後亮度會瞬間變亮,緩緩變暗。
[SOLUTION]
請先檢查在LK階段,背光亮度是否有做過客製化。
LK階段預設在alps\mediatek\platform\mt6592\lk\platform.c檔案裡面會呼叫
mt65xx_backlight_on();函式來開啟背光,預設設定的背光亮度是255.
如果沒有在LK階段做過背光亮度的客製化,請忽略下面的描述,然後提交一筆e-service。
如果有做過客製化,比如將LK階段的預設的背光亮度從255改動到150,請參考下面的方法:
啟動kernel之後,瞬間變亮然後緩緩變暗的原因:
1. LK啟動之後,會先設定一個亮度150給LED driver
2. kernel啟動之後,會start AAL service,AAL service會預設設定一個初始化亮度值255給LED driver。所以使用者看到開機過程背光會有瞬間變亮。
3. 之後AAL service會將背光緩緩的從255降低到使用者在setting->brightness裡面設定的背光值。(255->240->228->……->使用者設定的背光值).
如果需要解決開機過程中背光瞬間變亮的問題,可以參考如下修改:
修改\alps\mediatek\custom$project\hal\aal\cust_aal.cpp這個檔案:
int InitBrightness = 150 * 4;
// 新增上面這行程式碼,設定kernel階段AAL service會讀取到的初始背光值和LK階段一樣。
這樣就在LK階段的背光值和KERNEL 階段設定的背光值一樣了,就不會出現背光變化的現象。