筆者前段時間項目上正好用到一塊32*128分辨率的單色LED,正式介入開發的時候,才發現網上的資料少之又少,供應商也給不出有價值的參考信息。故打算分成三篇詳細的介紹下開發過程中遇到的問題。
本篇主要介紹LED屏幕的一些基礎信息,第二篇介紹基礎驅動程序,第三篇介紹如何将一個适用于OLED屏幕的GUI移植到LED屏幕的顯示控制上。
點陣屏接口
拿到屏幕的第一件事情就是弄清楚接口定義和一些基本的電氣參數。
【基礎參數】
基礎的電氣參數包括:像素間距、分辨率、供電電壓、掃描方式,掃描方式又包括1/16、1/8、1/4、1/2掃。
其他參數比較理解,1/16、1/8、1/4、1/2掃有些陌生,這個參數其實和屏幕的亮度有關,數值越大軟件可控的亮度越高。所以一般1/16掃用于室内,其他的應用于室外,其原因咱到第二篇結合驅動代碼來分析。
接口定義
【接口定義】
單色屏、雙色屏使用的接口标稱為“HUB08”,還有一個是“HUB75”用在全彩上。将HUB08引腳定義做下分類整理:
接口說明
四線譯碼器:可以類比到38譯碼器。
串轉并輸出:暫且忽略R2、G1、G2,隻保留LAT、CLK、OE、R1,則可以類比到74HC595上。
【G2和R2】
G1同R1即為雙色屏幕中另外一個顔色的數據輸出。為什麼會有兩個R和G呢?以筆者手頭32*128的屏幕為例,做下說明。
32*128點陣 示意圖
32*128點陣 簡化示意圖
點陣屏的基本控制原理:使用HC595來控制列數據,譯碼器控制行顯示,利用視覺暫留,形成整幅圖案。
點陣屏水平分辨率由串聯的HC595個數來決定,比如32*128,就有128/8=16個HC595,垂直分辨率由并入的譯碼器個數來決定,16*2=32。
如“簡化示意圖”中将32*128分成了A、B兩個部分,每個部分的像素數是16*128。兩部分共用LAT、CLK、OE這3根信号線,通過不同的數據線對A、B兩個部分進行區分。所以R2、G2其實是另外一組16*128的數據輸出引腳。
點陣屏拼接示意圖
【屏幕拼接】
如果垂直分辨率超過32了怎麼辦?比如64*256這樣的屏幕。水平分辨率可以通過增加串聯的HC595的個數來實現;垂直分辨率則需要通過組合點陣模組的方式來實現。比如将65*256分成兩塊32*256,通過兩個HUB08接口來控制整個屏幕,或者按照屏幕背闆提示的拼接方向通過一個HUB08進行驅動。
注:文章中部分圖片來源于網絡,如侵權請聯系删除。
<第一篇END>
道阻且長,行則将至。
歡迎大家關注“兔子聊電路”,會不定期的分享一些遇到的電路問題和一些有趣的電路設計,更歡迎大家一起交流電路設計上的心得。同時,也會分享一些有意義的非技術類書籍。
【福利推薦】
304保溫便當盒打包餐盒飯桶帶飯便攜上班族飯盒專用可微波爐加熱【券後價】 43 元 【優惠券】 15 元3輹Zhi4$CNdod6zIXZT$:// CZ6135,打開/
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!