所以將整理出來的東西寫下。
共有三篇,分別是LCD driver(一,二及三)的內容
分別是它的楖念'設計及實作。
LCD driver(一)
LCD driver(二)
LCD driver(三)
========================
這裡所採用的OLED是以Pixel displays,大多數的LCD驅動也是。
若我們想要在LCD上印出 “3"這個數字出來,或是任一個符號出來
"都必須需要一個bitmap 來描述"。
而這些你所建的bitmaps將被集合起來成為該專案的
graphic assert. (裡面有分為font/picture or logos).
它會像是下圖所示內容:
這就是顯示的整個架構:
A:在Graphic assert,可以視為一個graphic assert list (head file)所以它會標示出所有的資源及內容,並將它指向該內容的下一層(含有bitmaps及offset)
B:而下一層這裡(MED FONT)中,裡頭可以看出是一個dictionary架構 ,指出來那一個字在那個地方。 而其它的assert 也是相同的只是不是指向一個字元符號。
C: 有二個,分別是CHARACTER MAP 及 GLYPHS。即在裡面有那些符號(character map)及它又在那裡(glyphs)。
D:這整個簡單的架構中,有幾點是我們必須要註意的有
1. 在A時我們要如何表現不同assert及特別的你必須要建一個version好知道那一版中,有那些東西,不同你不會知道裡面有那些內容。
2. 在character map中,要如何查詢一個符號;又如何去找出相應的符號中所含的資訊(長寛,pixelbits)
3.是否要壓資料,要採用那一方法(建議RLE,run lenght endecode,
1.決定要show 在那,設定x/y
2. search assert ,and find out the correct font(logo and graphic)
3. find the font information
4. read the bitmaps
5. send to display(write to backvideoram or ...direct write to lcd)
6. refresh the display.
F.決定通訊介面(interface)
一般的通用的顯示,都支援多種的介面. 如:Parallel 及 Servial(1 wire’two wire(TWI,i2c) Asynchronous‘spi synchronous,USB and other. **1
在這顆SSD1306中也都有支擾大多數的介面,而我們要如何去決定該用那一個介面.我想這則要考量到要件,如下:
i. 最大更新畫面的大小,更新速度,及 pixel of color
以這次為例,畫面大小 128 x 64;one pixel one color(單色) , refresh 1page/secii. 主端的資源
所以,其所需的 128 x64 x 1 x 1 =8,192 bits/sec = 1K Byte/sec,那麼則採用任一介面均可.應考慮其它的條件;
另一例子為, 320x 240 size ; one pixel 2^24 color(RGB), refresh 30 page/sec, 這個應是一般性的.
one page = 1,843,200 bits = 225 KB . then total bandwitdh is 6.6MB/sec(52M bits/sec) , 所以只能選擇 Parallel才行.
這裡我想說明的是,關於系統中若在處理畫面時,是否可能會被中斷及回到畫面的時間等, 所造成的影響.iii. 與其它週邊的配合
其重要的是它是在何時去更新畫面的, 像是在timer 中定時去更新 或者是由外部發起 及其是否需先寫到buffer後再更新到CGRAM上.
各時間點對於畫面的影響, 尤其是你要去做動畫時.這些都必須去考量的地方. **2
及是否有共用資源,可能造成的影響,iv. 主端的支援介面
不論是用Parallel 及 Servial(1 wire’two wire(TWI,i2c) Asynchronous‘spi synchronous, 簡單的介面中,都是可以用 bit banding ( SW) and HW的實現. 其中SW實現的難易度為 Parallel ,spi , twi and 1 wire.
**1:
Parallel : shoud be deteminte system
SPI : 8Mbits
I2C: 100Kbits(400K,1Mbits and 4.7MBits)
1 wire: 100Kbits
**2:data driven systems and event driven
systems that were event driven: things happen because
sensors were activated, causing events which caused changes the state of the system.
沒有留言:
張貼留言