ps:創(chuàng)業(yè)開發(fā)產(chǎn)品,自學(xué)筆記,不一定適合教材性的閱讀,零碎整理,自我總結(jié)用
材料:4.1寸lcd屏兩塊,屏自帶觸控,屏幕資料具備,rk3399和MK8788開發(fā)版上分別開發(fā)。
開發(fā)環(huán)境:
1】rk3399
- ? ? ? ???????
- 開發(fā)板:友善的rk3399v2開發(fā)版,資料鏈接:
- 處理器:RK3399
- 內(nèi)核:
- 編譯工具:
- LCD:4.1‘’ LCD屏幕
- 參考文獻(xiàn)?
??????????????????????????????LCD驅(qū)動程序詳細(xì)講解(一)_weixin_33935505的博客-CSDN博客
???????????????????????LCD驅(qū)動詳解 - Lilto - 博客園 (cnblogs.com)
???????????????????????主題:s3c2440移植linux-3.4.2中的LCD驅(qū)動_大白菜的博客-CSDN博客
??????????????? ? ? ??【第2期】韋東山嵌入式Linux之第2期_驅(qū)動大全 (100ask.net)???????
2】Mk8788
- 開發(fā)板:自購mk8788 ,具備開發(fā)板接口講解資料、源碼
產(chǎn)品規(guī)格書:仿照此頁面采用聯(lián)發(fā)科I500P(MT8788)芯片方案的4G全網(wǎng)通安卓10平板電腦 | ScenSmart一站式智能制造平臺|OEM|ODM|行業(yè)方案
一、搭建ubuntu
?ps:人傻毛病多,自己給自己制造問題,數(shù)之不盡問題,自己慢慢解決吧,主要是真的很瑣碎
硬件:
????????多臺電腦、不同系統(tǒng)電腦
????????下載好ubuntu的桌面版和服務(wù)器版(相信未來可以駕馭它),
1、windows環(huán)境搭建虛擬機(jī)
windows中使用微軟的那個啥啥來著,創(chuàng)建實例不會,還沒搜索找資料
windows中使用ubuntu官網(wǎng)中的虛擬機(jī)感覺很難用
windows中不想使用那個啥啥流行的虛擬機(jī)
2、mac m2和m1 mimi搭建
1】下載了paralleres虛擬機(jī),只有試用14天,對此就直接很不想用了,先學(xué)linux命令,學(xué)會買
2】mac的性能感覺真的很強(qiáng),編譯在虛擬機(jī)中可能會很強(qiáng),然后裝個ubuntu的主機(jī)去移植吧,主要是寫帖子時候目前還到不了移植測試步驟
3、單獨設(shè)備安裝ubuntu系統(tǒng)
二、配置ubuntu
1】開啟ssh
2】開啟wiff、固定ip
3】更換國內(nèi)源
4】安裝輸入法
5】linux 更新命令、安裝工具來一遍
三、了解rk3399和mk8788的開發(fā)、編譯等教程
四、解讀lcd屏幕資料
ps:英文很差,基本一字一句的翻譯理解,電氣術(shù)語翻譯還會有不通順處。
五、下載安卓源碼、rk3399v2源碼和mk8788源碼
復(fù)制
解壓
移動
創(chuàng)建文件
六、.mk文件理解
七、源碼文件目錄用途
八、移植工具和移植教程
九、刷機(jī)相關(guān)學(xué)習(xí)
十、mipi接口的學(xué)習(xí)
用途:相機(jī)和屏幕,接口定義一致時,不知硬件上是否可以調(diào)換,然后代碼控制?
mipi data是成對的差分信號,屏幕一般為2mipi和4mipi,區(qū)別在哪?
博主要開發(fā)的屏幕資料中有說明可以選擇幾路mipi,區(qū)別在哪?
對于相機(jī)傳感器:同一顆sensor【傳感器】由于register?setting【寄存器/注冊設(shè)置】不同,輸出的信號有可能是2 lane或者4lane等
對于屏幕:lcd drive ic的寄存器?或者ic支持最大4lu,但具體要看Lcd屏的排線實現(xiàn)原理?待定未知
知識點1?
????????MIPI_RDN和MIPI_RDP,有幾對這樣的pin腳就代表有*路mipi通道
第一路 | MIPI_RDN0 | |
MIPI_RDP0 | ||
第二路 | MIPI_RDN1 | |
MIPI_RDP1 | ||
第三路 | MIPI_RDN2 | |
MIPI_RDP2 | ||
第四路 | MIPI_RDN3 | |
MIPI_RDP3 |
?知識點二 時鐘
????????MIPI_RCN和MIPI_RCP:時鐘信號
RCN | |
RCP |
CMMCLK | 時鐘引腳 |
???
?????用法:
知識點三 I2C接口
SCL、SDA十I2C接口
SCL | |
DA |
????????????????用法:
mipi接口 參考文:
1??此文作者筆風(fēng)可愛,所以排第一
【Camera專題】你應(yīng)該了解的Camera HW-硬件知識_c楓_擼碼的日子的博客-CSDN博客_mipi2lane和4lane???????ppi
2??專業(yè)度高,直接飆代碼
? ? ? ? Android Camera驅(qū)動分析_Mr.How的博客-CSDN博客_查看當(dāng)前安卓相機(jī)驅(qū)動
屏幕mipi接口
mipi接口原理
rgb lcd屏幕和MCU-LCD區(qū)別
(轉(zhuǎn))RGB接口和i80接口的區(qū)別
????????此鏈接中很多專業(yè)解釋的片段,建議大量閱讀!
????????重點1:MCU-LCD屏它與RGB-LCD屏主要區(qū)別在于顯存的位置.RGB-LCD的顯存是由系統(tǒng)內(nèi)存充當(dāng)?shù)?因此其大小只受限于系統(tǒng)內(nèi)存的大小,這樣 RGB-LCD可以做出較大尺寸,像4.3"只能算入門級,而MID中7",10"的屏都開始大量使用.
????????而MCU-LCD的設(shè)計之初只要考慮單片機(jī)的 內(nèi)存較小,因此都是把顯存內(nèi)置在LCD模塊內(nèi)部.然后軟件通過專門顯示命令來更新顯存,因此MCU屏往往不能做得很大.同時顯示更新速度也比RGB- LCD慢
????????重點2:RGB顯示速度明顯比MCU快是因為。。。
mipi和lvds區(qū)別
液晶屏MIPI接口與LVDS接口區(qū)別(總結(jié))
十一、mk8788開發(fā)文章
1、MTK8788[android 9.0]GT9XX TP觸摸屏驅(qū)動流程分析
MTK8788[android 9.0]GT9XX TP觸摸屏驅(qū)動流程分析_Jimmy8618的博客-CSDN博客_vtouch-supply
摘錄:?
/* TOUCH start */
&touch {
tpd-resolution = <800 1280>;//分辨率
use-tpd-button = <0>;//如果TP有待按鍵。則定義值為1
tpd-key-num = <3>;//按鍵的數(shù)量
tpd-key-local= <139 172 158 0>;//按鍵的編碼,一般為KEY_MENU,KEY_HOMEPAGE,KEY_BACK的鍵值
tpd-key-dim-local = <90 883 100 40 230 883 100 40 370 883 100 40 0 0 0 0>;//按鍵的布局信息,包含按鍵的寬度,高度,中心點的坐標(biāo)
tpd-max-touch-num = <5>;//支持的最大觸摸點數(shù)
goodix_touch@5e {
compatible = "mediatek,goodix_touch"; //用于匹配GT9xx這個TP驅(qū)動
reg = <0x5e>;//GT9xx I2c的地址
interrupt-parent = <&pio>; //中斷腳
interrupts = <1 IRQ_TYPE_EDGE_RISING 1 0>;//中斷模式是上升沿觸發(fā)
//vtouch-supply = <&mt_pmic_vldo28_ldo_reg>; //原生MTK節(jié)點TP 2.8V PMIC供電
reg-tp-supply = <&mt_pmic_vldo28_ldo_reg>; //由于我們代碼上修改了TP 2.8V PMIC供電節(jié)點獲取是以reg-tp-supply這個字符獲取的原生的是由vtouch-supply這個獲取的
rst-gpio = <&pio 158 0>;//TP的復(fù)位引腳
int-gpio = <&pio 1 0>;//TP的中斷引腳
2、
MTK8788[android 9.0]調(diào)試筆記 MIPI屏驅(qū)動移植_sdkdlwk的博客-CSDN博客
原生MTK LCM屏添加的路徑在\vendor\mediatek\proprietary\bootable\bootloader\lk\dev\lcm*
多個屏驅(qū)動兼容。。。。
3、顯示驅(qū)動,源碼文件位置
mt8788_android9.0_lcd(lt8912b_mipi2lvds)_1024_768-Android文檔類資源-CSDN下載
4、背光調(diào)節(jié)
mtk8788 pwm頻率及背光亮度調(diào)節(jié)_阿悶的博客-CSDN博客_pwm背光調(diào)節(jié)
5、小平米調(diào)整系統(tǒng)字體
mtk8788 android 9.0 加大系統(tǒng)字體和圖標(biāo)_cerzong的博客-CSDN博客
摘要:由于屏幕(320*320)太小了,客戶提個需求希望將APP圖標(biāo)跟系統(tǒng)字體加大,APP圖標(biāo)加大實際就是增大屏幕密度
6、LCD-TFT
LCD 液晶屏驅(qū)動詳解_屏幕驅(qū)動_LTracer的博客-CSDN博客
LCD種類、電路連接及顯示原理
LCD,即液晶顯示器,是一種采用了液晶控制透光技術(shù)來實現(xiàn)色彩的顯示器。LCD有很多種類型,比如STN、TFT、LTPS、OLED等。各有優(yōu)缺點。TFT類型液晶顯示器是目前最為主流的液晶顯示器。
-
TFT-LCD的數(shù)據(jù)傳輸方式有2種:
單掃:對于一整屏的數(shù)據(jù),從上到下,從左到右,一個一個地發(fā)送出來。
雙掃:將一整屏的數(shù)據(jù)分為上下兩部分,同時的從上到下,從左到右,一個一個的發(fā)送出來。
區(qū)別在哪里?對硬件要求區(qū)別?
-
LCD的信號種類:
信號名稱 | 描述 |
---|---|
VSYNC | 垂直同步信號 |
HSYNC | 水平同步信號 |
VD[23:0] | 數(shù)據(jù)信號 |
HCLK | 時鐘信號 |
LEND | 行結(jié)束信號 |
PWREN | 電源開關(guān)信號 |
- 借鑒其他電路模塊圖
- LCD控制器原理圖
- 顯示原理
除了配置一些寄存器告訴LCD控制器圖像中像素的格式(RGB565),frameBuffer的首地址之類外,對于TFT LCD的訪問還需要用到一些信號,所以需要通過配置寄存器來告訴LCD控制器這些信號的信息(比如何時發(fā)出控制信號,發(fā)出信號的持續(xù)時間等),
????????舉個例子:
向LCD驅(qū)動器發(fā)送圖片數(shù)據(jù)時需要時鐘控制(VCLK),一個時鐘發(fā)送一個像素點,那么控制器就需要主動發(fā)出時鐘信號,這個時鐘是由哪個引腳發(fā)出的,發(fā)出的頻率是多少,這個都是要配置寄存器的,?
????????通過時序圖來分析需要用到的一些信號以及如何去配置它們,如果是第一次了解LCD控制,直接看時序還是比較困難的,所以先給出一個形象的比喻 :
????????frame buffer: 顯存,用于存放LCD顯示數(shù)據(jù);frame buffer通過LCD控制器和LCD Panel建立一一映射關(guān)系;
????????LCD控制器: 參考LCD用戶手冊,配置LCD控制器,用于發(fā)出LCD控制信號,驅(qū)動LCD顯示;
????????掃描方式: 如圖所示,由start到end的掃描方向是:從左到右,從上到下(掃描方向的一種);
????????HSYNC: 行同步信號,用于行切換,一行掃描結(jié)束,需要掃描新行時,需要先發(fā)送行同步信號;
????????VSYNC: 列同步信號,用于列切換,一幀掃描結(jié)束,需要掃描新的一幀時,需要先發(fā)送列同步信號;
????????時鐘信號: 每來一個時鐘,掃描的點移位一;
????????上圖中LD驅(qū)動器可以比喻成電子槍,LCD控制器就是控制這個電子槍的,它從顯示緩存中拿像素數(shù)據(jù)傳給電子槍并發(fā)送命令讓電子槍發(fā)射像素顏色, 上圖中,成像過程
- LCD控制器發(fā)出VSYNC信號,告訴電子槍,要發(fā)出一張新幀了,然后電子槍把槍頭調(diào)轉(zhuǎn)到LCD屏幕的左上角準(zhǔn)備開始發(fā)射像素
- 發(fā)出VSYNC信號的同時,發(fā)出HSYNC信號(告訴電子槍新行開始, 從左向右動發(fā)射子彈吧)但是電子槍畢竟反應(yīng)比較慢,過了少許開始發(fā)射子彈
對于上面兩個過程,由于電子槍接受了VSYNC信號,調(diào)轉(zhuǎn)槍頭后,需要反應(yīng)一段時間才能正常開始工作, 所以就白白掃射了幾行的無效數(shù)據(jù),相當(dāng)于經(jīng)過了幾個HSYNC信號周期的時間, 一個HSYNC周期就是電子槍掃射一行的時間(從HSYNC信號開始掃射第一行直到到一行結(jié)束掃射結(jié)束所用時間),就出現(xiàn)了上方無效區(qū) - 當(dāng)?shù)谝恍薪Y(jié)束時,LCD控制器又發(fā)出HSYNC信號, 電子槍槍頭扭轉(zhuǎn)到下一行新行開始發(fā)射數(shù)據(jù), 但是槍頭扭轉(zhuǎn)的比較慢, 所以出現(xiàn)了左右的無效區(qū)(即第一行結(jié)束后,電子槍由于硬件原因要反應(yīng)一段時間, 所以在右邊出現(xiàn)了無效數(shù)據(jù)區(qū), 調(diào)轉(zhuǎn)槍頭后, 也得反應(yīng)一段時間開始發(fā)射子彈,所以出現(xiàn)了左邊的無效區(qū)),有人會問電子槍如何知道第一行何時結(jié)束(其實是我們通過寄存器告訴LCD控制器第一行有多少個數(shù)據(jù)的,我們的屏幕分辨率是480*272, 即這個信息會設(shè)置到寄存器里), 當(dāng)一行結(jié)束時,LCD控制器就不會再發(fā)有效像素數(shù)據(jù),并且等待電子槍游離一段時間,之后再發(fā)下一行的HSYNC信號.
- loop第三個過程
- 當(dāng)掃描到最后一行結(jié)束時(一幀即將結(jié)束),LCD控制器就不會再發(fā)有效像素數(shù)據(jù),并且等待電子槍游離一段時間,所以會繼續(xù)往下掃描,出現(xiàn)了下方的無效區(qū), 之后再發(fā)下一行的VSYNC信號, 之后回到過程1開始重復(fù)。
在工作中的顯示器上,可以在四周看見黑色的邊框。上方的黑框是因為當(dāng)發(fā)出VSYNC信號時,需要經(jīng)過若干行之后第一行數(shù)據(jù)才有效;下方的黑框是因為顯示完所有行的數(shù)據(jù)時,顯示器還沒有掃描到最下邊(VSYNC信號還沒有發(fā)出),這時數(shù)據(jù)是無效的;左邊的黑框是因為當(dāng)發(fā)出HSYNC信號時,需要經(jīng)過若干像素之后第一列數(shù)據(jù)才有效;右邊的黑框是因為顯示完一行數(shù)據(jù)時,顯示器還沒掃描到最右邊(HSYNC信號還沒有發(fā)出),這時數(shù)據(jù)已經(jīng)無效。顯示器只會依據(jù)VSYNC、HSYNC信號來取得、顯示數(shù)據(jù),并不理會該數(shù)據(jù)是否有效,何時發(fā)出有效的數(shù)據(jù)由顯卡或LCD控制器決定。
VSYNC信號出現(xiàn)的頻率表示一秒鐘內(nèi)能顯示多少幀圖像,稱為垂直頻率或場頻率,這就是我們常說的“顯示器頻率”;
HSYNC信號出現(xiàn)的頻率稱為水平頻率,表示一秒鐘能顯示多少個像素的數(shù)據(jù)。
顯示器上,一幀數(shù)據(jù)的存放位置與VSYNC、HSYNC信號的關(guān)系如下圖所示:
image-20210718155614982文章來源:http://www.zghlxwxcb.cn/news/detail-403910.html
有效數(shù)據(jù)的行數(shù)、列數(shù),即分辨率,它與VSYNC、HSYNC信號之間的距離等,都是可以設(shè)置的,文章來源地址http://www.zghlxwxcb.cn/news/detail-403910.html
到了這里,關(guān)于mipi接口 1280(RGB)*720 LCD屏開發(fā)驅(qū)動筆記帖 1、MTK8788[android 9.0]GT9XX TP觸摸屏驅(qū)動流程分析的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!