真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

樹莓派4rt-thread如何實現(xiàn)SPI屏人機交互界面

這篇文章主要介紹了樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

站在用戶的角度思考問題,與客戶深入溝通,找到曲陽網(wǎng)站設計與曲陽網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設計、外貿(mào)營銷網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、申請域名網(wǎng)站空間、企業(yè)郵箱。業(yè)務覆蓋曲陽地區(qū)。

 

樹莓派4 rt-thread實現(xiàn)SPI屏人機交互界面

 

1.前言

樹莓派4的rt-thread一直在不斷的更新,充分挖掘可以樹莓派底層硬件的特性,同時借助各種外設,使得樹莓派4成為一個更加適合學習嵌入式開發(fā),驗證各種外設功能,學習操作系統(tǒng)的好用的平臺。

在樹莓派4上進行各種外設的開發(fā),需要一定的嵌入式調(diào)試經(jīng)驗與驅(qū)動調(diào)試方法,因為樹莓派雖然資料很多,但是關(guān)鍵核心的芯片資料卻非常的少,都是進行應用層面的開發(fā)工作。為了更加深刻的學習嵌入式,了解方法是不夠的,而是要弄清楚原理才行。本文主要是介紹樹莓派4圖像,觸摸相關(guān)的使用方式,從而實現(xiàn)GUI的移植和界面交互。

 

2.樹莓派4顯示接口介紹

樹莓派4默認是不帶任何屏接口的顯示的,可以接上HDMI接口。

樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面


 

另外,樹莓派4上帶有MIPI的顯示器DSI排線接口,可以通過排線進行連接。

樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面


 

這兩種顯示接口的驅(qū)動實現(xiàn),都已經(jīng)在樹莓派的videocore中實現(xiàn)了,具體的實現(xiàn)細節(jié)需要查看相關(guān)的GPU的使用。作為學習嵌入式圖像這一塊,已經(jīng)無法從樹莓派上進行任何的底層相關(guān)的開發(fā)了。想調(diào)用圖像的讀寫操作,可以通過CPU與GPU的通信管道作為數(shù)據(jù)的傳輸通道,具體可以查看mbox的驅(qū)動實現(xiàn)細節(jié):

https://github.com/RT-Thread/rt-thread/blob/master/bsp/raspberry-pi/raspi4-32/driver/mbox.c
 

將圖像放到一段內(nèi)存空間,然后發(fā)消息給GPU,讓其去該地址取數(shù)據(jù),最后就可以在屏幕上看到顯示的畫面了。

這一種只有顯示,如果要實現(xiàn)觸摸,還需進行另外的接口實現(xiàn)。一種是DSI可以將觸摸的坐標傳遞給GPU,通過mbox取獲取坐標數(shù)據(jù),另外一種接HDMI屏的常見做法就是將觸摸另外接到USB上,通過USB獲取坐標點。這是常見的實現(xiàn)手段。

除此之外,微雪則出了MHS-3.5inch RPi Display的3.5寸的SPI屏。

http://www.lcdwiki.com/MHS-3.5inch_RPi_Display
 

下圖是基本的展示:

樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面


 

樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面


 

該屏是利用SPI總線所驅(qū)動,最大spi速率支持125Mhz。支持電阻屏觸摸。而且價格也很便宜。是本文研究的重點。

 

3.樹莓派4 SPI接口

要想將該屏驅(qū)動起來,首先必須了解的是SPI協(xié)議,以及bcm2711芯片的spi控制器的使用。所有深度的研讀了rpi_DATA_2711_1p0.pdf文檔。

https://gitee.com/bigmagic/raspi_sd_fw/tree/master/doc/raspi4
 

重點是說,樹莓派4的SPI是支持兩種模式的,一種是標準的SPI總線。

樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面


 

這個很基本,也就是CE片選決定是那個設備,主機通過傳輸SCLK時鐘信號,然后傳輸MOSI,從機響應數(shù)據(jù),MISO。這是標準的SPI協(xié)議,可以好好復習一下。

另外一種則是LOSSI模式。

樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面


 

也就是低速串行總線。片選外設后,主機可以通過SCL發(fā)送時鐘,然后通過SDA發(fā)送數(shù)據(jù),從機接受到數(shù)據(jù)后,也會通過SDA數(shù)據(jù)線傳輸?shù)街鳈C。只有一條線傳輸數(shù)據(jù)。

區(qū)分的方法就是在發(fā)送數(shù)據(jù)位時比如發(fā)送8位數(shù)據(jù)位,則會在前面增加一位表示讀寫。這種適合于低速外設總線的使用。這一種模式目前暫時沒有使用到,后面使用的時候再進行分析。

 

4.樹莓派4 上的SPI屏的實現(xiàn)

具體細節(jié)我就不過多的展開,反正調(diào)試就占用了兩天時間,下面主要講一講調(diào)試的心得和步驟。

標準的SPI屏接上后,觸摸和LCD都是用的同樣的SPI線。

樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面

通過CS引腳進行選擇,正好對應上樹莓派SPI0的兩個片選。我剛開始調(diào)試的是LCD,由于LCD的主控是ILI9486,看來一下芯片手冊,準備按照以往的調(diào)試經(jīng)驗,先讀出出廠ID試試。怎么都不讀到數(shù)據(jù),嘗試了好久,結(jié)果仔細看上圖,發(fā)現(xiàn)SO引腳上標注的是Touch panel SPI data output。原來是不能輸出數(shù)據(jù)的呀。于是轉(zhuǎn)換方向,先調(diào)試觸摸,因為觸摸標準一些。

剛開始的時候,觸摸讀不到數(shù)據(jù),因為SPI驅(qū)動寫的不好,而且測試也不嚴格,對SPI的協(xié)議理解不深刻,后來干脆采用邏輯分析儀跟蹤數(shù)據(jù)。才發(fā)現(xiàn)速率太高了,原來這個觸摸支持的spi的頻率是很低的,只有幾百K。我終于看到數(shù)據(jù)讀出來變化了。

由于是電阻屏,所以讀到的是12位的數(shù)據(jù),讀到2個字節(jié),然后計算偏移得到12位的數(shù)據(jù),總體變化范圍是0到2048之間。按照這個規(guī)律,不斷的在屏的上下左右角度測試坐標,終于測試得到了以下結(jié)論。

XPT2046:Width:320 High:480
no pressed:(0x800,0xfff)
---ETH----USB-----------------------
| (0x800,0x800)      (0xfff,0x800) |
|                                  |
| (0x800,0xFFF)      (0xfff,0xfff) |
------------------------------------
 

不進行觸摸得到的數(shù)據(jù)(0x800,0xfff),各個角度的值可以看上面的信息。

計算坐標,由于電阻屏,每個點的坐標均勻分布,有著二次方程的線性關(guān)系。很容易就通過取到的數(shù)據(jù)算出坐標點了。調(diào)試這個花費了一天時間。終于可以開始調(diào)試LCD了。

由于兩個片選不一樣,而且只能寫不能讀,這樣調(diào)試起來需要非常的精確。首先LCD復位,也就是22號引腳先高電平再低電平再高電平。此時完成復位動作。

接著,注意命令和數(shù)據(jù)是一個GPIO的高低電平進行控制的。這個細節(jié)要注意。接著就是開始傳輸配置的參數(shù)了,參數(shù)主要參考類似的lcd的實現(xiàn)。參數(shù)傳遞完成,屏的面板顯示又白色變成黑色,這個是證明參數(shù)寫進去的關(guān)鍵。為了這個細節(jié)的實現(xiàn),調(diào)試了許久。然后寫數(shù)據(jù)到lcd中。

剛開始的時候,刷屏的速度肉眼可見,每個坐標點在變化,這肯定不能接受,然后算了一下SPI的頻率還不到1MHZ。這肯定不行,于是配置樹莓派SPI,將時鐘提升到125Mhz。速度雖然有了提升,但是還是不夠,差不多1s才能刷新全屏。最后直接跳過rt-thread的spi框架,直接操作底層進行SPI寫數(shù)據(jù)。發(fā)現(xiàn)真的快了許多。

用數(shù)據(jù)來說話,用Image2LCD來生成一張圖像,進行刷屏測試。

樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面


 

最后的結(jié)果如下所示:

樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面


 

由于操作系統(tǒng)的tick為10ms,所以測試得到差不多40到50ms,所以幀率在20~25幀左右。這是目前實測的數(shù)據(jù)。雖然速率不是特別高,但是還是可以接受的。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“樹莓派4 rt-thread如何實現(xiàn)SPI屏人機交互界面”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!


分享文章:樹莓派4rt-thread如何實現(xiàn)SPI屏人機交互界面
網(wǎng)址分享:http://weahome.cn/article/pcesii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部