2010年10月27日 星期三

控制 Nokia 5110 LCD

本文在 2010/10/27 23:01 發表於 Yahoo!奇摩部落格
因Yahoo!奇摩部落格將於2013年12月26日終止服務故遷移至此


為了計畫, 為了部落(?)
所以買了這玩具




這東西相當難纏
它的接點非常專業(?)

由一堆導線披覆在橡膠上做成導電膠
除了畫電路板時接點要準確外
這橡膠有彈性, 需要一點壓力才會導通
那固定鐵片的孔就不能偷懶省略
導電膠有兩種版本
其中一種就如同圖上的那樣
只要不小心ㄎㄟˊ到 (如上圖箭頭處)
那些線亂了就會短路
這導電膠就不能用了
相當難纏
不過如果接上了, 這東西操控倒是蠻容易的
用 SPI 就能傳輸, 也不用設定太多東西

這玩具拿到手第一件要做的事就是畫電路板
畫電路板就要有規格尺寸
我親愛的賣家說會給我, 結果就給我忘了...
算了, 懶得催他了
自己動手量 !
拿出本實驗室新裝備XD

數位游標卡尺
可以精確到 mil (1/1000 in)
和軟體的單位相同, 剛好可以用
只賣兩張國父多一點
對岸的削價競爭非常恐怖

以前都用老哥的傳統游標卡尺

讀數很慢, 而且常常讀錯
一定會有兩三根標線都是可以接好的
讓我很猶豫該選哪個數

以下為量測結果

線路 :


尺寸 :


線路對應之圖檔:nokia5110lcd-pcb.pdf
PADS 2007 元件檔:nokia5110lcd_pads2007lib.zip

注意:非官方資料, 若拿去下廠發現不能用, 不要怪我囉 ! XD

線路圖檔拿去印成投影片
列印時不要縮放, 保持原尺寸即可洗電路板

LCD 的接腳 1 的位置在本文上方第二張圖中標記
看老外的文章時注意他們標記
以我第二張圖那一面叫做 rare view
而面對電路板, 也就是電路板上畫的線叫 front view
搞錯的話就爆了, 會燒得不明不白的XD

接上 LED...


雖然有六顆 LED 的接點
實際上兩顆就夠用了
LED 要選最小的, 0805 那種
要直立焊接, 讓它變成側照射
我的庫存超白光都是方型的, 使用不能, 非常可惡XD
背光就應該亮到刺眼才是好背光啊(誤)

完成品


程式重點 :

我不貼程式檔, 因為程式無法直接用
除非你有弄到我這張我自己做的實驗板才能直接用XD
當然, 這是不可能的, 所以只紀錄重點

一開始, reset 拉高電位
等一段時間, 約 100ms
接著 reset 拉低電位
再等一段時間, 約 200ms
等候初始化完成
接著 reset 拉高電位
再等一段時間, 約 50ms
完成啟動後開始設定狀態
這顆 LCD 控制器內建記憶體以及 common 和 segment driver
記憶體的大小剛好是顯示範圍的 84x48
也就是說, 這顆控制器是專門為這片液晶設計
所以很多參數不用動, 不像許多控制器
電壓, 內建震盪, 分壓, duty, 穩壓, 亮度, 顯示區...一堆要設定
參數如下, 都是固定的
D/C 先拉低電位, 指令模式傳資料
依序送出下面這些 byte :

0x21 // H=1
0xC5 // Vop
0x13 // bias
0x20 // H=0
0x09 // all display on
0x08 // blank display
0x0C // normal display mode

完成 !
接著設定填充記憶體的起始位址
一樣指令模式 (D/C = 0)

0x80 // 把它和你要的 X 位址做 OR 運算
0x40 // 把它和你要的 Y bank 做 OR 運算

然後進入資料模式 (D/C = 1)
接著就直接傳顯示資料

不錯的參考資料:
http://serdisplib.sourceforge.net/ser/pcd8544.html
http://www.module.ro/lph7366.html

這裡有軟體可以編輯小圖,並輸出成可嵌入程式碼的陣列資料:
http://www.amontec.com/lcd_nokia_3310.shtml

測試


第一次用這種不用調亮度電壓的 LCD
以前光試亮度值就飽了
這張都自己設定好了, 非常愉快

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。