2021-01-28

使用 UC1609 控制 ERM19264-4 LCD 熒幕

最近繼續學習操作不同的 LCD 熒幕,因此購買這種將 KS0108 操作簡單的 LCD 熒幕
之前使用的 KS0108 是 ERM19264-1 ,今次使用 ERM19264-4 配合 UC1609 控制
有點類似 使用 PCF8574 控制 HD44780 ,減省控制引腳使用量

ERM19264 LCD 熒幕

見下文
ERM19264-4 LCD 熒幕模組的正面

見下文
ERM19264-4 LCD 熒幕模組配合 UC1609 的引腳

見下文
ERM19264-4 LCD 熒幕模組的背面

ERM19264-4 操作訊號

CD RW Data DEC HEX 說明
7 6 5 4 3 2 1 0
1 0 # # # # # # # # # # 寫入資料
0x01 為第1像素, 0x80 為 第8像素
0 0 0 0 0 0 # # # # 0 0x00 設定欄位地址,範圍為 0 ~ 255
(實際為熒幕像素長度)
第1組 為 D3~D0 ,第2組 為 D7~D4
(2位元組)
0 0 0 0 0 1 # # # # 16 0x10
0 0 0 0 1 0 0 1 # # 36 0x24 設定溫度補償
  • 0x00 = -0.00% / °C
  • 0x01 = -0.05% / °C
  • 0x02 = -0.10% / °C
  • 0x03 = -0.15% / °C
0 0 0 0 1 0 1 V A A 40 0x28 設定電源控制
(需要最少5毫秒啟動;必須為第1個控制操作)
  • V
    • 0x00 = External
    • 0x01 = Internal
  • A
    • 0x00 = 0.6mA
    • 0x01 = 1.0mA
    • 0x02 = 1.4mA
    • 0x03 = 2.3mA
0 0 0 1 # # # # # # 64 0x40 設定向上捲動行數,範圍為 0 ~ 63
0 0 1 0 1 1 0 # # # 176 0xB0 設定頁面地址,範圍為 0 ~ 7
0 0 1 0 0 0 0 0 0 1 129 0x81 設定對比度,範圍為 0 ~ 63
(2位元組)
0 0 1 # # # # # # 1 129 0x81
0 0 1 0 1 0 0 0 # # 160 0xA0 設定畫格速度
  • 0x00 = 76 FPS
  • 0x01 = 95 FPS
  • 0x02 = 132 FPS
  • 0x03 = 168 FPS
0 0 1 0 1 0 0 1 0 # 164 0xA4 設定顯示所有像素,不過影響 DDRAM
0 0 1 0 1 0 0 1 1 # 166 0xA6 設定反向顯示
0 0 1 1 0 0 0 Y X 0 192 0xC0 設定 LCD 映射控制
  • Y
    • 0 = 在底部開始
    • 1 = 在頂部開始
  • X
    • 0 = 在左邊開始
    • 1 = 在右邊開始
還有其他控制項目,但以上列舉為常用控制項目

UC1609 引腳功能

編號 名稱 方向 功能
1 K LED 背光 接地
(ERM19264 引腳)
2 A LED 背光 電源,接受 5V
(ERM19264 引腳)
3 GND LCD 熒幕 接地
(ERM19264 引腳)
4 VDD LCD 熒幕 電源,接受 5V
(ERM19264 引腳)
5 SCK 輸入 序列時脈,資料由高至低取值
每8位元資料為1週期
6 SDA 輸入 序列資料
7 RST 輸入 低電壓時,重置所有控制模式的設定值
若果不需要重置,保持高電壓
(ERM19264 引腳)
8 CD 輸入 低電壓時,為控制模式
高電壓時,為資料模式
(ERM19264 引腳)
9 CS 輸入 低電壓時,為啟動狀態
高電壓時,為閒置狀態

UC1609 是使用 最高有效位 (Most Significant Bit (MSB)) 次序發送訊號
引腳初始化開始1位元組 控制 週期結束
延遲1微秒
RST
CS
CD高/低
SCK
SDA高/低

訊號波紋時序圖
RST CS CD SCK SDA
UC1609 都是使用 序列周邊介面 (Serial Peripheral Interface (SPI)) ,使用 1組 8位元資料

線路接駁

見下文
如果使用 Arduino SPI引腳SPI.h 函式庫,可以使用這種接駁方式
Arduino引腳 UC1609引腳
GND K
5V A
GND GND
5V VDD
13 (SCK) SCK
11 (MOSI) SDA
9 RST
8 CD
10 (SS) CS

見下文
見下文
既然需要自行編寫驅動程式,在下便用懶惰的方法接駁線路,就不需要接線

見下文
使用 數碼引腳 接駁 A引腳 及 VDD引腳 當作 電源引腳; K引腳 及 GND引腳 當作 接地引腳
但正式使用時盡量不使浪費 數碼引腳 當作 電源 及 接地 使用

見下文
每次啟動都會有雜訊,建議每次啟動後都先清空內容

對比度

見下文
在下認為 0x10 至 0x20 的對比度適合顯示

映射控制

映射控制可以當作控制游標的開始位置
見下文
Y = 0, X = 0 時,在 左下開始

見下文
Y = 1, X = 0 時,在 左上開始

見下文
Y = 0, X = 1 時,在 右下開始

見下文
Y = 1, X = 1 時,在 右上開始

設定映射控制有限制
控制垂直,可以即時互動操作;但控制水平前,必須先清空內容,否則無效

繪圖

繪圖的操作與 KS0108 完全相同,ERM19264-4 還增加相反顏色的操作
見下文
沒有啟動相反顏色時,將資料的位置亮著

見下文
啟動相反顏色時,將資料的位置暗淡

字庫

ERM19264-4 沒有字庫,因此要在 LCD 上顯示文字同樣需要自製字庫
在下使用 自由、開源、免費 的 GNU Unifont7x5 (HD44780 Font) 為基礎,製作方便顯示文字的字載檔案
即是字庫在 LCD 熒幕 上實際只是一堆有系列的圖案

總結

雖然與 KS0108 相似,但使用 UC1609 控制 ERM19264-4 簡單
操作亦與 電子紙 非常相似,都是透過另一塊晶片控制,操作亦比 電子紙 簡單
由於在下使用 Arduino 提供的 ERM19264_UC1609.h 函式庫 無法運作,因此唯有自行編寫驅動程式

如果閣下有興趣,可以到
https://create.arduino.cc/editor/hkgoldenmra/72a7e394-ca36-4968-92b4-95e4271a8979/preview
https://bitbucket.org/hkgoldenmra/erm19264uc1609module
瀏覽及下載
另外亦可以使用 git 下載原始碼
git clone "https://bitbucket.org/hkgoldenmra/erm19264uc1609module.git" --depth=1
另外在下發現設定 對比度 時,雖然 資料表 顯示設定範圍為 0 至 255,但當指定數值為 128 (B10000000) 時,對比度 與 0 相同
估計與 指令 129 (B10000001) 將 參數 128 (B10000000) 抵消了,因此與 0 相同
再考慮 129 是 128 + 1 ,即是 1 同樣抵消了,因此實際只有 第6位元 至 第1位元 可以設定

參考資料

沒有留言 :

張貼留言