1.0 - RAiO Technology Inc.

RAiO
RA8806
雙圖層 文字/圖形
LCD 控制器
常見使用問題及說明
Preliminary Version 1.0
June 24, 2009
RAiO Technology Inc.
©Copyright RAiO Technology Inc. 2009
RAiO TECHNOLOGY INC.
1/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
Update History
Version
1.0
Date
June 24, 2009
RAiO TECHNOLOGY INC.
Description
Preliminary Version
2/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
Chapter
Contents
Page
1. 基本應用篇 ................................................................................................. 5
1-1 基本介紹................................................................................................................. 5
1-2 如何設計模組上的 RA8806 電路 ............................................................................ 6
1-3 使用 RA8806 無法點亮........................................................................................... 8
1-4 如何寫入文字.......................................................................................................... 9
1-5 如何使用連續資料寫入功能 .................................................................................... 9
1-6 如何調整 Frame Rate .......................................................................................... 10
1-7 灰階模式與單色模式的 Frame Rate 設定 ............................................................. 11
1-8 加強顯示品質透過對比的調整 .............................................................................. 11
2. 消除雪花篇 ............................................................................................... 12
2-1 何謂雪花............................................................................................................... 12
2-2 消除雪花功能的限制............................................................................................. 12
2-3 使用消除雪花功能時的建議事項 ........................................................................... 12
3. 觸控螢幕篇 ............................................................................................... 13
3-1 如何使用 RA8806 內建的觸控功能控制電路 ........................................................ 13
3-2 手動模式與自動模式的差異 .................................................................................. 14
3-3 如何偵測觸控事件的發生...................................................................................... 14
3-4 自動模式下的設定流程 ......................................................................................... 15
3-5 手動模式下的設定流程 ......................................................................................... 17
4. 灰階顯示篇 ............................................................................................... 19
4-1 RA8806 的灰階應用與特性 .................................................................................. 19
4-2 320x240 灰階圖片需求的記憶體空間 ................................................................... 19
4-3 如何顯示 320x240 的灰階圖片 ............................................................................. 19
4-4 如何在座標為(5,5)的位置下顯示 240x160 的灰階圖片 ......................................... 19
4-5 在灰階模式下,如何顯示文字或符號.................................................................... 20
5. 其他常見問題............................................................................................ 21
5-1 顯示的文字或圖形缺點 ......................................................................................... 21
5-2 顯示的文字或圖形偏移 ......................................................................................... 21
5-3 如何避免當機現象 ................................................................................................ 22
5-4 如何避免 IC 損毀 .................................................................................................. 22
RAiO TECHNOLOGY INC.
3/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
5-5 顯示的畫面有殘影或品質不佳 .............................................................................. 23
RAiO TECHNOLOGY INC.
4/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
1. 基本應用篇
1-1 基本介紹
RA8806 是一顆強大且容易使用的 STN LCD 顯示控制器,除了提供 STN LCD 顯示功能外,還內建
中英文字形檔、智慧型電阻式觸控掃瞄控制器與鍵盤掃瞄介面,使用者可以節省相當多的時間和成
本於系統硬體和軟體發展上。RA8806 系統應用方塊圖如下:
LCD
LCD
Driver
Driver
Font
ROM
Display
RAM
CPU
CPU
LCD
LCD
Driver
Driver
LCD
Controller
1
2
3
4
5
6
7
8
9
*
0
#
LCD
LCD Panel
Panel
(128x64
(128x64 ~~ 640x240)
640x240)
Touch Panel
ADC
Key-Scan
Touch
Controller
RA8806
圖 1-1
基本上 RA8806 接受 MCU 送來的指令,然後將 MCU 所希望顯示的內容以資料傳輸到 LCD 驅動器
(Driver),再透過驅動器接到 STN 玻璃上顯示出文字或圖案。因此 RA8806 是界於 MCU 與 LCD 驅
動器之間的控制 IC,在實際應用上有兩種模式,一種是將 RA8806 置於 LCD 模組上,做成帶控制
器的 LCD 模組, 如下圖:
LCD 模組
其他元件
其他元件
CPU
CPU
升壓電路
升壓電路
LCD
LCD
Driver
Driver
LCD
LCD
Controller
Controller
LCD
LCD
Driver
Driver
LCD
LCD Panel
Panel
(128x64
(128x64 ~~ 640x240)
640x240)
RA8806
圖 1-2
RAiO TECHNOLOGY INC.
5/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
另一種是將 RA8806 置於系統端,搭配各式不帶控制器的 LCD 模組,如下圖:
LCD 模組
其他元件
其他元件
升壓電路
升壓電路
LCD
LCD
Driver
Driver
LCD
LCD Panel
Panel
LCD
LCD
Driver
Driver
LCD
LCD
Controller
Controller
CPU
CPU
(128x64
(128x64 ~~ 640x240)
640x240)
RA8806
圖 1-3
1-2 如何設計模組上的RA8806 電路
如果您是模組廠商,想要將RA8806 置於LCD模組上做成帶控制器的LCD模組,請先下載最新的
RA8806 規格書,您可以與瑞佑科技的代理商連系或直接由瑞佑科技的網址(www.raio.com.tw)得到
完整的RA8806 規格書,並且依據RA8806 各腳位的應用、參考 6-2 節對LCD驅動器之間的介面說明
及附錄A的應用電路,來準備您的模組電路圖,下面幾點是比較容易疏忽的地方:
‹
3V 與 5V 的模組在接線上略有不同,請參考規格書第 6-7 節。
‹
當 RA8806 工作於 5V 的系統時,為了增加 VDD 的穩定性,必須在 VDD 上外加一 1µF
和 0.1µF 的電容。如下圖或參考規格書第 6-7-3 節。
5V
MCU
RA8806
5V
VDDP
VDD
~3V
VDD
VDDH
0.47uH
AVDD
GNDP
(Option)
10u 0.1u
1u 0.1u
GND
0.1u
AGND
GND
I/O
MCU I/F
圖 1-4
‹
RA8806 的振盪電路是由外部在 XG 和 XD 兩腳間的石英振盪器和兩個電容產生,請使
用 4MHz~12MHz 的石英振盪器。(雖然 RA8806 與 RA8803/8822 腳位是相容的,但
RA8803/8822 的石英振盪器是固定使用 32768Hz,與 RA8806 不同。)
RAiO TECHNOLOGY INC.
6/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
RA8806
XG
15pF
X’tal
XD
15pF (4~12MHz)
圖 1-5
‹
RA8806 支援 8080 和 6800 等兩種微處理機介面傳輸模式。介面的選擇決定於 IC 接
腳 ”MI” 的電位,當選擇 8080 來進行介面傳輸時,MI 必須連接到低電位,反之,當選
擇 6800 來進行介面傳輸時,MI 必須連接到高電位。而使用者的程式必須依循硬體上
的 MCU 介面傳輸模式,RA8806 才能收到 MCU 的正確指令。
‹
由於您無法預知系統端客戶的 MCU 介面環境,為了減輕 MPU 與 RA8806 間的傳輸線
及使用環境的干擾,強烈建議您在 RA8806 的 ZCS1、ZRD、ZWR 端加一小電容
(50~150pF)到 GND,如下圖或規格書的圖 6-1、6-2。
8080
MPU
RA8806
RS
A0
A1 -A7
IORQ
Decoder
ZCS1
CS2
MI
DATA0-3(DATA0-7)
D0-D3(D0 -D7)
RD
ZRD
WR
ZWR
RES
ZRST
圖 1-6
‹
使用觸控螢幕的功能除了連接 XL、XR、YU 和 YD 等四條信號線到 RA8806 外,此四
條信號線必須外加 0.01uF 電容到地,YU 也要外加一 39Kohm 提升電阻,如規格書的
圖 6-18 RA8806 觸控螢幕電路。
VDD
RA8806
39Kohm
X1
Touch Panel
XL
X2
XR
Y1
YU
Y2
YD
0.01μF x 4
圖 1-7
RAiO TECHNOLOGY INC.
7/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
當然除了RA8806,模組設計者必須確定其他元件與電路的正確性,如升壓電路、OP分壓電路、
LCD Driver電路等等,而不論您是模組設計者或是系統端客戶,都可以參考瑞佑科技所提供的範例
程式(可直接由瑞佑科技的網址(www.raio.com.tw)下載,我們提供了 2 個為 320x240 的模組所寫的範
例程式壓縮檔案 RA8806_320x240-EX1.rar 與 RA8806_320x240-EX2.rar。
1-3 使用RA8806 無法點亮
如果您是模組廠商,底下是當您使用 RA8806 無法點亮 LCD 所進行的除錯與分析流程:
1. 確定電源(3V 或 5V) 正確送到 RA8806、升壓電路、OP 分壓電路、LCD Driver 電路。
2. 確定升壓電路產生的 VLCD 及 OP 分壓電路的產生的 V0~V4 正確送到 LCD Driver。
3. 確定 RA8806 的振盪電路正常運作。可用示波器量測 XD、XG 兩腳是否有振盪。
4. 確定 RA8806 的 ZRST 於開機收到 MCU 送來的重置信號。Reset 完成後 ZRST 應維持 Hi
的準位。
5. 確定 MCU 與 RA8806 的硬體接線、線路定義正確。
6. 確定 MCU 產生的時序符合 RA8806 要求,並與 RA8806 在模組上的硬體設定一致。請參
考規格書的圖 6-3、6-4。
7. 確定 MCU 產生的指令符合 RA8806 的流程與要求。
8. 確定 RA8806 給 LCD Driver 的信號(YD、FR、LP、XCK、LD[3:0]) 有正確產生。
通常 RA8806 給 LCD Driver 的信號若有產生,LCD 應會有畫面出現,若無畫面出現則可能的問題通
常是升壓部份的電路,不是升壓電路沒有產生 VLCD,就是 OP 分壓電路的產生的 V0~V4 沒有正確
送到 LCD Driver。
如果您是系統端客戶,一般您拿到的模組是模組廠商測試過的,因此出現使用 RA8806 無法點亮的
原因通常是上述的 5~7 項,如果您是將 RA8806 置於系統端,而搭配模組廠商不帶控制器的 LCD 模
組,則必須參考檢查上述的 3~8 項。
RAiO TECHNOLOGY INC.
8/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
1-4 如何寫入文字
在螢幕上寫字(Text)或秀圖(Graphic)時,其實就是在對顯示記憶體(Display Memory)寫入資料,由於
RA8806 設計的關係,使用者必須在寫入資料前,下達 CMD[B0h],然後再寫入欲顯示的資料;否則
將無法顯示。除此之外,當要寫入的資料為文字(Text)時,必須設定暫存器[00h]的 Bit 3 為 1,否則
顯示出來的將會是圖形資料(Graphic)。例如:欲在畫面上寫英文字母 A 時,則程式如下所示:
LCD_Text();
LCD_CmdWrite(0xB0);
LCD_DataWrite(0x41);
// set the Register [00h] Bit3 to 1
// Character Code of A (Font Code) is 41h
1-5 如何使用連續資料寫入功能
RA8806 具有「連續寫入資料」的功能,實際應用上,使用者只須設定好欲顯示的座標位置,下達
CMD[B0h]之後,就能連續寫入資料(文字或繪圖皆可)。例如:欲在畫面上寫英文字母 ABC 時,則程
式如下所示:
LCD_Text();
LCD_SetXY(5,10);
LCD_CmdWrite(0xB0);
LCD_DataWrite(0x41);
LCD_DataWrite(0x42);
LCD_DataWrite(0x43);
// set the Register [00h] Bit3 to 1
// set address X = 5,Y = 10
// Font Code A : 41h
// Font Code B : 42h
// Font Code C : 43h
值得注意的是,在連續寫資料的過程中,當下達其他的 CMD 時,則必須重新下達 CMD[B0h],才能
繼續寫入資料。其中,使用者最常犯的錯誤就是,在寫資料的過程中重新設定座標的位置,卻忘記
再次下達 CMD[B0h],而使得後面寫的資料無法顯示,請看以下的例子。
ABCDE
ABCDE
圖 1-8
RAiO TECHNOLOGY INC.
9/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
大家常犯錯的程式寫法如下:
LCD_Text();
// set the Register [00h] Bit3 to 1
LCD_SetXY(0,0);
// set address X = 0,Y = 0
LCD_CmdWrite(0xB0);
for(i = 0 ; i < 5 ; i++)
{
LCD_DataWrite(0 x 41 + i);// data write : ABCDE
}
LCD_SetXY(0,16);
// set address X = 0,Y = 16
for(i = 0 ; i < 5 ; i++)
{
LCD_DataWrite(0 x 41 + i);// data write : ABCDE
}
以上的程式會造成”第二行的 ABCDE”部分無法顯示。此種狀況只需在設定完座標後再下達一次
CMD[B0h]即可解決。正確程式寫法如下:
LCD_Text();
// set the Register [00h] Bit3 to 1
LCD_SetXY(0,16);
// set address X = 0,Y = 16
LCD_CmdWrite(0xB0);
for(i = 0 ; i < 5 ; i++)
{
LCD_DataWrite(0x41 + i); // continue write ABCDE
}
1-6 如何調整Frame Rate
RA8806 提供一個暫存器 ITCR,可讓使用者來調整 Frame Rate。ITCR 的內容值為「每一 Com 的
起始到開始掃瞄(Scan)中間的閒置時間」,如下圖所示:
XCLK
LP
COM_SCAN
ITCR
T_COM
圖 1-9
使用者可藉由設定 ITCR 的內容值,進而調整顯示的 Frame Rate,兩者之間的關係公式如下:
(假設 panel resolution 為 320x240,driver data bus 為 4 Bit)
Frame Rate =
RAiO TECHNOLOGY INC.
System Freq.
( ITCR +320 / 4 ) × 240
10/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
例如:當系統頻率為 4 MHz 時,若要調整 Frame Rate 為 70Hz,則 ITCR 為:
ITCR =
4 × 10
6
240 × 70
− 80 = 158
1-7 灰階模式與單色模式的Frame Rate設定
為達到最佳的顯示,建議 Frame Rate 調整為 120Hz~140Hz,若調整 Frame Rate 為 70Hz,畫面
將會出現閃爍的現象。
1-8 加強顯示品質透過對比的調整
會發生此一狀況,通常與 Frame Rate 有關,若為一般顯示(非四灰階顯示)時,當 Frame Rate 大於
90Hz 以上,顯示品質將會愈來愈差,因此發生類似問題時,必須調整 Frame Rate 在 70Hz~80Hz
之間為宜。關於在不同系統頻率下 Frame Rate 調整,使用者可自行參考規格書中之附錄 B。
RAiO TECHNOLOGY INC.
11/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
2. 消除雪花篇
2-1 何謂雪花
所 謂 「 雪 花 」 就 是 當 RA8806 內 部 的 邏 輯 電 路 在 執 行 掃 瞄 任 務 時 , 若 在 同 時 MPU 對
RA8806DDRAM 做資料的存取,顯示幕的掃瞄資料將被干擾造成錯誤,會在顯示幕上顯示多餘的雜
點。RA8806 內建一個「消除雪花功能」,使用此一功能需將暫存器 MISC(REG[01h]) 的 Bit 7 設定
為 1。
2-2 消除雪花功能的限制
‹ 在文字模式和自動清除螢幕畫面模式下無法使用「消除雪花功能」,反之,RA8806 只能在圖形
模式下才可使用「消除雪花功能」。
‹ 所謂「自動清除螢幕畫面模式」即是將要填的資料(如果是要清除螢幕畫面則是填 0x00)存到暫存
器 PNTR(REG[E0h]),並啟動該功能,由硬體自動將畫面資料清除。
‹ 因此,當切換文字 / 圖形的顯示模式時,需注意「消除雪花功能」是否開啟,因為這將導致顯示
上的問題。
2-3 使用消除雪花功能時的建議事項
如此,可將「消除雪花功能」發揮到極致,以確保顯示品質。
‹ 當開啟文字模式時,請關閉「消除雪花功能」。
‹ 當開啟圖形模式時,請開啟「消除雪花功能」。
‹ 在啟動自動清除螢幕畫面模式之前,請關閉「消除雪花功能」,等清除螢幕畫面結束後,再開啟
「消除雪花功能」。
RAiO TECHNOLOGY INC.
12/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
3. 觸控螢幕篇
3-1 如何使用RA8806 內建的觸控功能控制電路
‹ 硬體控制方面:
對使用者而言,應用觸控螢幕功能只需連接 XL、XR、YU 和 YD 等四條信號線到 RA8806 即
可。另外,為提高信號輸出的穩定度,建議在每條信號線上各接 0.01μF 電容器到地。如下圖所
示。
VDD
RA8806
39Kohm
Touch Panel
X1
XL
X2
XR
Y1
YU
Y2
YD
0.01μF x 4
圖 3-1
‹ 軟體控制方面:
首先必須設定暫存器 TPCR1 的 Bit 7 來致能觸控螢幕功能,其次使用者可依據本身的需要來選
擇「手動操作模式」或「自動操作模式」。相關暫存器定義如下:
表 3-1
Reg.
Bit_Num
TPCR1
Bit 7
Enable Touch Panel function
Bit 7
“Auto-Mode” or “Manual Mode” selection bit
Bit 1~0
Mode selection for TP manual mode
Bit 4
Touch Panel Hardware Interrupt enable bit.
Bit 3
Touch event detect bit
( use in Manual Mode only).
Bit 0
Touch Panel Detect Status bit
TPXR
Bit 7~0
Touch Panel X Data Bit [9:2] (Segment)
REG[C1h]
TPYR
Bit 7~0
Touch Panel Y Data Bit [9:2] (Common)
REG[C2h]
Bit 3~2
Touch Panel Y Data Bit [1:0]。(Common)
Bit 1~0
Touch Panel X Data Bit [1:0]。(Segment)
TPCR2
INTR
TPZR
RAiO TECHNOLOGY INC.
Description
13/23
Reference
REG[C0h]
REG[C4h]
REG[0Fh]
REG[C3h]
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
3-2 手動模式與自動模式的差異
‹ 所謂「手動操作模式」是指從「偵測觸控事件」到「栓鎖 X data 與 Y data」以及「讀出 XY 座
標值」的整個過程,都是由程式設計師以手動操作方式來完成。
‹ 相對地,當使用「自動操作模式」時,一旦致能觸控螢幕功能之後,使用者無須做任何事,直到
觸控事件(touch event)發生後,便可逕自將 XY 座標值讀出。
‹ 「自動操作模式」的優點在於簡單、易於操作,而「手動操作模式」是保留給使用者相當大的設
計彈性。
3-3 如何偵測觸控事件的發生
使用者可透過「外部中斷」或「輪詢(polling)觸控狀態」的方式來偵測觸控事件的發生,說明如下:
(一) 透過外部中斷偵測:
1. 硬體方面,必須將 RA8806 的中斷信號(INT)輸出腳接到 MCU 的中斷輸入端。
2. 軟體方面,須致能觸控螢幕硬體中斷位元(Touch Panel INT Mask Bit,REG[0Fh]的 Bit 4),
以偵測觸控事件的發生。
3. 當偵測到觸控事件發生時,RA8806 將發出中斷信號通知 MCU
4. 而程式亦將跳至中斷服務程式(Interrupt service routine,ISR)
5. 執行對應的功能。
(二) 透過輪詢的方式來偵測觸控狀態:
1. 所謂「輪詢」就是不斷檢查暫存器 INTR 中的觸控事件之狀態位元(Bit 0),來偵測是否有觸
控事件發生。
2. 當偵測到觸控事件發生時,此一位將被設定為”1”,待讀出 XY 座標值、處理完對應功能後,
使用者需將它清除為 0,以便能偵測下一次觸控事件的發生。
RAiO TECHNOLOGY INC.
14/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
3-4 自動模式下的設定流程
(一) 使用「自動操作模式」時,需設定的參數如下表(標示*號的必須設定的參數,其餘視狀況而
定):
表 3-2
Reg.
TPCR1
TPCR2
INTR
Bit_Num
Description
Reg._Num
Bit 7
Bit 6~4
Bit 2~0
Bit 7
Bit 4
Bit 0
Enable Touch Panel function
Touch scan sampling time adjust bit
Touch scan frequency conversion speed bit
“Auto Mode” or “Manual Mode” selection bit
Touch Panel Hardware Interrupt bit
Touch Panel Detect Status bit
REG[C0h]
REG[C4h]
*
*
*
*
REG[0Fh]
(注)詳細定義說明請參考 Data Sheet 第 18、27、28 頁。
在上表中,暫存器 TPCR1(REG[C0h])中的「觸控掃瞄取樣時間」與「觸控掃瞄頻率轉換速度」
兩項參數的設定具有一定的規則,為提升 ADC 輸出座標值的穩定度,建議內容值如下表:
表 3-3
System
CLK
4 MHz
6 MHz
8 MHz
10 MHz
12 MHz
ADC
Conversion
Clock Control
REG[C0][2:0]
000
001
010
000
001
010
011
100
000
001
010
011
100
000
001
010
011
100
000
001
010
011
100
Conversion
Frequency
(KHz)
1000
500
250
1500
750
375
188
94
2000
1000
500
250
125
2500
1250
625
313
156
3000
1500
750
375
188
Touch scan
Sampling wait
time
REG[C0][6:4]
000
000
000
000
000
000
001
010
000
000
000
001
010
000
000
000
001
010
000
000
000
001
010
Sampling
wait time
REG[C0]
Suggested
data
50
50
50
50
50
50
100
200
50
50
50
50
100
50
50
50
50
100
50
50
50
50
100
0x80
0x81
0x82
0x80
0x81
0x82
0x93
0xA4
0x80
0x81
0x82
0x83
0x94
0x80
0x81
0x82
0x83
0x94
0x80
0x81
0x82
0x83
0x94
(注)值得注意的是,在不同觸控螢幕模組或觸摸狀態不明確(ex:輕碰)的情況下,上述建議值並不
能完全保證 ADC 輸出的穩定性,這部分尚需使用者在軟體程式方面予以強化。
RAiO TECHNOLOGY INC.
15/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
(二) 主要區分為三大執行步驟:
(1) 設定相關參數(包括選擇「自動模式」、「致能觸控螢幕功能」、「觸控掃瞄取樣時間」、
「觸控掃瞄頻率轉換速度」以及其他設定)。
(2) 偵測觸控事件(包括「外部中斷」與「輪詢」兩種方式,請參考本篇問題 3-3 之說明)。
(3) 讀取 XY 座標值(各有 10 Bit,分別存放在 REG[C1h]、[C2h]和 [C1h],請參考本篇問題 3-1
之說明)。
以下為自動模式使用「外部中斷」的方式來實現的流程圖:
Start
Enable Touch Panel
ISR
( REG[C0h] B7 = 1 )
Set Auto Mode
Check INT Status
( REG[C4h] B7 = 0 )
0
( REG[0Fh] B0 = ? )
1
Enable TP INT Mask
( REG[0Fh] B4 = 1 )
Read X, Y-axis
( Read REG[C1h],
Ext. INT Event
REG[C2h], REG[C3h] )
Execute Function
Other Functions
Clear TP INT Status
( REG[0Fh] B0 = 0 )
ISR Termination
圖 3-2
RAiO TECHNOLOGY INC.
16/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
3-5 手動模式下的設定流程
(一) 當使用「手動操作模式」時,需設定的參數如下表(標示*號的必須設定的參數,其餘則視狀況
而定):
表 3-4
Reg.
TPCR1
TPCR2
INTR
Bit_Num
Description
Bit 7
Bit 6~4
Bit 2~0
Bit 7
Bit 1~0
Bit 4
Enable Touch Panel function
Touch scan sampling time adjust bit
Touch scan frequency conversion speed bit
TP Manual mode enable
Mode selection for TP manual mode
Touch Panel Interrupt Mask
Touch Panel Detect Status bit (use in manual
mode only).
Touch Panel Detect status bit
Bit 3
Bit 0
Reference
*
REG[C0h]
REG[C4h]
*
*
REG[0Fh]
(注)詳細定義說明請參考 Data Sheet 第 18、27、28 頁。
(二) 以「輪詢」方式偵測為例,手動模式計有以下六項步驟:
(1) 設定相關參數(包括選擇「手動模式」、「致能觸控螢幕功能」以及其他設定)。
(2) 設定手動模式程式為「等待觸控事件」(設定 REG[C4h][1:0] = 01)。
(3) 檢查觸控是否為有效事件(不斷檢查 REG[0Fh]之 Bit 3 達一定次數皆相同,視為有效事件)。
設定手動模式程式為「栓鎖 X data」(亦即設定暫存器 TPCR2[1:0]為 10b),並等待足夠長的
時間。(注)
(4) 設定手動模式程式為「栓鎖 Y data」(亦即設定暫存器 TPCR2[1:0]為 11b),並等待足夠長的
時間。(注)
(5) 讀取 XY 座標值(各有 10 Bit,分別存放在 REG[C1h]、[C2h]和[C1h],請參考本篇問題一之
說明)。
(注)建議等待時間至少為 50 個 ADC Clock 時間長度,至於 ADC Clock 轉換速度則視
REG[C0h] [2:0]而定。假設系統頻率為 4MHz,在 REG[C0h] [2:0] 的不同設定下,建議等
待時間如下表:
表 3-5
REG[C0h][2:0]
000
001
010
011
RAiO TECHNOLOGY INC.
ADC clock
conversion
speed
1 MHz
500 KHz
250 KHz
125 KHz
ADC clock
cycle
1 μs
2 μs
4 μs
8 μs
17/23
suggested wait
time
(50 ADC Clock)
50 μs
100 μs
200 μs
400 μs
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
以下為手動模式使用「輪詢」的方式來實現的流程圖:
Start
Enable Touch Panel
Latch X Data
( REG[C0h] B7 = 1 )
( REG[C4h][1:0] = 10 )
Set Auto Mode
Delay enough time
( REG[C4h] B7 = 1 )
Latch Y Data
Wait for TP event Mode
( REG[C4h][1:0] = 11 )
( REG[C4h][1:0] = 01 )
Delay enough time
0
Check TP Event
Read X, Y-axis
( REG[0Fh] B3 = ? )
( Read REG[C1h],
1
REG[C2h], REG[C3h] )
Check TP Event
valid
Execute Function
100 times ?
invalid
Clear TP INT Status
( REG[0Fh] B0 = 0 )
Other Function
圖 3-3
RAiO TECHNOLOGY INC.
18/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
4. 灰階顯示篇
4-1 RA8806 的灰階應用與特性
‹
RA8806 的灰階模式共支援四階(level)顯示。
‹
僅需將暫存器 MAMR(REG[12h])的 Bit 6~4 設定為 000 即可進行灰階顯示。
‹
灰階模式同時支援圖形顯示和文字顯示的功能,其中文字顯示的功能請參考問題 4-5。
4-2 320x240 灰階圖片需求的記憶體空間
在灰階模式下,由於每一顯示位元需要記憶體中的二個位來儲存。因此,一張 320x240 的灰階圖,
則需要:
320 x 240 x 2 = 153600 bits = 19200 bytes (about 19K bytes)
4-3 如何顯示 320x240 的灰階圖片
將灰階圖形的資料依序從座標位置(0 , 0)寫入到顯示記憶體即可。範例程式如下所示:
LCD_GrayScale_Mode();
// enable gray scale function
LCD_SetXY(0,0);
// set coordinate at X = 0,Y = 0
LCD_CmdWrite(0xB0);
// memory write command
for(i = 0 ; i < 19200 ; i ++)
// write data 19200 bytes
{
LCD_DataWrite(320x240_Gray_pic[ i ]);
}
4-4 如何在座標為(5,5)的位置下顯示 240x160 的灰階圖片
當工作視窗設定為 320x240 時,則需使用雙迴圈(Double Loop)的方式將 160 列,每列 60 位元組
(240×2 ÷8) 的資料依序寫入到顯示記憶體中。由於無法自動換行,因此需在每列開始寫入資料之
前,重新給予座標位置。範例程式如下所示:
for(i = 0 ; i < 160 ; i ++)
// 160 rows
{
LCD_SetXY(5, 5 + i);
// set coordinate at X = 5,Y = 5
LCD_CmdWrite(0xB0);
// memory write command
for(j = 0 ; j < 60 ; j ++)
// 60 bytes per row data
{
LCD_DataWrite(240x160_Gray_pic[ j + i * 60 ]);
}
}
RAiO TECHNOLOGY INC.
19/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
4-5 在灰階模式下,如何顯示文字或符號
瑞佑在這一方面提供兩組程式供客戶參考使用,分別是旋轉畫面 90 度的應用和正常(不旋轉)畫面
的應用。客戶只需在呼叫此一程式時,輸入相關參數,即可在灰階模式下顯示中文字。關於程式中
的輸入參數,說明如下:
‹
XX:欲顯示文字的 X 座標值,data length 8 bits.資料長度為 8 位元。
‹
YY:欲顯示文字的 Y 座標值,data length 8 bits.資料長度為 8 位元。
‹
*ptr:文字字串的指標位址,data length 8 bits.資料長度為 8 位元。
‹
gray_level:定義文字本身之灰階。
‹
font_inverse:為字型反白的功能。
另外,在使用此一程式之前,必須:
‹
將顯示模式切換為「灰階顯示」。
‹
若要進行旋轉畫面 90 度的應用顯示,亦須將 REG[10h]之 Bit 3 設定為 1。
Sub-routine for displaying font
in the gray-scale mode
Main Program
Start
Reset LCD
Initialize LCD
Setup Display
Page1
Turn on LCD
Enable character
mode
Clear display
memory
Rotate 90° on the
screen
Setup RA8806 to
access Page1
Write a full-size font
on the specified
coordinate
Setup RA8806 to
display Page1
Setup graphic
input mode
Enable graphic
mode
Read 32 byte
display data from
RA8806
Enable gray-scale
mode
Enable gray-scale
mode
Enable Eliminating
flicker mode
Transfer the 32 byte read
back data and write them
into the display memory of
RA8806
Display 4-grayscale image
Show font on grayscale image
End
No
No
Is it the 32nd data ?
Yes
Is it the last font ?
End
RAiO TECHNOLOGY INC.
20/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
5. 其他常見問題
5-1 顯示的文字或圖形缺點
可能的原因有 2:
1. RA8806 的 DC to DC 不穩定Æ 內部 RA8806 工作於 5V(VDDP=5V),VDD 應接一大於 1uF
的電容到地(GND)。請參考規格書第 6-7-3 節。
2. MCU 傳遞資料過快導致 RA8806 的處理速度跟不上Æ 請在程式加上延時(Delay) ,或以
Check “Busy” 方式確定 RA8806 已經處理完上一筆資料。
5-2 顯示的文字或圖形偏移
可能的原因有 4:
1. RA8806 設定的顯示視窗(Display Window、工作視窗(Active Window)大小與實際 LCD
解析度(Resolution) 不同。下表列出幾種較為大家所常用的 LCD 模組及其相關暫存器設定。
表 5-1
Panel
Resolution
Segment Common
REG[21h]
DWWR
REG[31h]
DWHR
160*80
160
80
13h
4Fh
160*128
160
128
13h
7Fh
160*160
160
160
13h
9Fh
240*64
240
64
1Dh
3Fh
240*128
240
128
1Dh
7Fh
240*160
240
160
1Dh
9Fh
320*240
320
240
27h
EFh
2. MCU 傳遞資料過快導致 RA8806 的處理速度跟不上Æ 請在程式加上延時(Delay),或以
Check “Busy” 方式確定 RA8806 已經處理完上一筆資料。
3. MCU 產生的時序不符合 RA8806 要求Æ 避免 Set-up time 或 Hold Time 不足,請參考規格
書的圖 6-3、6-4。
4. 系統環境不佳、雜訊干擾過大、或模組與系統連接線過長,都有可能造成此現象Æ 雖然
RA8806 在 MCU 介面輸入端採用 Schmitt Trigger 電路避免雜訊干擾,但是過大的雜訊干擾
仍會造成 RA8806 可能的誤動作。為了減輕 MPU 與 RA8806 間的傳輸線及使用環境的干
擾,可以在 RA8806 的 ZCS1、ZRD、ZWR 端加一小電容(50~150pF)到 GND,若是系統
(MCU) 信 號 過 弱 或 負 載 (Loading) 太 大 , 可 以 在 RA8806 的 ZCS1 、 ZRD 、 ZWR 及
DATA[7:0] 端加(1K~4.7Kohm) 提升電阻。
RAiO TECHNOLOGY INC.
21/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
5-3 如何避免當機現象
可能的原因為系統環境不佳、雜訊干擾過大都有可能造成此現象Æ 請參考上一節(5-2 節) 的第 4 點說
明。另外避免模組與系統連接線過長。
5-4 如何避免IC損毀
RA8806 的 ESD 高達 +/-8KV,遠超過工業級 4KV 的要求,但對於使用在特殊的、惡劣的系統環境
仍必須留意 PCB 佈局及加入保護元件,避免造成此損毀現象。
同時過高的瞬間電源突波或超過規格電壓(5.5V) 時間過長也會造成損毀現象Æ 可在模組的 VDD 與
GND 間加一大電容(470uF)或突波吸收器,避免 IC 或 LCD 模組損毀。
Power
LCD Module
7V
VDD
6V
5V
Driver
470uF
Driver
Driver
RA8806
Driver
Driver
GND
t
Time
圖 5-1
另一種會造成 IC 損毀是因為 EOS(Electrically Over Stress) 的原故,最好的避免方法是減短系統與
模組端的 Cable 長度,或是串上 200ohm~1Kohm 電阻:
System Board
LCD Module
MCU
:
:
:
Driver
Driver
Driver
RA8806
Driver
Driver
圖 5-2
RAiO TECHNOLOGY INC.
22/23
www.raio.com.tw
RA8806
雙圖層 文字/圖形 LCD 控制器
Preliminary Version 1.0
5-5 顯示的畫面有殘影或品質不佳
可能的原因有 4:
1. 液晶的品質或偏光片不佳。
2. 升壓(VLCD)不足或驅動力不夠。
3. V0~V4 的分壓不正確。
4. RA8806 的 Frame Rate 設定太高。請參考規格書附錄 B 的 Frame Rate 設定對照表,依據
使用的規格如解析度(Resolution)、RA8806 Clock 來設定暫存器 REG[90h] - ITCR。Frame
Rate 太高會導致驅動 IC(Driver) 耗電大,進而可能影響升壓(VLCD)造成驅動力不夠。
RAiO TECHNOLOGY INC.
23/23
www.raio.com.tw