RAiO RA8806 雙圖層 文字/圖形 LCD 控制器 規格書 Version 1.3 August 24, 2009 RAiO Technology Inc. ©Copyright RAiO Technology Inc. 2008, 2009 瑞佑科技 RAiO TECHNOLOGY INC. 1/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 改 版 說 明 版 本 1.0 日 期 March 31, 2008 說 明 初版發行 1. 新增第 6-4-3 節觸控掃描取樣時間參考表 2. 更新第 6-15 節消除雪花模式的說明 1.1 June 20, 2008 3. 更新表 8-2 DC 電氣特性 4. 新增第 8-3 節驅動介面信號的時序 5. 更新附錄 D (GB Code)及附錄 E (BIG - 5) 1. 規格書及字碼表檔案切割,原附錄 C(ASCII)、D(GB 1.11 August 22, 2008 Code)、E (BIG - 5)變更為字碼表簡體版及繁體版 1. 增加日文漢字版本(RA8806-J) 的說明及字碼表 JIS Code 1.2 March 2, 2009 2. 更新圖 6-38、圖 6-39 PWM 控制 VLCD 的應用電路 3. 更新第 6-10-1-3 節全型字的中、日文漢字使用說明 1. 更新表 5-2 暫存器總表 1.3 August 24, 2009 2. 更新第 6-5 節鍵盤掃瞄功能 3. 更新表 8-2 DC 電性特性 瑞佑科技 RAiO TECHNOLOGY INC. 2/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 章節 1. 2. 3. 4. 內 容 頁數 簡介 ............................................................................................................ 6 特性 ............................................................................................................ 7 系統方塊圖 ................................................................................................. 8 腳位定義 ..................................................................................................... 9 4-1 MPU 介面 ............................................................................................................... 9 4-2 Peripheral 介面 ................................................................................................... 10 4-3 Clock 介面 ........................................................................................................... 11 4-4 LCD 驅動介面 ...................................................................................................... 11 4-5 電源信號............................................................................................................... 12 5. 暫存器描述 ............................................................................................... 13 5-1 暫存器總表 ........................................................................................................... 13 5-2 暫存器內容描述 .................................................................................................... 15 6. 功能描述 ................................................................................................... 31 6-1 MPU 介面 ............................................................................................................. 31 6-1-1 MPU介面型式 ........................................................................................................................31 6-1-2 寫入指令介紹 .........................................................................................................................34 6-1-3 記憶體寫入與讀取..................................................................................................................35 6-1-4 狀態讀取 ................................................................................................................................ 35 6-2 Driver介面............................................................................................................ 36 6-2-1 解析度之設定 .........................................................................................................................39 6-2-2 顯示視窗與工作視窗 ..............................................................................................................40 6-2-3 Com/Seg 掃描方向................................................................................................................42 6-2-4 掃描閒置時間 .........................................................................................................................42 6-3 顯示資料記憶體(DDRAM)................................................................................ 45 6-3-1 顯示層與顯示模式的選擇.......................................................................................................45 6-3-2 記憶體存取之選擇..................................................................................................................46 6-4 觸控螢幕功能........................................................................................................ 47 6-4-1 自動模式 ................................................................................................................................ 49 6-4-2 手動模式 ................................................................................................................................ 51 6-4-2-1 外部中斷模式 ..............................................................................................................51 6-4-2-2 輪詢模式 .....................................................................................................................54 6-4-3 觸控掃描取樣時間參考表.......................................................................................................57 瑞佑科技 RAiO TECHNOLOGY INC. 3/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-5 鍵盤掃瞄功能........................................................................................................ 58 6-6 系統時序和重置 .................................................................................................... 65 6-6-1 振盪電路 ................................................................................................................................ 65 6-6-2 外部時序 ................................................................................................................................ 65 6-6-3 重置........................................................................................................................................ 66 6-7 電源 ...................................................................................................................... 67 6-7-1 電源結構 ................................................................................................................................ 67 6-7-2 3V電源應用電路.....................................................................................................................67 6-7-3 5V電源應用電路.....................................................................................................................68 6-7-4 睡眠模式 ................................................................................................................................ 69 6-8 中斷與忙碌 ........................................................................................................... 70 6-8-1 中斷(Interrupt) .................................................................................................................70 6-8-2 忙碌(Busy) .......................................................................................................................72 6-9 脈寬調變(PWM) ............................................................................................... 74 6-10 顯示功能 ............................................................................................................. 76 6-10-1 字元/圖形模式 ........................................................................................................................76 6-10-1-1 圖形顯示 .....................................................................................................................76 6-10-1-2 半型字 .........................................................................................................................77 6-10-1-3 全型字 .........................................................................................................................78 6-10-1-4 粗體和反白..................................................................................................................81 6-10-1-5 雙圖層顯示..................................................................................................................81 6-10-1-6 行間距 .........................................................................................................................83 6-10-2 灰階掃描顯示 .........................................................................................................................83 6-10-3 字型大小調整和字寫入的時間 ...............................................................................................86 6-10-4 文字垂直顯示 .........................................................................................................................88 6-11 使用者自創字型 .................................................................................................. 90 6-11-1 在CGRAM創造字型 ...............................................................................................................90 6-11-2 在顯示記憶體裡創造字型.......................................................................................................93 6-11-3 創造符號 ................................................................................................................................ 97 6-12 捲動功能 ............................................................................................................. 99 6-12-1 水平捲動 ................................................................................................................................ 99 6-12-2 垂直捲動 ..............................................................................................................................101 6-13 游標 .................................................................................................................. 102 6-13-1 游標位置與移位 ...................................................................................................................102 6-13-2 全型字型對齊功能................................................................................................................102 瑞佑科技 RAiO TECHNOLOGY INC. 4/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-13-3 游標閃爍 ..............................................................................................................................105 6-13-4 游標的寬度和高度................................................................................................................105 6-14 擴展模式 ........................................................................................................... 106 6-15 消除雪花模式.................................................................................................... 109 7. 產品封裝與編號 ...................................................................................... 113 7-1 打線腳位圖 ......................................................................................................... 113 7-2 腳位 X/Y 座標 ..................................................................................................... 114 7-3 封裝腳位圖 ......................................................................................................... 115 7-4 封裝尺寸............................................................................................................. 116 7-5 產品編號............................................................................................................. 120 8. 電氣特性 ................................................................................................. 121 8-1 最大範圍............................................................................................................. 121 8-2 DC電氣特性........................................................................................................ 122 8-3 驅動介面信號的時序........................................................................................... 123 附錄A . 應用電路......................................................................................... 124 附錄B. Frame Rate 設定對照表.................................................................. 125 瑞佑科技 RAiO TECHNOLOGY INC. 5/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 1. 簡介 RA8806 是一個文字與繪圖模式的點矩陣液晶顯示(STN-LCD)控制器,其內建了雙圖層(Two Page) 顯示記憶體,及 512Kbyte ROM 的字型碼,可以顯示全型(16x16 pixels)的繁體中文字型(BIG5, 13973 個字型)或是簡體中文字型(GB,9216 個字型)。同系列中的 RA8806-J 更內建了日本 JIS 標準 漢字第一及第二水準日文漢字字庫共 6355 個字型。RA8806 也內建 4x256 個可顯示大部份使用於英語系 和歐洲國家的半型字(8x16 pixels)字母及符號,也就是符合 ISO8859-1~4(或稱為 Latin-1~4)標準的 ASCII 字碼。 RA8806 支援可轉換到 4-bit 或 8-bit 資料匯流排的 8080/6800 系列之 MPU 介面,而對於 LCD 驅動介面, RA8806 亦可以被設定為 4-bit 或 8-bit 的資料匯流排。在一般模式下,RA8806 可支援最大到 320x240 點 解析度的 LCD 面板,而在擴展模式下,可支援 640x240 或是 320x480 點解析度的 LCD 面板,同時藉由 使用文字旋轉功能,可達成垂直文字的顯示效果。RA8806 也內建了智慧型觸控掃瞄控制器,支援了 4 線 電阻式觸控掃瞄介面,而可程式化的脈波寬度調變器(PWM)可以用來調節 LCD 面板的對比或背光。 RA8806 也提供一個強大且聰穎的 4x8(32 鍵)或 8x8(64 鍵)的鍵盤掃瞄介面,其中更包含了長按鍵的 功能,同時透過適當的中斷和輪詢機制讓使用者可以輕易的操作觸控掃瞄、鍵盤掃瞄、和電源管理等功 能,因此可以有效的減輕 MPU 的負擔。內建 512Byte 字型創造記憶體(Character Generation RAM, CGRAM)讓使用者可以自行創造出最多 16 個全型或 32 個半型的字型或符號,甚至當只使用一個顯示圖 層時,另一個沒有使用到的圖層記憶體也可被當成字型創造記憶體,於此設定狀態下,提供了相當足夠可 以讓使用者自行創造的字或符號(300 個全型或 600 個半型字)。 另外 RA8806 提供了於灰階模式下顯示 4 灰階圖案的顯示效果,當中資料安排的方式相容於大部分的灰階 圖案,且相當容易撰寫。RA8806 也提供了相當多有用的功能,例如區域捲動、文字反白、粗體文字、文 字放大,記憶體清除等等。RA8806 更提供了一項創新的功能 - 無雪花模式(no-flicker),此模式能有效 的移除當頻繁的對記憶體讀寫而所產成的雪花,憑藉著 RA8806 提供此一模式,使用者能輕易地改善 LCD 顯示的品質。 RA8806 是一顆強大且容易使用的 LCD 顯示控制器,它提供中等尺寸 LCD 顯示控制的完整解決方案,使 用者也因此可以節省相當多的時間和成本於系統硬體和軟體開發上。 瑞佑科技 RAiO TECHNOLOGY INC. 6/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 2. 特性 支援文字和繪圖兩種混和顯示模式 一般模式 : 最大支援 320x240 點雙圖層混和顯示(AND、OR、NOR 和 XOR) 擴展模式 : 640x240 點或 320x480 點單圖層顯示 支援 4/8-bits 的 6800/8080 MPU 介面和 4/8-bits LCD 驅動介面 內建聰穎的 8x8 或 4x8 可調節長按鍵功能的鍵盤掃瞄電路 支援水平和垂直區域捲動 內建簡體/繁體中文/日文漢字(GB/BIG5/JIS Kanji Level 1&2)和 ASCII 字體的 ROM 支援 90 度、180 度、270 度文字旋轉顯示功能 支援 1 倍到 4 倍字型放大(垂直和水平) 內建 512Byte 字型創造記憶體(CGRAM): 半型字為 8x16 點,全型字: 16x16 點 沒有使用到的圖層顯示記憶體可被當成字型創造記憶體 : 300 個全型字或 600 個半型字 適當的中斷/輪詢機制提供給觸控掃瞄、鍵盤掃瞄、電源管理等程式的撰寫 支援文字對齊功能 支援 4 灰階顯示(灰階模式) 支援粗體字和行與行間距設定功能 內建智慧型電阻式觸控掃瞄控制器 內建脈波寬度調變(PWM)提供 LCD 對比或背光的調節 電源管理模式以減少電源的消耗 時脈(Clock)來源 : 4M ~ 12MHz 石英振盪器或由外灌時脈 內建一個 5V-to-3V DC/DC 轉換器 電源操作範圍 : 2.4V ~ 5.5V 包裝 : Die、LQFP-100、TQFP-80 Pins 瑞佑科技 RAiO TECHNOLOGY INC. 7/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 3. 系統方塊圖 圖 3-1 為RA8806 內部區塊表示圖,RA8806 包含了二個顯示記憶體(DDRAM)、一個字型創造記憶體 (CGRAM)、字型ROM(Font ROM)、暫存器區塊、類比轉數位轉換器(ADC)、脈波寬度調變 (PWM),LCD驅動介面、微控制器控制介面(MPU),圖 3-2 為RA8806 系統應用方塊圖。 KIN[7:0] KOUT[7:0] PWM_OUT Display Data RAM (9.6KByte x 2) Smart Key-Scan Controller DDRAM1 DDRAM2 LP FR YD ZDOFF XCK Display Timing PWM Registers Controller Generator LD[7:0] XG Oscillator 512Byte MCU Interface System Configure MI DW DB CLK_OUT CGRAM ZCS1 CS2 ZWR ZRD RS INT BUSY DATA[7:0] ZRST XD 512KByte Font ROM Touch Panel Controller X1 X2 Y1 Y2 圖 3-1 : RA8806 內部方塊圖 LCD Driver LCD Panel MPU RA8806 Booster (Contrast Adj.) LCD Driver 8x8 Key Pad Touch Panel H/W Set Up X’tal 圖 3-2 : RA8806 系統方塊圖 瑞佑科技 RAiO TECHNOLOGY INC. 8/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 4. 腳位定義 4-1 MPU 介面 腳位名稱 I/O 說 明 資料匯流排(Data Bus) DATA[7:0] I/O 負責 RA8806 及 微處理器(MPU)之間做資料傳送與接收。 當於使用 4-bits 資料匯流排模式下,其高位元組 DATA[7:4] 為輸出訊號, 應使其保持為浮接(floating)。 ZRD (EN) 致能/讀取控制訊號(Enable/Read Enable) I 當 MPU 為 8080 系列時,此腳為資料讀取訊號(ZRD),於低電位動作。 當 MPU 為 6800 系列時,此腳為致能訊號(EN),於高電位動作。 寫入/讀-寫控制訊號(Write/Read-Write) ZWR (ZRW) 當 MPU 為 8080 系列時,此腳為資料寫入訊號(ZWR),於低電位動 I 作。 當 MPU 為 6800 系列時,此腳為資料讀取/寫入訊號(ZRW),於高電位 時表示讀取動作,於低電位時表示寫入動作。 指令/資料選擇控制訊號(Command / Data Select Input) 此腳位為用於區別指令/資料週期。當 RS = 0 時,RA8806 為資料讀取/寫 入週期。當 RS = 1 時,RA8806 為狀態(status)讀取/指令寫入週期,當 於 8080 介面時,通常此腳位和 A0 相接。 RS ZCS1 CS2 I RS ZWR ZRD Access Cycle 0 0 1 資料寫入(Data Write) 0 1 0 資料讀取(Data Read) 1 0 1 指令寫入(CMD Write) 1 1 0 狀態讀取(Status Read) 晶片選取控制訊號(Chip Select Input) I RA8806 唯有當 ZCS1 為低電位(LOW)且 CS2 為高電位(HIGH)時, 才可接受指令。 中斷訊號(Interrupt Signal Output) INT O 用以回報 RA8806 內部的中斷狀況給 MPU。此腳位可設定為高或低電位 觸發。 忙碌訊號(Busy Signal Output) 用以回報 RA8806 內部的執行使用狀況。此腳位可設定為高或低電位觸 BUSY O 發,例如設定為高電位觸發時,當 BUSY 腳位為高電位時,RA8806 無法 存取來自 MPU 指令,把此腳位接到 I/O 腳位時,它能被使用於輪詢機制 來監控 RA8806 內部的狀況。 瑞佑科技 RAiO TECHNOLOGY INC. 9/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 4-2 Peripheral 介面 腳位名稱 I/O 說 明 重置訊號(Reset Signal Input) ZRST I 此腳位為 RA8806 低電位硬體重置輸入訊號。為了提高抗雜訊的能力,此 腳位為 Schmitt-trigger 輸入且內部有 pull-up 電阻,當所給的電源準位變 低時,能確保此腳位不會被觸發。 X1 I X2 I 觸控螢幕輸入(Touch Panel Input) 四線電阻式觸控螢幕左邊類比輸入訊號。 觸控螢幕輸入(Touch Panel Input) 四線電阻式觸控螢幕右邊類比輸入訊號。 觸控螢幕輸入(Touch Panel Input) Y1 I 四線電阻式觸控螢幕上方邊類比輸入訊號。 當需使用觸控掃瞄功能時,請在此腳位外接 39K~51Kohm pull-up 電阻。 Y2 I PWM_OUT O 觸控螢幕輸入(Touch Panel Input) 四線電阻式觸控螢幕下方類比輸入訊號。 脈波寬度調變(PWM Output Signal) 此輸出訊號使用於控制背光或升壓電路。 鍵盤輸入(Key Pad Input) KIN[7:0] I 此些腳位為鍵盤輸入訊號且內部有 pull-up 電阻。當沒用到這些腳位時, 請保持為浮接(floating)。 鍵盤輸出(Key Pad Output) KOUT[7:0] O 此些腳位為鍵盤輸出訊號。當沒用到這些腳位時,請保持為浮接 (floating)。 Clock 輸出(Clock Output) CLK_OUT O 此腳位為多功能輸出訊號,其功能依暫存器 REG[01h] Bit-6 的值來決定: 當 REG[01h] Bit-6 = 0: 此腳位為內部系統 clock 的輸出。 當 REG[01h] Bit-6 = 1: 此腳位代表睡眠狀態。( 0: 正常模式,1: 睡眠模式 ) LCD 匯流排選擇(LCD Driver Data Bus Select) 此腳位用來選擇 LCD 驅動資料匯流排為 8-bits 或 4-bits。 DW I 0 : LCD 驅動資料匯流排為 4-bits,使用 LD[3:0]。 1 : LCD 驅動資料匯流排為 8-bits,使用 LD[7:0]。 當 使 用 4-bits 資 料 匯 流 排 時 , LD[7:4] 必 須 保 持為浮接(floating)。 RA8806T1N 沒有提供此功能,LCD 驅動資料匯流排固定為 4-bits。 MPU 系列選擇(MPU Type Select) MI I 此腳位為 MPU 介面選擇。 0 : Intel 8080 系列 MPU 介面。 1 : Motorola 6800 系列 MPU 介面。 瑞佑科技 RAiO TECHNOLOGY INC. 10/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 8080/6800 MPU 資料匯流排選擇(8080/6800 MPU Data Bus Select) I DB 此腳位為 MPU 資料匯流排選擇。 0 : 4-bits MPU 介面,使用 DATA[3:0]。 1 : 8-bits MPU 介面,使用 DATA[7:0]。 4-3 Clock 介面 腳位名稱 I/O 說 明 震盪器接點(X’tal Input) I XG 石英震盪器的外端接點(4M ~ 12MHz)。當外接 CLK 模式時,此腳位為 時脈輸入訊號。 震盪器接點(X’tal Output) XD O 石英震盪器的外端接點(4M ~ 12MHz)。當為外接 CLK 模式時,此腳位 應保持為浮接(floating)。 4-4 LCD 驅動介面 腳位名稱 I/O YD O 說 明 LCD Per Frame 的起始訊號 YD 會產生一個脈衝訊號於每個 Frame 的起始位置。 LCD AC Wave 控制訊號 FR O 用來當作 LCD 驅動器電壓準位偏移(Level Shift)的控制訊號。此訊號通 常於 VDD/GND 間交替轉換以避免 LCD 極化。 LP O XCK O LCD Common Latch 訊號 Common 資料擷取訊號,用以通知 Driver,要拴鎖該行的資料。 LCD 傳送時脈訊號(LCD Clock) 資料以 XCK 為同步時脈傳送。 LCD 顯示關閉訊號(LCD Display Off) ZDOFF O 此訊號為使用於控制 LCD 畫面顯示或關閉。 0 : LCD 畫面關閉 1 : LCD 畫面顯示 LCD 驅動資料匯流排(LCD Driver Data Bus) 當使用 8-bits LCD 驅動器時,LD[7:0] 是接於 LCD 驅動器資料匯流排的腳 LD[7:0] O 位。當使用 4-bits LCD 驅動器時,LD[3:0] 是接於 LCD 驅動器資料匯流排 的腳位而 LD[7:4] 則為浮接。 RA8806T1N 只支援 LD[3:0]。 瑞佑科技 RAiO TECHNOLOGY INC. 11/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 4-5 電源信號 腳位名稱 I/O 說 明 5V 電源訊號 VDDH P 此腳位為 DC to DC 轉換器的電壓輸入。若為 5V 應用電路時,此腳位需連 接 5V 電壓,若為 3V 應用電路時,此腳位應保持為浮接。 3V 電源訊號 (必須外加一 1µF 和 0.1µF 的電容) 若腳位 VDDH 輸入 5V 電壓時,此腳位將產生 3.3V 的電壓輸出且必須外接 VDD P 1uF 電容到 GND,若系統只使用 3.3V 時,則直接將 3.3V 電壓由此腳位輸 入。 I/O 電源訊號 VDDP P VDDP 可以為 3V 或 5V。 觸控螢幕的 ADC 電源訊號 AVDD P AVDD 可以為 3V 或 5V。 GND GNDP P 接地訊號 觸控螢幕的 ADC 接地訊號 AGND P 連接此腳位到地線(GND)。 測試模式輸入訊號 TESTMD I 此腳位專用於測試功能,內部有 pull-low 且應保持為浮接。 測試輸入訊號 TESTI I 此腳位專用於測試功能,內部有 pull-low 且應保持為浮接。 瑞佑科技 RAiO TECHNOLOGY INC. 12/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 5. 暫存器描述 5-1 暫存器總表 表 5-1 : Cycle List CYC_NAME RS ZWR CMD 1 0 指令寫入週期,寫入暫存器位置(REG#)。 STATUS 1 1 狀態讀取週期,用來檢查中斷或睡眠狀態。 DATW 0 0 資料寫入週期,用來寫入暫存器資料或記憶體資料。 DATR 0 1 資料讀取週期,用來讀取暫存器資料或記憶體資料。 說 明 表 5-2 : 暫存器總表 REG# Name D7 D6 D5 -- STATUS MBUSY SBUSY SLEEP 00h WLCR PWR LINEAR 01h MISC 03h ADSR NO_ FLICKER CLKO_SEL SRST BUSY_ LEV D4 -- TEXT_MD INT_LEV SCR_PEN D -- -- -- -- WAKI_EN KEYI_EN CUR_INC FULL_OFS BIT_REV D3 D2 D1 D0 初始值 WAKE_ST S KS_STS TP_STS -- ZDOFF GBLK GINV 00h SDIR CDIR 04h SCR_HV SCR_EN 00h 00h XCK_SEL1 XCK_SEL0 BIT_INV SCR_DIR TPI_EN TP_ACT WAK_STS KEY_STS TP_STS BOLD T90DEG CUR_EN CUR_BLK --- 00h 0Fh INTR 10h WCCR 11h CHWI CURH3 CURH2 CURH1 CURH0 ROWH3 ROWH 2 ROWH 1 ROWH 0 00h 12h MAMR CUR_HV DISPMD2 DISPMD1 DISPMD0 L_MIX1 L_MIX 0 MW_MD1 MW_MD0 11h 20h AWRR -- -- AWR5 AWR4 AWR3 AWR2 AWR1 AWR0 27h 21h DWWR -- -- DWW5 DWW 4 DWW 3 DWW 2 DWW 1 DWW 0 27h 30h AWBR AWB7 AWB6 AWB5 AWB4 AWB3 AWB2 AWB1 AWB0 Efh 31h DWHR DWH7 DWH6 DWH5 DWH4 DWH3 DWH2 DWH1 DWH0 EFh 40h AWLR -- -- AWL5 AWL4 AWL3 AWL2 AWL1 AWL0 00h 50h AWTR AWT7 AWT6 AWT5 AWT4 AWT3 AWT2 AWT1 AWT0 00h 60h CURX -- -- CURX5 CURX4 CURX3 CURX2 CURX1 CURX0 00h 61h BGSG -- -- BGSG5 BGSG4 BGSG3 BGSG2 BGSG1 BGSG0 00h 62h EDSG EDSG7 EDSG6 EDSG5 EDSG4 EDSG3 EDSG2 EDSG1 EDSG0 00h 00h 70h CURY CURY7 CURY6 CURY5 CURY4 CURY3 CURY2 CURY1 CURY0 71h BGCM BGCM7 BGCM6 BGCM5 BGCM4 BGCM3 BGCM2 BGCM1 BGCM0 00h 72h EDCM EDCM7 EDCM6 EDCM5 EDCM4 EDCM3 EDCM2 EDCM1 EDCM0 00h 80h BTMR BLKT7 BLKT6 BLKT5 BLKT4 BLKT3 BLKT2 BLKT1 BLKT0 00h 90h ITCR ITC7 ITC6 ITC5 ITC4 ITC3 ITC2 ITC1 ITC0 00h A0h KSCR1 KEY_EN KEY4X8 KSAMP1 KSAMP0 LKEY_EN KF2 KF1 KF0 00h A1h KSCR2 KWAK_EN -- -- -- LKEY_T1 LKEY_T0 KEYNO1 KEYNO0 00h A2h KSDR0 KSD07 KSD06 KSD05 KSD04 KSD03 KSD02 KSD01 KSD00 FFh A3h KSDR1 KSD17 KSD16 KSD15 KSD14 KSD13 KSD12 KSD11 KSD10 FFh A4h KSDR2 KSD27 KSD26 KSD25 KSD24 KSD23 KSD22 KSD21 KSD20 FFh B0h MWCR MWD7 MWD6 MWD5 MWD4 MWD3 MWD2 MWD1 MWD0 -- B1h MRCR MRD7 MRD6 MRD5 MRD4 MRD3 MRD2 MRD1 MRD0 -- 瑞佑科技 RAiO TECHNOLOGY INC. 13/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 (Continued) REG# Name D7 D6 D5 D4 D3 D2 D1 D0 初始值 C0h TPCR1 TP_EN TP_SMP2 TP_SMP1 TP_SMP0 TPWAK ACLK2 ACLK1 ACLK0 00h 00h _EN C1h TPXR TPX9 TPX8 TPX7 TPX6 TPX5 TPX4 TPX3 TPX2 C2h TPYR TPY9 TPY8 TPY7 TPY6 TPY5 TPY4 TPY3 TPY2 00h C3h TPZR -- -- -- -- TPY1 TPY0 TPX1 TPX0 00h C4h TPCR2 MTP_MD -- -- -- -- -- MTP_PH1 MTP_PH2 00h D0h PCR -- -- PCLK_R3 PCLK_R2 PCLK_R1 PCLK_R0 00h D1h PDCR PDUTY3 PDUTY2 PDUTY1 PDUTY0 00h PND1 PND0 PWM_EN PWM_DIS_ LEV PDUTY7 PDUTY6 PDUTY5 PDUTY4 E0h PNTR PND7 PND6 PND5 PND4 PND3 PND2 F0h FNCR ISO8859_E N -- -- -- MCLR ASC F1h FVHT FH1 FH0 FV1 FV0 -- -- 瑞佑科技 RAiO TECHNOLOGY INC. 14/127 ASC_SEL1 ASC_SEL0 -- -- 00h 00h 00h www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 5-2 暫存器內容描述 狀態暫存器 STATUS Register(RS = 1,ZWR = 1) Bit 說 明 Access 記憶體寫入忙碌(Memory Write Busy)旗標 7 0 : 非忙碌 R 1 : 忙碌 : 當於字型寫入記憶體或記憶體清除動作時,此旗標為 ”high”。 掃瞄忙碌(Scan Busy)旗標 6 0 : 非忙碌 1 : 當驅動掃瞄邏輯非為閒置時(例: XCK 為 active 時), R SCAN_BUSY 為 ”high”。 睡眠狀態(SLEEP) 5 0 : 正常模式 R 1 : 睡眠模式 4-3 2 1 0 R 保留 喚醒(Wakeup)狀態 R (和 REG[0Fh] Bit-2 相同) 鍵盤掃瞄(KS)狀態 R (和 REG[0Fh] Bit-1 相同) 觸控掃瞄(TP)狀態 R (和 REG[0Fh] Bit-0 相同) 瑞佑科技 RAiO TECHNOLOGY INC. 15/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [00h] Whole Chip LCD Controller Register(WLCR) Bit 說 明 初始值 Access 0 R/W 0 R/W 0 R/W 0 R 0 R/W 0 R/W 0 R/W 0 R/W 電源模式(Power Mode) 0 : 正常模式 Î RA8806 於此模式下所有功能皆可使用。 7 1 : 睡眠模式 Î RA8806 於睡眠模式下,除了喚醒(Wake-up)電路 工作外,其他功能都被關閉,若喚醒電路被觸發,RA8806 則回 到正常模式。 線性解碼模式(Linear Decode mode) 此位元為用來定義 Font ROM 位址線的解碼規則。標準產品被設定 6 為 “low”。當使用者要創造一個新的 Font Code 位址對應時,則設定 為 “high” 來實現此特殊的應用。 0 : BIG5/GB ROM 位址對應規則。 1 : 使用者自行定義 ROM 的位址對應規則。 軟體重置(Software Reset) 0 : 正常模式 5 1 : 除了顯示資料記憶體(DDRAM)的資料外,所有暫存器的資料 都被重置(只有在正常模式下動作),當此位元被設定為 “high” 時,要給 RA8806 的 MPU 週期(cycle)至少需等待 3 個 clock 週期的時間。 4 保留 選擇文字工作模式(Text Mode Selection) 3 0 : 繪圖模式 Î 寫入的資料會被視為是 Bit-Map 的模式。 1 : 文字模式 Î 寫入的資料會被視為是 GB/BIG/ASCII 等字碼。 選擇螢幕顯示為開啟或關閉(Set Display On/Off Selection) 2 此位元用來控制連接到 LCD 驅動器介面的 “DISP_OFF” 訊號。 0 : DISP_OFF 輸出 “low”(螢幕顯示關閉)。 1 : DISP_OFF 輸出 “high”(螢幕顯示開啟)。 螢幕閃爍模式選擇(Blink Mode Selection) 1 0 : 正常顯示。 1 : 整個螢幕閃爍。用暫存器 BTMR 來設定閃爍週期。 螢幕反白模式選擇(Inverse Mode Selection) 0 0 : 正常顯示。 1 : 整個螢幕反白顯示。 將使顯示出來的資料反向。 瑞佑科技 RAiO TECHNOLOGY INC. 16/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [01h] Misc. Register(MISC) Bit 說 明 初始值 Access 0 R/W 0 R/W 0 R/W 0 R/W 01 R/W 0 R/W 0 R/W 初始值 Access 0 R/W 000 R 雪花消除(Eliminating Flicker) 7 1 : 雪花消除模式,當忙碌時掃瞄將會自動暫停。 0 : 正常模式。 Clock 輸出(Pin CLK_OUT)控制 6 1 : CLK_OUT 此腳位代表狀態暫存器的睡眠狀態。(0: 正常模式 1: 睡眠模式) 0 : CLK_OUT 此腳位輸出系統頻率(System Clock)。 設定忙碌觸發準位(Busy Polarity for “BUSY” pin) 5 1 : 設定為高電位觸發動作。 0 : 設定為低電位觸發動作。 設定中斷觸發準位(Interrupt Polarity for “INT” pin) 4 1 : 設定為高電位觸發動作。 0 : 設定為低電位觸發動作。 驅動器 clock 選擇(Driver Clock Selection) 此二位元為用來選擇 XCK 的頻率。 3-2 0 0 : XCK = CLK/8 0 1 : XCK = CLK/4(初始值) 1 0 : XCK = CLK/2 1 1 : XCK = CLK “CLK” 代表系統時脈。 SEG 掃瞄方向(SEG Scan Direction(SDIR)) 1 0 : SEG 掃瞄順序為 0 ~ 319。 1 : SEG 掃瞄順序為 319 ~ 0。 COM 掃瞄方向(COM Scan Direction(CDIR)) 0 0 : COM 掃瞄順序為 0 ~ 239。 1 : COM 掃瞄順序為 239 ~ 0。 REG [03h] Advance Display Setup Register(ADSR) Bit 7 說 明 捲動功能暫停選擇(Scroll Function Pending) 1 : 捲動功能暫停 0 : 捲動功能動作 註 : 當 SCR_HV(Bit-1)和 SCR_EN(Bit-0)被改變時,此功能不 支援。 6-4 保留 瑞佑科技 RAiO TECHNOLOGY INC. 17/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 設定驅動資料輸出位元順序(BIT_ORDER) 3 1 : 反向驅動資料輸出位元順序(Bit-7 to Bit-0,Bit-6 to Bit-1 依續到 Bit-0 to Bit-7。) 0 R/W 0 R/W 0 R/W 0 R/W 初始值 Access 0 R 0 R/W 0 R/W 0 R/W 0 R 0 R/W 0 : 正常模式。 捲動方向選擇(SCR_DIR) 當 SCR_HV = 0 時(水平捲動) 0 : 從左到右捲動。 2 1 : 從右到左捲動。 當 SCR_HV = 1 時(垂直捲動) 0 : 從上到下捲動。 1 : 從下到上捲動。 1 水平/垂直捲動方向選擇(SCR_HV) 0 : Segment 捲動(水平)。 1 : Common 捲動(垂直)。 捲動致能(SCR_EN) 0 1 : 捲動功能開啟。 0 : 捲動功能關閉。 REG [0Fh] Interrupt Setup and Status Register(INTR) Bit 7 說 明 保留 喚醒(Wakeup)中斷遮罩 6 1 : 致能喚醒中斷。 0 : 禁能喚醒中斷。 鍵盤掃瞄(Key-Scan)中斷遮罩 5 1 : 致能鍵盤掃瞄中斷。 0 : 禁能鍵盤掃瞄中斷。 觸控掃瞄(Touch Panel)中斷遮罩 4 1 : 當觸控掃瞄偵測到輸入訊號時,產生中斷輸出訊號。 0 : 當觸控掃瞄偵測到輸入訊號時,不產生中斷輸出訊號。 觸控掃瞄觸發(只有在手動模式下有效) 3 1 : 觸控掃瞄偵測到輸入訊號。 0 : 觸控掃瞄沒有偵測到輸入訊號。 喚醒中斷狀態位元 2 1 : 當從睡眠模式中喚醒而產生的中斷。 0 : 沒有喚醒中斷產生。 使用者必須寫 ”0” 來清除此狀態位元。 瑞佑科技 RAiO TECHNOLOGY INC. 18/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 鍵盤掃瞄中斷狀態位元 1 : 鍵盤掃瞄偵測到中斷事件的發生。 1 0 : 鍵盤掃瞄沒有偵測到中斷事件的發生。 0 R/W 0 R/W 初始值 Access 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R 使用者必須寫 ”0” 來清除此狀態位元。 Ps: 中斷事件的發生有三種,按下鍵盤、長按鍵、放開鍵盤。 觸控掃瞄偵測狀態位元 0 1 : 觸控掃瞄偵測到輸入訊號。 0 :觸控螢幕沒有偵測到輸入訊號。 使用者必須寫 ”0” 來清除此狀態位元。 REG [10h] Whole Chip Cursor Control Register(WCCR) Bit 說 明 CUR_INC(當對 DDRAM 作讀寫操作時,游標位置自動增加) 7 1 : 禁能。 0 : 致能(自動增加)。 FULL_OFS(全型和半型字元對齊) 6 1 : 致能,當於全型和半型混和模式時,中文字都對齊於全型字的起 始位置。 0 : 禁能。 反向寫入資料模式 5 0 : 直接把目前資料寫入 DDRAM。 1 : 反向地將目前資料寫入 DDRAM。(例如: 01101101Î 10010010) 粗體字(只有在文字模式時生效) 4 1 : 粗體字。 0 : 正常字。 文字旋轉模式(T90DEG) 3 1 : 文字旋轉 90 度(參照第 6-10-4 節 ”文字垂直顯示” ) 0 : 正常字。 游標顯示 2 1 : 設定游標為顯示。 0 : 設定游標為不顯示。 游標閃爍 1 1 : 游標閃爍。(REG BTMR 決定游標閃爍的週期) 0 : 游標不閃爍。 0 保留 瑞佑科技 RAiO TECHNOLOGY INC. 19/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [11h] Cursor Height and Word Interval Register(CHWI) Bit 說 明 初始值 Access 0000 R/W 0000 R/W 設定游標高度 0000 b Æ 游標高度為 1 pixel。 0001 b Æ 游標高度為 2 pixels。 7-4 0010 b Æ 游標高度為 3 pixels。 : : 1111 b Æ 游標高度為 16 pixels。 註 : 在正常模式游標的寬度固定為 8 pixels,游標的高度由 Bit[7:4] 決定。文字垂直旋轉模式,游標的高度固定為 16 pixels,游標的寬 度由 Bit[6:4] 決定。 設定行與行間的間距 0000 b Æ 間距為 1 pixel。 0001 b Æ 間距為 2 pixels。 3-0 0010 b Æ 間距為 3 pixels。 : : 1111 b Æ 間距為 16 pixels。 瑞佑科技 RAiO TECHNOLOGY INC. 20/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [12h] Memory Access Mode Register(MAMR) Bit 說 明 初始值 Access 0 R/W 001 R/W 00 R/W 01 R/W 游標自動移動方向 0 : 游標先由水平方向(從左到右)移動,再垂直方向(從上到下) 移動。 7 1 : 游標先由垂直方向移動,再水平方向移動。 註 : 於繪圖模式下,水平方向游標為以 byte 為單位移動,而垂直方 向為以 bit 為單位移動。當於文字模式下,此位元可被忽略,游標的 移動方向一定為水平方向移動。 顯示圖層和顯示模式選擇 0 0 0 : 灰階模式。在此模式下,每一顯示位元包含了記憶體中的二 筆連續的資料,此 4 灰階是依 FRC 的方法達成,此顯示位 元的配置 如下: bit1 bit0 灰階 --------------------------------------------------0 0 Level1(最亮) 0 1 Level2 1 0 Level3 1 1 Level4(最暗) 6-4 註 : 於灰階模式下沒有支援文字輸入。 0 0 1 : 將 DDRAM1 的資料顯示於螢幕上。 0 1 0 : 將 DDRAM2 的資料顯示於螢幕上。 0 1 1 : 雙圖層顯示模式。顯示規則依底下的 Bit-3 和 Bit-2 。 1 0 X : NA。 1 1 0 : 擴展模式(1), 將 DDRAM1 和 DDRAM2 的資料顯示於螢 幕上。RA8806 於此模式下支援 640x240 的顯示螢幕。 1 1 1 : 擴展模式(2),將 DDRAM1 和 DDRAM2 的資料顯示於螢 幕上。 RA8806 於此模式下支援 320x480 的顯示螢幕。 雙圖層顯示規則選擇 當 Bit[6:4] 被 設 定 為 ”011” 時 , RA8806 將 結 合 DDRAM1 和 3-2 DDRAM2 的資料來顯示於螢幕上。 0 0 : DDRAM1 “OR” DDRAM2。 0 1 : DDRAM1 “XOR” DDRAM2。 1 0 : DDRAM1 “NOR” DDRAM2。 1 1 : DDRAM1 “AND” DDRAM2。 MPU 讀取/寫入圖層選擇 0 0 : 存取 CGRAM(512Byte)。 1-0 0 1 : 存取 DDRAM1。 1 0 : 存取 DDRAM2。 1 1 : 同時存取 DDRAM1 和 DDRAM2。 瑞佑科技 RAiO TECHNOLOGY INC. 21/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [20h] Active Window Right Register(AWRR) Bit 7-6 5-0 說 明 保留 設定工作視窗(Active Window)右邊邊界 Æ Segment-Right 註 : AWRR 必須大於或等於 AWLR,且值須小於或等於 27h。 初始值 Access 00 R 27h R/W 註: REG[20h,30h,40h 和 50h] 用來控制寫入資料時,行與列在工作視窗內的變化,使用者可以使用此四 個暫存器來設定工作視窗的上/下/左/右邊界,當寫入的資料超過右邊的邊界時,游標會自動跳到下一列 (Line)來寫入資料,也就是說,游標會移動到工作視窗左邊的邊界,當資料寫到所設定之右邊且下方 的邊界時,下一筆資料寫入將使游標移動到所設定之左上方邊界位置。 REG [21h] Display Window Width Register(DWWR) Bit 7-6 說 明 保留 初始值 Access 00 R 27h R/W 設定顯示視窗(Display Window)寬度Æ Segment-Width Segment-Right =(Segment Number / 8)– 1 5-0 假設 LCD 的解析度為 320x240 時,此暫存器應被設定為: (320 / 8)- 1 = 39 = 27h 註: REG[21h,31h] 用來設定顯示視窗的解析度,使用者可以設定顯示記憶體的可視範圍。RA8806 的 Column 寬度(DWWR)可被設定在 0h ~ 27h 之間,且 Row 高度(DWHR)可被設定在 0h ~ EFh 之 間。 REG [30h] Active Window Bottom Register(AWBR) Bit 7-0 說 明 設定工作視窗(Active Window)下方邊界Æ Common-Bottom 註 : AWBR 必須大於或等於 AWTR,且值須小於或等於 EFh。 初始值 Access EFh R/W 初始值 Access EFh R/W REG [31h] Display Window Height Register(DWHR) Bit 說 明 設定顯示視窗(Display Window)高度Æ Common- Height Common_ Height = LCD Common Number –1 7-0 假設 LCD 的解析度為 320x240 時,此暫存器應被設定為: 240 – 1 = 239 = EFh 瑞佑科技 RAiO TECHNOLOGY INC. 22/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [40h] Active Window Left Register(AWLR) Bit 7-6 5-0 說 明 保留 設定工作視窗(Active Window)左邊邊界Æ Segment-Left 註 : AWLR 必須小於或等於 AWRR,且值須小於 27h。 初始值 Access 00 R 00h R/W 初始值 Access 00h R/W 初始值 Access 00 R 00h R/W 初始值 Access 00 R 00h R/W REG [50h] Active Window Top Register(AWTR) Bit 7-0 說 明 設定工作視窗(Active Window)上方邊界Æ Common-Top 註 : AWTR 必須小於或等於 AWBR,且值須小於 EFh。 REG [60h] Cursor Position X Register(CURX) Bit 7-6 說 明 保留 設定游標 Segment 位置/ RAM0 位址[4:0] 定義游標 segment 的位置,其值在 0h ~ 27h 之間。 5-0 當被設定為 CGRAM 寫入模式時(REG[12h] Bit[1:0] = 00b),此暫 存器 Bit[4:0] 為用來寫入資料的位元對應位址。於創造全型字時,通 常設定為 0h,而當要創造奇數個半型字時,通常設定為 0h,創造偶 數個半型字時,通常設定為 10h。 REG [61h] Begin Segment Position Register of Scrolling(BGSG) Bit 7-6 說 明 保留 設定於捲動模式下 Segment 的起始位置 5-0 REG[61h] 定義捲動視窗的起始位置(左邊邊界),其值必須小於或 等於暫存器 REG[62h](定義捲動視窗終點位置(右邊邊界))所設 定的值。此外,對應到顯示記憶體的限制,其值必須小於 27h。 註: REG[61h,62h,71h 和 72h] 是設定捲動的視窗,這些暫存器必須在把捲動功能打開前先設定完成。 REG [62h] End Segment Position Register of Scrolling(EDSG) Bit 7-6 說 明 保留 初始值 Access 00 R 00h R/W 設定於捲動模式下 Segment 的終點位置 REG[62h] 定義捲動視窗的終點位置(右邊邊界),其值必須大於或 5-0 等於暫存器 REG[61h](定義捲動視窗起始位置(左邊邊界))所設 定的值。此外,對應到顯示記憶體的限制,其值必須小於或等於 27h。 瑞佑科技 RAiO TECHNOLOGY INC. 23/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [70h] Cursor Position Y Register(CURY) Bit 說 明 初始值 Access 00h R/W 初始值 Access 00h R/W 初始值 Access 00h R/W 初始值 Access 00h R/W 設定游標 Common 位置/ RAM0 位址[8:5] 定義游標 common 的位置,其值在 0h ~ EFh 之間。 7-0 當被設定為 CGRAM 寫入模式時(REG[12h] Bit[1:0] = 00b),此暫 存器 Bit[3:0] 為用來指定哪一個字被創造,暫存器 Bit[7:4] 沒有使用 到。 REG [71h] Scrolling Action Range Begin Common Register(BGCM) Bit 說 明 設定捲動模式下 Common 的起始位置 7-0 REG[71h] 定義捲動視窗的起始位置(上方邊界),其值必須小於或 等於暫存器 REG[72h](定義捲動視窗終點位置(下方邊界))所設 定的值。此外,對應到顯示記憶體的限制,其值必須小於 EFh。 REG [72h] Scrolling Action Range END Common Register(EDCM) Bit 說 明 設定捲動模式下 Common 的終點位置 REG[72h] 定義捲動視窗的終點位置(下方邊界),其值必須大於或 7-0 等於暫存器 REG[71h](定義捲動視窗起始位置(上方邊界))所設 定的值。此外,對應到顯示記憶體的限制,其值必須小於或等於 EFh。 REG [80h] Blink Time Register(BTMR) Bit 說 明 設定游標閃爍和捲動時間週期 7-0 閃爍時間週期 = Bit[7:0] x(Frame width) Frame width = 1/Frame Rate Frame Rate 依照 DWWR、DWHR 和 ITCR 所設定的值來決定。 註: 1. 此設定也決定了捲動的速度。 2. Frame width 的時間是依照控制器掃瞄到整個螢幕來決定,而掃瞄整個螢幕的時間是依據系統頻率 ( system clock ) 、 所 設 定 的 顯 示 視 窗 、 驅 動 介 面 資 料 匯 流 排 寬 度 ( 4-bits/8-bits ) 、 空 閒 時 間 (ITCR),和擴展模式或灰階模式等設定而決定。 瑞佑科技 RAiO TECHNOLOGY INC. 24/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [90h] Idle Time Counter Register(ITCR) Bit 說 明 初始值 Access 00h R/W 初始值 Access 0 R/W 0 R/W 00 R/W 0 R/W 空閒時間(idle time)設定,依照系統頻率來計數 此值用來決定每個 LCD COM 的掃瞄時間。 COM_PRD =(COM_SCAN + ITCR)x XCK_PRD 於此之中, COM_SCAN =(SEG_NO/LD_WIDTH)x(1 + EXT_MD) XCK_PRD = 1 / XCK COM_PRD: 每個 COM 的最後掃瞄週期(Unit : ns)。 COM_SCAN: 每個 COM 的原始掃瞄週期。 XCK_PRD: 一 個 XCK 的 週 期 時 間 。 XCK 的 週 期 依 照 系 統 頻 率 (system clock)和暫存器 REG[01h] Bit[3:2] 所設定的 7-0 值來決定。假設系統頻率為 8MHz,暫存器 REG[01h] Bit[3:2] 設定為 10b,則 XCK_PRD = 250ns。 SEG_NO: Segment 數目,如 240x160 的屏,SEG_NO = 240。 EXT_MD: 在擴展模式 1 或 2 下(REG[12h] Bit[6:4] = 111b 或 110b), EXT_MD = 1,除此之外 EXT_MD = 0。 LD_WIDTH: 驅動介面資料匯流排寬度。假設 LCD 驅動資料匯流排 寬度為 4-bits 時,則 LD_WIDTH = 4,假設 LCD 驅動 資料匯流排寬度為 8-bits 時,則 LD_WIDTH = 8。請參 照第 4-2 節腳位 “DW” 的描述。 REG [A0h] Key-Scan Control Register 1(KSCR1) Bit 說 明 設定鍵盤掃瞄功能開啟或關閉 7 1 : 開啟。 0 : 關閉。 選擇鍵盤掃瞄矩陣 6 1 : 4x8 Matrix(使用 KOUT[3:0],KOUT[7:4] 請保持浮接) 0 : 8x8 Matrix(使用 KOUT[7:0]) 設定鍵盤掃瞄 De-bounce 取樣的次數(Sampling Times) 00:4次 5-4 01:8次 1 0 : 16 次 1 1 : 32 次 設定長按鍵功能開啟或關閉(LNGKEY_EN) 3 LNGKEY_EN = 0 Æ 長按鍵功能關閉。 LNGKEY_EN = 1 Æ 長按鍵功能開啟。 瑞佑科技 RAiO TECHNOLOGY INC. 25/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 設定鍵盤掃瞄頻率(KF2-0) 假設系統頻率為 10MHz,則鍵盤掃瞄頻率的關係如下: 2-0 Key-Scan KF2 KF1 KF0 Pulse Width (KOUT period) 0 0 0 16µs 0 0 1 32µs 0 1 0 64µs 0 1 1 128µs 1 0 0 256µs 1 0 1 512µs 1 1 0 1.024ms 1 1 1 2.048ms Key-Scan Cycle(4x8) Key-Scan Cycle(8x8) 64µs 128µs 256µs 512µs 1.024ms 2.048ms 4.096ms 8.192ms 128µs 256µs 512µs 1.024ms 2.048ms 4.096ms 8.192ms 16.384ms 000 R/W 初始值 Access 0 R/W 000 R 00 R/W 00 R 初始值 Access FFh R REG [A1h] Key-Scan Controller Register 2(KSCR2) Bit 說 明 設定鍵盤掃瞄喚醒功能開啟或關閉 7 0: 鍵盤掃瞄喚醒功能關閉。 1: 鍵盤掃瞄喚醒功能開啟。 6-4 保留 長按鍵時間調整 00 : 約 0.625 sec 3-2 01 : 約 1.25 sec 10 : 約 1.875 sec 11 : 約 2.5 sec 註 : 以上時間是假設系統頻率為 8MHz。 告知幾個按鍵被按到 00 : 沒有按鍵被按到。 1-0 01 : 一個按鍵被按到,讀取暫存器 REG[A2h] 來獲取按鍵值。 10 : 二個按鍵被按到,讀取暫存器 REG[A2h~A3h] 來獲取按鍵值。 11 : 三個按鍵被按到,讀取暫存器 REG[A2h~A4h] 來獲取按鍵值。 REG [A2h ~ A4h] Key-Scan Data Register(KSDR0 ~ 2) Bit 7-0 說 明 按鍵擷取資料 代表所按到的鍵對應之值。請參照第 6-5 節 "鍵盤掃瞄功能”。 瑞佑科技 RAiO TECHNOLOGY INC. 26/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [B0h] Memory Write Command Register(MWCR) Bit 說 明 初始值 Access NA R/W 初始值 Access NA R/W 初始值 Access 0 R/W 000 R/W 0 R/W 000 R/W 記憶體寫入指令(從游標位置) 7-0 註 : 當要寫資料到記憶體時,使用者必須先下 MWCR(Command Write cycle)指令後,再寫資料進去(Data Write cycle)。 REG [B1h] Memory Read Command Register(MRCR) Bit 說 明 記憶體讀取指令(從游標位置) 7-0 註 : 於記憶體讀取週期,游標的移動在文字模式下的行為和在繪圖模 式下一樣。B1h 將作預讀的行為,故在執行完 MRCR 指令後,游標 位置會增加。 REG [C0h] Touch Panel Control Register 1(TPCR1) Bit 說 明 觸控掃瞄功能開啟或關閉 7 1 : 開啟。 0 : 關閉。 觸控掃瞄取樣時間調整 6-4 000 : 等待 50µs 001 : 等待 100µs 010 : 等待 200µs 011 : 等待 400µs 100 : 等待 800µs 101 : 等待 1.6ms 110 : 等待 3.2ms 111 : 等待 6.4ms 註 : 當觸控螢幕被接觸到時,為了避免訊號還不穩定,故延遲一段取 樣時間來等待訊號變穩定,而此處的觸控掃瞄取樣時間與觸控掃瞄頻 率(ADC Clock)轉換速度有相對的關係,相關建議值請參考第 6-43 節。 觸控掃瞄喚醒開啟或關閉 3 1 : 觸控掃瞄開啟可以喚醒睡眠模式。(觸控掃瞄功能必須是開啟的 狀態下) 0 : 觸控掃瞄關閉喚醒睡眠模式。 觸控掃瞄頻率(ADC Clock)轉換速度。“CLK” 代表系統頻率。 2-0 0 0 0 : CLK / 4 0 0 1 : CLK / 8 0 1 0 : CLK /16 0 1 1 : CLK / 32 1 0 0 : CLK / 64 1 0 1 : CLK / 128 1 1 0 : CLK / 256 1 1 1 : CLK / 512 瑞佑科技 RAiO TECHNOLOGY INC. 27/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 REG [C1h] Touch Panel X High Byte Data Register(TPXR) Bit 7-0 說 明 觸控掃瞄 X 資料 Bit[9:2](Segment) 初始值 Access 00h R 初始值 Access 00h R 初始值 Access 0000 R REG [C2h] Touch Panel Y High Byte Data Register(TPYR) Bit 7-0 說 明 觸控掃瞄 Y 資料 Bit[9:2](Common) REG [C3h] Touch Panel Segment/Common Low Byte Data Register(TPZR) Bit 說 明 7-4 保留 3-2 觸控掃瞄 Y 資料 Bit[1:0](Common) 00 R 1-0 觸控掃瞄 X 資料 Bit[1:0](Segment) 00 R 初始值 Access 0 R/W 00h R 00 R/W 初始值 Access 0 R/W 0 R/W REG [C4h] Touch Panel Control Register 2(TPCR2) Bit 說 明 觸控掃瞄手動模式開啟或自動模式 7 1 : 使用手動模式。 0 : 使用自動模式。 6-2 保留 觸控掃瞄手動模式程序選擇 00 : IDLE 模式: 觸控掃瞄閒置(ADC Idles)。 01 : 等待觸控螢幕被接觸,觸控掃瞄電路將產生中斷訊號或是從暫 1-0 存器 REG[0Fh] Bit-3 讀出狀態。 10 : 栓鎖住 X 資料,在此期間,X 資料將被栓鎖在暫存器 REG[C1h] 和 REG[C3h] 裡。 11 : 栓鎖住 Y 資料,在此期間,Y 資料將被栓鎖在暫存器 REG[C2h] 和 REG[C3h] 裡。 REG [D0h] PWM Control Register(PCR) Bit 說 明 脈波寬度調變(PWM)開啟或關閉 7 1 : 開啟。 0 : 關閉。於此狀態下,PWM_OUT 準位依照此暫存器 Bit-6 來決定。 PWM 關閉時的準位 6 0 : 當 PWM 關閉或於睡眠模式時,PWM_OUT 一般為 ”low” 狀態。 1 : 當 PWM 關閉或於睡眠模式時,PWM_OUT 一般為 ”high” 狀態。 瑞佑科技 RAiO TECHNOLOGY INC. 28/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 5-4 保留 00 R 0000 R/W 初始值 Access 00h R/W 初始值 Access 00h R/W 初始值 Access 0 R/W 000 R PWM 電路所接受的 Clock 來源速度選擇 3-0 0000 b Æ CLK / 1 0001 b Æ CLK / 2 0010 b Æ CLK / 4 0011 b Æ CLK / 8 : : 1111 b Æ CLK / 32768 “CLK” 代表系統頻率,例如: CLK 為 8MHz: 0000 b Î PWM clock source = 8MHz 0001 b Î PWM clock source = 4MHz : : 1111 b Î PWM clock source = 244Hz REG [D1h] PWM Duty Cycle Register(PDCR) Bit 說 明 PWM 責任週期(Cycle Duty)選擇 7-0 00h Æ 1 / 256 01h Æ 2 / 256 High period 02h Æ 3 / 256 High period : : FFh Æ 256 / 256 High period REG [E0h] Pattern Data Register(PNTR) Bit 說 明 要寫入 DDRAM 裡的資料(Display Data RAM) 7-0 當暫存器 REG[F0h] Bit-3 被填為 ”1” 時(記憶體清除模式),此暫 存器的資料將填滿整個工作視窗。 REG [F0h] Font Control Register(FNCR) Bit 說 明 ISO8859 模式 0 : 關閉。 ASCII 區塊 1~4 的內容為字碼表 A 內的表 A-1 ~ 表 A-4 所 7 示。 1 : 開啟。 ASCII 區塊 1~4 的內容為代表標準的 ISO8859-1 ~ 4,且 為字碼表 A 內 A-5 ~ 表 A-8 所示。 6-4 保留 瑞佑科技 RAiO TECHNOLOGY INC. 29/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 記憶體清除功能 對此位元作寫入時代表 0 : 不動作 1 : 記憶體清除功能開啟,將 FNTR 資料填滿整個工作視窗。 3 對此位元作讀取時代表 0 R/W 0 R/W 00 R/W 初始值 Access 00 R/W 00 R/W 0000 R 0 : 記憶體清除動作已完成。 1 : 記憶體清除動作尚未完成。 當此位元設定為 ”1” 時,RA8806 將自動讀取暫存器 PNTR 的資料, 然後將此資料填滿整個工作視窗(工作視窗範圍: [AWLR,AWTR] ~ [AWRR,AWBR]),而當填滿動作完後,此位元自動清除為 ”0”。 ASCII 模式選擇 1 : 所有的輸入資料將解碼為 ASCII(00h ~ FFh)。 2 0 : 在文字模式下(REG[00h] Bit-3 = 1),RA8806 將會先檢查被寫 入資料的第一個位元組(byte)。當此位元組小於 80h 時,將把 此筆資料當成 ASCII(半型字)來解碼,反之,則當成文字(全 型字的 GB、 BIG-5 或是使用者自創字型)來解碼。 ASCII 區塊選擇 0 0 : 對應到 ASCII block 1。(字碼表 A 的表 A-1 和表 A-5) 1-0 0 1 : 對應到 ASCII block 2。(字碼表 A 的表 A-2 和表 A-6) 1 0 : 對應到 ASCII block 3。(字碼表 A 的表 A-3 和表 A-7) 1 1 : 對應到 ASCII block 4。(字碼表 A 的表 A-4 和表 A-8) REG [F1h] Font Size Control Register(FVHT) Bit 說 明 設定字元水平放大倍率 0 0 : 原本字元寬度。 7-6 0 1 : 字元寬度放大為原本字元寬度的二倍。 1 0 : 字元寬度放大為原本字元寬度的三倍。 1 1 : 字元寬度放大為原本字元寬度的四倍。 設定字元垂直放大倍率 0 0 : 原本字元高度。 5-4 0 1 : 字元高度放大為原本字元高度的二倍。 1 0 : 字元高度放大為原本字元高度的三倍。 1 1 : 字元高度放大為原本字元高度的四倍。 3-0 保留 瑞佑科技 RAiO TECHNOLOGY INC. 30/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6. 功能描述 6-1 MPU 介面 6-1-1 MPU介面型式 RA8806 支援 8080 和 6800 等兩種微處理機介面傳輸模式。介面的選擇決定於IC接腳 ”MI” 的電 位,當選擇 8080 來進行介面傳輸時,MI必須連接到低電位,反之,當選擇 6800 來進行介面傳輸 時,MI必須連接到高電位。另外,亦可透過IC接腳 ”DB” 來決定資料匯流排的寬度(當DB接高電 位時,則資料匯流排的寬度為 8 位元,反之,則為 4 位元)。值得一提的是,無論在 8080 或 6800 的微處理機介面,資料匯流排的寬度設定皆適用。一旦選擇 4 位元來進行傳輸時,傳輸的時 間約將增加一倍。為了減輕MPU與RA8806 間的傳輸線干擾,建議在RA8806 的ZCS1、ZRD、 ZWR端加一小電容到GND,如下 圖 6-1。 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 圖 6-1 : 8080(4/8-位元)MPU 介面 6800 MPU RA8806 A0 A1-A7 VMA VDD RS Decoder ZCS1 CS2 MI D0-3(D0-D7) DATA0-3(DATA0-7) EN EN R/W ZRW RES ZRST 圖 6-2 : 6800(4/8-位元)MPU 介面 瑞佑科技 RAiO TECHNOLOGY INC. 31/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 tAH8 tAS8 RS ZCS1 CS2 tCYC8 ZWR ZRD tCC8 tDS8 tDH8 DATA (Write) tOH8 tACC8 DATA (Read) 圖 6-3 : 8080 MPU 介面傳輸協定 表 6-1 : 8080 MPU 介面時序 Symbol 說 明 Rating Min. Max. Unit tCYC8 Cycle time 2*tc -- ns tCC8 Strobe Pulse width 50 -- ns tAS8 Address setup time 0 -- ns tAH8 Address hold time 20 -- ns tDS8 Data setup time 30 -- ns tDH8 Data hold time 20 -- ns tACC8 Data output access time 0 20 ns tOH8 Data output hold time 0 10 ns 瑞佑科技 RAiO TECHNOLOGY INC. 32/127 Condition tc = one system clock period www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 tAH6 tAS6 RS ZRW ZCS1 CS2 tCYC6 tCC6 EN tDS6 tDH6 DATA (Write) tOH6 tACC6 DATA (Read) 圖 6-4 : 6800 MPU 介面傳輸協定 表 6-2 : 6800 MPU 介面時序 Symbol 說 明 Rating Min. Max. Unit tCYC6 Cycle time 2*tc -- ns tCC6 Strobe Pulse width 50 -- ns tAS6 Address setup time 0 -- ns tAH6 Address hold time 20 -- ns tDS6 Data setup time 30 -- ns tDH6 Data hold time 20 -- ns tACC6 Data output access time 0 20 ns tOH6 Data output hold time 0 10 ns 瑞佑科技 RAiO TECHNOLOGY INC. 33/127 Condition tc is one system clock period: tc = 1/CLK www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-1-2 寫入指令介紹 依據 表 5-1,RA8806 可以接受四種資料傳輸週期,分別是「指令寫入週期」、「狀態讀取週 期」、「資料寫入週期」以及「資料讀取週期」。舉例來說,當要針對某暫存器進行寫資料時, 首先必須先執行「指令寫入週期」,包括欲寫入暫存器之編號,然後再以「寫入資料週期」將數 值寫入該暫存器。因此,「寫入指令」意指「將數值資料寫到暫存器當中」,在前述兩個週期執 行之後,數值資料將被寫入到該暫存器,相關情形請參考 圖 6-5(1)。 依據 表 6-1,由於每一指令的寫入都需要花費兩個資料傳輸週期,且每個資料傳輸週期最少也要 2 個系統時脈週期的時間才能完成,因此每一指令至少需要花費 4 個的系統時脈週期,才能寫 入。針對不同的系統時脈,換算成指令存取的時間如 表 6-3。 如果欲讀取暫存器中的內容值,則第二個資料傳輸週期為「讀取資料週期」,相關情形請參考 圖 6-5(2)。需注意的是 圖 6-5 到 圖 6-7 都是以 8080 的傳輸介面來舉例。 RS ZCS1 ZWR ZRD DATA[7:0] REG# DATA (1) Command Write (Write Data to Register) RS ZCS1 ZWR ZRD DATA[7:0] REG# DATA (2) Read Data from Register 圖 6-5 : 「寫入指令」與「暫存器讀取」 表 6-3 : 指令存取時間換算表 System Clock Command Access Time 4MHz 6 MHz 8 MHz 10 MHz 12 MHz 1µs 667ns 500ns 400ns 333ns 瑞佑科技 RAiO TECHNOLOGY INC. 34/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-1-3 記憶體寫入與讀取 當欲寫資料到記憶體(可能是顯示記憶體或字型產生記憶體)時,必須先執行暫存器編號為B0h 的「寫入指令週期」。反之,如果是欲讀取記憶體中的資料時,則必須先執行暫存器編號為B1h 的「寫入指令週期」,相關情形請參考 圖 6-6 的(1)與(2)。 RS ZCS1 ZWR ZRD DATA[7:0] B0h DATA1 DATA2 DATAn DATA2 DATAn (1) Memory Write (Write Data to DDRAM) RS ZCS1 ZWR ZRD DATA[7:0] B1h DATA1 (2) Memory Read (Read Data from DDRAM) 圖 6-6 : 記憶體寫入與讀取 6-1-4 狀態讀取 RA8806 有提供一個讀取狀態值的方法,讓使用者(MPU)瞭解目前RA8806 的狀況,相關內容 請參考 圖 6-7 和第 5-2 節有關 ”暫存器描述” 等的說明。 RS ZCS1 ZW R ZRD DATA[7:0] Status DATA Status Register Read 圖 6-7 : 狀態讀取 瑞佑科技 RAiO TECHNOLOGY INC. 35/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-2 Driver介面 Driver介面的主要作用在於產生Frame、LP、YD以及Data Bus等信號給外部的LCD驅動IC(Driver IC)。另外,RA8806 亦支援 4 位元和 8 位元的LCD Driver Data Bus,使用者可透過IC接腳 ”DW” 來 進行選擇,當選擇使用 8 位元的LCD Driver,則DW必須接到高電位,反之,當使用 4 位元時,則 DW必須接到低電位。RA8806 與LCD Driver的介面關係如下 圖 6-8。 LCD Driver RA8806 YD FLM FR M LP LP ZDOFF STN Common Signals Dot Matrix LCD Panel /DISPOFF XCK CP LD[7:0] Segment Signals D[7:0] 圖 6-8 : RA8806 與 LCD Driver 的介面關係 圖 6-9 是RA8806 與LCD Driver的時序關係圖。使用者亦可參考第 4-4 節 “LCD 驅動介面” 關於LCD Driver接腳的說明。 F o r 3 2 0 x 2 4 0 : T o ta l 2 4 0 L P fo r e a c h F ra m e FR YD LP XCK 1 st lin e FR YD LP XCK LD (D a ta ) 圖 6-9 : RA8806 與 LCD Driver 的時序關係圖 瑞佑科技 RAiO TECHNOLOGY INC. 36/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 圖 6-10 是RA8806 的應用方塊圖。如圖所示,它使用了 80-channel的LCD Driver來處理 320x240 液 晶顯示屏的Common及Segment信號,由RA8806 將FR、LP、YD、XCK(Clock)以及Data Bus的 信號送至Common及Segment的Driver端。圖 6-11 是 160x160 液晶顯示屏的應用方塊圖。 圖 6-10 : 320x240 液晶顯示屏的應用方塊圖 160-channel (C om m on) Y 1~Y 1 60 E IO 1 MD S /C VD D L/R VSS D I0~D I7 FR 160*160 D o t LP LC D P anel D ISP O FF XC K E IO 2 Y1~Y160 R A8806 YD FR LP LP ZD O FF DISPOFF XCK FR 160-chann el (S egm ent) MD EIO1 S/C L/R EIO2 LD [7:0] DI0~DI7 XC K 圖 6-11 : 160x160 液晶顯示屏的應用方塊圖 瑞佑科技 RAiO TECHNOLOGY INC. 37/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 表 6-4 是RA8806 Driver信號與其他不同驅動IC接腳名稱的對照表。務必注意的是,LCD Driver信號 的接腳不需要連接電容到地(GND),如果需要接的話,建議連接 30pF以下的電容。 表 6-4 : RA8806 Driver 信號與其他驅動 IC 介面名稱對照表 RA8806 通用的 Driver IC Driver 介面名稱 介面名稱 LP LP LOAD CL1 CP XCK SCP CL2 HSCP FLM FR YD FRAME CDATA FR DF(M) LD[7:0] D[7:0] /DISPOFF /D.OFF DISP ZDOFF 瑞佑科技 RAiO TECHNOLOGY INC. 介面名稱的說明 Data Latch Clock Latch Pulse in one line Latch pulse of display data Data Latch Pulse Data Shift Clock Clock pulse for segment shift register Shift Clock Pulse for X-Drivers Data Shift Pulse Shift Clock Pulse Scan Start-up Signal First Line Marker Frame Pulse Frame start signal (First line mark of common signal) Synchronous Data Switch signal to convert LCD drive waveform into AC LCD Data Bus Display OFF Display OFF Display OFF 38/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-2-1 解析度之設定 RA8806 可支援數種不同解析度(Resolution)的顯示,如 表 6-5 所示。在使用不同解析度的 LCD Panel,使用者必須去設定顯示視窗(Display Window)大小相關的暫存器,例如:DWWR 與 DWHR。除此之外,使用者亦可設定AWRR,AWBR,AWLR和AWTR等暫存器來設定工作視 窗(Active Window)之邊界。 舉例來說,如果 Panel Resolution 為 320x240,則相關的暫存器設定如下: 顯示視窗寬度(DWWR)=(320 / 8)- 1 = 39 = 27h 顯示視窗高度(DWHR)= 240 – 1 = 239 = EFh 在應用上,使用者必須注意,工作視窗的範圍通常是比顯示視窗來得小,如下所示: 1. 顯示視窗寬度(DWWR)≥ 工作視窗右邊界(AWRR)≥ 工作視窗左邊界(AWLR) 2. 顯示視窗高度(DWHR)≥ 工作視窗上邊界(AWBR)≥ 工作視窗下邊界(AWTR) RA8806 可支援各式各樣的LCD模組,表 6-5 列出幾種較為大家所常用的LCD模組及其相關暫存 器設定。 表 6-5 : 常用 LCD 模組之顯示視窗設定 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 表 6-6 Reg. Bit_Num AWLR Bit [5:0] 定義工作視窗之左邊界。 REG[40h] AWRR Bit [5:0] 定義工作視窗之右邊界。 REG[20h] AWTR Bit [7:0] 定義工作視窗之上邊界。 REG[50h] AWBR Bit [7:0] 定義工作視窗之下邊界。 REG[30h] DWWR Bit [5:0] 定義顯示視窗之寬度。 REG[21h] DWHR Bit [5:0] 定義顯示視窗之高度。 REG[31h] 說 瑞佑科技 RAiO TECHNOLOGY INC. 明 39/127 暫存器編號 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-2-2 顯示視窗與工作視窗 實際應用上,RA8806 提供兩種視窗,分別是顯示視窗(Display Window)和工作視窗(Active Window)。顯示視窗所表示的就是「實際液晶顯示屏的解析度」,亦即當液晶顯示屏解析度為 320x240 時 , 就 表 示 顯 示 視 窗 的 大 小 也 必 須 為 320x240 ( REG[21h] = 27h , REG[31h] = EFh)。而工作視窗則是比顯示視窗還小的視窗,舉凡游標移動、換行、換頁都是以工作視窗的 邊界為基準。這兩個視窗之相關暫存器如上表 6-6。 圖 6-12 表示顯示視窗與工作視窗之間的關係。毫無疑問的,當液晶顯示屏解析度為 320x240 時,就表示顯示視窗的大小也是 320x240,在 圖 6-12 中,我們設定一個 160x160 的工作視窗, 其相關暫存器的設定如下所示: LCD_CmdWrite ( 0x40 ); LCD_DataWrite ( 0x09 ); // AWLR = 09h = 9 Î ( 80 / 8) – 1 LCD_CmdWrite ( 0x20 ); LCD_DataWrite ( 0x1D ); // AWRR = 1Dh = 29 Î ( 240 / 8 ) – 1 LCD_CmdWrite ( 0x50 ); LCD_DataWrite ( 0x00 ); // AWTR = 00h = 0 LCD_CmdWrite ( 0x30 ); LCD_DataWrite ( 0x9F ); // AWBR = 9Fh = 159 Î 160 – 1 LCD_CmdWrite ( 0x21 ); LCD_DataWrite ( 0x27 ); // DWWR = 27h = 39 Î ( 320 / 8 ) – 1 LCD_CmdWrite ( 0x31 ); LCD_DataWrite ( 0xEF ); // DWHR = EFh = 239 Î 240 – 1 320 0 1 2 …….... 79 80 ………………………… 239 240 ……… 319 0 1 2 : : : : : : : 159 160 : : : 239 80 Active Window 160 x 160 80 240 80 Display Window 320 x 240 圖 6-12 : RA8806 「顯示視窗」與「工作視窗」 瑞佑科技 RAiO TECHNOLOGY INC. 40/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 同樣地,當液晶顯示屏解析度為 240x160 時,就表示顯示視窗的大小也是 240x160,在 圖 6-13 中,我們設定一個 120x120 的工作視窗,其相關暫存器的設定如下所示: LCD_CmdWrite ( 0x40 ); LCD_DataWrite ( 0x00 ); // AWLR = 00h = 0 LCD_CmdWrite ( 0x20 ); LCD_DataWrite ( 0x0E ); // AWRR = 0Eh = 14 Î ( 120 / 8 ) – 1 LCD_CmdWrite ( 0x50 ); LCD_DataWrite ( 0x00 ); // AWTR = 00h = 0 LCD_CmdWrite ( 0x30 ); LCD_DataWrite ( 0x77 ); // AWBR = 77h = 119 Î 120 – 1 LCD_CmdWrite ( 0x21 ); LCD_DataWrite ( 0x1D ); // DWWR = 1Dh = 29 Î ( 240 / 8 ) – 1 LCD_CmdWrite ( 0x31 ); LCD_DataWrite ( 0x9F ); // DWHR = 9Fh = 159 Î 160 – 1 240 0 1 2………………………. 119 120……………………… 239 0 1 2 : : : : : : : 119 120 : : : 159 Active Window 120 x 120 160 Display Window 240 x 160 圖 6-13 : RA8806 「顯示視窗」與「工作視窗」 瑞佑科技 RAiO TECHNOLOGY INC. 41/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-2-3 Com/Seg 掃描方向 RA8806 有一很特殊的功能,亦即使用者可以反相 Common 和 Segment 的顯示順序。當使用 320x240 來進行顯示時,如果將旋轉 90 度(文字)的功能開啟,同時反相 Common 的顯示順 序,此即為「垂直顯示」,也就是以 240x320 來進行顯示。相關內容請參考第 6-10-4 節。 表 6-7 Reg. MISC Bit_Num 說 明 Bit 1 定義 Segment 的顯示順序(SDIR)。 Bit 0 定義 Common 的顯示順序(CDIR)。 SEG0 .............................................. SEG319 COM0 : Cursor Moving way : : : : : : : COM239 (1) SDIR = 0 暫存器編號 REG[01h] SEG0 …………………………………. SEG319 COM0 : Cursor Moving way : : : : : : : COM239 (2) SDIR = 1 圖 6-14 : 改變 Segment 顯示順序之範例 6-2-4 掃描閒置時間 RA8806 有一暫存器 ITCR,是被用來決定「每個 LP 信號之間的閒置時間」,進一步來說,它具 有兩項主要作用: 1. 可用來調整 Frame Rate(當 ITCR 的內容值愈大,表示每個 LP 信號之間的閒置時間 就愈長,亦即 Frame Rate 愈小,反之則反)。 2. 可用來避免「雪花」(Flicker)問題的發生,提昇畫面顯示的品質。 「雪花」的發生主要是因為當 LCD 在進行掃瞄顯示的同時,恰巧 MPU 在對 Display RAM 寫入資 料而產生的衝突。因此,所謂的「雪花」是指發生衝突時的錯誤顯示,使用者可藉由設定暫存器 ITCR,確保 MPU 只在每個 LP 信號之間的閒置時間來寫入資料,以避免或減少雪花的發生。 瑞佑科技 RAiO TECHNOLOGY INC. 42/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 XCLK LP COM_SCAN ITCR T_COM 圖 6-15 : LP 與 LP 信號之間的閒置時間 RA8806 每一個顯示掃瞄線的時間長度的計算公式如下: COM_PRD = ((SEG_NO/LD_WIDTH) x (1 + EXT_MD)) + ITCR ) x XCK_PRD 其中 EXT_MD 是用來表示是否開啟擴展模式功能,若 EXT_MD = 1,則為開啟擴展模式功能, 反之,若 EXT_MD = 0,則是關閉。XCK_PRD 為一個 XCK 時脈的週期寬度,其中 XCK 時脈頻 率為系統時脈(System Clock)除頻的結果,使用者可透過暫存器 MISC 的 Bit[3:2] 來進行設 定。關於一個 Frame 的時間長度和 Frame Rate 的計算公式如下所示: FRM_PRD = COM_PRD x COM# 和 FRM_Rate = 1 / FRM_PRD 舉例來說,當 Panel Resolution 為 320x240,系統時脈頻率為 8MHz,暫存器 MISC 的 Bit[3:2] 設定為 10b 以及 LCD Driver 為 4 bit 的資料匯流排時,那麼 Frame Rate 則為多少呢? 由於系統時脈頻率為 8MHz,而且暫存器 MISC 的 Bit[3:2] 被設定為 10b,那麼一個 XCK 週期為 250 ns,如下所示: XCK_PRD = 1 / (CLK/2) = 1/4MHz = 250ns COM_PRD = ( 320 / 4 + ITCR) x XCK_PRD = (80+ ITCR) x 250(ns) 假設暫存器 ITCR 設定為 A0h(換算為十進制為 160) COM_PRD = (80+160) x 250ns = 240 x 250ns = 60µs 另外,顯示掃瞄線共有 240 條,因此,一個 Frame 的時間長度為: FRM_PRD = 60µs x 240 = 14.4 ms 而 Frame Rate 則是一個 Frame 時間長度的倒數,如下: Frame Rate = 1 / 14.4 ms = 69.4 Hz 由此可知暫存器ITCR和Frame Rate保有一定的關係,使用者可透過設定暫存器ITCR來調整 Frame Rate。在附錄B中的 表B- 1 到 表B- 3 有整理了各種Panel Resolution,因應不同的系統時 瑞佑科技 RAiO TECHNOLOGY INC. 43/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 脈和ITCR的設定,所計算出的Frame Rate一覽表,適當地調整Frame Rate,可以改善顯示的品 質,但值得注意的是,顯示品質的好壞同時亦與模組的設計和液晶本身的材料有關。 表 6-8 Reg. Bit_Num ITCR Bit [7:0] 定義每個 LP 信號之間的閒置時間之長度。 REG[90h] MISC Bit [3:2] 用來選擇 XCK 的頻率。 REG[01h] 說 瑞佑科技 RAiO TECHNOLOGY INC. 明 44/127 暫存器編號 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-3 顯示資料記憶體(DDRAM) RA8806 本 身 內 建 有 兩 塊 容 量 為 9.6K 位 元 組 大 小 的 顯 示 資 料 記 憶 體 , 分 別 是 DDRAM1 和 DDRAM2。它可用來做單色的顯示或者四灰階的顯示,每一塊顯示資料記憶體最大均支援 320x240 大小的顯示,顯示模式包括「文字模式」和「圖形模式」。總之,RA8806 的諸多功能可讓使用者既 彈性又方便來進行各種顯示。 6-3-1 顯示層與顯示模式的選擇 這兩個顯示資料記憶體有以下四種最常見的應用: 1. 僅顯示 DDRAM1 或 DDRAM2: 當僅使用其中一個 DDRAM 來進行顯示時,另一個 DDRAM 則 可以備用或者當成「使用者自建字型」的記憶體。相關內容請參考第 6-11 節 “使用者自創字 型”。 2. 雙層顯示模式: 在此一模式,可用來顯示兩個 DDRAM 畫面合成的效果,使用者可以透過暫存 器 [12h] 的 Bit[3:2] 來選擇畫面合成的模式,如下所示: DDRAM1 “OR” DDRAM2 DDRAM1 “XOR” DDRAM2 DDRAM1 “NOR” DDRAM2 DDRAM1 “AND” DDRAM2 相關內容請參考第 6-10-1-5 節 “雙圖層顯示”。 3. 四灰階顯示模式: 此模式下,LCD 上每一 Pixel 的灰度由存在 DDRAM 的每 2 個連續 Bit 來決 定。 4. 擴展顯示模式: RA8806 支援兩種擴展模式,包括: 水平擴展模式(最大可顯示 640x240 點) 垂直擴展模式(最大可顯示 320x480 點) 瑞佑科技 RAiO TECHNOLOGY INC. 45/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-3-2 記憶體存取之選擇 RA8806 內建一個 512 位元組的「字型產生記憶體」(CGRAM)和兩個 9.6K 位元組的「顯示資 料記憶體」(DDRAM)。其中 CGRAM 可用來儲存造字的字型資料,而 DDRAM 可用來儲存欲 顯示的資料,另外,當僅用一個 DDRAM 來進行顯示時,另一個 DDRAM 亦可當成 CGRAM,來 儲 存 造 字 的 字 型 資 料 。 在 應 用 上 , 至 於 微 處 理 機 ( MPU ) 要 對 那 一 個 記 憶 體 進 行 存 取 (Access),使用者可透過暫存器 [12h] 的 Bit[1:0] 來進行設定。相關內容請參考第 5-2 節 “暫存 器內容描述”。 表 6-9 Reg. MAMR Bit_Num 說 明 Bit [6:4] 「顯示層」與「顯示模式」的選擇。 Bit [3:2] 雙層顯示模式之選擇。 Bit [1:0] 微處理機存取記憶體之選擇。 瑞佑科技 RAiO TECHNOLOGY INC. 46/127 暫存器編號 REG[12h] www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-4 觸控螢幕功能 RA8806 內建一組 10 位元ADC和控制電路,以連接四線電阻式的觸控螢幕。一般來說,電阻式的觸 控螢幕是由兩層非常薄的電阻式屏幕所組成,如 圖 6-16。在兩層屏幕中間有一小縫隙,當有外力施 加在面板上的某一點時,兩層電阻式屏幕將被觸碰(touch),形成迴路而導通。由於兩層電阻式屏 幕的端點含有電極(XL、XR、YU、YD),如 圖 6-17,因此,相對於觸碰的位置,系統將偵測到 一個XY的座標值。 YU Y Plate X Plate Electrode XL XR YD 圖 6-16:觸控螢幕 VDD SW2 YU Resistor -Y XR XL VDD SW0 SW1 Resistor -X YD SW3 GND 圖 6-17 : 觸控螢幕的控制開關 對使用者而言,應用觸控螢幕的功能只需連接 XL、XR、YU 和 YD 等四條信號線到 RA8806 即可。 系統就能不斷監測,直到觸控的事件(touch event)發生為止。當觸控事件發生時,在屏幕電阻上所 產生的分壓將決定觸控的所在位置。在 XY 的座標值被傳回系統(RA8806)並個別儲存在特定的暫 存器後,觸控螢幕控制器(touch panel controller)將發出一中斷告知微處理機(MPU)。 瑞佑科技 RAiO TECHNOLOGY INC. 47/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 VDD RA8806 Touch Panel 39Kohm X1 XL X2 XR Y1 YU Y2 YD 0.01μF x 4 圖 6-18 : RA8806 觸控螢幕電路 在觸控螢幕功能的應用上,RA8806 提供兩種操作模式,分別是「手動模式」和「自動模式」。如下 表: 表 6-10 Operation mode Event detection Auto Interrupt 當觸控事件發生時,讀回對應的 XY 座標值。 Interrupt 當觸控事件發生時,讀回對應的 XY 座標值。 Manual Polling 瑞佑科技 RAiO TECHNOLOGY INC. 說 明 持續輪詢觸控事件,並讀回對應的 XY 座標值。 48/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-4-1 自動模式 自動模式是觸控螢幕功能的應用當中最簡單的。其原理與相關作法,請參考下列之流程圖(Flow chart)。 (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 圖 6-19 : 觸控螢幕「自動模式」應用之流程圖 自動模式應用之相關暫存器如 表 6-11。 表 6-11 Reg. Bit_Num TPCR1 Bit 7 觸控螢幕功能的致能位元。 REG[C0h] TPCR2 Bit 7 用來選擇「手動模式」或「自動模式」。 REG[C4h] Bit 4 觸控螢幕硬體中斷的致能位元。 Bit 0 觸控事件之狀態位元。 INTR 說 明 暫存器編號 REG[0Fh] TPXR Bit [7:0] 觸控螢幕 X 軸資料高位元組 Bit[9:2]。 REG[C1h] TPYR Bit [7:0] 觸控螢幕 Y 軸資料高位元組 Bit[9:2]。 REG[C2h] Bit [3:2] 觸控螢幕 Y 軸資料低二位元 Bit[1:0]。 Bit [1:0] 觸控螢幕 X 軸資料低二位元 Bit[1:0]。 TPZR 瑞佑科技 RAiO TECHNOLOGY INC. 49/127 REG[C3h] www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 (2) 範例程式 : Unsigned char X1,X2,Y1,Y2; Touch_Panel_Enable ( ); TP_Auto_Enable ( ); TP_INT_Mask_Enable ( ); : : Execute other function : : // Set TPCR1 Bit-7 to 1 // Set TPCR2 Bit-7 to 0 // Set INTR Bit-4 to 1 // Jump to ISR when interrupt Int EXT_INT_Service_Routine { LCD_CmdWrite ( INTR ); INT_Sta = LCD_DataRead ( ); // ISR entry // Check INT status If ( INT_Sta & 0x01 ) // Check If TP interrupt { LCD_CmdWrite(TPXR); X1 = LCD_DataRead( ); // MSB of X LCD_CmdWrite(TPYR); Y1 = LCD_DataRead( ); // MSB of Y LCD_CmdWrite(TPZR); X2 = LCD_DataRead( ) & 0x03; // LSB two Bits of X LCD_CmdWrite(TPZR); Y2 = LCD_DataRead( ) & 0x0C; // Least two Bits of Y : : Execute corresponding function : : LCD_CmdWrite ( INTR ); // Clear Touch Panel status temp = LCD_DataRead ( ) & 0xfe; LCD_CmdWrite ( INTR ); LCD_DataWrite ( temp ); } Else if (INT_Sta & 0x02) // Check if Key-Scan interrupt { : : } Else if (INT_Sta & 0x04) // Check if Wakeup interrupt { : : } } 瑞佑科技 RAiO TECHNOLOGY INC. 50/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-4-2 手動模式 所謂「手動模式」是指從「偵測觸控事件」到「閂鎖 X data 與 Y data」以及「讀出 XY 座標值」 的整個過程,都是由程式設計師以手動操作方式來完成。使用此一模式的優點在於,它給予程式 設計師更彈性的應用空間。換句話說,在手動模式下,所有觸控螢幕功能相關的暫存器都必須由 程式設計師來設定,以軟體(程式)控制的方法來實現觸控螢幕應有之功能。 另外,根據不同的設計,使用者可以「外部中斷告知模式」或「持續輪詢模式」來偵測觸控事 件,其中之差異將陸續加以說明。 6-4-2-1 外部中斷模式 在此一模式下,觸控事件的偵測幾乎和「自動模式」相同。其操作步驟如下所示: 1. 致能觸控螢幕功能。 2. 切換觸控螢幕的操作模式為「手動模式」。 3. 切換觸控螢幕的相位為「等待觸控事件發生」。 4. 當外部中斷發生時,檢查是否為觸控事件所產生的中斷。 5. 若是觸控事件,則切換觸控螢幕的相位為「閂鎖 X data」(亦即設定暫存器 TPCR2[1:0] 為 10b),並等待足夠長的時間,使 X data 能穩定地儲存在暫存器 TPXR 和 TPZR。 6. 切換觸控螢幕的相位為「閂鎖 Y data」(亦即設定暫存器 TPCR2[1:0] 為 11b),並等待 足夠長的時間,使 Y data 能穩定地儲存在暫存器 TPYR 和 TPZR。 7. 從 TPXR、TPYR 和 TPZR 讀回 XY 座標值,並清除中斷的狀態值。 有關「外部中斷模式」之暫存器列表說明如下: 表 6-12 Reg. Bit_Num TPCR1 Bit 7 觸控螢幕功能的致能位元。 Bit 7 用來選擇「手動模式」或「自動模式」。 TPCR2 INTR 說 明 Bit [1:0] 觸控螢幕手動模式之選擇位元。 Bit 4 觸控螢幕硬體中斷的致能位元。 Bit 0 觸控事件之狀態位元。 暫存器編號 REG[C0h] REG[C4h] REG[0Fh] TPXR Bit [7:0] 觸控螢幕 X 軸資料高位元組 Bit[9:2] 。 REG[C1h] TPYR Bit [7:0] 觸控螢幕 Y 軸資料高位元組 Bit[9:2] 。 REG[C2h] Bit [3:2] 觸控螢幕 Y 軸資料低二位元 Bit[1:0] 。 Bit [1:0] 觸控螢幕 X 軸資料低二位元 Bit[1:0] 。 TPZR 瑞佑科技 RAiO TECHNOLOGY INC. 51/127 REG[C3h] www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 應用外部中斷模式的流程圖與範例程式如下所示。 (1) 流程圖: Start ISR Enable Touch Panel ( REG[C0h] B7 = 1 ) Check INT Status Set Manual Mode 0 ( REG[0Fh] B0 = ? ) ( REG[C4h] B7 = 1 ) 1 Enable TP INT Mask Latch X Data ( REG[0Fh] B4 = 1 ) ( REG[C4h][1:0] = 10 ) Latch Y Data Wait for TP event Mode ( REG[C4h][1:0] = 01 ) ( REG[C4h][1:0] = 11 ) Read X, Y-axis Ext. INT Event ( Read REG[C1h], REG[C2h], REG[C3h] ) Execute Function Other Functions Clear TP INT Status ( REG[0Fh] B0 = 0 ) ISR Termination 圖 6-20 : 觸控螢幕之手動模式流程圖 瑞佑科技 RAiO TECHNOLOGY INC. 52/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 (2) 範例程式: Unsigned char X1,X2,Y1,Y2; Touch_Panel_Enable ( ); TP_Manual_Enable ( ); TP_INT_Mask_Enable ( ); Switch_Wait_TP_Event( ); : : Execute other function : : Int EXT_INT_Service_Routine { LCD_CmdWrite ( INTR ); INT_Sta = LCD_DataRead ( ); // Set TPCR1 Bit-7 to 1 // Set TPCR2 Bit-7 to 1 // Set INTR Bit-4 to 1 // Set TPCR2[1:0] to 01b // Jump to ISR when interrupt // ISR entry // Check INT status If ( INT_Sta & 0x01) // Check If TP interrupt { Switch_Latch_X_data( ); // Set TPCR2[1:0] to 10b Delay_Time( ); // Delay enough time for X data stable Switch_Latch_Y_data( ); // Set TPCR2[1:0] to 11b Delay_Time( ); // Delay enough time for Y data stable LCD_CmdWrite(TPXR); X1 = LCD_DataRead( ); // MSB of X LCD_CmdWrite(TPYR); Y1 = LCD_DataRead( ); // MSB of Y LCD_CmdWrite(TPZR); X2 = LCD_DataRead( ) & 0x03; // LSB two Bits of X LCD_CmdWrite(TPZR); Y2 = LCD_DataRead( ) & 0x0C; // LSB two Bits of Y : : Execute corresponding function : : LCD_CmdWrite ( INTR ); // Clear Touch Panel status temp = LCD_DataRead ( ) & 0xfe; LCD_CmdWrite ( INTR ); LCD_DataWrite ( temp ); } Else if (INT_Sta & 0x02) // Check if Key-Scan interrupt { : : } Else if (INT_Sta & 0x04) // Check if Wakeup interrupt { : : } } 瑞佑科技 RAiO TECHNOLOGY INC. 53/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-4-2-2 輪詢模式 在輪詢模式(Polling Mode)模式下,使用者需要去決定觸控事件之後「消除機械彈跳」(debounce)的時間,以及栓鎖(latch)之後的取樣時間,使用者運用此一模式在實際的應用上將有 更多的彈性。此一模式之操作步驟如下: 1. 致能觸控螢幕功能。 2. 切換觸控螢幕的操作模式為「手動模式」。 3. 切換觸控螢幕的相位為「等待觸控事件發生」。 4. 從狀態暫存器讀取觸控事件狀態值,檢查是否已發生觸控事件。 5. 當觸控事件發生時,且確認其為「有效」的事件後,即切換觸控螢幕的相位為「栓鎖 X data」(亦即設定暫存器 TPCR2[1:0]為 10b),並等待足夠長的時間,使 X data 能穩定 地儲存在暫存器 TPXR 和 TPZR。 6. 切換觸控螢幕的相位為「閂鎖 Y data」(亦即設定暫存器 TPCR2[1:0] 為 11b),並等待 足夠長的時間,使 Y data 能穩定地儲存在暫存器 TPYR 和 TPZR。 7. 從 TPXR、TPYR 和 TPZR 讀回 XY 座標值,並清除中斷的狀態值。 關於此一模式的暫存器設定,表列說明如下: 表 6-13 Reg. Bit_Num TPCR1 Bit 7 觸控螢幕功能的致能位元。 Bit 7 用來選擇「手動模式」或「自動模式」。 TPCR2 INTR Bit [1:0] Bit 3 Bit 0 說 明 暫存器編號 REG[C0h] REG[C4h] 觸控螢幕手動模式之選擇位元。 觸控事件之偵測位元(僅用於觸控螢幕下之手動模 式)。 REG[0Fh] 觸控事件之狀態位元。 TPXR Bit [7:0] 觸控螢幕 X 軸資料高位元組 Bit[9:2] 。 REG[C1h] TPYR Bit [7:0] 觸控螢幕 Y 軸資料高位元組 Bit[9:2] 。 REG[C2h] Bit [3:2] 觸控螢幕 Y 軸資料低二位元 Bit[1:0] 。 Bit [1:0] 觸控螢幕 X 軸資料低二位元 Bit[1:0] 。 TPZR REG[C3h] 為了偵測觸控事件之發生,程式設計師可以去檢查暫存器 INTR 的位元 3 或位元 0,其中之差 異,說明如下: 1. 暫存器 INTR 的位元 3「即時反應」了目前的觸控狀態。當觸控事件發生時,此位元是 1;反之,當無觸控事件發生時,此位元是 0,而且此位元是唯讀(read only)的,通常 使用於「輪詢模式」。 瑞佑科技 RAiO TECHNOLOGY INC. 54/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 2. 暫存器 INTR 的位元 0 則是記錄了觸控的狀態。當觸控事件發生時,此位元是 1,但當無 觸控事件發生時,它卻不會被自動清除為 0,必須由程式設計師來將它清除。此位元通常 使用於「外部中斷模式」。 值得注意的是,暫存器 INTR 的位元 3 是 ADC 電路的直接輸出,一旦有螢幕被碰觸,位元 3 的狀 態將即時被反應出來。當此一碰觸狀態未達穩定時,需要「消除機械彈跳」(de-bounced)來確 保此一碰觸為「有效的觸控事件」。因此,此一位元只有在手動模式才是有作用的。當 RA8806 設定為「自動模式」時,觸控事件將自動被偵測,並由系統來檢查是否為有效事件,只有是有效 的觸控事件,中斷才會產生。 應用輪詢模式的流程圖與範例程式如下所示。 (1) 流程圖: 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 Check TP Event 0 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 圖 6-21 : 觸控螢幕輪詢模式之流程圖 (2) 範例程式: Touch_Panel_Enable ( ); TP_Manual_Enable ( ); 瑞佑科技 RAiO TECHNOLOGY INC. // Set REG[C0h]. Bit-7 = 1 // Set REG[C4h]. Bit-7 = 1 55/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 Switch_Wait_TP_Event( ); // Set REG[C4h] Bit[1:0] = 01 Touch_Sta_Valid = 0; LCD_CmdWrite ( INTR ); INT_Sta = LCD_DataRead ( ); // Initial Touch state If ( INT_Sta & 0x08 ) // Check INTR.Bit-3 { for ( count = 0 ; count < 100 ; count++ ) // Check 100 times { LCD_CmdWrite ( INTR ); INT_Sta = LCD_DataRead( ); if (INT_Sta == 0) // When no touch { Touch_Sta_Valid = 0; // Touch is invalid break; } if ( count == 99 ) // When count 100 times, touch is Touch_Sta_Valid = 1; //valid } if (Touch_Sta_Valid ) { Switch_Latch_X_data( ); // Set REG[C4h][1:0] = 10 Delay_Time( ); // Delay enough time Switch_Latch_Y_data( ); // Set REG[C4h][1:0] = 11 Delay_Time( ); // Delay enough time LCD_CmdWrite(TPXR); X1 = LCD_DataRead( ); // Read high byte of X-axis LCD_CmdWrite(TPYR); Y1 = LCD_DataRead( ); // Read high byte of Y-axis LCD_CmdWrite(TPZR); X2 = LCD_DataRead( ) & 0x03; // Read Least two Bits of X-axis LCD_CmdWrite(TPZR); Y2 = LCD_DataRead( ) & 0x0C; // Read Least two Bits of Y-axis : Execute corresponding function : LCD_CmdWrite ( INTR ); // Clear REG[0Fh]. Bit-0 temp = LCD_DataRead ( ) & 0xfe; LCD_CmdWrite ( INTR ); LCD_DataWrite ( temp ); } } : Execute other function : : 瑞佑科技 RAiO TECHNOLOGY INC. 56/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-4-3 觸控掃描取樣時間參考表 在使用觸控螢幕功能的自動模式時,為了避免觸控螢幕被接觸的瞬間訊號還不穩定,故需要延遲 一段取樣時間來等待訊號變穩定,而此處的觸控掃瞄取樣時間與觸控掃瞄頻率(ADC Clock)轉 換速度有相對的關係,我們建議當您在設定觸控掃瞄頻率(ADC Clock)轉換速度時,也請選擇 適 當 的 觸 控 掃 瞄 取 樣 時間,以避免觸控掃瞄取樣失敗的情況。下表為觸控掃瞄頻率(ADC Clock)轉換速度(REG[C0h] 的 Bit[2:0]) 與觸控掃瞄取樣時間 (REG [C0h] 的 Bit [6:4]) 的參考對 照表。 表 6-13-A : 觸控掃描取樣時間參考表 ADC Sampling Wait Time - REG[C0h] Bit[6:4] SYSTEM_CLK 4M 6M 8M 10M 12M 000 000 000 000 000 000 001 000 000 000 000 000 010 000 000 000 000 000 011 001 001 000 000 000 100 010 010 001 001 001 101 011 011 010 010 010 110 100 100 011 011 011 111 101 101 100 100 100 REG[C0h] [2:0] 瑞佑科技 RAiO TECHNOLOGY INC. 57/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-5 鍵盤掃瞄功能 RA8806 內建一鍵盤掃瞄電路,使系統具備鍵盤(Keyboard)功能,它有助於整合具備鍵盤功能的應 用電路。如下 圖 6-22 為一 8x8 鍵盤的基本應用電路。在此一設計當中,RA8806 已在按鍵狀態輸入 腳位 “KIN[7:0]” 內建「提昇電阻」(pull-up resistors)。 RA8806 KIN0 KIN1 KIN2 KIN3 KIN4 KIN5 KIN6 KIN7 KOUT0 KOUT1 KOUT2 KOUT3 KOUT4 KOUT5 KOUT6 KOUT7 圖 6-22 : 8x8 鍵盤的基本應用電路 鍵盤掃瞄功能相關之暫存器為 KSCR、KSDR 和 KSER。在 RA8806 的設計,鍵盤掃瞄功能具有下列 之特色: 1. 支援 4x8 與 8x8 兩種鍵盤模組。 2. 程式設計師可以自行設定取樣次數(sampling times)與鍵盤掃瞄的頻率。 3. 可調整長按鍵(long key-press)之時序。 4. 允許多重按鍵(Multi-Key)組合,最多同時允許三個按鍵組合。 5. 當系統在睡眠模式時,允許按鍵來喚醒(wake-up)系統。 表 6-14 為鍵盤矩陣中每個(短)按鍵的對應碼(key code),當有按鍵發生時(短按),按鍵的對 應碼將被儲存在暫存器[A2h] 。至於長按鍵(long key-press)的對應碼則請參考 表 6-15。 瑞佑科技 RAiO TECHNOLOGY INC. 58/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 表 6-14 : 短按鍵的對應碼(Normal Key) ROW # 0 COL # 1 2 3 4 5 6 7 0 00h 01h 02h 03h 04h 05h 06h 07h 1 10h 11h 12h 13h 14h 15h 16h 17h 2 20h 21h 22h 23h 24h 25h 26h 27h 3 30h 31h 32h 33h 34h 35h 36h 37h 4 40h 41h 42h 43h 44h 45h 46h 47h 5 50h 51h 52h 53h 54h 55h 56h 57h 6 60h 61h 62h 63h 64h 65h 66h 67h 7 70h 71h 72h 73h 74h 75h 76h 77h 表 6-15 : 長按鍵的對應碼(Long Key) ROW # 0 COL # 1 2 3 4 5 6 7 0 80h 81h 82h 83h 84h 85h 86h 87h 1 90h 91h 92h 93h 94h 95h 96h 97h 2 A0h A1h A2h A3h A4h A5h A6h A7h 3 B0h B1h B2h B3h B4h B5h B6h B7h 4 C0h C1h C2h C3h C4h C5h C6h C7h 5 D0h D1h D2h D3h D4h D5h D6h D7h 6 E0h E1h E2h E3h E4h E5h E6h E7h 7 F0h F1h F2h F3h F4h F5h F6h F7h 當應用多重組合按鍵時,所有按鍵的對應碼將被儲存在暫存器 KSDR0、KSDR1 和 KSDR2,值得注 意的是,數個對應碼儲存在暫存器 KSDR 主要是以對應碼值大小來排序,而與先後按鍵順序無關,請 參考下列的範例: 假設先後按下三個鍵,其對應碼分別為 0x44、0x00 和 0x22,則暫存器 KSDR 所儲存的內容如下: KSDR0 = 0x00 KSDR1 = 0x22 KSDR2 = 0x44 按鍵的對應碼都定義在暫存器 KSDR0、KSDR1 和 KSDR2([A2h ~ A4h])的說明當中。另外則針對 鍵盤掃瞄功能相關的暫存器,列表說明如下: 瑞佑科技 RAiO TECHNOLOGY INC. 59/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 表 6-16 Reg. KSCR1 KSCR2 Bit_Num 說 Bit 7 按鍵功能致能位元。 Bit 6 選擇鍵盤掃瞄矩陣。 Bit [5:4] 明 鍵盤掃瞄 De-bounce 取樣的次數。 Bit 3 長按鍵功能致能位元。 Bit [2:0] 鍵盤掃瞄頻率的設定。 Bit [3:2] 長按鍵時間的設定。 Bit [1:0] 告知幾個按鍵被按到。 Bit [7:0] 按鍵的對應碼。 暫存器編號 REG[A0h] REG[A1h] KSDR0 KSDR1 REG[A2h ~ A4h] KSDR2 INTR Bit 5 鍵盤掃瞄(Key-Scan)中斷的致能位元。 Bit 1 鍵盤掃瞄中斷狀態位元。 REG[0Fh] 除此之外,當系統在睡眠模式時,RA8806 亦允許用按鍵來喚醒系統,換言之,當有任何按鍵狀態發 生時,系統時脈將開始起振,並確認喚醒事件是否有效。如果為有效的喚醒事件,系統將在兩個 Frame 的時間之後點亮螢幕,而且系統亦將從睡眠模式回復到正常模式;假若並非為有效的喚醒事 件,則系統時脈將被關閉,且系統仍處於睡眠模式。喚醒功能相關的設定如下表所示: 表 6-17 Reg. Bit_Num KSCR2 Bit 7 鍵盤掃瞄喚醒功能的致能位元。 Bit 6 喚醒(Wakeup)中斷遮罩的致能位元。 Bit 2 喚醒中斷狀態位元。 INTR 說 明 暫存器編號 REG[A1h] REG[0Fh] 當啟動(Enable)鍵盤掃瞄的功能之後,程式設計師可以使用兩種方法來檢查按鍵是否被按: 1)軟體檢查的方式:不斷檢查暫存器 INTR 的位元 1 來得知是否有按鍵被按。 2)硬體檢查的方式:由外部中斷的產生來得知有按鍵被按。 值得注意的是,無論採用上述那一種方式,暫存器 INTR 的位元 1 都將被設定為 1,因此程式設計師 在正確讀回按鍵的對應碼之後,必須將該位元清除為 0,否則之後的按鍵將無法正常發出中斷告知系 統。 瑞佑科技 RAiO TECHNOLOGY INC. 60/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 應用鍵盤掃瞄功能的流程圖與範例程式如下所示。 1. 軟體檢查的方式: (1) 流程圖: 圖 6-23 : 鍵盤掃瞄功能的流程圖(1) 瑞佑科技 RAiO TECHNOLOGY INC. 61/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 (2) 範例程式: Key-Scan_Enable ( ); while (1) { LCD_CmdWrite ( INTR ); KS_Sta = LCD_DataRead ( ); KS_Sta = KS_Sta & 0x02; If ( KS_Sta ) { LCD_CmdWrite ( KSCR2 ); KeyNum = LCD_DataRead ( ); Switch(KeyNum) { Case 0: // Key release Case 1: LCD_CmdWrite ( KSDR0 ); KeyCode1 = LCD_DataRead ( ); // Do corresponding event Case 2: LCD_CmdWrite ( KSDR0 ); KeyCode1 = LCD_DataRead ( ); LCD_CmdWrite ( KSDR1 ); KeyCode2 = LCD_DataRead ( ); // Do corresponding event Case 3: LCD_CmdWrite ( KSDR0 ); KeyCode1 = LCD_DataRead ( ); LCD_CmdWrite ( KSDR1 ); KeyCode2 = LCD_DataRead ( ); LCD_CmdWrite ( KSDR2 ); KeyCode3 = LCD_DataRead ( ); // Do corresponding event } LCD_CmdWrite ( INTR ); temp = LCD_DataRead ( ); temp = temp & 0xfd; LCD_CmdWrite ( INTR ); LCD_DataWrite ( temp ); // KSCR Bit-7 is set to 1 // Check Key-Scan status // Read Key Press Number // Read Key Code0 // Read Key Code0 // Read Key Code1 // Read Key Code0 // Read Key Code1 // Read Key Code2 // Clear Key-Scan status } } 瑞佑科技 RAiO TECHNOLOGY INC. 62/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 2. 硬體檢查的方式: (1) 流程圖: 圖 6-24 : 鍵盤掃瞄功能的流程圖(2) 瑞佑科技 RAiO TECHNOLOGY INC. 63/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 (2) 範例程式: Key-Scan_Enable ( ); Key-Scan_INT_Mask_Enable ( ); : Execute other functions : Int EXT_INT_Service_Routine { LCD_CmdWrite ( INTR ); INT_Sta = LCD_DataRead ( ); If ( INT_Sta & 0x02 ) { LCD_CmdWrite ( KSCR2 ); KeyNum = LCD_DataRead ( ); Switch(KeyNum) { Case 0: // Key release Case 1: LCD_CmdWrite ( KSDR0 ); KeyCode1 = LCD_DataRead ( ); // Do corresponding event Case 2: LCD_CmdWrite ( KSDR0 ); KeyCode1 = LCD_DataRead ( ); LCD_CmdWrite ( KSDR1 ); KeyCode2 = LCD_DataRead ( ); // Do corresponding event Case 3: LCD_CmdWrite ( KSDR0 ); KeyCode1 = LCD_DataRead ( ); LCD_CmdWrite ( KSDR1 ); KeyCode2 = LCD_DataRead ( ); LCD_CmdWrite ( KSDR2 ); KeyCode3 = LCD_DataRead ( ); // Do corresponding event } LCD_CmdWrite ( INTR ); temp = LCD_DataRead ( ); temp = temp & 0xfd; LCD_CmdWrite ( INTR ); LCD_DataWrite ( temp ); } else if (INT_Sta & 0x01) { : } else if (INT_Sta & 0x04) { : } // Set Reg. KSCR1 Bit-7=1 // Set Reg. INTR Bit-5=1 : // Jump to ISR when external interrupt // ISR entry // Check INT status // Check if Key-Scan interrupt // Read Key Press Number // Read Key Code0 // Read Key Code0 // Read Key Code1 // Read Key Code0 // Read Key Code1 // Read Key Code2 // Clear Key-Scan status // Check if Touch Panel interrupt // Check if Wakeup interrupt } 瑞佑科技 RAiO TECHNOLOGY INC. 64/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-6 系統時序和重置 6-6-1 振盪電路 RA8806 的系統時序可由內部振盪電路或外接時序兩種方式提供,兩者間的選擇不需用額外的接 腳 去 設 定 。 RA8806 內 建 有 晶 體 振 盪 電 路 , 它 結 合 外 部 在 XG 和 XD 兩 腳 間 的 石 英 振 盪 器 (4MHz~12MHz)和兩個電容産生系統時序,圖 6-25 是外接石英振盪電路和外接時序電路的接 法。 RA8806 RA8806 XG XG CLK 15pF (4~12MHz) X’tal XD XD 15pF (4~12MHz) 圖 6-25 : 系統時序電路 6-6-2 外部時序 RA8806 也可以接受外部時序來作為其系統時序,此時外部時序直接接到 XG 腳即可,而 XD 就必 須保持懸空。 tRCL tFCL tWH EXT¢0 tWL tC 圖 6-26 : 外部時序 表 6-18 : 外部時序參數 Signal Symbol tRCL External clock rise time tFCL External clock fall time External clock HIGH-level pulse width External clock LOW-level pulse width External clock period tWH EXT Φ0 Parameter tWL tC VDD = 5V Min. Max. — 10 — 10 Ta = –20 to 75℃ VDD = 3.3V Min. Max. — 10 — 10 Unit ns ns Note 1. Note 2. Note 1. Note 2. ns Note 1. Note 2. Note 1. Note 2. ns 66.6 — 83.3 — Condition ns 註: 475 < t WH , t WL 1000 525 − t FCL ) × > t WH , t WL 1000 1. ( t C − t RCL − t FCL ) × 2. ( t C − t RCL 瑞佑科技 RAiO TECHNOLOGY INC. 65/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-6-3 重置 RA8806 供電後要不少於 1024*tc 的時間來進行重置(Reset),以 6MHz 的系統頻率來說,其重 置脈衝寬度就要不少於 170.7µs。為了讓 RA8806 不出現誤動作,我們建議 RA8806 供電後一定 要進行重置動作。 RA8806 VDD RA8806 100KΩ From MCU ZRST ZRST 1uF 0.1uF SW (Option) (1) (2) 圖 6-27: 重置腳 ZRST 的接法範例 圖 6-27 是一重置電路接法範例,其重置動作可以用MPU去控制如 圖 6-27 的(1),也可由一RC 電路來産生如 圖 6-27 的(2)。 RA8806 在重置過程中不能接受MPU的任何指令,所以應在重置後才可對內部暫存器進行初始化 設定。而在重置過程中信號腳XD、LP和FR都會停止輸出信號。在VDD穩定同時重置腳 ”ZRST” 在上升沿之後最少延遲 1ms的時間再進行其他操作,這樣可確保系統的穩定性,詳細的參數要求 可參考 圖 6-28。 t RS t RH 0.8VDD VDD Reset Complete ZRST t RST 0.8VDD 0.2VDD Max. Typ. Min. Unit tRS Reset setup time -- -- 1 ms tRH Reset hold time -- -- 1 ms tRST Reset active time -- -- 1024 t c (*) *t C is the period of system clock, for example: 10MHz, t C = 100ns 圖 6-28: 重置時序參數 瑞佑科技 RAiO TECHNOLOGY INC. 66/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-7 電源 6-7-1 電源結構 RA8806 的電源結構如 圖 6-29 所示。VDDP、GNDP是I/O的電源電壓,AVDD、AGND是內部 ADC轉換器使用的電壓。其內建有 5V到 3V的DC/DC電路,可以直接應用到 5V或 3V的系統而不 需要任何外部的轉換。 RA8806 VDDP Core VDD VDDH 5V Æ 3V AVDD ADC GNDP GND AGND 圖 6-29: 電源結構 6-7-2 3V電源應用電路 當RA8806 應用到 3V的系統上時,其功耗會更少,其電路接法建議如 圖 6-30。此時VDDP、 VDD和AVDD都必須接到 3V的電源上,而由於不使用內部DC/DC電路,所以VDDH保持浮接即 可。 3.3V MCU RA8806 3.3V VDDP VDD VDD 0.47uH VDDH (Option) AVDD 0.47uH GNDP (Option) 10u 0.1u 0.1u GND 0.1u AGND GND I/O MCU I/F 圖 6-30: 3V 電源應用電路 瑞佑科技 RAiO TECHNOLOGY INC. 67/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-7-3 5V電源應用電路 當RA8806 工作於 5V的系統時,其電路接法建議如 圖 6-31。此時 5V電源從VDDH輸入,經內 部 5V-to-3V DC/DC電路轉換為 3V,從腳VDD輸出並也提供給內部電路使用。同時為了增加 VDD的穩定性,必須外加一 1µF 和 0.1µF的電容。 另外要注意的是,內部 DC-to-DC 電路會增加功耗,所以當 RA8806 進入睡眠模式時其耗電流會 保持在 20µA 左右。 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 圖 6-31 : 5V 電源應用電路 瑞佑科技 RAiO TECHNOLOGY INC. 68/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-7-4 睡眠模式 RA8806 提供了兩種操作模式:正常模式(Normal Mode)和睡眠模式(Sleep Mode)。請參考 第 5 章 ”暫存器描述” 中的對暫存器 WLCR 的說明。進入睡眠模式後,RA8806 會關掉系統時序以 最大限度地減少功耗,此時除了狀態暫存器可以讀取其數據外,其他的暫存器都不允許,同時除 了 REG[00H] 的 Bit-7 外其他的暫存器都不允許對其寫入數據。而進入睡眠模式後,RA8806 可以 通過以下三種方法來喚醒: 1. 寫入 REG[00h] Bit-7 = 0,此時會回到正常模式。 2. Touch Panel 發生被觸摸事件。 3. Key Scan 被按下時。 而為了讓 RA8806 退去睡眠模式返回到正常模式後避免誤動作的發生,必須在收到喚醒指令後必 須延時足夠的時間(大概 1,000 個系統時序週期)才可對它進行其他操作。 另外,在 MPU 發指令讓 RA8806 進入睡眠模式到離開睡眠模式的時間內,RA8806 是不能接受任 何指令,所以要向其發指令時要避免這種情況的發生。例如,RA8806 收到進入睡眠模式的指令 進入睡眠,當 MPU 收到一個外部中斷,進入中斷服務程式(ISR),而此時正處於睡眠模式下的 RA8806 就不能正確接收和識別 MPU 發來的指令。在硬體設計方面,這種情況是不能避免的。因 為這外部中斷是只針對 MPU 的,而並沒有對 RA8806 有任何的操作,所以這情況出現的可能性 是不可忽略的。 所以,我們建議在 MPU 程式設計時,當給 RA8806 發進入睡眠模式指令之前先把 MPU 的中斷響 應關閉,直到退去睡眠模式返回到正常模式後再打開 MPU 的中斷響應。另外,因為在睡眠模式下 可以正常讀取其狀態暫存器,所以也可以在中斷服務程式(ISR)中判斷 RA8806 的狀態。如果 檢測到 RA8806 是處於睡眠狀態,MPU 可以退去中斷服務程式(ISR)不作任何操作,這可避免 RA8806 發生誤動作。 表 6-19 Reg. Bit_Num WLCR Bit 7 瑞佑科技 RAiO TECHNOLOGY INC. 說 明 電源模式選擇 - 正常模式 或 睡眠 模式。 69/127 暫存器編號 REG[00h] www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-8 中斷與忙碌 RA8806 提供有一中斷信號輸出腳(INT)給 MPU 去響應 RA8806 的中斷事件,也提供了一忙碌 (Busy)信號輸出腳給 MPU 去判斷 RA8806 是否處於忙碌狀態。這兩個信號都可以通過相關暫存器 的設置來改變其是高電位觸發還是低電位觸發。 6-8-1 中斷(Interrupt) RA8806 的中斷信號會在以下事件發生時産生: Touch Panel 發生被觸摸事件時 Key-Scan 被按下時 睡眠模式下被喚醒時 這些中斷事件的遮罩(Disable)或致能(Enable)可以通過對暫存器 REG[0Fh] 的設置來控制。 另外,RA8806 還提供了軟體中斷功能,當用戶的系統不能支援硬體中斷信號時,可以通過詢問 的方式進行軟體中斷。要進行硬體中斷時,用戶必須要把中斷遮罩位元(Interrupt Mask)設為 1 (請參考暫存器 ”INTR” 的說明),其進行步驟如下: RA8806 發出中斷信號給 MPU。 MPU 收到中斷信號完成電路轉換後,其程式計數器(PC)會跳到中斷服務程式的入口。 此時 RA8806 的中斷標誌位元被置 “1”(REG[0Fh] Bit[2:0])。例如,當 Key-Scan 中斷産 生,其 Key-Scan 中斷標誌位元就會被置 1。 使用軟體中斷方式時,用戶不須要任何外部設置,只要通過讀取暫存器 INTR 的相關狀態位就可 以檢測中斷事件是否發生。順便提一下,中斷遮罩(interrupt mask)設置只能遮罩硬體中斷的産 生,但不能遮罩暫存器 INTR 的相關狀態。 瑞佑科技 RAiO TECHNOLOGY INC. 70/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 例 -1: 圖 6-32 是喚醒事件産生中斷時中斷信號INT的時序,RA8806 提供了三種喚醒事件,具體請參考 第 6-7-4 節 “睡眠模式” 中的說明。 t INTST Wake-Up Event INT 圖 6-32: 中斷時序(1) t INTST = Clock Stable Time + 1024*t C 當用戶的系統頻率是 6MHz 時,其時序穩定時間(Clock Stable Time)大約為 3~3.5ms,而 t C 為 167ns。 例 -2: 圖 6-33 是Key-Scan事件發生時中斷信號INT的中斷時序。 t INTST Key-Scan Event INT 圖 6-33 : 中斷時序(2) t INTST = De-bounce Time + t CKEY 其中 “De-bounce Time” 可通過暫存器 REG[A0h] Bit[5:4] 來設置,而 tCKEY 是按鍵掃描週期,可通 過暫存器 REG[A0h] Bit[2:0] 來設置。 要注意的是,因為其中斷標誌位元不會自動清除,所以用戶必須在進入中斷程式後手動清為 ”0”。 瑞佑科技 RAiO TECHNOLOGY INC. 71/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-8-2 忙碌(Busy) RA8806 也提供一忙碌(BUSY)信號,當忙碌標誌位元為 “1” 時就意味著 RA8806 正處於忙碌狀 態,而不能把數據寫入顯示記憶體(DDRAM)裏。而其忙碌情況可分兩種,一種是掃描忙碌 (Scan Busy),另一種是記憶體寫入忙碌(Memory Write Busy),具體說明如下: 掃描忙碌(Scan Busy): 在LCD顯示時,當RA8806 的掃描電路對DDRAM進行讀取操作時,同時又有另外一數據被寫入到 DDRAM,就會造成掃描電路讀取的數據丟失。所以把當掃描電路在掃描時所引起的忙碌狀態叫掃 描忙碌(Scan Busy)。圖 6-34 是數據在掃描電路和MPU存取週期的傳輸情況,圖 6-35 和 圖 6-15 一樣都是反映RA8806 掃描時的相關波形。這波形反映了RA8806 對每根COM線的掃描情 況。每根COM線的掃描時間由空閒時間(Idle)和掃描時間(Scan time)兩者組成,其中空閒時 間(Idle)可以通過暫存器ITCR來設置,而掃描期間就是掃描忙碌。所以在掃描忙碌時寫入數據 就會造成數據丟失,但這樣也並不會造成嚴重的錯誤,只會有顯示殘缺的現象。如果這種情況不 是太頻繁發生的話,對顯示來說也不會有太大的影響。 RA8806 Display Data RAM Memory-Write LCD-Scan Interface Controller MCU LCD Driver 圖 6-34 : Data 在 DDRAM 裏的傳輸情況 XCLK LP COM_SCAN ITCR T_COM 圖 6-35 : 每根 COM 線的掃描情況 瑞佑科技 RAiO TECHNOLOGY INC. 72/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 記憶體寫入忙碌(Memory Write Busy): 引起記憶體寫入忙碌情況有兩個: 1. 當 MPU 用文字模式寫入數據時,字體大小不同的字型需求各自不同的足夠的時間去寫 入 DDRAM 裏,在這段時間裏 RA8806 是不能再往 DDRAM 裏寫數據的,此時正處於 記憶體寫入忙碌狀態。 2. 當 MPU 發指令(FNCR Bit-3 = 1)讓 RA8806 執行清除螢幕功能時,這段時間裏 RA8806 在清理 DDRAM 同時也會引起記憶體寫入忙碌。 在記憶體寫入忙碌時向 DDRAM 寫入資料會造成顯示資料的丟失。所以用戶在以上兩種情況下寫 入顯示資料時一定要檢查忙碌狀態。另外,RA8806 的忙碌信號 “BUSY” 和中斷信號 “INT” 都可以 設置為高電位觸發或低電位觸發(請參考暫存器 ”MISC” 的說明)。 正常情況下,會把忙碌信號 “BUSY” 接到MPU的輸入腳上,用來在MPU往RA8806 寫入數據之前 對其忙碌狀態進行監控,其具體時序如 圖 6-36 所示。忙碌信號可以通過對暫存器REG [01h] Bit5 的設置來選擇是高電平觸發或是低電平觸發。 RS, ZCS1 t BST ZWR DATA[7:0] (Write) t BUSY BUSY 圖 6-36 : BUSY 時序圖 表 6-20 : BUSY 參考時序 Signal Symbol Rating Parameter t BST Busy Setup Time t BUSY Busy Active Time BUSY 瑞佑科技 RAiO TECHNOLOGY INC. Unit Min Max Half Size Font 150 -- ns Full Size Font 250 Half Size Font -- 50*t c ns Full Size Font -- 100*t c ns 73/127 Condition System Clock: 8MHz VDD: 5V t c = 125ns www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-9 脈寬調變(PWM) RA8806 提供一個可調節的脈寬調變(PWM)輸出給 LCD 進行對比度調節。其 PWM 的頻率和工作 週期(Duty cycle)都可以通過相關暫存器的設置來調整。PWM 的輸出驅動能力較其它輸出信號為 大,大約是 4 倍於一般的輸出腳的驅動能力。除此之外,如果 PWM 的功能被禁能,此腳位也可當成 一般的 IO 信號來使用,相關的功能設定,請參考以下的表格。 表 6-21 Reg. Bit_Num Bit 7 PCR PDCR 說 明 暫存器編號 PWM 功能致能位元。 Bit [3:0] PWM 來源時脈的除頻設定。 Bit [7:0] PWM 工作週期(Duty Cycle)選擇。 REG[D0h] REG[D1h] 下圖是兩個關於 PWM 輸出的例子: TPWM TL TH Example-1: System Clock = 10Mhz, Register PCR Bit[3:0] = 0001b Æ Clock Source = 10MHz/2 = 5MHz TPWM = 256*(1/5MHz) = 51.2µs Register PDCR Bit[7:0] = 0Fh Æ TH = 16*(1/5MHz) = 3.2µs TL = (256-16) * (1/ 5MHz) = 48µs TPWM TH TL Example-2: System Clock = 10Mhz, Register PCR Bit[3:0] = 0010b Æ Clock Source = 10MHz/4 = 2.5MHz TPWM = 256*(1/2.5MHz) = 102.4 µs Register PDCR Bit[7:0] = 7Fh Æ TH = 128*(1/2.5MHz) = 51.2µs TL = (256-128) * (1/ 2.5MHz) = 51.2µs 圖 6-37 : PWM_OUT 輸出脈衝 瑞佑科技 RAiO TECHNOLOGY INC. 74/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 圖 6-38 是應用PWM調節正極性的驅動電壓VLCD的應用電路。圖 6-39 是應用PWM調節負極性的驅 動電壓VLCD的應用電路。 圖 6-38 : PWM 控制正極性的 VLCD 的應用電路 圖 6-39 : PWM 控制負極性的 VLCD 的應用電路 瑞佑科技 RAiO TECHNOLOGY INC. 75/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-10 顯示功能 6-10-1 字元/圖形模式 RA8806 支援兩種自MPU寫入記憶體的模式,字元模式和圖形模式,當設定圖形模式時,資料是 以點陣的方式直接寫入記憶體,而在字元模式下,寫入的資料是以字碼的形式被寫入RA8806, 而寫入的字碼會再到CGROM中讀出相對的字型碼而後寫入記憶體。RA8806 內建的CGROM提供 兩種不同大小的字元 : 1)是半型字(8x16 點),2)是全型字(16x16 點),圖 6-40 為字型的 範例。 16X16 font 8X16 font 圖 6-40 : 全型字與半型字 6-10-1-1 圖形顯示 RA8806 圖形模式是使用點陣方式來填資料到顯示記憶體,圖 6-41 為圖形顯示的例子。 1. Setup Register WLCR, TEXT_MD = 0 2. Write bit map to Display Data Memory directly. 圖 6-41 : 圖形模式 RA8806 支援最大 320X240 的解析度,因此它需要 9.6Kbyte(320X240/8 = 9600)的顯示記憶 體來儲存每個畫素的資料,圖 6-42 顯示了LCD 面板與顯示記憶體間的對照方式。 瑞佑科技 RAiO TECHNOLOGY INC. 76/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 Segment D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 0 0 1 1 0 1 2 3 4 5 6 7 ….. 0 Display Data RAM Display On LCD 圖 6-42 : LCD 面板與顯示記憶體間的對照 RA8806 提供能將一筆資料填滿整個顯示記憶體的自動寫入功能。首先,使用者把資料寫入暫存 器 PNTR,接著將自動寫入功能啟動(暫存器 FNCR 位元-3)。RA8806 將把這筆資料在很短的 時間內填滿顯示記憶體。這個功能通常被使用於清除螢幕或是想要填滿固定的資料或背景在螢幕 上。 表 6-22 Reg. Bit_Num WLCR Bit 3 說 明 暫存器編號 REG[00h] 文字模式選擇。 6-10-1-2 半型字 RA8806 內建四個半型字的區塊,每個區塊包含了 00h ~ FFh 的 256 個字型,而且能用暫存器 [F0h] bit[1:0] 來選擇。依照著暫存器[F0h] bit[1:0]的設定,相對應的區塊將被選擇。關於字型碼的 對應位置,請參照字碼表 A。RA8806 也支援可以提供大部份 Latin 字型碼設定的 ISO8859 字型 碼(ISO - International Organization for Standardization)。在此模式下,RA8806 內部的字型碼 對照表可以對應到 ISO8859-1 ~ ISO8859-4 的字型碼。 表 6-23 Reg. FNCR Bit_Num 說 明 Bit 7 ISO8859 模式。 Bit 2 ASCII 模式致能。 Bit [1:0] ASCII 區塊選擇。 瑞佑科技 RAiO TECHNOLOGY INC. 77/127 暫存器編號 REG[F0h] www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-10-1-3 全型字 RA8806 有三種形式的 CGROM,例:RA8806-S 、RA8806-T 和 RA8806-J。RA8806-S 包含了 標準 GB 字型碼的簡體字型;RA8806-T 則包含了標準 BIG5 字型碼的繁體字型;RA8806-J 則包 含了 JIS 第一及第二水準日文漢字。字碼表請參照簡體中文字碼表、繁體中文字碼表和日文漢字 字庫表(RA8806_DS_V12_Font_JIS.pdf)。 表 6-24 Reg. Bit_Num WLCR Bit 3 說 明 暫存器編號 文字模式選擇。 REG[00h] RA8806 的中文顯示方式是在文字模式,直接輸入中文字碼(GB 或 BIG5 碼) ,就可以在游標所在 位置顯示中文,RA8806-S 接受的中文字碼是 GB 碼,RA8806-T 接受的中文字碼是 BIG-5 碼。因 為中文字碼佔兩個 Byte,所以如果 MPU 介面是 8-Bit,則 MPU 必須分兩次將中文字碼(High Byte & Low Byte)寫入 RA8806,而英文或數字碼只佔一個 Byte,因此只要將內碼一次寫入 RA8806 既可。例如使用 RA8806-T,”世” 的 BIG-5 碼是 ”A540”,MPU 直接將 ”A5” 及”40” 依序 傳給 RA8806-T,就能在 LCD 屏的游標位置上秀出 ” 世” 的中文字。 如果是使用日文漢字版的 RA8806,也就是 RA8806-J,那麼必須將 JIS 碼經過簡易的換算再透過 MPU 傳給 RA8806-J。首先將 JIS 碼的 Hi-Byte 加上 80h;Low-Byte 碼則判斷是否大於等於 60h,如果是就加 40h,否則加 20h,產生的新碼再分別由 MPU 傳給 RA8806-J 就能秀出對應到 JIS 碼的日文漢字。例如 JIS 碼 ”3040” 是 ”粟” 字,換算的新碼為 ”B060” ,將 ”B0” 及”60” 依序傳 給 RA8806-J,就能秀出 ”粟” 的日文漢字。 RA8806-J的Font ROM主要是參照類似JIS Code的編碼基準,但是如果使用者是要使用Shift-JIS 碼(簡稱S-JIS) 就必須透過另一個轉換程序,先將S-JIS碼換成JIS碼。S-JIS是日本電腦系統常用 的編碼,因為它能容納 全形及 半形拉丁字母、平假名、片假名、符號及 日語漢字。它被命名為 Shift_JIS的原因,是它在放置全形字符時,要避開原本在 0xA1 ~ 0xDF放置的半角假名字符。 下圖是 S-JIS 到 JIS 碼及 JIS 碼到 RA8806-J 需求碼的轉換流程,同時也將轉換程式附上給使用者 參考。例如 ”粟” 字的 S-JIS 碼是 ”88BE”,換算成 JIS 碼為 “3040”,同上所述 JIS 轉成的新碼 為 ”B060”,將 ”B0” 及”60” 依序傳給 RA8806-J,就能秀出 ”粟” 的日文漢字。再例如 ” 甌” 字的 SJIS 碼是 ”E14D”,換算成 JIS 碼為 “612E”,同上所述 JIS 轉成的新碼為 ”E14E”,將 ”E1” 及”4E” 依序傳給 RA8806-J,就能秀出 ” 甌” 的日文漢字。 瑞佑科技 RAiO TECHNOLOGY INC. 78/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 SJIS-Low Byte SJIS-High Byte 81h ~ 9Fh E0h ~ FFh -81h 40h ~ 7Eh 80h ~ 9Eh -C1h 9Fh ~ FCh -01h 00h ~ 2Eh 40h ~ 9Dh 左移1 bit + N -7Eh -1Fh 00 h ~ 5Dh +21h N=0 21h ~ 7Eh (JIS-High Byte) N=1 21h ~ 7Eh (JIS-Low Byte ) +80h If >=0x60 If < 0x60 +40h A1h ~ FEh (RA8806 ROM Code -High Byte ) +20h A0h ~ BEh / 41h ~ 7Fh (RA8806 ROM Code-Low Byte) 圖 6-43 : S-JIS 到 RA8806-J 需求碼的轉換流程 //=================================================== // Main Program //=================================================== void main(void) { LCD_Reset(); LCD_Initial(); LCD_ON(); LCD_Clear(); LCD_Text(); // Turn on the screen // Clear display memory all // Switch display mode to “Text mode” LCD_GotoXY(0, 0); LCD_Print_J_Str(SJIS_string, 20); } // SJIS_string is a string include Shifit - JIS Code //=================================================== // Subroutine : Transform SJIS to JIS //=================================================== void LCD_Print_JIS_Str(uchar *ptr, int char_num) // string pointer , char numbers { int temp = 0; unsigned char SJIS_HB, SJIS_LB, JIS_HB, JIS_LB, LSB; while(temp < char_num) { if(ptr[temp] <= 0x7F) { 瑞佑科技 RAiO TECHNOLOGY INC. // ASCII Code : 0x00 ~ 0x7F 79/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 LCD_DataWrite(ptr[temp]); temp++; } else { // Full Size font display SJIS_HB = ptr[temp]; temp++; SJIS_LB = ptr[temp]; temp++; //======================================== // Transform SJIS Low Byte //======================================== if(SJIS_LB >= 0x9F) { JIS_LB = SJIS_LB - 0x7E; LSB = 0x01; } else if(SJIS_LB <= 0x7E) { JIS_LB = SJIS_LB - 0x1F; LSB = 0x00; } else { JIS_LB = SJIS_LB - 0x20; LSB = 0x00; } //======================================== // Transform SJIS High Byte //======================================== if(SJIS_HB >= 0xE0) { SJIS_HB = SJIS_HB - 0xC1; } else if(SJIS_HB <= 0x9F) { SJIS_HB = SJIS_HB - 0x81; } JIS_HB = (((SJIS_HB << 1) & 0xFE) | LSB) + 0x21; //======================================== // Write JIS Code //======================================== JIS_HB = JIS_HB + 0x80; if(JIS_LB >= 0x60) JIS_LB = JIS_LB + 0x40; else JIS_LB = JIS_LB + 0x20; LCD_DataWrite(JIS_HB); LCD_DataWrite(JIS_LB); } } } 瑞佑科技 RAiO TECHNOLOGY INC. 80/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-10-1-4 粗體和反白 RA8806 支援粗體和反白字型,使用者只需在寫入相對應的字型碼給 RA8806 之前,先設定好對 應的暫存器裡的相關位元。 16X16 inverse font 8X16 inverse font 16X16 bold font 8X16 bold font 圖 6-44 : 粗體和反白字型 表 6-25 Reg. Bit_Num WLCR WCCR 說 明 Bit 3 文字模式選擇。 Bit 2 顯示開啟/關閉選擇設定。 Bit 1 閃爍模式選擇。 Bit 0 反白模式選擇。 Bit 4 粗體字(只支援文字模式)。 暫存器編號 REG[00h] REG[10h] 6-10-1-5 雙圖層顯示 RA8806 內建為了雙圖層顯示的二個顯示記憶體,暫存器 MAMR 被使用來設定顯示出來的效果和 顯示記憶體 1(DDRAM1)和顯示記憶體 2(DDRAM2)間的關係,顯示出來的效果如下列六種 組合。 顯示 DDRAM1 的資料 顯示 DDRAM2 的資料 顯示 ”DDRAM1 OR DDRAM2” 的資料 顯示 ”DDRAM1 XOR DDRAM2” 的資料 瑞佑科技 RAiO TECHNOLOGY INC. 81/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 顯示 ”DDRAM1 NOR DDRAM2” 的資料 顯示 ”DDRAM1 AND DDRAM2” 的資料 請參照 圖 6-45 和暫存器MAMR Bit[6:4] 和 Bit[3:2] 的敘述。 DDRAM1 Visible Display DDRAM2 1 Controller 2 Controller 3 Controller 4 Controller OR Controller NOR Controller XOR Controller AND roller 圖 6-45 : 雙圖層顯示 表 6-26 Reg. MAMR Bit_Num 說 明 Bit [6:4] 顯示圖層選擇。 Bit [3:2] 雙圖層模式選擇。 瑞佑科技 RAiO TECHNOLOGY INC. 82/127 暫存器編號 REG[12h] www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-10-1-6 行間距 RA8806 提供調整行與行間距的功能,尤其在顯示中文時,在行與行之間加上一些空白看起來會 更好,此間距的範圍為 1 ~ 16 pixel。而只要此間距被設定好,游標將會自動移到每一行的適當位 置。 設定暫存器 CHWI 的低位元組(Bit[3:0]),使用者可以調整行與行的間距。需提醒的是,當 RA8806 操作在 90 度模式時,不論字型的大小為何,行與行的間距只可被設定為 0 pixel 或 8 pixel。此二種間距的選擇依據暫存器 CHWI Bit-3。 表 6-27 Reg. Bit_Num CHWI 說 明 Bit [7:4] 游標高度設定。 Bit [3:2] 行間距設定。 暫存器編號 REG[11h] 6-10-2 灰階掃描顯示 RA8806 是依據FRC方法所產生的 4 灰階掃描顯示。在灰階階層顯示模式下,RA8806 結合了顯 示記憶體 1 和顯示記憶體 2 的資料來組成灰階圖案。每個灰階位元的顯示包含了二個顯示記憶體 位元的資料。資料[00b]代表空的位元顯示而資料[11b]代表全黑的位元顯示。[01b]和[10b]將為一 共享時間方法(time sharing)而達成的 1/3 和 2/3 亮度。請參考 圖 6-46。 . 7 6 5 4 3 2 1 0 3a 3b 2a 2b 1a 1b 0a 0b 7 6 5 4 3 2 1 0 3a 3b 2a 2b 1a 1b 0a 0b 7a 7b 6a 6b 5a 5b 4a 4b DDRAM2 DDRAM1 7a 7b 6a 6b 5a 5b 4a 4b Gray-Scale Display Bit-a Bit-b Gray-Level 0 0 1 0 1 2 1 0 3 1 1 4 DDRAM1: Display Data RAM #1 DDRAM2: Display Data RAM #2 In Gray-Scale mode, both DDRAM are used. 圖 6-46 : 4 灰階顯示的對映方式 瑞佑科技 RAiO TECHNOLOGY INC. 83/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 依照著資料寫入的順序,RA8806 支援了二種灰階掃描顯示的資料輸入方法。使用者可以像一般 圖形顯示方法一樣來寫入資料。 1. 先水平移動然後垂直移動。 2. 先垂直移動然後水平移動。 Horizontal-Write (Panel Resolution: 320 x 240) 1st byte 2nd byte 3rd byte 40th byte 41th byte 42th byte 43th byte 80th byte 81th byte 82th byte 83th byte 120th byte N+1th byte N+2th byte N+3th byte N+40th byte 圖 6-47 : 水平資料寫入的順序 Vertical-Write (Panel Resolution: 320 x 240) 1st byte 241nd byte Nth byte 2th byte 242th byte N+1th byte 3rd byte 243th byte N+2th byte 240th byte 480th byte N+240th byte 圖 6-48 : 垂直資料寫入的順序 瑞佑科技 RAiO TECHNOLOGY INC. 84/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 關於暫存器的設定,請參照下面的暫存器。 表 6-28 Reg. MAMR Bit_Num Bit 7 Bit [6:4] 說 明 暫存器編號 游標自動移動方向。 REG[12h] 灰階模式選擇。 下面為一 4 灰階圖案顯示的例子,而程式撰寫的例子為在此圖之下: 圖 6-49 : 4 灰階圖案顯示的例子 範例程式: LCD_Graphic(); Gray_Mode(); Scan_Diret_H_V(); right LCD_GotoXY( 0 , 0 ); LCD_CmdWrite( 0xB0 ); for ( i = 0 ; I < 4800 ; i++ ) { LCD_DataWrite( 0x00 ) ; } for ( i = 0 ; I < 4800 ; i++ ) { LCD_DataWrite( 0x55 ) ; } for ( i = 0 ; I < 4800 ; i++ ) { LCD_DataWrite( 0xAA ) ; } for ( i = 0 ; I < 4800 ; i++ ) { LCD_DataWrite( 0xFF ) ; } 瑞佑科技 RAiO TECHNOLOGY INC. // Set graphic mode // Set REG[12h] Bit[6:4] to 000b, as gray level display // Set REG[12h] Bit-7 to 0, Cursor moves from left to // Write memory command // Write data // Gray Level 1 ( 00 ) // Gray Level 2 ( 01 ) // Gray Level 3 ( 10 ) // Gray Level 4 ( 11 ) 85/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-10-3 字型大小調整和字寫入的時間 RA8806 提供文字大小調整功能。存在 RA8806 字型 ROM 裡有二種形式的字:半型字(8x16 pixels)和全型字(16x16 pixels)。文字大小調整提供字型在水平和垂直方向 1 到 4 倍的放大功 能。程式設計者可以藉著設定暫存器 FTHT[7:4]來調整字型的大小。 表 6-29 Reg. FVHT Bit_Num 說 Bit [7:6] 文字水平寬度調整。 Bit [5:4] 文字垂直高度調整。 明 暫存器編號 REG[F1h] 圖 6-50 為字型放大的 2 個例子: 2x1 enlarged 8x16 font 1x2 enlarged 16x16 font 圖 6-50 : Font Size Adjustment 此外,文字大小調整功能只有在文字顯示模式下有效,但在下面的二種顯示模式下也有效: 顯示使用者自行創造出的字型。 90 度文字和旋轉顯示模式。 瑞佑科技 RAiO TECHNOLOGY INC. 86/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 在寫下完整的字型碼之後(One byte:半型字、Two bytes:全型字),RA8806 將需要一段足夠 的時間把資料寫進顯示記憶體(請參照第 6-8 節 “中斷與忙碌” 及第 6-8-2 節內 ”Memory Write Busy” 的敘述)。寫進的時間依字型放大的倍率而有所不同。其計算公式如下: Tfw = ( 16*tc + 32*tc x ( HW x VH ) ) x ( 1 + 10% ) Tfw : 文字寫進時間(Font Write time) tc : 系統頻率(System clock period) HW : 水平放大倍率(Horizontal enlargement multiplier) VH : 垂直放大倍率(Vertical enlargement multiplier) 此 處 有 10% 是 給 彈 性 錯 誤 考 量 。 請 參 照 以 下 的 例 子 : ( 系 統 頻 率 約 為 4MHz , 而 tc 為 250ns。) 表 6-30 : 文字寫進顯示記憶體 字形放大倍數 寫進顯示記憶體時間(μS) 建議等待時間(μS) 1x1 12 13.2 2x2 36 39.6 3x3 76 83.6 4x4 132 145.2 除了計算寫進的時間和延遲外,程式設計者也可以檢查忙碌(Busy)的狀態來知道文字是否已經 被寫進顯示記憶體。請參照狀態暫存器(Status Register)的忙碌(Busy)敘述。 瑞佑科技 RAiO TECHNOLOGY INC. 87/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-10-4 文字垂直顯示 RA8806 另有一個非常獨特的 “文字垂直顯示” 功能。此功能使得一般顯示變成垂直顯示。此意思 代表原本 320x240 的模組可以被使用成一個 240x320 的模組以垂直方式來顯示內建的字型或資 料,而不需要改變掃描的方向或是LCD驅動的線路編排。此功能為在暫存器WCCR Bit-3 設定的 一個選擇。當WCCR Bit-3 =1(文字旋轉模式),文字將被寫進為垂直顯示。圖 6-51 為文字垂直 顯示的一個例子: 0 7 0 0 15 0 7 15 Vertical Display Normal Display 圖 6-51: 文字垂直顯示 在垂直顯示模式下,游標移動方向是由上到下。且游標的顯示樣式和一般顯示模式下不同。(請 參照第 6-13-4 節 ”游標的寬度和高度” 中完整的敘述。) 因為有此卓越的旋轉功能,假如使用者選擇一個 240x160 的模組,然後他將非常簡單地使用原本 的模組來當成一個 160x240 的模組。下方 圖 6-52 為一 320x240 模組旋轉到 240x320 的應用。 在一般模式下,假設寫入的文字為”RAIO”,則螢幕顯示如 圖 6-52(1)。而當先設定T90DEG (REG[10h] 的Bit-3)= 1 和CDIR(REG[01h] 的Bit-0)= 1 時,寫入文字 ”RAIO” 將螢幕顯示將 如 圖 6-52(2)。 COM239 SEG0 SEG0 COM0 COM0 RAiO SEG319 RAiO COM239 (1) 320x240 for Normal use SEG319 (2) As a 240x320 Application T90DEG = 1 , CDIR = 1 圖 6-52 : 文字水平與垂直顯示 瑞佑科技 RAiO TECHNOLOGY INC. 88/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 有關文字旋轉功能的相關的暫存器表如下: 表 6-31 Reg. Bit_Num WCCR Bit 3 文字旋轉模式致能。 REG[10h] MISC Bit 0 COM 方向選擇。 REG[01h] 說 明 暫存器編號 除了游標顯示功能外、其它的功能在文字旋轉模式下運作皆和一般模式下的行為一樣,包括: 1)文字放大功能 2)文字對齊功能 3)行間距調整功能 4)旋轉功能 瑞佑科技 RAiO TECHNOLOGY INC. 89/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-11 使用者自創字型 RA8806 內建一個 512Byte CGRAM 提供給使用者創造新的字型。使用者可以創造字型、特別的符 號或數據在此記憶體裡。假設使用者只使用一個顯示記憶體(DDRAM),另一個顯示記憶體也可被 當成一個 CGRAM 來使用。 因此,RA8806 提供了三個區域來給使用者創造新的字型(標幟或數據)如下: 1. 512 Bytes CGRAM。 2. 9.6K Bytes DDRAM1(當使用者只讓 DDRAM2 的資料顯示在螢幕上)。 3. 9.6K Bytes DDRAM2(當使用者只讓 DDRAM1 的資料顯示在螢幕上)。 表 6-32 : 字型碼的對映範圍 Region Size CGRAM 512 bytes DDRAM1 9.6 Kbytes DDRAM2 9.6 Kbytes Code and Range Capacity 半型字 : 8F00h ~ 8F1Fh 32 Half-Size chars 全型字 : 9F00h ~ 9F0Fh 16 Full-Size chars 半型字 : 8000h ~ 8E27h 600 Half-Size chars 全型字 : 9000h ~ 9E13h 300 Full-Size chars 半型字 : 8000h ~ 8E27h 600 Half-Size chars 全型字 : 9000h ~ 9E13h 300 Full-Size chars 6-11-1 在CGRAM創造字型 此CGRAM為一 512Byte RAM,所以它可以創造 32 個半型字或 16 個全型字。表 6-33 為一字型 碼對應到CGRAM的表。注意在RA8806 裡字型碼是限定的。且FONT#被定義在暫存器CURY Bit[3:0]裡。 表 6-33 : CGRAM 字型碼對映表 Font# Code 0 1 2 3 4 5 6 7 Half-Size 8F00 8F01 8F02 8F03 8F04 8F05 8F06 8F07 8F08 8F09 8F0A 8F0B 8F0C 8F0D 8F0E 8F0F Full-Size 9F00 9F01 9F02 9F03 9F04 9F05 9F06 9F07 Font# Code 8 9 10 11 12 13 14 15 Half-Size 8F10 8F11 8F12 8F13 8F14 8F15 8F16 8F17 8F18 8F19 8F1A 8F1B 8F1C 8F1D 8F1E 8F1F Full-Size 9F08 9F09 瑞佑科技 RAiO TECHNOLOGY INC. 9F0A 9F0B 90/127 9F0C 9F0D 9F0E 9F0F www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 0000 0000 0001 0001 0010 0010 0011 0011 0100 0100 0101 0101 0110 0110 0111 0111 1000 1000 1001 1001 1010 1010 1011 1011 1100 1100 1101 1101 1110 1110 1111 1111 (1) Full-size Font (2) Half-size Font 圖 6-53 : 創造全型字與半型字的範例 在 CGRAM 裡使用者創造字型暫存器的相關設定,請參照下面的表格: 表 6-34 Reg. Bit_Num Bit 7 MAMR 說 明 暫存器編號 游標自動增加致能。 Bit [6:4] 顯示組合模式。 Bit [1:0] 寫入週期記憶體選擇。 REG[12h] Bit[4:0] 為給寫入創造字型的位元對應 資料之位址。當要創造一個全形字, CURX Bit [4:0] 通常設定為 0。而在創造半形字時, REG[60h] 奇數半形字碼通常設定為 0,而偶數 半形字則設定為 10 h。 CURY Bit [3:0] 瑞佑科技 RAiO TECHNOLOGY INC. 指示哪一個字型碼資料被創造。 91/127 REG[70h] www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 CGRAM Create Font Set the CURX to 0(First byte in font) Set MAMR to access CGRAM Set display data is DDRAM1 or DDRAM2 Set CURY (It indicates which font will be created) (*1) Write memory write command (B0h) and write the font data sequentially. (*2) Write the corresponding code to show the font on active display layer (*3) 圖 6-54 : 在 CGRAM 創造字型的流程圖 註: 1. 此 CGRAM 大小為 512 bytes 且包括了 16 個 16x16 個全型或是 32 個 8x16 個半型使用 者創造字。每一個全型字包含 32bytes。 2. 為了創造全型字,在設定好CURY(0~15)和CURX設定為 0 後,一個使用者創造字型 位元對應可被 32 個記憶體寫入週期所填滿,而後CURY將增加 1。請參照下方的程式例 子(1)。結果顯示在 圖 6-53(1)。 3. 為了創造半型字,在設定好CURY(0~15)和CURY設定為 0(odd font)或是 10h (even font)後,一個使用者創造字型位元對應可被 16 個記憶體寫入週期所填滿。請參 照下方的程式例子(2),結果顯示在 圖 6-53(2)。 4. CGRAM字型碼半型字為 8F00~8F1F,而全型字為 9F00~9F0Fh。請參考 表 6-32。 範例程式(1): // Create a full-size font in CGRAM and show on the screen. // font_data[] = {00, 00, 07, 1F, 20, 67, 68, 09, 1A, 15, 16, 15, 12, 1F, 00, 00, // 00, 00, E0, F8, 04, E6, 16, 90, 58, A8, 68, A8, 48, F8, 00, 00} Access_CGRAM(); // MAMR[1:0] = 00b Only_Show_DDRAM1(); // MAMR[6:4] = 001b LCD_CmdWrite( CURY ); // Create 6th full-size character LCD_DataWrite( 0x05 ); LCD_CmdWrite( CURX ); // Write font-data from 1st byte LCD_DataWrite( 0x00 ); LCD_CmdWrite( MWCR); // B0h, Memory write command for( i = 0; i < 32; i++ ) // 32 continuous write for font bit-map { LCD_DataWrite( font_data[i] ); Delay2us(50); } Access_DDRAM1(); LCD_Text(); LCD_GotoXY( 5 , 5 ); // Set Cursor position ( 5 , 5 ) LCD_CmdWrite( MWCR); // Corresponding font code( 9F05h ) LCD_DataWrite( 0x9F ); LCD_DataWrite( 0x05 ); // Show as (1) of 圖 6-53 瑞佑科技 RAiO TECHNOLOGY INC. 92/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 範例程式(2): // Create a half-size font in CGRAM and show on the screen. // font_data[] = {00, 82, 44, 28, FE, 10, 10, 10, FE, 10, 10, 38, 54, 92, 10, 00} Access_CGRAM(); // MAMR[1:0] = 00b Only_Show_DDRAM1(); // MAMR[6:4] = 001b LCD_CmdWrite( CURY ); // Create 6th half-size char LCD_DataWrite( 0x02 ); LCD_CmdWrite( CURX ); // Write font-data from 1st byte LCD_DataWrite( 0x10 ); LCD_CmdWrite( MWCR); // B0h, Memory write command for( i = 0; i < 16; i++ ) // 16 continuous write for font bit-map { LCD_DataWrite( font_data[i] ); Delay2us(50); } Access_DDRAM1(); LCD_Text(); LCD_GotoXY( 5 , 5 ); // Set Cursor position ( 5 , 5 ) LCD_CmdWrite( MWCR); // Corresponding font code( 8F05h ) LCD_DataWrite( 0x8F ); LCD_DataWrite( 0x05 ); // Show as (2) of 圖 6-53 6-11-2 在顯示記憶體裡創造字型 顯示記憶體為 9.6KByte RAM,所以它可以創造 600 個半型字或 300 個全型字。表 6-36 為半型 字在顯示記憶體裡的字型碼對照表。 表 6-37 為全型字在顯示記憶體裡的字型碼對照表,這些字型碼在 RA8806 也為限定的。此時暫 存器 CURX 和 CURY 是用來指定位元對應資料(bit-map data)來創造字型的位址。 在顯示記憶體(DDRAM)裡使用者創造字型暫存器的相關設定,請參照下面的表格: 表 6-35 Reg. Bit_Num Bit 7 MAMR 說 明 暫存器編號 游標自動增加致能。 REG[12h] Bit [6:4] 顯示組合模式。 Bit [1:0] 寫入週期記憶體選擇。 CURX Bit [5:0] 此二暫存器用來指示哪一個字型碼將 REG[60h] CURY Bit [7:0] 被創造。 REG[70h] 瑞佑科技 RAiO TECHNOLOGY INC. 93/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 表 6-36 : DDRAM1 與 DDRAM2 造半型字時的字型碼對映表 CURX CURY 0 1 2 ........................................ 26 27 0 1 2 ........................................ 26 27 0 00 8000 8001 8002 ........................................ 8026 8027 1 10 8100 8101 8102 ........................................ 8126 8127 2 20 8200 8201 8202 ........................................ 8226 8227 3 30 8300 8301 8302 ........................................ 8326 8327 4 40 8400 8401 8402 ........................................ 8426 8427 5 50 8500 8501 8502 ........................................ 8526 8527 6 60 8600 8601 8602 ........................................ 8626 8627 7 70 8700 8701 8702 ........................................ 8726 8727 8 80 8800 8801 8802 ........................................ 8826 8827 9 90 8900 8901 8902 ........................................ 8926 8927 10 A0 8A00 8A01 8A02 ........................................ 8A26 8A27 11 B0 8B00 8B01 8B02 ........................................ 8B26 8B27 12 C0 8C00 8C01 8C02 ........................................ 8C26 8C27 13 D0 8D00 8D01 8D02 ........................................ 8D26 8D27 14 E0 8E00 8E01 8E02 ........................................ 8E26 8E27 表 6-37 : DDRAM1 與 DDRAM2 造全型字時的字型碼對映表 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 CURX 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 1415 16 17 18 19 1A1B 1C1D1E 1F 20 21 22 23 24 25 26 27 CURY 0 00 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 900A 900B 900C 900D 900E 900F 9010 9011 9012 9013 1 10 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 910A 910B 910C 910D 910E 910F 9110 9111 9112 9113 2 20 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 920A 920B 920C 920D 920E 920F 9210 9211 9212 9213 3 30 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 930A 930B 930C 930D 930E 930F 9310 9311 9312 9313 4 40 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 940A 940B 940C 940D 940E 940F 9410 9411 9412 9413 5 50 9500 9501 9502 9503 9504 9505 9506 9507 9508 9509 950A 950B 950C 950D 950E 950F 9510 9511 9512 9513 6 60 9600 9601 9602 9603 9604 9605 9606 9607 9608 9609 960A 960B 960C 960D 960E 960F 9610 9611 9612 9613 7 70 9700 9701 9702 9703 9704 9705 9706 9707 9708 9709 970A 970B 970C 970D 970E 970F 9710 9711 9712 9713 8 80 9800 9801 9802 9803 9804 9805 9806 9807 9808 9809 980A 980B 980C 980D 980E 980F 9810 9811 9812 9813 9 90 9900 9901 9902 9903 9904 9905 9906 9907 9908 9909 990A 990B 990C 990D 990E 990F 9910 9911 9912 9913 10 A0 9A00 9A01 9A02 9A03 9A04 9A05 9A06 9A07 9A08 9A09 9A0A 9A0B 9A0C 9A0D 9A0E 9A0F 9A10 9A11 9A12 9A13 11 B0 9B00 9B01 9B02 9B03 9B04 9B05 9B06 9B07 9B08 9B09 9B0A 9B0B 9B0C 9B0D 9B0E 9B0F 9B10 9B11 9B12 9B13 12 C0 9C00 9C01 9C02 9C03 9C04 9C05 9C06 9C07 9C08 9C09 9C0A 9C0B 9C0C 9C0D 9C0E 9C0F 9C10 9C11 9C12 9C13 13 D0 9D00 9D01 9D02 9D03 9D04 9D05 9D06 9D07 9D08 9D09 9D0A 9D0B 9D0C 9D0D 9D0E 9D0F 9D10 9D11 9D12 9D13 14 E0 9E00 9E01 9E02 9E03 9E04 9E05 9E06 9E07 9E08 9E09 9E0A 9E0B 9E0C 9E0D 9E0E 9E0F 9E10 9E11 9E12 9E13 瑞佑科技 RAiO TECHNOLOGY INC. 94/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 Start Access DDRAM1 ( REG[12h] [1:0] = 0 1 ) N0 Access Page2 Write 16 bytes data ? ( REG[12h] [1:0] = 1 0 ) Show DDRAM2 ( REG[12h] [6:4] = 010 ) Yes Set Graphic Mode X add 1 Set Text Mode (Set REG[60h]) ( REG[00h] B3 = 1 ) ( REG[00h] B3 = 0 ) Set Cursor shifting Direction, vertical first then horizontal ( REG[12h] B7 = 1 ) Set Cursor shifting Direction, horizontal first then vertical ( REG[12h] B7 = 0 ) Set XY -axis ( X, Y ) ( Set REG[60h],[70h] ) Write Right-half font data to DDRAM1 Set XY -axis ( X, Y ) and execute Memory Write CMD Set XY -axis ( X, Y ) Y add 1 ( Set REG[60h],[70h] ) (Set REG[70h]) Write Left-half font data to DDRAM1 Write 16 bytes data ? N0 Write font data that already defined at DDRAM1 to DDRAM2 Y add 1 Yes (Set REG[70h]) 圖 6-55 : 在 DDRAM1 創造字型的流程圖 上方的流程為在DDRAM1 創造一個全型字和顯示這一新的字型在DDRAM2 再螢幕上的一個例 子。首先,使用者必須先設定CURX和CURY來定義哪一字型碼將被創造,然後寫 32Bytes位元 對應資料到DDRAM1。因為全型字的左邊和右邊各有 16Bytes資料,CURX需設定二次。請參照 程式例子(3),此例我們假設想要創造如 圖 6-53(1)的全型字,同時對應到 表 6-37 中的碼 ”9205h”,其結果會在螢幕上顯示如 圖 6-53(1)的電話字。 瑞佑科技 RAiO TECHNOLOGY INC. 95/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 範例程式(3): // Create a full-size font in DDRAM1 and show on the screen. // font_data[] = {00, 00, 07, 1F, 20, 67, 68, 09, 1A, 15, 16, 15, 12, 1F, 00, 00, // 00, 00, E0, F8, 04, E6, 16, 90, 58, A8, 68, A8, 48, F8, 00, 00} Access_DDRAM1(); Only_Show_DDRAM2(); // MAMR[1:0] = 01 // MAMR[6:4] = 010 LCD_Graphic(); Cursor_Shift_Direct_VH(); // WLCR. Bit-3 = 0 // MAMR. Bit-7 = 1 // Set the cursor moving in vertical // Write the left part of full-size font // Memory write command LCD_GotoXY(0x0A, 0x20); LCD_CmdWrite( MWCR); for(i=0;i<16;i++) { LCD_DataWrite(font_data_L[i]); Delay2us(50); } LCD_GotoXY(0x0B, 0x20); // Write the right part of full-size font LCD_CmdWrite( MWCR); // Memory write command for(i=16;i<32;i++) { LCD_DataWrite(font_data_R[i]); Delay2us(50); } Access_DDRAM2(); LCD_Text(); Cursor_Shift_Direct_HV(); // MAMR[1:0] = 10 // WLCR.Bit-3 = 1 // MAMR. Bit-7 = 0 LCD_GotoXY( 3 , 3 ); LCD_CmdWrite( MWCR); LCD_DataWrite(0x92); LCD_DataWrite(0x05); Delay2us(50); // set coordinate to ( 3 , 3 ) // Memory write command // Write the code(9205h) of user-defined font // Show as (1) of 圖 6-53 瑞佑科技 RAiO TECHNOLOGY INC. 96/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-11-3 創造符號 RA8806 提供文字創造功能讓使用者可以設計和創造出新的字型,特別的符號(Symbol)和標幟 (Pattern)且儲存進它內建的CGRAM或DDRAM裡。使用者自創字型定義為全型字(16x16)或 半型字(8x16)的位元對應格式,所以 24x16、40x16、16x32 或是更大的字型也可能依此格式 被創造出。圖 6-56 呈現一個 24x16 大小的使用者自創符號。 圖 6-56 : 一個 24x16 大小的符號範例 為了創造出新的符號,除了寫命令到 CGRAM 或 DDRAM 外,在試著寫文字到顯示之前,字型碼 的設定要注意。參考創造此 24x16 符號於 DDRAM 接下來的二個例子: 當資料寫進DDRAM裡的第一個位址為(0, 0)時,此符號的字型碼為 0x8000、0x8001 和 0x8002。如下方 圖 6-57 所示。 資料寫進DDRAM裡的第一個位址為(2, 10h)時,此符號的字型碼為 0x8105、0x8106 和 0x8107。請參照下方程式例子(4)。其結果顯示於 圖 6-56。 Font Code: 0x8105 Font Code: 0x8106 Font Code:0x8107 圖 6-57 : 範例程式(4)使用的自創符號字型碼 瑞佑科技 RAiO TECHNOLOGY INC. 97/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 範例程式(4): // Create a 24x16 symbol in DDRAM1 and show on the screen. // font_data[] = {00, 02, 06, 0A, 12, 23, 40, 80, 40, 23, 12, 0A, 06, 02, 00, 00, // 00, 00, 00, 00, 00, FF, 00, 00, 00, FF, 00, 00, 00, 00, 00, 00, // 00, 80, C0, A0, 90, 88, 04, 02, 04, 88, 90, A0, C0, 80, 00, 00} Access_DDRAM1(); Only_Show_DDRAM2(); // MAMR[1:0] = 01 // MAMR[6:4] = 010 LCD_Graphic(); Cursor_Shift_Direct_VH(); // WLCR. Bit-3 = 0 // MAMR. Bit-7 = 1 // Set the cursor moving in vertical // Write the left part of symbol // Memory write command LCD_GotoXY(0x02, 0x10); LCD_CmdWrite( MWCR); for(i=0;i<16;i++) { LCD_DataWrite(font_data_L[i]); Delay2us(50); } LCD_GotoXY(0x03, 0x10); // Write the middle part of symbol LCD_CmdWrite( MWCR); // Memory write command for(i=16;i<32;i++) { LCD_DataWrite(font_data_R[i]); Delay2us(50); } LCD_GotoXY(0x04, 0x10); // Write the right part of symbol LCD_CmdWrite( MWCR); // Memory write command for(i=32;i<48;i++) { LCD_DataWrite(font_data_R[i]); Delay2us(50); } Access_DDRAM2(); LCD_Text(); Cursor_Shift_Direct_HV(); // MAMR[1:0] = 10 // WLCR.Bit-3 = 1 // MAMR. Bit-7 = 0 LCD_GotoXY( 3 , 3 ); LCD_CmdWrite( MWCR); LCD_DataWrite(0x81); LCD_DataWrite(0x02); Delay2us(10); LCD_DataWrite(0x81); LCD_DataWrite(0x03); Delay2us(10); LCD_DataWrite(0x81); LCD_DataWrite(0x04); Delay2us(10); // set coordinate to ( 3 , 3 ) // Memory write command // Write the code(8102, 8103, 8104) of symbol // Show as 圖 6-57 除此之外,注意每個字型碼被顯示於 LDC 螢幕上的顯示位址,尤其在 90 旋轉換文字放大模式 下。 瑞佑科技 RAiO TECHNOLOGY INC. 98/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-12 捲動功能 6-12-1 水平捲動 RA8806 提供一水平捲動功能,使用者可以透過 BGSG 和 EDSG 兩個暫存器來指定捲動範圍。一 旦開啟水平捲動功能,被指定的區域範圍將直進行循環的單步水平捲動,其每次水平捲動的單位 寬度為 8 個顯示點數。 有關水平捲動的暫存器設定,請參考下列說明。 表 6-38 Reg. ADSR Bit_Num 說 明 Bit 2 SCR_DIR(捲動方向)。 Bit 1 SCR_HV(垂直或水平捲動設定)。 Bit 0 SCR_EN(捲動致能)。 暫存器編號 REG[03h] BGSG Bit [5:0] 設定捲動模式 Segment 的起始位置。 REG[61h] EDSG Bit [5:0] 設定捲動模式 Segment 的結束位置。 REG[62h] BGCM Bit [7:0] 設定捲動模式 Common 的起始位置。 REG[71h] EDCM Bit [7:0] 設定捲動模式 Common 的結束位置。 REG[72h] (1) 流程圖:水平捲動功能的流程圖說明 Start Set Scrolling Window Boundary ( Set REG[61h],[62h],[71h],[72h]) Write Chinese font filled with the screen Set Scrolling Direction, Left to Right ( Set REG[03h][2:1] = 0 0 ) Enable Scrolling Function ( REG[03h]B0 = 1 ) 圖 6-58 : 水平捲動流程圖 瑞佑科技 RAiO TECHNOLOGY INC. 99/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 (2) 範例程式: LCD_Text(); // Text Mode //================================================ // Set Scrolling Window //================================================ LCD_CmdWrite(0x61); // SEG Start Position of Scrolling Mode LCD_DataWrite(0x05); LCD_CmdWrite(0x62); // SEG End Position of Scrolling Mode LCD_DataWrite(0x22); LCD_CmdWrite(0x71); LCD_DataWrite(0x20); LCD_CmdWrite(0x72); LCD_DataWrite(0xd0); // COM Start Position of Scrolling Mode // COM End Position of Scrolling Mode for( i = 0 ; i < 300 ; i++ ) // Write the font to fill the screen { LCD_DataWrite( RAiO [ i ] ); Delay2us(50); } //================================================ // Set Scrolling Direction and Enable scroll function //================================================ LCD_CmdWrite(0x03); LCD_DataWrite(0x01); // L Æ R // LCD_DataWrite(0x05); // R Æ L 瑞佑科技 RAiO TECHNOLOGY INC. 100/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-12-2 垂直捲動 RA8806 亦提供垂直捲動功能,此捲動功能可以經由 ADSR Bit-2 來啟動。一旦開啟垂直捲動功 能,整個顯示屏將一直進行循環的單步垂直捲動,其每次垂直捲動的單位為 1 個顯示點數。 (1) 流程圖:垂直捲動功能的流程圖說明 Start Set Scrolling Window Boundary ( Set REG[61h],[62h],[71h],[72h]) Write Chinese font filled with the screen Set Scrolling Direction, Top to Bottom ( Set REG[03h][2:1] = 0 1 ) Enable Scrolling Function ( REG[03h]B0 = 1 ) 圖 6-59 : 垂直捲動流程圖 (2) 範例程式: LCD_Text(); // Text Mode LCD_CmdWrite(0x61); LCD_DataWrite(0x05); LCD_CmdWrite(0x62); LCD_DataWrite(0x22); // SEG Start Position of Scrolling Mode LCD_CmdWrite(0x71); LCD_DataWrite(0x20); LCD_CmdWrite(0x72); LCD_DataWrite(0xd0); // COM Start Position of Scrolling Mode // SEG End Position of Scrolling Mode // COM End Position of Scrolling Mode for( i = 0 ; i < 300 ; i++ ) // Fill Chinese font on the screen { LCD_DataWrite( RAiO [ i ] ); Delay2us(50); } LCD_CmdWrite(0x03); LCD_DataWrite(0x03); // LCD_DataWrite(0x07); 瑞佑科技 RAiO TECHNOLOGY INC. // Scrolling Enable // T Æ B // B Æ T 101/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-13 游標 6-13-1 游標位置與移位 Segment 游標移動的單位是一個 byte(8 個顯示點數),但 Common 的游標位移單位為 1 個顯 示點數。無論是處於字型或圖型模式,游標的位置是由 CURX 以及 CURY 兩個暫存器來控制。 在做 DDRAM 的讀寫資料動作時,使用者可以透過設定游標的自動累加模式,來達到游標的自動 位移,而此時游標的位移邊界,取決於工作視窗的設定。 6-13-2 全型字型對齊功能 全頁對齊功能提供了一個自動對齊的好幫手,當全型字與半型字同時出現在顯示屏上時,使用者 可透過設定 WCCR 的 bit-6 來實現全頁字型對齊的目標。(詳細方法請參閱 WCCR 的說明。) 當 Bit-6 設定為 1 時,自動對齊功能開啟。 當 Bit-6 設定為 0 時,自動對齊功能關閉。 圖 6-60 與 圖 6-61 說明上述設定: With full alignment function 瑞 佑科技 有限公司 圖 6-60 : 字型顯示伴隨著全型對齊功能 瑞佑科技 RAiO TECHNOLOGY INC. 102/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 Without full alignment function 瑞 佑科技 有限公司 圖 6-61 : 字型顯示不含全型對齊功能 當全型對齊功能被使用時,顯示屏會從游標設定的開始位置顯示全型字碼,而位於字串間的偶數 byte 將會被當作是對齊的預留空間。在半型字模式下,其顯示起始位置可於任何位置編排,不會 受限於對齊功能的規則。 3. Line changing and alignment setting is reset 1. Cursor set at 5’th bytes 2. write characters 瑞 佑科技股 份有限公司 CASE 1 cursor 圖 6-62 : 全型字對齊範例(1) 全型字對齊顯示規則是依據游標在第 1 列的起始位置。當顯示換列後,對齊功能的基準位置將被 重新定義,這是因為 active window 的 segment 起始位置已變更。有關於全型字對齊功能在換列 時的相關條件,請參考下列圖示說明。 瑞佑科技 RAiO TECHNOLOGY INC. 103/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 3. Line changing and alignment setting is reset 2. Write to the end of the line 1. Cursor set 瑞佑科技股 份有限公司 CASE 2 cursor 圖 6-63 : 全型字對齊範例(2) 3. Line changing and alignment setting is reset 2. No enough space for writing a full-size character after consider full-alignment 1. Cursor set 瑞 佑科技股 份有限公司 CASE 3 cursor 圖 6-64 : 全型字對齊範例(3) 瑞佑科技 RAiO TECHNOLOGY INC. 104/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-13-3 游標閃爍 使用者可以根據其使用需求,選定游標顯示或不顯示,亦可開啟游標閃爍功能。游標的閃爍時 間,可經由暫存器 ”[80h] BTMR” 來調整。 閃爍時間 = BTMR[80h] Bit[7:0] x (1/Frame_Rate) 6-13-4 游標的寬度和高度 RA8806 的游標高度可按照使用需求,經由暫存器 CHWI Bit[7:4]來做調整,其高度調整範圍為 1~16 pixels。 在一般的顯示字型條件下,游標的寬度是固定在 1 個byte(8 pixels)。游標的高度則是從 1~16 pixels,其高度是依據暫存器CHWI Bit[7:4]來設定。在垂直顯示模式下,游標的高度是被固定在 16 pixels,而其寬度是可以依照使用需求被設定為 1~8 個pixels,此時游標的寬度可以透過暫存 器CHWI Bit[6:4]來做調整。詳細說明請參考 圖 6-65 以及 圖 6-66 的說明。 瑞佑科技 Cursor movement for Normal-Font Cursor movement for Vertical-Font 圖 6-65 : 游標位移說明 Cursor Size(Height) for Normal-Font 1 pixel 2 pixel 3 pixel 16 pixel Cursor Size(Width) for Vertical-Font 1 pixel 2 pixel 3 pixel 8 pixel 圖 6-66 : 游標大小 瑞佑科技 RAiO TECHNOLOGY INC. 105/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-14 擴展模式 一般來說,RA8806 最大可以支援的解析度為 320X240 點。但RA8806 支援一個特殊的顯示模式---擴 展模式,在這個模式下,RA8806 最大的顯示解析度可達 640X240 點或 320X480 點。在擴展模式條 件下,兩個DDRAM的資料都可以被顯示於更大的顯示屏上。擴展模式是經由MAMR的Bit[6:4] 來做設 定。圖 6-68 以及 圖 6-69,分別為 640X240 點或 320X480 點的範例說明。 Com/Seg Signals RA8806 LCD Panel LCD Driver Max. 320x240 Normal Mode Com/Seg Signals RA8806 LCD Driver LCD Panel Max. 640x240 or Max. 320x480 Extension Mod 圖 6-67 : RA8806 的最高顯示點數 240 320 320 DDRAM1 Data DDRAM2 Data 圖 6-68 : 擴展模式(1)暫存器 MAMR Bit[6:4] = 110h 瑞佑科技 RAiO TECHNOLOGY INC. 106/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 若MAMR Bit[6:4] = 110b,則RA8806 可支援至 640X240 點,左半邊的顯示屏顯示DDRAM1 的顯示 資料,右半邊的顯示屏顯示DDRAM2 的顯示資料,請參考 圖 6-68。 若MAMR Bit[6:4] = 111b,則RA8806 可支援至 320X480 點,上半邊的顯示屏顯示DDRAM1 的顯示 資料,下半邊的顯示屏顯示DDRAM2 的顯示資料,請參考 圖 6-69。 320 240 DDRAM1 Data 240 DDRAM2 Data 圖 6-69 : 擴展模式(2)暫存器 MAMR Bit[6:4] = 111h 擴展模式只能單純做DDRAM1 以及DDRAM2 的複合顯示,游標的位移以及字串的顯示是不會連續動 作在擴展模式下,所以使用者必須個別設定兩個頁次的設定於同一個顯示屏上。在擴展模式下, RA8806 會結合DDRAM1 和DDRAM2 的資料在同一個顯示屏幕上,所以在使用擴展模式時,是會有 一些軟體上的限制。舉例來說,假如RA8806 被設定如 圖 6-68 640X240 的擴展模式 1,顯示資料必 須被寫入DDRAM1 以及DDRAM2,但Common的游標位移並非連續性地由 0 到 639,所以使用者必 須分別在DDRAM1 以及DDRAM2 的顯示屏幕下寫入顯示資料,以滿足一個完整地 640X240 顯示點 數的顯示畫面。相關說明,請參考 圖 6-70。 : : : : : : : : : : DDRAM1 DDRAM2 圖 6-70:擴展模式(1)的游標位移說明 瑞佑科技 RAiO TECHNOLOGY INC. 107/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 當然,在水平捲動模式下,顯示屏的位移表現,也是非為整個 640X240 屏幕連續位移。請參考 圖 6-71。 D DRA M 1 DDRA M 2 圖 6-71:擴展模式(1)的水平捲動說明 若RA8806 是處於顯示點數為 320X480 的擴展模式(2),如 圖 6-69 所示,則游標的位移是如同一 般顯示模式的,Common是從 0 到 319,DDRAM的資料掃瞄如 圖 6-72 所示,其水平捲動的結果如 圖 6-73 所示。 DDRAM1 DDRAM2 : : : : : : : : : : 圖 6-72:擴展模式(2)的游標位移 DDRAM1 DDRAM2 圖 6-73:擴展模式(2)的水平捲動 瑞佑科技 RAiO TECHNOLOGY INC. 108/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 6-15 消除雪花模式 當 RA8806 內部的邏輯電路在執行掃瞄任務時,若在同時 MPU 對 RA8806 的 DDRAM 做資料的存 取,顯示屏的掃瞄資料將被干擾造成錯誤,會在顯示屏上顯示多餘的雜點,即是所謂的雪花 (Flicker),如果顯示屏上的雪花過多時,將干擾整體的顯示效果。為了去除這種短暫的顯示錯誤, RA8806 提供了一個消除雪花(Flicker)模式。 消除雪花模式的原理是當 MPU 在做 DDRAM 讀取時,關閉 RA8806 內的顯示屏掃瞄動作,在 MPU 存取 DDRAM 的動作完成後,掃瞄邏輯電路將會重新開始動作。由於在消除雪花模式下,其讀寫的動 作是被分開的,所以 MPU 的讀取動作與掃瞄電路在動作上不會抵觸,因此理想上就不會有這種雪花 現象,當然也會有更好的顯示效果。 在實際應用上,有些時候 MPU 寫入資料週期長短(文字寫入和記憶體清除)會有不同,即便是當其對 RA8806 的資料存取是週期性地。換句話說,在某些條件下,消除雪花模式的顯示效果仍然有限。同 時在使用上有若干限制: 1. RA8806 只能在圖形模式下(將暫存器 [01h] 的 Bit-7 設為 1)才可使用消除雪花模式。 2. 在啟動自動清除螢幕畫面模式之前,請關閉「消除雪花功能」,等清除螢幕畫面結束後,再開 啟「消除雪花功能」。 圖 6-74 : 消除雪花模式 表 6-39 Reg. Bit_Num MISC Bit 7 說 明 當 RA8806 因寫入 Data 到 DDRAM 的動作為 忙碌時,LCD 的 Driver-scan 將被自動停止。 暫存器編號 REG[01h] 另 外 , 除 了 控 制 暫 存 器 [01h] 的 Bit-7 之 外 , MPU 也 可 以 用 檢 查 「 狀 態 暫 存 器 」 的 Bit-6 (SCAN_BUSY)的方法來減少雪花(Flicker)現象,因為檢查「狀態暫存器」的Bit-6 可以得知對顯 示記憶體存取時,是否會與本身掃瞄顯示發生衝突。如 圖 6-75 所示,是以Check BUSY的方式來消 除雪花的流程圖。 瑞佑科技 RAiO TECHNOLOGY INC. 109/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 Start LP XCLK high Check status bit-6 (SCAN BUSY) SCAN_BUSY MPU cycle low ITCR : Check status bit-6 = 0 : Check status bit-6 = 1 Memory access cycle : Memory access cycle 圖 6-75 : 以 Check BUSY 來消除雪花的理想狀況 (1) LP XCLK SCAN_BUSY Confliction! MPU cycle : Check status bit-6 = 0 : Check status bit-6 = 1 : Memory access cycle 圖 6-76 : 以 Check BUSY 來消除雪花的非理想狀況 (1) 但是如果MPU在檢查系統為不忙碌(Not Busy)的下一週期,準備要對記憶體進行存取資料時,系統 已經進入忙碌狀態,此時將會有無法避免的衝突發生,如 圖 6-76 的情況,消除雪花的效果比較不理 想,不過發生這種狀況的機率相當低。因此,若使用者欲藉由「忙碌狀態檢查」(check busy)的方 式來完全消除雪花(避免前述之狀況),其步驟如下: 1. 先確認系統處於忙碌(status bit-6 = 1)的狀態之下。 2. 持續檢查忙碌狀態值(SCAN_BUSY),直到系統在不忙碌(status bit-6 = 0)的狀態 時,再對記憶體進行資料存取。 上述以查忙碌狀態減少雪花發生的效果其理想狀況如 圖 6-77。 瑞佑科技 RAiO TECHNOLOGY INC. 110/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 Start low Check status bit-6 LP (SCAN BUSY) XCLK SCAN_BUSY high high Check status bit-6 MPU cycle (SCAN BUSY) ITCR low : Check status bit-6 = 0 : Check status bit-6 = 1 : Memory access cycle Memory access cycle 圖 6-77 : 以 Check BUSY 來消除雪花的理想狀況 (2) 為了讓以查忙碌狀態減少雪花發生的效果更好,實際應用上有兩點建議: 1. MPU本身的速度不可太慢(即指令週期的時間不可太長,如 圖 6-78 所示),否則減少 雪花發生的效果比較不明顯。 2. ITCR的設定值不宜太小(如 圖 6-79 所示),否則減少雪花發生的效果也不明顯。 假設想要以查忙碌狀態這種方式消除雪花,建議使用的ITCR (REG[90h]) 的設定值請參照圖 6-80、圖 6-81。 LP XCLK SCAN_BUSY Confliction! MPU cycle ITCR : Check status bit-6 = 0 : Check status bit-6 = 1 MPU cycle too long! : Memory access cycle 圖 6-78 : MPU 週期過長造成以 Check BUSY 來消除雪花效果不理想(2) 瑞佑科技 RAiO TECHNOLOGY INC. 111/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 LP XCLK SCAN_BUSY Confliction! MPU cycle ITCR : Check status bit-6 = 0 : Check status bit-6 = 1 ITCR period too short : Memory access cycle 圖 6-79 : ITCR 週期過短造成以 Check BUSY 來消除雪花效果不理想 (2) ITCR duration SCAN_BUSY RD Read Status cycle Read Status cycle MEM write cycle ZWR Tcyc Tcyc MPU 8080 The Worst case!! tsys = 1/CLK CLK : system clock M : REG[01h] = 00h Î M=8 REG[01h] = 01h Î M=4 REG[01h] = 10h Î M=2 REG[01h] = 11h Î M=1 So ITCR suggestion value is : ITCR duration=ITCR x tc x M > 2.5 x Tcyc 圖 6-80 : MPU 8080 介面消除雪花 ITCR 建議值 ITCR duration SCAN_BUSY RD Read Status cycle Read Status cycle MEM write cycle ZWR Tcyc Tcyc MPU 6800 The Worst case!! tc = 1/CLK CLK : system clock M : REG[01h] = 00h Î M=8 REG[01h] = 01h Î M=4 REG[01h] = 10h Î M=2 REG[01h] = 11h Î M=1 So ITCR suggestion value is : ITCR duration=ITCR x tc x M > 2.5 x Tcyc 圖 6-81 : MPU 6800 介面消除雪花 ITCR 建議值 瑞佑科技 RAiO TECHNOLOGY INC. 112/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 7. 產品封裝與編號 打線腳位圖 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 CLK_OUT TESTMD TESTI ZRST XG XD DATA7 DATA6 DATA5 DATA4 DATA3 DATA2 DATA1 DATA0 ZRD ZWR VDDP GNDP RS CS2 7-1 RA8806 Logo RA8806 28 27 26 25 24 23 22 21 20 ZCS1 PWM_OUT PWM_OUT X1 Y1 X2 Y2 AVDD AGND 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 INT BUSY VDDH VDD GND FR LP YD XCK ZDOFF LD7 LD6 LD5 LD4 LD3 LD2 LD1 LD0 GNDP KIN0 KIN1 KIN2 KIN3 KIN4 KIN5 KIN6 KIN7 KOUT0 KOUT1 KOUT2 KOUT3 KOUT4 KOUT5 KOUT6 KOUT7 DB MI DW VDDP 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 3 2 1 圖 7-1 : RA8806 打線腳位 瑞佑科技 RAiO TECHNOLOGY INC. 113/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 7-2 腳位 X/Y 座標 表 7-1 : RA8806 腳位座標 Pad No. Pad Name X Y Pad No. Pad Name X 1 GNDP 2301.05 -1649.70 35 DATA0 1429.80 1833.05 2 LD0 2301.05 -1536.80 36 DATA1 1314.80 1833.05 3 LD1 2301.05 -1421.80 37 DATA2 1199.80 1833.05 4 LD2 2301.05 -1306.80 38 DATA3 1084.80 1833.05 5 LD3 2301.05 -1191.80 39 DATA4 969.80 1833.05 6 LD4 2301.05 -1076.80 40 DATA5 854.80 1833.05 7 LD5 2301.05 -961.80 41 DATA6 739.80 1833.05 8 LD6 2301.05 -846.80 42 DATA7 624.80 1833.05 9 LD7 2301.05 -731.80 43 XD 509.80 1833.05 10 ZDOFF 2301.05 -616.80 44 XG 394.80 1833.05 11 XCK 2301.05 -501.80 45 ZRST 279.80 1833.05 12 YD 2301.05 -386.80 46 TESTI 164.80 1833.05 13 LP 2301.05 -271.80 47 TESTMD 49.80 1833.05 14 FR 2301.05 -156.80 48 CLK_OUT -65.20 1833.05 15 GND 2301.05 -39.70 49 KIN0 -65.20 -1833.05 16 VDD 2301.05 75.30 50 KIN1 49.80 -1833.05 17 VDDH 2301.05 186.10 51 KIN2 164.80 -1833.05 18 BUSY 2301.05 303.20 52 KIN3 279.80 -1833.05 19 INT 2301.05 418.20 53 KIN4 394.80 -1833.05 20 AGND 2301.05 702.20 54 KIN5 509.80 -1833.05 21 AVDD 2301.05 817.20 55 KIN6 624.80 -1833.05 22 Y2 2301.05 934.30 56 KIN7 739.80 -1833.05 23 X2 2301.05 1049.30 57 KOUT0 854.80 -1833.05 24 Y1 2301.05 1164.30 58 KOUT1 969.80 -1833.05 25 X1 2301.05 1279.30 59 KOUT2 1084.80 -1833.05 26 PWM_OUT 2301.05 1394.30 60 KOUT3 1199.80 -1833.05 27 PWM_OUT 2301.05 1509.30 61 KOUT4 1314.80 -1833.05 28 ZCS1 2301.05 1624.30 62 KOUT5 1429.80 -1833.05 29 CS2 2119.80 1833.05 63 KOUT6 1544.80 -1833.05 30 RS 2004.80 1833.05 64 KOUT7 1659.80 -1833.05 31 GNDP 1887.70 1833.05 65 DB 1774.80 -1833.05 32 VDDP 1772.70 1833.05 66 MI 1889.80 -1833.05 33 ZWR 1659.80 1833.05 67 DW 2004.80 -1833.05 34 ZRD 1544.80 1833.05 68 VDDP 2121.90 -1833.05 瑞佑科技 RAiO TECHNOLOGY INC. 114/127 Y www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 60 NC 55 CLK_OUT NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC 65 50 TM RAiO RA8806L2N-T 85 90 45 40 08XX-N 95 35 Date Code (Year 2008) TESTMD TESTI ZRST XG XD NC DATA7 DATA6 DATA5 DATA4 DATA3 DATA2 DATA1 DATA0 ZRD ZWR VDDP GNDP RS CS2 ZCS1 PWM_OUT X1 X2 30 Y1 Y2 AVDD AGND INT 25 BUSY VDDH VDD GND 20 LP FR YD XCK LD7 ZDOFF 15 LD6 LD4 LD3 10 LD2 5 LD5 100 LD1 Pin #1 70 75 LD0 KOUT0 KOUT1 KOUT2 KOUT3 KOUT4 KOUT5 KOUT6 KOUT7 DB MI DW 80 VDDP NC KIN0 KIN1 KIN2 KIN3 KIN4 KIN5 KIN6 KIN7 NC NC 封裝腳位圖 GNDP NC NC 7-3 45 40 TM 35 RA8806T1N-S 70 30 08XX-N 75 CLK_OUT NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC NC RAiO 65 25 Date Code(Year 2008) TESTMD TESTI ZRST XG XD DATA7 DATA6 DATA5 DATA4 DATA3 DATA2 DATA1 DATA0 ZRD ZWR VDDP GNDP RS CS2 ZCS1 PWM_OUT X1 X2 Y1 20 Y2 AVDD AGND INT BUSY 15 VDDH GND LP FR 10 YD XCK ZDOFF 5 VDD 80 LD3 Pin #1 50 55 LD2 KOUT0 KOUT1 KOUT2 KOUT3 KOUT4 KOUT5 KOUT6 KOUT7 DB MI VDDP GNDP LD0 60 LD1 KIN1 KIN2 KIN3 KIN4 KIN5 KIN6 KIN7 NC KIN0 圖 7-2 : LQFP-100Pin 腳位定義圖 圖 7-3 : TQFP-80Pin 腳位定義圖 瑞佑科技 RAiO TECHNOLOGY INC. 115/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 7-4 封裝尺寸 Pin-1 Index b D1 D TM RAiO 08xx-N RA8806L2N-S/T e E1 E Seating Plane 0.10mm Detail A θ2 θ1 A 0.25mm A2 C R2 R1 Gauge Plane θ θ3 A1 L L1 Detail A 圖 7-4 : LQFP-100Pin 機構圖 瑞佑科技 RAiO TECHNOLOGY INC. 116/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 表 7-2 : LQFP-100 封裝尺寸 Symbols Dimensions in Millimeters Dimensions in Inches Min. Typ. Max. Min. Typ. Max. A -- -- 1.60 -- -- 0.063 A1 0.05 -- 0.15 0.002 -- 0.006 A2 1.35 1.40 1.45 0.053 0.055 0.057 b 0.22 0.3 0.33 0.009 0.012 0.013 c 0.09 -- 0.16 0.004 -- 0.006 e 0.65 BSC. 0.026 BSC. D 22.00 BSC. 0.866 BSC. D1 20.00 BSC. 0.787 BSC. E 16.00 BSC. 0.630 BSC. E1 14.00 BSC. 0.551 BSC. L 0.45 0.60 0.75 0.018 1.00 Ref. L1 0.024 0.030 0.039 Ref. R1 0.08 -- -- 0.003 -- -- R2 0.08 -- 0.20 0.003 -- 0.008 θ 0 3.5° 7° 0 3.5° 7° θ1 0 -- -- 0 -- -- θ2 11° 12° 13° 11° 12° 13° θ3 11° 12° 13° 11° 12° 13° 註: D1 以及 E1 不包含模具突出誤差,每一邊的模具突出容許誤差是 0.25mm,D1 和 E1 是封裝的每 一邊包含模具誤差的尺寸。 瑞佑科技 RAiO TECHNOLOGY INC. 117/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 圖 7-5 : TQFP-80Pin 機構圖 瑞佑科技 RAiO TECHNOLOGY INC. 118/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 表 7-3 : TQFP-80 封裝尺寸 Symbols Dimensions in Millimeters Dimensions in Inches Min. Typ. Max. Min. Typ. Max. A -- -- 1.20 -- -- 0.047 A1 0.05 0.10 0.15 0.002 0.004 0.006 A2 0.95 1.00 1.05 0.037 0.039 0.041 b 0.13 0.18 0.23 0.005 0.007 0.009 b1 0.13 0.16 0.19 0.005 0.006 0.007 c 0.09 -- 0.20 0.004 -- 0.008 c1 0.09 0.127 0.16 0.004 0.005 0.006 0.40 BSC. e 0.016 BSC. D 11.90 12.00 12.10 0.469 0.472 0.476 D1 9.90 10.00 10.10 0.390 0.394 0.398 E 11.90 12.00 12.10 0.469 0.472 0.476 E1 9.90 10.00 10.10 0.390 0.394 0.398 L 0.45 0.60 0.75 0.018 0.024 0.030 1.00 Ref. L1 0.040 Ref. R1 0.08 -- -- 0.003 -- -- R2 0.08 -- 0.20 0.003 -- 0.008 θ 0 3° 7° 0 3° 7° 瑞佑科技 RAiO TECHNOLOGY INC. 119/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 7-5 產品編號 表 7-4 : 產品編號表 產品編號 Resolution (Full Name) (Max) Package Font ROM 繁體中文 RA8806L2N-T RA8806L2N-S RA8806T1N-T ISO-8859-1 ~ 4 Yes ISO-8859-1 ~ 4 Yes ISO-8859-1 ~ 4 Yes ISO-8859-1 ~ 4 Yes ISO-8859-1 ~ 4 Yes 繁體中文 ISO-8859-1 ~ 4 Yes 簡體中文 ISO-8859-1 ~ 4 Yes (註 2) RA8806L2N-J 日文漢字 繁體中文 320x240 (註 1) RA8806T1N-S (註 2、3) TQFP-80 簡體中文 (10x10) (註 2、3) 日文漢字 RA8806T1N-J (註 3) RA8806-T Die RA8806-S Compliance Yes 簡體中文 (20x14) RoHs ISO-8859-1 ~ 4 (註 2) LQFP-100 ASCII ROM 註: 1. 在擴展模式下,顯示屏的最大顯示點數為 640x240 或 320x480,請見第 6-14 節 “擴展模式” 的說 明。 2. 不論是在 RA8806 的繁體中文或簡體中文版本,其皆已內建 52 簡單的日文字型。 3. RA8806 的 LCD Driver data bus 是 4-bits。 4. RA8806 系列 IC 皆符合 RoHS 規範以及通過 PFOS、PFOA 檢測。 表 7-5 : RA8806L2N 與 RA8806T1N 比較 差異性 封裝種類 LCD Data Bus 瑞佑科技 RAiO TECHNOLOGY INC. RA8806L2N RA8806T1N LQFP-100Pins TQFP-80Pins 20mm x 14mm 10mm x 10mm 4-bits or 8-bits 4-bits 120/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 8. 電氣特性 8-1 最大範圍 表 8-1 : 最大範圍 參數描述 符號 Supply Voltage Range VDD -0.3 to 6.5 V Input Voltage Range VIN -0.3 to VDD+0.3 V Power Dissipation (VDD = 5V) PD ≦30 Operation Temperature Range TOPR -30 to +85 ℃ Storage Temperature TST -45 to +125 ℃ 260 ℃ Soldering temperature (10 seconds). See Note 1. 規格範圍 TSOLDER 單位 mW 註: 1. 假如該封裝被焊料侵入,平薄式封裝的濕度抵抗性是會被減少的。當進行焊接作業時,勿 過度施壓於封裝上。 2. 須適度考量 RA8806 的電源端及其電源接線。 3. 全部的電源準位皆以 Ground = 0V 為基準。 瑞佑科技 RAiO TECHNOLOGY INC. 121/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 8-2 DC電氣特性 表 8-2 : DC 電氣特性 參數描述 符號 最小值 建議值 最大值 單位 工作條件 Operating Voltage(1) VDDP / VDDH 4.5 5.0 5.5 V Operating Voltage(2) VDDP / VDD 2.4 3.3 3.6 V Oscillator frequency FOSC 4 8 12 MHz VDDP = VDDH 參考圖 6-31 VDDP = VDD VDDH Open 參考圖 6-30 VDD = 5V External clock frequency FCLK 4 8 12 MHz VDD = 5V DC to DC Output Voltage VDD 2.8V 3.0 3.3 V Add external 1uF Capacitor VIH VIL 0.8xVDD Gnd --- VDD 0.2xVDD V V See Note 1, 3 VIH VIL VDD-0.4 Gnd --- VDD Gnd+0.4 V V See Note 2, 3 VIH VIL IIH IIL IOPR 0.7xVDD ----5 1.5 1.8 120 140 0.5 20 -0.25xVDD +1 -1 10 1.8 2.1 140 160 1 25 V V μA μA mA mA mA μA μA μA μA See Note 4 Input Input High Voltage Input Low Voltage Output Output High Voltage Output Low Voltage Schmitt-trigger Input High Voltage Input Low Voltage Input Leakage Current 1 Input Leakage Current 2 Operation Current Standby Mode Current (Normal Mode Current) Display Off Current Sleep Mode ISB IDISPLAY ISLP ---1 ----- See Note 1, 3 See Note 2, 3 See Note 4 Case1 Case2 Case1 Case2 Case1 Case2 註: 1. ZCS1, CS2, ZWR, ZRD, RS, MI, DW, DB, KIN[7:0], TESTMD 以及 TESTI 為輸入接腳。 KIN[7:0] 已內建上拉電阻(pull-up resistors)。TESTMD 和 TESTI 已內建下拉電阻(pulldown resistors)。 2. INT, BUSY, CLK_OUT, PWM_OUT, KOUT[7:0], LP, FR, YD, ZDOFF, XCK 以及 LD[7:0] 為輸出接腳。 3. DATA[7:0] 為雙向工作接腳。 4. ZRST 是一輸入接腳,內建 Schmitt-trigger 與上拉電阻(pull-up resistors),Reset 信號 脈波寬度輸入 ZRST 必須大於 1024*tc。另外須注意,若 reset 時間過長,易導致直流電壓 被供應至 LCD 顯示屏上。 Case1: VDDP = VDD = AVDD = 3.3V, VDDH = NC, LCD Driver VDD = 5V, CLK = 4MHz, CLK_OUT: Off, Segment=160, Common=160, FRM = 78Hz, TA=25℃. Case2: VDDP = VDDH = 5V, VDD = AVDD = 3V, LCD Driver VDD = 3.3V, CLK = 4MHz, CLK_OUT: Off, Segment=160, Common=160, FRM = 78Hz, TA=25℃. 瑞佑科技 RAiO TECHNOLOGY INC. 122/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 8-3 驅動介面信號的時序 圖 8-1 是RA8806 的驅動器介面信號時序圖。 表 8-3 為參數列表。 tWLPH tLH LP tLS tSL tWCKH tWCKH XCK tWCK tLD XD[7:0] tWCKL LAST DATA TOP DATA tDS tDH ITCR 圖 8-1 : 驅動介面時序圖 表 8-3 : 參數列表 Parameter Symbol Shift Clock period tWCK condition Min. Typ. Max. Shift Clock “H” Pulse Width tWCKH tWCK/2 -10 tWCK/2 +10 ns Shift Clock “L” Pulse Width tWCKL tWCK/2 -10 tWCK/2 +10 ns Data Setup Time tDS tWCK/2 -30 tWCK/2 ns Data Hold Time tDH tWCK/2 tWCK/2 +30 ns Latch Pulse “H” Pulse Width tWLPH tWCK-10 tWCK+10 ns Shift Clock Rise to Latch Pulse Rise Time tLD 0 Shift Clock Fall to Latch Pulse Fall Time tSL tWCK/2 -10 Latch Clock Rise to Shift Pulse Rise Time tLS tWCK/2 -10 ns *2 Latch Clock Rise to Shift Pulse Rise Time tLH tWCK/2 -10 ns *2 Tsys/D Unit Note ns *1 ns tWCK/2 +10 ns 註: 1. Tsys : 系統時序週期 (例如 System clock = 12MHz, Tsys = 83.3ns) D : 驅動器 clock 選擇 (REG[01h] B3-2) 0 0 : XCK = CLK/8 0 1 : XCK = CLK/4(初始值) 1 0 : XCK = CLK/2 1 1 : XCK = CLK 2. 此參數也與暫存器 ITCR 的設定值相關。 瑞佑科技 RAiO TECHNOLOGY INC. 123/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 附錄A . 應用電路 圖 A- 1: 3V 或 5V 之應用電路圖 瑞佑科技 RAiO TECHNOLOGY INC. 124/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 附錄B . Frame Rate 設定對照表 表 B- 1 : Frame Rate 設定對照表(1) Seg Com CLK (MHz) 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 320 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 4 4 4 4 4 6 6 6 6 6 8 8 8 8 8 10 10 10 10 10 12 12 12 12 12 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 4 4 4 4 4 6 6 6 6 6 8 8 8 8 8 10 10 10 10 10 12 12 12 12 12 XCK=CLK/2 REG[01h] Bit[3:2] = 10 Frame Rate REG[90h] (Hz) ITCR 55 72 60 59 65 48 70 39 75 31 55 147 60 128 65 112 70 99 75 87 55 223 60 198 65 176 70 158 75 142 55 -60 -65 241 70 218 75 198 55 -60 -65 -70 -75 253 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 瑞佑科技 RAiO TECHNOLOGY INC. 167 148 132 119 107 --228 208 190 ---------------- XCK=CLK/4 REG[01h] Bit[3:2] = 01 Frame Rate REG[90h] (Hz) ITCR 55 -60 -65 -70 -75 -55 34 60 24 65 16 70 9 75 3 55 72 60 59 65 48 70 39 75 31 55 109 60 94 65 80 70 69 75 59 55 147 60 128 65 112 70 99 75 87 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 125/127 54 44 36 29 23 110 96 84 74 65 167 148 132 119 107 224 200 180 163 148 -253 228 208 190 XCK=CLK/8 REG[01h] Bit[3:2] = 00 Frame Rate REG[90h] (Hz) ITCR 55 -60 -65 -70 -75 -55 -60 -65 -70 -75 -55 -60 -65 -70 -75 -55 15 60 7 65 -70 -75 -55 34 60 24 65 16 70 9 75 3 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 -----25 18 12 7 3 54 44 36 29 23 82 70 60 52 44 110 96 84 74 65 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 表 B- 2 : Frame Rate 設定對照表(2) Seg Com CLK (MHz) XCK=CLK/2 REG[01h] Bit[3:2] = 10 XCK=CLK/4 REG[01h] Bit[3:2] = 01 XCK=CLK/8 REG[01h] Bit[3:2] = 00 Frame Rate (Hz) REG[90h] ITCR Frame Rate (Hz) ITCR Frame Rate (Hz) REG[90h] ITCR 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 4 4 4 4 4 6 6 6 6 6 8 8 8 8 8 10 10 10 10 10 12 12 12 12 12 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 187 168 152 139 127 --248 228 210 ---------------- 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 74 64 56 49 43 130 116 104 94 85 187 168 152 139 127 244 220 200 183 168 --248 228 210 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 17 12 8 5 2 45 38 32 27 23 74 64 56 49 43 102 90 80 72 64 130 116 104 94 85 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 160 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 4 4 4 4 4 6 6 6 6 6 8 8 8 8 8 10 10 10 10 10 12 12 12 12 12 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 244 220 200 183 168 --------------------- 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 102 90 80 72 64 173 155 140 127 116 244 220 200 183 168 ---239 220 ------ 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 31 25 20 16 12 67 58 50 44 38 102 90 80 72 64 138 123 110 100 90 173 155 140 127 116 瑞佑科技 RAiO TECHNOLOGY INC. 126/127 www.raio.com.tw RA8806 雙圖層 文字/圖形 LCD 控制器 Version 1.3 表 B- 3 : Frame Rate 設定對照表(3) Seg Com CLK (MHz) 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 240 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 64 XCK=CLK/2 REG[01h] Bit[3:2] = 10 XCK=CLK/4 REG[01h] Bit[3:2] = 01 XCK=CLK/8 REG[01h] Bit[3:2] = 00 Frame Rate (Hz) REG[90h] ITCR Frame Rate (Hz) REG[90h] ITCR Frame Rate (Hz) REG[90h] ITCR 4 4 4 4 4 6 6 6 6 6 8 8 8 8 8 10 10 10 10 10 12 12 12 12 12 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 224 200 180 163 148 ----253 ---------------- 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 82 70 60 52 44 153 135 120 107 96 224 200 180 163 148 --240 219 200 ----253 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 11 5 ---47 38 30 24 18 82 70 60 52 44 118 103 90 80 70 153 135 120 107 96 4 4 4 4 4 6 6 6 6 6 8 8 8 8 8 10 10 10 10 10 12 12 12 12 12 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 -------------------------- 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 224 200 180 163 148 ----253 ---------------- 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 55 60 65 70 75 82 70 60 52 44 153 135 120 107 96 224 200 180 163 148 --240 219 200 ----253 註 : 對照 表B- 1 ~ 表B- 3內 ITCR 的值是十進制。 瑞佑科技 RAiO TECHNOLOGY INC. 127/127 www.raio.com.tw