1. 程式人生 > 其它 >S3c2440裸機-spi程式設計-2.OLED顯示面板

S3c2440裸機-spi程式設計-2.OLED顯示面板

1.OLED顯示面板介紹

以QG-2864TMBEG01這款OLED為例,可見它支援Parallel/i2c/SPI這3種方式對它進行控制,這裡僅對它進行SPI控制。它的product

Specification見附件。

並行介面時序:

SPI序列介面時序

Tr/Tf: 表示spi clk上升/下降延不能超過40ns

Tclkl/Tclkh: 表示spi clk低/高電平持續至少20ns

Tcycle: 表示spi clk一個時鐘週期至少100ns

Tdsw/Tdhw: 表示spi data的建立/持續時間至少15ms

Tcss:片選建立時間至少20ns

Tcsh:片選持續時間至少10ns

Tas/Tah:地址建立/持續時間至少15ns

上電序列:

掉電序列:

進入/退出睡眠模式:

2.OLED顯示原理

QG-2864TMBEG01這款為例,OLED長有128個畫素,寬有64個畫素,共128*64=8,192 畫素。每個畫素用1bit來表示,為1則亮,為0則滅。

所以每一個位元組資料Data表示8個畫素,Data0~Data1023,如上圖。 那要怎麼在視訊記憶體裡面存放Data資料。

①怎麼發地址和資料

頁地址模式

QG-2864TMBEG01 OLED主控有三種地址模式,我們常用的是頁地址模式,將0x20地址的bit[1:0] = 10b.

它把視訊記憶體的64行分為8頁,每頁對應8行;選中某頁後,再選擇某列。因此共用頁地址,也就是8行都共用同一個頁地址,列地址獨立,

所以page0~page7,col0~col127。然後就可以往裡面寫資料了,每寫一個數據,列地址就會加1,一直寫到最右端的位置,頁地址加1,會自動跳到最左端。

通過命令來實現傳送頁地址和列地址,其中列地址分為兩次傳送,先發送低位元組,再發送高位元組。

如下圖,假設每個字元資料大小為8x16畫素,假如第一個字元位置為(page,col),相鄰的右邊就是(page,col+8),寫滿一行跳至下一行的座標就是(page+2,col)。

一個字元需要2個page*8個col,由於一個畫素佔1個bit, 所以一個Data0佔1byte, 一個字元佔16 byte。

設定page addr:

一共就8頁,因此X2~X0,有3bit足夠了。

設定col addr:

分兩次傳送, 先發送列地址低4位,再發送列地址高4位;比如傳送col addr=127=0x7f,那麼先發送0x0f,再發送0x17。