540 likes | 805 Views
天樞計畫 (3) David Lin. Marketing & System Application Division 1. Products overview. With LCD EM73361A EM73P361A EM73362 EM73P362 EM73461A/469A EM73P461A EM73866 EM73963A EM73A63 EM73C63 EM73P968. General purpose EM73201 EM73E00 EM73PE00. With LCD & Speech EM73880 EM73982
E N D
天樞計畫(3) David Lin Marketing & System Application Division 1
Products overview With LCD EM73361A EM73P361A EM73362 EM73P362 EM73461A/469A EM73P461A EM73866 EM73963A EM73A63 EM73C63 EM73P968 General purpose EM73201 EM73E00 EM73PE00 With LCD & Speech EM73880 EM73982 EM73P982 * EM73983 EM73A83 EM73A88A EM73PA88A(A83/983) EM73A89 EM73A89B EM73MA89B * IC Type: . Mask . OTP/QTP . MTP * : under development
Ram 的大小計算與Bank 切換 . Ram大小的計算方式為全部的RAM數目減去12 nibbles . Ram以256 nibbles為一Bank . 低於256 nibbles 不切Bank . 介於256至512 nibbles 以P9,3切Bank P9,3 = 0 Ram Bank 0 P9,3 = 1 Ram Bank 1 . 大於512 nibbles,以P9切Bank P9=0000 Ram Bank 0 P9=0001 Ram Bank 1 P9=0010 Ram Bank 2 : :
RAM定址方法: • 1. 直接定址法 (Direct addressing mode) • 間接定址法 (Indirect addressing mode) • Zero Page定址法 (Zero-page addressing mode)
直接定址法: . 適用範圍 : 需搭配Ram Bank切換,適用全範圍的Ram . 存取方法 : 透過ACC,對Ram作存取 . 指令 : LDA X X 值從00h~FFh,代表Ram Address STA X EXA X CMPA X . Example: load Ram address “143h” to “023h” SEP P9,3 LDA 43H CLP P9,3 STA 23H
間接定址法: . 適用範圍 : 需搭配Ram Bank切換,適用全範圍的Ram . 存取方法 : 須先設定HR,LR,再透過HR,LR對Ram作nibble或bit存取 . 指令 : LDAM,STAM,STAMI,STAMD,STDMI #k ADCAM,ADDAM,ADDM #k,DECM,INCM,SBCAM,SUBM #k ANDAM,ANDM #k,ORAM,ORM #k,XORAM,EXAM CMPAM,INM p,OUTM p CLM b,SEM b,TFM b b 值從00h~03h,代表Ram 的第幾個bit p 值從00h~0Fh,代表Port number
Example: Load Ram address “143h” to “023h” LDL #03H LDH #04H SEP P9,3 LDAM CLP P9,3 LDL #03H LDL #02H STAM
Zero Page定址法: . 適用範圍 : Ram Bank 0 的00h~0Fh這16個nibble的Ram . 存取方法 : (不需切Ram的Bank) 1. 單一指令定Ram的位址,可存立即值,加法,比較 2. 單一指令定Ram的Bit的位址,可對Bit來做判斷,Set or Clear,一般當Flag使用 . 指令 : STD #k,y y 值從00h~0Fh,代表Ram Address ADD #k,y b 值從00h~03h,代表Ram 的第幾個bit CMP #k,y SET y,b CLR y,b TT y,b TF y,b
Example: DSEG ORG 00H HAPPY: RES 1; 00H FLAG: RES 1; 01H TBI_F: EQU (FLAG+0)*10H+0 CSEG STD #01H,HAPPY STD #01H,00H SET TBI_F/10H,TBI_F SET 1,0 CLR TBI_F/10H,TBI_F 相當於 CLR 1,0 TF TBI_F/10H,TBI_F TF 1,0 TT TBI_F/10H,TBI_F TT 1,0
Stack的使用: . 在Call 指令或Interrupt時,會使用到Stack . 使用Stack前,需在 Ram Bank0 使用STASP這個指令設定SP,Elan 4bit IC除EM73A00/PA00 max值為 0Fh 外,其餘Max值為 0Ch . 一層Stack佔4 nibbles的Ram . Stack 在PC=12bits時,存PC值,加 4-bit Flag : GF,CF,SF,ZF . Stack 在PC=13bits時,存PC值,加 3-bit Flag : CF,SF,ZF
使用Ram的注意事項: . 由於TA,TB,DP,SP的位置在Ram Bank 0,所以有關這些暫存器 的讀寫需確定當時的Ram bank . Ram的Initial 值不一定是0 ,所以建議在程式的開端,將Ram清 為 0 . 使用Ram時,務必確認現所在Ram Bank是否相同,程式盡量Keep Ram 在 Bank 0
Rom 的大小計算與Bank 切換 . Rom以4K為一Bank,利用Port 3切Bank P3=0000 Rom Bank 0 P3=0001 Rom Bank 1 P3=0010 Rom Bank 2 : : . Rom size在4K以下,PC為12 bits . Rom size在大於4K,PC為13 bits
Rom Bank 0 的PC範圍 : 0000h ~ 0FFFh Rom Bank 1 及Bank 1 之後的PC範圍 : 1000h ~ 1FFFh Bank 切換時, 都需經過Bank 0; Bank 1 之後Bank不能互相切換
Program Rom & Data Rom . Rom size在4K以下,Data Rom與Program Rom 共用 . Rom size在大於4K, Data只能放在Rom Bank1之後 . Speech Rom也可存放Data(EM73983/A83/A88A/A89B)
. Rom size在4K以下,LDAX/LDAXI 可取得0000h~0FFFh Data . 4K<Rom size<=8K,LDAX/LDAXI 可取得1000h~1FFFh Data . Rom size在8K以上,LDAX/LDAXI 可取得1000h~1FFFh Data 需注意PC的位置 若PC在Bank 0,可切換P3直接存取Bank 1後Data 若PC不在Bank 0,可直接存取同Bank後Data 不同Bank須切換回Bank 0 再存取Data
Branch 範圍 . SBR range: 00h~3Fh,40h~7Fh,80h~BFh,C0h~FFh . LBR range: 0~0FFFh . SLBR range: 0~1FFFh (Rom size > 4K) . 可使用“B”,讓MZASM自行判斷 CALL 進入位址 . SCALL entry address : 00Eh,016h…..086h . LCALL entry address : 0~07FFh . 使用Call指令前,先確定SP有無設定
I/O pin的架構與使用 . Input Pin . Output Pin . I/O pin . Bonding option
Input Pin (Port 0) Pull-up Pull-down Mask option High =>Low wake up
High =>Low wake up Low =>High wake up Input Pin注意事項 . 每根Input可單獨設定mask option: “Pull-up”,”Pull-down”, ”None”,”Wake up or not”,不受其他Pin影響 . 每根Input Pin可利用TFP or TTP判斷High/Low . 當Input選“None”,表Floating,需接至固定電位,避免漏電 . No used Pin please choose ”Pull-UP” or “Pull-down” option
Output Pin(EX:EM73201 Port1) . Mask option Normal sink Push-pull High sink Push-pull Normal sink open-drain High sink open-drain
Output Pin注意事項 . 每根Output pin可單獨設定mask option不受其他Pin影響 . “Drive”,”Source” 表示將Pin拉至High的能力 . “Sink” 表示將外部Pin拉至Low的能力 . “Push-pull”表有P-Mos,N-Mos電路架構,可依需要將外部Pin 拉High拉Low . “Open-drain”通常指只有N-Mos的電路,需加Pull-up電阻, 否則 在Output High or Reset時會Floating造成漏電 . No used Pin please choose ”Push-pull” option
I/O Pin . Mask option Normal drive Push-pull High drive Push-pull open-drain
I/O Pin注意事項 . 每根I/O pin可單獨設定mask option不受其他Pin影響 . I/O pin當Input pin時,需先Output High再Input,mask option選 low or normal current push-pull . I/O pin當Input pin時,若Input為Low需Output Low,High時 output High以避免漏電 . I/O pin當Output pin時選normal or high current push-pull . “Open-drain”通常指只有N-Mos的電路,需加Pull-up電阻, 否則 在Output High or Reset時會Floating造成漏電 . No used Pin please choose ”Push-pull” option
Bonding option . 用途: 依不同外部pin的state決定執行何種程式 . Input pin可當兩個Bonding option用,mask option需選none,外部 Pin一定接High或Low,注意不可Floating . I/O pin可當三個Bonding option用,mask option需選Push-pull, 外部pin為Floating,High或Low
I/O pin(3 個 state VDD,VSS & floating)做法: 首先 Output H,再Input,若Input 為L,表接到VSS,Output L避免漏電 若Input為H,則有VDD及Floating兩種可能 Output L,再Input若為L表Floating 若Input為H表為VDD,Output H避免漏電
如何訂購你要的LCD 1. 確定IC能使用的Common數,多少Common即代表幾分之幾duty 2. 確定LCD的bias 3. LCD的工作電壓範圍 4. View angle
How to turn on your LCD ? • 填寫LCD Ram • 設定LCD driver的duty,bias • 設定LCD regulator的電壓(EM73A89B) • Enable LCD
LCD signals & Type
使用LCD注意事項 • Enable LCD須照步驟,先設定,再enable • PM 板上的VDD電壓會影響LCD 信號 • LCD 訊號來自低頻,可利用此信號算出低頻頻率 • 有些IC mask option有Type A或Type B可選擇,請選Type B,效果 • 較好 • IC mask option有電容分壓或電阻分壓,選電容分壓方式較省電 • IC mask option bias電阻大小可選擇,電阻大耗電小,推動能力也 • 小,請利用PM板Verify,選Option
LCD Application circuit for EM73361A/EM73P361A • LCD size: 13*3 ~ 27*3 dots (I/O mapping) • Duty & Bias: 1/3 duty 1/2 bias,1/2 duty 1/2 bias,Static • LCD voltage: VDD (2.2 ~3.6V)
LCD Application circuit for EM73362/EM73P362 • LCD size: 15*3 ~ 27*3 dots (Ram mapping) • Duty & Bias: 1/3 duty 1/2 bias,1/2 duty 1/2 bias,Static • LCD voltage: 2*VDD (1.2 ~1.8V) EM73362 EM73P362
LCD Application circuit for EM73461A/B,EM73880 • LCD size: 32*4 dots (Ram mapping) • LCD voltage: VDD or 3/2*VDD (2.4~3.6V) • Duty&Bias:
1/3 bias,LCD voltage=VDD 1/3 bias,LCD voltage=3/2*VDD 1/2 bias/Static,LCD voltage=VDD
LCD Application circuit for EM73P461A • LCD size: 32*4 dots (Ram mapping) • LCD voltage: VDD (2.4~3.6V) • Duty&Bias:
1/3 bias,LCD voltage=VDD 1/2 bias/Static,LCD voltage=VDD
LCD Application circuit for EM73469A • LCD size: 32*4 dots (Ram mapping) • LCD voltage: 2*VDD or 3*VDD (1.2~1.8V) • Duty&Bias:
1/3 bias,LCD voltage=3*VDD 1/2 bias,Static,LCD voltage=2*VDD
LCD Application circuit for EM73962A,EM73982 • LCD size: 40*8 dots (Ram mapping) • LCD voltage: VDD(2.4~5V) • Duty&Bias:1/8 duty with 1/4 bias or modify 1/4 bias(mask option) • LCD bias resistor: 10K * 5 or 20K * 5 (mask option) • LCD signal type : Type A ,Type B (mask option) • 無外接電容for LCD bias
LCD Application circuit for EM73963A • LCD size: 40*8 dots (Ram mapping) • Duty & Bias: 1/8 duty 1/5 bias • LCD voltage: VDD (2.4 ~5.5V) • LCD signal type : Type A & Type B(mask option) Loading 較小 Loading 較大
LCD Application circuit for EM73C63 • LCD size: 40*16 dots (Ram mapping) • Duty & Bias: 1/16 duty 1/5 bias • LCD voltage: VDD,3/2*VDD (2.4 ~5.5V) • LCD signal type : Type A & Type B(mask option) LCD voltage = VDD