Android LCD調試執行個體流程

來源:互聯網
上載者:User

調試前的參考文檔:

1)調試lcd背光,背光主要分為PMIC內建的和單獨的DCDC,如果為PMIC內建的背光,一般平台廠商已經做好,直接調用介面即可,如果為單獨的DCDC驅動,則需要用GPIO控制DCDC的EN端

2)確認lcd的類比電,io電是否正常

3)根據lcd的解析度,RGB/CPU/MIPI等不同的介面,配置控制寄存器介面

4)根據lcd spec配置PCLK的頻率,配置PCLK,VSYNC,HSYNC,DE等控制線的極性

5)使用示波器測試所有clk的波形,確認頻率,極性是否符合要求

6)使用示波器測試data線,看是否有資料輸出,bpp的設定是否正確

7)如果lcd需要初始化,配置spi的介面,一般分為cpu內建的spi控制器,和gpio類比的spi。

8)根據lcd spec中的初始化代碼進行lcd的初始化

9)用示波器測量lcd的spi clk及資料線,確認是否正常輸出

10)正常情況下,此時lcd應該可以點亮。如果沒有點亮,按照上述步驟1到9,逐項進行檢查測試,重點檢查第5項,clk的極性

11)如果lcd點亮,但是花屏。則需要先確認資料格式是否正確,然後確認fb裡的資料是否正常,有以下幾種方法確認fb裡的資料

i)cat /dev/graphics/fb0 > /sdcard/fb0,然後將/sdcard/fb0 >到另一台相同解析度及相同格式的手機上,看圖片顯示是否正常 ii)使用irfanview軟體顯示cat /dev/graphics/fb0出來的raw資料,注意要正確設定解析度及格式,否則顯示花屏 iii)如果adb串連正常,可以使用豌豆莢等軟體,查看fb中的資料是否正常

通過以上三種途徑,如果確認fb中的資料正常顯示,則很可能為lcd初始化代碼的問題,或者clk極性的問題,如果fb資料不正常,則可能為lcd控制寄存器配置不正常導致。

 

LCD調試注意事項 tips:

1 lcd介面的資料位元數一定要匹對,否則會出現花屏。

 

2 TE_ON根據平台需要開啟,否則會出現開機介面卡掉,一直停在logo區。

 

3 lcd配置一定要正確,在u-boot(開機logo需要)和kernel配置都要注意,整個工程配置更加需要注意。

 

4.各種主要的lcd寄存器需要主要設定正確,主要包括各種電壓配置,data format,interfacepixel format,te_on,madctl。。。否則會出現各種問題。

 


5. Pix clock是否在規定的範圍內。

 


6. Pclk是否極性正確。上升沿還是下降沿。

 


7. 變頻引起的閃屏問題。可以通過鎖定頻率來實驗是否是變頻引起。

 

 上周調試**-**的lcd,將廠商提供的初始化代碼加入到工程中,簡單修改後,然後修改z7_wvga_hs_af.mak中lcd模組配置,編譯產生燒寫檔案,燒如到主板,出現花屏,且停留在開機logo處…第一次調屏就這麼的糾結…

 

經老大初步檢查,lcd螢幕介面資料位元數不對,而且TE_ON必須開啟,應該改為十六位。。。

修改源碼,編譯產生燒寫檔案,燒機….

 

問題依舊….

 

仔細檢查源碼,TE_ON是否開啟,VCOM設定,MADCTL設定是否正常,仔細閱讀其提供的官方LCD DataSheet,開始懷疑各種設定電壓是否正確…

重複修改源碼,編譯,燒機,驗證的步驟,情況還是依舊…

 

到晚上還是沒搞定,思考如何擷取u-boot驅動log,分析一下,或許可以找到答案,於是焊接RX(綠色),TX(白色),GND(黑色),在ubuntu下正確設定minicom擷取u-boot啟動log…

[   18.162000] registered taskstats version 1

[   18.166000] rtc-sprd rtc-sprd.0: settingsystem clock to 2013-01-01 00:08:00 UTC (1356998880)

[   18.177000] serial_open tty addr =0xcf36f800, filp = 0xcf0b7440, port = 0xc4ac2d08

[   18.182000] Freeing init memory: 144K

[   18.209000] Failed to execute /init

[   18.209000] Failed to execute /init.  Attempting defaults...

[   18.219000] Kernel panic - not syncing: Noinit found.  Try passing init= option tokernel. See Linux Documentation/init.txt for guidance.

[   18.231000] [<c45330e0>](unwind_backtrace+0x0/0xfc) from [<c48e7714>] (panic+0x60/0xe4)

[   18.231000] [<c48e7714>](panic+0x60/0xe4) from [<c452c514>] (init_post+0x88/0xdc)

[   18.246000] [<c452c514>](init_post+0x88/0xdc) from [<c4508414>] (kernel_init+0x124/0x168)

[   18.246000] unwind: Unknown symbol addressc4508414

[   18.250000] unwind: Index not found c4508414

 

經老大分析發現是RAM各種地址位移不正常,仔細發現z7_wvga_hs_af.mak中配置平台為4+4,而這台機器是4+2平台,各種位移不正常導致kernel死掉,修改編譯,燒機,發現開機log正常了,系統啟動正常。

….

曲折而又突然,lcd調試就基本成功了!

 

,經測試發現幀率偏大,修改Frame Rate寄存器,這個讓我在DataSheet中找了很久,居然就是我之前早看到過的那個寄存器,糾結,修改正常後,經老大發現有細微橫紋出現,修改VCOM即可,也順利搞定!

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.