EMC EM78P257AM

EM78P257
OTP ROM
EM78P257
8-BIT MICRO-CONTROLLER
Version 1.4
EM78P257
OTP ROM
Specification Revision History
Version
Content
1.0
Initial version
05/06/2002
1.1
To add AKM/BKM Package type, RC Drift Rate, DC and AC Electrical
Characteristic
03/18/2003
1.2
To remove BKM Package type, Change Power on reset content
06/27/2003
1.3
To add AC, DC curve
05/23/2004
1.4
To remove prescalers from TCCA, TCCB and TCCC
07/27/2004
Application Note
AN-001 EM78P257 Firmware programming for Mouse, Comparator, IR and Change Interrupt. Internal C,
External R Oscillation Mode Application Note
AN-002 EM78P257 applied by Comparator, IR ourput and Mouse separately
This specification is subject to change without prior notice.
2
07.27.2004 (V1.4)
EM78P257
OTP ROM
1. GENERAL DESCRIPTION
EM78P257A/B is an 8-bit microprocessors with low-power, high speed CMOS technology. It features a
2K*13 bits Electrical One Time Programmable Read Only Memory (OTP -ROM) and provides a protect bit
to prevent from intruding on code, as well as 12 Option bits to accommodate user’s requirements.
This specification is subject to change without prior notice.
3
07.27.2004 (V1.4)
EM78P257
OTP ROM
2. FEATURES
• Operating voltage range: 2.3V~5.5V
• Operating temperature range: 0°C~70°C
• Operating frequency range: (Base on 2 clocks)
* Crystal mode: DC ~ 20MHz/2clks,5V; DC ~ 8MHz/2clks,3V
* RC mode: DC ~ 4MHz/2clks,5V; DC ~ 4MHz/2clks,3V
• Low power consumption:
* less then 1.5 mA at 5V/4MHz
* typical of 15 µA, at 3V/32KHz
* typical of 1 µA, during the sleep mode
• Built-in RC oscillator(4MHz,1MHz,455KHz,32.768KHz)
• RC oscillator mode with Internal Capacitor
• Programmable oscillator set-up time (1ms:18ms)
• Independent Programmable prescaler of WDT.
• One configuration register to match the user’s requirements, and provide user’s ID code for customer use
• 80× 8 on chip registers (SRAM, general purpose register)
• 2K× 13 on chip ROM
• Bi-directional I/O ports.
• 8 level stacks for subroutine nesting
• 8-bit real time clock/counter (TCC) with selective signal sources, trigger edges, and overflow interrupt.
• 4 sets of comparators.
• Easy-implemented IR (Infrared remote control) application circuit.
• Easy-implemented MOUSE application circuit.
• Power down (SLEEP) mode
• Five interrupt sources
* TCC overflow interrupt
* Input-port status changed interrupt(wake up from the sleep mode)
* External interrupt
* IR OUT interrupt
* Comparators status change interrupt
• Programmable free running watchdog timer
• 8 programmable pull-high I/O pins
This specification is subject to change without prior notice.
4
07.27.2004 (V1.4)
EM78P257
OTP ROM
• 8 programmable open-drain I/O pins
• 8 programmable pull-down I/O pins.
• Two clocks per instruction cycle.
• Package types:
* 18 pin DIP 300mil
: EM78P257AP
* 20 pin DIP 300mil
: EM78P257BP
* 18 pin SOP 300mil
: EM78P257AM
* 20 pin SOP 300mil
: EM78P257BM
* 20 pin SSOP 209mil
: EM78P257AKM
• Power on voltage detector available for both EM78P257A and EM78P257B.
This specification is subject to change without prior notice.
5
07.27.2004 (V1.4)
EM78P257
OTP ROM
3. PIN ASSIGNMENT
1
18
P51/CO1/TCC3
P53/CIN2+
2
17
P50/CIN1+/TCC4
P54/CIN2-/TCC
3
16
P55/CIN1-/OSCI
P71//RESET
4
15
P70/OSCO
Vss
5
14
VDD
P60//INT
6
13
P67/IR OUT
P61/CIN3-/TCC1
7
12
P66/CIN4-/TCC2
P62/CIN3+
8
11
P65/CIN4+
P63/CO3
9
10
P64/CO4
P52/CO2
1
20
P51/CO1/TCC3
P53/CIN2+
2
19
P50/CIN1+/TCC4
P54/CIN2-/TCC
3
18
P55/CIN1-/OSCI
P71//RESET
4
17
P70/OSCO
Vss
5
16
VDD
Vss
6
15
VDD
P60//INT
7
14
P67/IR OUT
P61/CIN3-/TCC1
8
13
P66/CIN4-/TCC2
P62/CIN3+
9
12
P65/CIN4+
P63/CO3
10
11
P64/CO4
EM78P257AP
EM78P257AM
P52/CO2
EM78P257AKM
Fig. 1 Pin Assignment - EM78P257AP/AM/AKM
This specification is subject to change without prior notice.
6
07.27.2004 (V1.4)
EM78P257
OTP ROM
Table 1 Pin Description- EM78P257AP/AM
Symbol
VDD
OSCI
OSCO
Pin No.
14
16
15
P70~P71
4,15
P60~P67
6~13
P50~P55
1~3
16~18
IR OUT
/INT
CIN1-,CIN1+
CIN2-,CIN2+
CIN3-,CIN3+
CIN4-,CIN4+
CO1,CO2
CO3,CO4
TCC
TCC1,TCC2,
TCC3,TCC4
/RESET
13
6
16,17
3,2
7,8
12,11
18,1
9,10
3
,7,12
18,17
4
VSS
5
Type
Function
Power supply.
I
* XTAL type: Crystal input terminal or external clock input pin.
* RC type: RC oscillator input pin.
I/O * XTAL type: output terminal for crystal oscillator or external clock
input pin.
* RC type: clock output with a duration of one instruction cycle.
* External clock signal input.
I/O * General purpose I/O pin. (P71 is input pin only)
* Default value after a power on reset.
I/O * General purpose I/O pin.
* Open_drain
* Default value after a power on reset.
I/O * General purpose I/O pin.
* Pull_high/pull_down.
* Wake up from sleep mode when the status of the pin changes.
* Default value after a power on reset.
O
* IR mode output pin, capable of sinking 20mA
I
* External interrupt pin triggered by falling edge.
I
* “-“ -> the input pin of Vin- of a comparator.
I
* “+”-> the input pin of Vin+ of a comparator.
I
* Pin CO1~4 are the outputs of the comparators.
I
O
O
I
* External Counter input.
I
-
* If set as /RESET and remains at logic low, the device will be reset.
* Voltage on /RESET/Vpp must not exceed Vdd during the normal
mode.
* Pull_high is on if defined as /RESET.
Ground.
Table 2 Pin Description- EM78P257AKM
Symbol
VDD
OSCI
OSCO
Pin No.
15,16
18
17
P70,P71
17,4
P60~P67
7~14
P50~P55
1~3
18~20
Type
Function
Power supply.
I
* XTAL type: Crystal input terminal or external clock input pin.
* RC type: RC oscillator input pin.
I/O * XTAL type: output terminal for crystal oscillator or external clock
input pin.
* RC type: clock output with a duration of one instruction cycle.
* External clock signal input.
I/O * General purpose I/O pin. (P71 is input pin only)
* Default value after a power on reset.
I/O * General purpose I/O pin.
* Open_drain.
* Default value after a power on reset.
I/O * General purpose I/O pin.
* Pull_high/pull_down.
This specification is subject to change without prior notice.
7
07.27.2004 (V1.4)
EM78P257
OTP ROM
IR OUT
/INT
CIN1-, CIN1+
CIN2-, CIN2+
CIN3-, CIN3+
CIN4-, CIN4+
CO1,CO2
CO3,CO4
TCC
TCC1,TCC2
TCC3,TCC4
/RESET
VSS
14
7
18,19
3,2
8,9
13,12
20,1
10,11
3
8,13
20,19
4
O
I
I
I
I
I
O
O
I
5,6
-
I
* Wake up from sleep mode when the status of the pin changes.
* Default value after a power on reset.
* IR mode output pin, capable of sinking 20mA
* External interrupt pin triggered by falling edge.
* “-“ -> the input pin of Vin- of a comparator.
* “+”-> the input pin of Vin+ of a comparator.
* Pin CO1~4 are the outputs of the comparators.
External Counter input.
* If set as /RESET and remains at logic low, the device will be reset.
* Voltage on /RESET/Vpp must not exceed Vdd during the normal
mode.
* Pull_high is on if defined as /RESET.
Ground.
1
20
P57/TCC6
P52/CO2
2
19
P51/CO1/TCC3
P53/CIN2+
3
18
P50/CIN1+/TCC4
P54/CIN2-/TCC
4
17
P55/CIN1-/OSCI
P71//RESET
5
16
P70/OSCO
Vss
6
15
VDD
P60//INT
7
14
P67/IR OUT
P61/CIN3-/TCC1
8
13
P66/CIN4-/TCC2
P62/CIN3+
9
12
P65/CIN4+
P63/CO3
10
11
P64/CO4
EM78P257B
P56/TCC5
Fig. 2 Pin Assignment - EM78P257BP/BM
Table 3 Pin Description-EM78P257BP/BM/BKM
Symbol
VDD
OSCI
OSCO
Pin No.
15
17
16
Type
Function
Power supply.
I
* XTAL type: Crystal input terminal or external clock input pin.
* RC type: RC oscillator input pin.
I/O * XTAL type: output terminal for crystal oscillator or external clock
input pin.
This specification is subject to change without prior notice.
8
07.27.2004 (V1.4)
EM78P257
OTP ROM
P70,P71
16,5
I/O
P60~P67
7~14
I/O
P50~P57
1~4
17~20
I/O
IR OUT
/INT
CIN1-, CIN1+
CIN2-, CIN2+
CIN3-, CIN3+
CIN4-, CIN4+
CO1,CO2
CO3,CO4
TCC
TCC1,TCC2
TCC3,TCC4
TCC5,TCC6
/RESET
14
7
17,18
4,3
8,9
13,12
19,2
10,11
4
8,13
19,18
1,20
5
O
I
I
I
I
I
O
O
I
6
-
VSS
I
* RC type: clock output with a duration of one instruction cycle.
* External clock signal input.
* General purpose I/O pin. (P71 is input pin only)
* Default value after a power on reset.
* General purpose I/O pin.
* Open_drain.
* Default value after a power on reset.
* General purpose I/O pin.
* Pull_high/pull_down.
* Wake up from sleep mode when the status of the pin changes.
* Default value after a power on reset.
* IR mode output pin, capable of sinking 20mA
* External interrupt pin triggered by falling edge.
* “-“ -> the input pin of Vin- of a comparator.
* “+”-> the input pin of Vin+ of a comparator.
* Pin CO1~4 are the outputs of the comparators.
External Counter input.
* If set as /RESET and remains at logic low, the device will be reset.
* Voltage on /RESET/Vpp must not exceed Vdd during the normal
mode.
* Pull_high is on if defined as /RESET.
Ground.
This specification is subject to change without prior notice.
9
07.27.2004 (V1.4)
EM78P257
OTP ROM
4. FUNCTION DESCRIPTION
OSCI
TCC
WDT timer
OSCO /RESET
ROM
/INT
STACK 0
R2
STACK 1
STACK 2
STACK 3
Oscillator Timing
STACK 4
Control
Prescaler
Interrupt
controller
STACK 5
Instruction
STACK 6
Register
STACK 7
RAM
Built-in
OSC
ALU
R1(TCC)
Instruction
decoder
R4
R3
ACC
DATA & CONTROL BUS
TCC4/CIN1+/P50
TCC3/CO1/P51
CO2/P52
CIN2+/P53
TCC/CIN2-/P54
OSCI/CIN1-/P55
TCC5/P56
TCC6/P57
I/O
PORT5
IOC5
Comparator COUNTER
IOC6/7
I/O
PORT6/7
R6/7
R5
P60/INT
P61/CIN3-/TCC1
P62/CIN3+
P63/CO3
P64/CO4
P65/CIN4+
P66/CIN4-/TCC2
P67/IR OUT
P70/OSCO
P71//RESET
Fig. 3 Functional block diagram
4.1 Operational Registers
1. R0 (Indirect Addressing Register)
R0 is not a physically implemented register. Its major function is to be an indirect addressing pointer. Any instruction using
R0 as a pointer actually accesses data pointed by the RAM Select Register (R4).
2. R1 (Time Clock /Counter)/TCC
• Increased by an external signal edge which is defined by the TE bit (CONT-4) through the TCC pin,
or by the instruction cycle clock.
• Writable and readable as any other registers.
• The prescaler (RC) is assigned to TCC.
• The contents of the prescaler counter is cleared only when a value is written to TCC register.
3. R2 (Program Counter) & Stack/PC
This specification is subject to change without prior notice.
10
07.27.2004 (V1.4)
EM78P257
OTP ROM
• Depending on the device type, R2 and hardware stack are 11-bits wide. The structure is depicted in
Fig. 4.
• Generates 2K×13 on-chip ROM addresses to the relative programming instruction codes. One
program page is 1K words long.
• R2 is set as all "0"s when under RESET condition.
• "JMP" instruction allows direct loading of the lower 10 program counter bits. Thus, "JMP" allows PC
go to any location within a page.
• "CALL" instruction loads the lower 10 bits of the PC, and then PC+1 is pushed into the stack. Thus,
the subroutine entry address can be located anywhere within a page.
• "RET" ("RETL k", "RETI") instruction loads the program counter with the contents of the top-level
stack.
• "ADD R2,A" allows the contents of ‘A’ to be added to the current PC, and the ninth and tenth bits of
the PC are cleared.
• "MOV R2,A" allows to load an address from the "A" register to the lower 8 bits of the PC, and the ninth
and tenth bits of the PC are cleared.
• Any instruction that is written to R2 (e.g. "ADD R2,A", "MOV R2,A", "BC R2,6",⋅⋅⋅⋅⋅) will cause the
ninth and tenth bits (A8~A9) of the PC to be cleared. Thus, the computed jump is limited to the first
256 locations of a page.
• In case of EM78P257A/B, the second most significant bit(A10) will be loaded with the content of bit
PS0 in the status register (R3) upon the execution of a "JMP", "CALL", or any other instructions
which write to R2.
• All instructions are single cycle (fclk/2 or fclk/4), except for the instructions that would change the
contents of R2. This instruction will need one more instruction cycle.
This specification is subject to change without prior notice.
11
07.27.2004 (V1.4)
EM78P257
OTP ROM
R3
A10
A9 A8
A7
~
Reset Vector
Software Interrupt Vector
A0
00 PAGE0 0000~03FF
01 PAGE1 0400~07FF
On-chip Program
Memory
Hardware Interrupt Vector
Stack Level 1
Stack Level 2
Stack Level 3
Stack Level 4
Stack Level 5
Stack Level 6
Stack Level 7
Stack Level 8
3ECH
~
3FEH
User Memory
Space
CALL
RET
RETL
RETI
000H
001H
7FFH
Fig. 4 Program counter organization
This specification is subject to change without prior notice.
12
07.27.2004 (V1.4)
EM78P257
OTP ROM
Address
R PAGE registers
IOCX0 PAGE registers
IOCX1 PAGE registers
Reserve
00
R0
(Indirect Addressing Register)
01
R1
(Time Clock Counter)
02
R2
(Program Counter)
Reserve
Reserve
03
R3
(Status Register)
Reserve
Reserve
04
R4
(RAM Select Register)
Reserve
Reserve
05
R5
(Port5)
IOC50 (I/O Port Control Register)
IOC51
(TCCA Counter)
06
R6
(Port6)
IOC60 (I/O Port Control Register)
IOC61
(TCCBL Counter)
07
R7
(Port7)
IOC70 (I/O Port Control Register)
IOC71
(TCCBH Counter)
Reserve
CONT (Control Register)
Reserve
08
Reserve
IOC80
(TCC Control Register)
IOC81
(TCCC Counter)
09
R9
(CMPOUT Status Register
& TCC Status Register)
IOC90
(CMP Control Register)
IOC91
(Low-time Register)
0A
RA
(TCC Control Register(1))
IOCA0
IOCA1
(High-time Register)
0B
RB
(TCC Control Register(2))
IOCB0
IOCB1
(Pulse time Register)
0C
RC
(TCC Prescaler Register)
IOCC0
0D
RD
(IR Control Register)
0E
RE
0F
RF
(CO-Input Combine
sequence)
(Pull-down Control
Register)
(Open-drain Control
Register)
Reserve
IOCD0 (Pull-high Control Register)
Reserve
(Mouse Control Register)
IOCE0 (WDT Control Register)
Reserve
(Interrupt Status Register)
IOCF0 (Interrupt Mask Register)
Reserve
10
︰
1F
General Registers
20
:
3F
Bank0
Bank1
Fig. 5 Data memory configuration
4. R3 (Status Register)
7
6
5
4
3
2
1
0
RST
IOCS
PS0
T
P
Z
DC
C
• Bit 7 (RST) Bit for reset type.
Set to 1 if wake-up from sleep on pin change or comparator status change.
Set to 0 if wake-up from other reset types
This specification is subject to change without prior notice.
13
07.27.2004 (V1.4)
EM78P257
OTP ROM
• Bit6 (IOCS) Select the Segment of the control register.
0 = Segment 0( IOC50~IOCF0 ) selected;
1 = Segment 1( IOC51~IOCC1 ) selected;
• Bit5 (PS0) Page select bits. PS0 is used to select a program memory page. When executing a "JMP",
"CALL", or other instructions that causes the program counter to change (e.g. MOV R2,A), PS0 is
loaded into the 11th bit of the program counter, selecting one of the available program memory
pages. Note that RET (RETL, RETI) instruction does not change the PS0 bits. That is, the return will
always be back to the page from where the subroutine was called, regardless of the current PS0 bit
setting.
PS0
0
1
Program memory page [Address]
Page 0 [000-3FF]
Page 1 [400-7FF]
• Bit 4 (T) Time-out bit.
Set to 1 with the "SLEP" and "WDTC" command, or during power on and reset to 0 by WDT time-out.
• Bit 3 (P) Power down bit.
Set to 1 during power on or by a "WDTC" command and reset to 0 by a "SLEP" command.
• Bit 2 (Z) Zero flag.
Set to "1" if the result of an arithmetic or logic operation is zero.
• Bit 1 (DC) Auxiliary carry flag.
• Bit 0 (C) Carry flag.
5. R4 (RAM Select Register)
•The Bit7 set to “0” as all time.
• Bit 6 is used to select bank 0 or bank 1.
• Bits 5~0 are used to select a register (address: 00~0F, 10~3F) in the indirect addressing mode.
• See the configuration of the data memory in Fig. 5.
6. R5 ~ R6 (Port 5 ~ Port 6)
• R5 and R6 are I/O registers.
• Only the lower 6 bits of R5 are available.(applicable to EM78P257A)
• The upper 2 bits of R5 are fixed to 0. (if EM78P257A is selected)
7. R7 (Port 7 )
7
-
6
-
5
-
4
-
3
-
2
-
1
I/O
0
I/O
• R7 is I/O registers.
• Only the lower 2 bits of R7 are available.
This specification is subject to change without prior notice.
14
07.27.2004 (V1.4)
EM78P257
OTP ROM
8. R9 (CMPOUT Status Register & TCC Status Register)
7
6
5
4
CMPOUT4 CMPOUT3 CMPOUT2 CMPOUT1
3
-
2
TCCCIF
1
TCCBIF
0
TCCAIF
• Bit 7(CMPOUT4) The output result of the comparator4.
• Bit 6(CMPOUT3) The output result of the comparator3.
• Bit 5(CMPOUT2) The output result of the comparator2.
• Bit 4(CMPOUT1) The output result of the comparator1.
• Bit 4~Bit 7 are read only.
• Bit 3 Not used, read as’0’.
• Bit 2(TCCCIF) TCCC overflowing interrupt flag. Set when TCCC overflow, reset by software.
• Bit 1(TCCBIF) TCCB overflowing interrupt flag. Set when TCCB overflow, reset by software.
• Bit 0 (TCCAIF) TCCA overflowing interrupt flag. Set when TCCA overflow, reset by software.
9. RA (TCC Control Register (1))
7
6
5
4
3
2
1
0
-
-
-
-
-
TCCAIE
-
-
3
-
2
TCCCIE
1
-
0
-
• Bit 7~Bit 3 Not used, read as ‘0’.
• Bit 2(TCCAIE) TCCAIF interrupt enable bit.
0: disable TCCAIF interrupt
1: enable TCCAIF interrupt
• Bit 1 Set to “0” as all time.
• Bit 0 Not used.
10. RB (TCC Control Register (2))
7
-
6
TCCBIE
5
-
4
-
• Bit 7 Not used.
• Bit 6(TCCBIE) TCCBIF interrupt enable bit.
0: disable TCCBF interrupt
1: enable TCCBIF interrupt
• Bit 5 Set to “0” as all time.
• Bit 4~3 Not used.
• Bit 2(TCCCIE) TCCCIF interrupt enable bit.
0: disable TCCCIF interrupt
1: enable TCCCIF interrupt
• Bit 1 Set to “0” as all time.
• Bit 0 Not used.
This specification is subject to change without prior notice.
15
07.27.2004 (V1.4)
EM78P257
OTP ROM
11. RC (TCC Prescaler Counter)
TCC prescaler counter can be read and written.
PSR2 PSR1 PSR0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
TCC Rate
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256
*V: valid value
12. RD (IR Control Register)
7
DP1
6
DP0
5
MF1
4
MF0
3
IRE
2
HF
1
LGP
0
PWM
• Bit 7: Bit 6 (DP1:DP0) : Ratios of duty and period of modulated frequency
DP1
0
0
1
1
DP0
0
1
0
1
Ratio
1:2(default)
1:3
1:4
-
1:2
1
1:3
1
2
3
• Bit 5: Bit 4 ( MF1:MF0 ) : Modulated frequency
MF1
0
0
1
1
• Bit 3(IRE)
MF0
0
1
0
1
Fosco
Fosc/1
Fosc/4
Fosc/8
Infrared Remote Enable bit
0: Disable IRE. Disable H/W Modulator Function.
1: Enable IRE. Disable RB (Bit4(TCCBTE) and Bit5(TCCBTS)), and TCCBX acts as a down counter.
Enable H/W Modulator Function. Pin 67 defined as IR OUT.
• Bit 2(HF) High Frequency. When HF = 1; the Low-time part of the generated pulse is modulated with
a frequency Fosco.
• Bit 1(LGP) Long Pulse. When LGP = 1, the contents of the High-time register are ignored. A single
pulse is generated; its pulse is high.
Pulse width = (Contents of Low-time register) x (number of pulse) x (1/Fosc)
If HF = 1, this pulse is modulated with a frequency Fosco (selected by MF1,MF0).
This specification is subject to change without prior notice.
16
07.27.2004 (V1.4)
EM78P257
OTP ROM
• Bit 0(PWM) Pulse Width Modulation. When PWM = 1 and LGP = 0, the LSB Counter and MSB
Counter are disabled, a continuous pulse train is generated, and the output signal is actually a PWM
waveform format of PWM.
13. RE (Mouse Control Register)
7
MOUSEN
6
-
5
-
4
-
3
-
2
-
1
-
0
-
• Bit 7 (MOUSEN) Mouse application Enable bit.
0: Disable MOUSEN. TCCA, TCCB and TCCC are increment counters.
1: Enable MOUSEN. TCCA, TCCBL and TCCC work as up/down counters. The other pin
assignment refers to IOC80 and IOC90.
• Bit 6~Bit 0 Not used.
14. RF (Interrupt Status Register)
7
CMP4IF
6
CMP3IF
5
CMP2IF
4
CMP1IF
3
-
2
EXIF
1
ICIF
0
TCIF
“1” means interrupt request, and “0” means no interrupt occurs.
• Bit 7 (CMP4IF) Status changed interrupt flag. Set as change occurred in the output of Comparator
CO4, and reset by software.
• Bit 6 (CMP3IF) Status changed interrupt flag. Set as change occurred in the output of Comparator
CO3, and reset by software.
• Bit 5 (CMP2IF) Status changed interrupt flag. Set as change occurred in the output of Comparator
CO2, and reset by software.
• Bit 4 (CMP1IF) Status changed interrupt flag. Set as change occurred in the output of Comparator
CO1, and reset by software.
• Bit 3 Unemployed, read as ‘0’;
• Bit 2 (EXIF) External interrupt flag. Set by on /INT pin, and reset by software.
• Bit 1 (ICIF) Port 5 input status changed interrupt flag. Set when Port 5 input changes, and reset by
software.
• Bit 0 (TCIF) TCC overflowing interrupt flag. Set when TCC overflows, and reset by software.
• RF can be cleared by instruction but cannot be set.
• IOCF0 is the relative interrupt mask register.
15. R10 ~ R3F
• All of these are the 8-bit general purpose registers.
This specification is subject to change without prior notice.
17
07.27.2004 (V1.4)
EM78P257
OTP ROM
4.2 Special Purpose Registers
1. A (Accumulator)
• Internal data transfer, or instruction operand holding
• It can not be addressed.
2. CONT (Control Register)
7
6
5
4
3
2
1
0
INTE
INT
TS
TE
-
PSR2
PSR1
PSR0
• Bit 7 (INTE) INT signal edge
0: interrupt occurs at the rising edge on the INT pin
1: interrupt occurs at the falling edge on the INT pin
• Bit 6 (INT) Interrupt enable
0: masked by DISI or hardware interrupt
1: enabled by ENI/RETI instructions
• Bit 5 (TS) TCC signal source
0: internal instruction cycle clock
1: transition on TCC pin
• Bit 4 (TE) TCC signal edge
0: increment if the transition from low to high takes place on TCC pin
1: increment if the transition from high to low takes place on TCC pin\
• Bit 3 Not used.
• Bit 2 (PSR2) ~ Bit 0 (PSR0) TCC prescaler bits.
PSR2
PSR1
PSR0
TCC Rate
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1:256
• The CONT register is both readable and writable.
• Bit 6 is read only.
3. IOC50 ~ IOC70 (I/O Port Control Registers)
• "1" put the relative I/O pin into high impedance, while "0" defines the relative I/O pin as output.
• Only the higher 2 bits of IOC5 can be defined. (for EM78P257B only)
• Only the lower 2 bits of IOC7 can be defined, the others bits are not available.
This specification is subject to change without prior notice.
18
07.27.2004 (V1.4)
EM78P257
OTP ROM
• IOC5 , IOC6 and IOC7 are both readable and writable.
4. IOC80 ( TCC Control Register ):
7
6
5
4
3
2
1
0
TCC2E
TCC4E
TCC6E
TCCBE
-
-
-
-
• Bit 7 (TCC2E): Control bit used to enable the second input of counter
For EM78P257A
1 = If MOUSEN equal to ‘1’, pin 12 is defined as another input pin of TCCA. If MOUSEN equal to ‘0’,
pin 12 is a bi-directional I/O pin.
0 = Define P66 as a bi-directional I/O pin.
For EM78P257B
1 = If MOUSEN equal to ‘1’, pin 13 is defined as another input pin of TCCA. If MOUSEN equal to ‘0’,
pin 13 is a bi-directional I/O pin.
0 = Define P66 as a bi-directional I/O pin.
• Bit 6 (TCC4E): Control bit used to enable the second input of counter
For EM78P257A
1 = If MOUSEN equal to ‘1’, pin 17 is defined as another input pin of TCCB. If MOUSEN equal to ‘0’,
pin 17 is a bi-directional I/O pin.
0 = Define P50 as a bi-directional I/O pin.
For EM78P257B
1 = If MOUSEN equal to ‘1’, pin 18 is defined as another input pin of TCCB. If MOUSEN equal to ‘0’,
pin 18 is a bi-directional I/O pin.
0 = Define P50 as a bi-directional I/O pin.
• Bit 5 (TCC6E): Control bit used to enable the second input of counter (for EM78P257B only)
For EM78P257B
1 = If MOUSEN equal to ‘1’, pin 20 is defined as another input pin of TCCC. If MOUSEN equal to ‘0’,
pin 20 is a bi-directional I/O pin.
0 = Define P57 as a bi-directional I/O pin.
• Bit 4 (TCCBE): Control bit is used to enable the most significant byte of counter
1 = Enable the most significant byte of TCCBH. TCCB is a 16-bits counter.
0 = Disable the most significant byte of TCCBH (default value). TCCB is an 8-bits counter.
• Bit 3~Bit 0 Not used.
This specification is subject to change without prior notice.
19
07.27.2004 (V1.4)
EM78P257
OTP ROM
5. IOC90 ( CMP Control Register ):
7
COIE4
6
COIE3
5
COIE2
4
COIE1
3
CE4
2
CE3
1
CE2
0
CE1
• Bit 7 ( COIE7 ): Set P64 as the output of the comparator CO4(CE4 must be enabled)
1 = output enabled;
0 = output disabled, and carry out the function of P64.
• Bit 6 ( COIE3 ): Set P63 as the output of the comparator CO3(CE3 must be enabled)
1 = output enabled;
0 = output disabled, and carry out the function of P63.
• Bit 5 ( COIE2 ): Set P52 as the output of the comparator CO2(CE2 must be enabled)
1 = output enabled;
0 = output disabled, and carry out the function of P52.
• Bit 4 ( COIE1 ): Set P51 as the output of the comparator CO1 (CE1 must be enabled)
1 = output enabled;
0 = output disabled, and carry out the function of P51.
• Bit 3 (CE4): Comparator (CO4) enable bit
0 = Comparator is CO4 off (default value).
For EM78P257A
Pin 10 can choice P64 only.
Pin 11 can choose P65 only.
Pin 12 can choose P66 or TCC2 only. If MOUSEN is ‘1’ and TCC2E of IOC80 is also ‘1’, then set
pin to TCC2, otherwise set to P66.
For EM78P257B
Pin 11 can choose P64 only.
Pin 12 can choose P65 only.
Pin 13 can choose P66 or TCC2 only. If MOUSEN is ‘1’ and TCC2E of IOC80 is ‘1’ also, then set
pin to TCC2, otherwise set to P66.
1 = Comparator is CO4 on.
For EM78P257A
Pin 10 can choose P64 or CO4 only, and decided by COIE4 of IOC90.
Pin 11 can choose CIN4+ only.
This specification is subject to change without prior notice.
20
07.27.2004 (V1.4)
EM78P257
OTP ROM
Pin 12 can choose P66 ,CIN4- or TCC2, and the choice is decided by IOCA0. If CIN4- was not
chosen as comparator1(-) input, this pin will decide to set MOUSEN as ‘1’ and TCC2E of IOC80 is
also set as ‘1’, then set the pin to TCC2, otherwise set the pin to P66.
For EM78P257B
Pin 11 can choose P64 or CO4 only, and decided by COIE4 of IOC90.
Pin 12 can choose CIN3+ only.
Pin 13 can choose P66 ,CIN4- or TCC2, and the choice is decided by IOCA0. If CIN4- was not
chosen as comparator1(-) input, this pin will decide to set MOUSEN as ‘1’ and TCC2E of IOC80 is
also set as ‘1’, then set the pin to TCC2, otherwise set the pin to P66.
• Bit 2 (CE3): Comparator (CO3) enable bit
0 = Comparator is CO3 off (default value).
For EM78P257A
Pin 9 can choose P63 only.
Pin 8 can choose P62 only.
Pin 7 can choose P61 or TCC1 only. If MOUSEN is ‘1’, define pin as an input of TCCA (TCC1). If
MOUSEN is ‘0’, then the choice is decided by TCCATS of RA.
For EM78P257B
Pin 10 can choose P63 only.
Pin 9 can choose P62 only.
Pin 8 can choose P61 or TCC1 only. If MOUSEN is ‘1’ defined pin as an input of TCCA(TCC1) , if
MOUSEN is ‘0’, then the choice is decided by TCCATS of RA.
1 = Comparator is CO3 on.
For EM78P257A
Pin 9 can choose P63 or CO3 only, and decided by COIE3 of IOC90.
Pin 8 can choose CIN3+ only.
Pin 7 can choose P61 ,CIN3- or TCC1, and the choice is decided by IOCA0. If CIN3- was not
chosen as comparator1(-) input, then this pin’s status will be decided by TCCATS of RA. When
TCCATS is ‘1’, then Pin 7 is defined as TCC1, otherwise the status is defined as P61.
For EM78P257B
Pin 10 can choose P63 or CO3 only, and decided by COIE3 of IOC90.
Pin 9 can choose CIN3+ only.
This specification is subject to change without prior notice.
21
07.27.2004 (V1.4)
EM78P257
OTP ROM
Pin 8 can choose P61 ,CIN3- or TCC1, and is decided by IOCA0. If CIN3- was not chosen as
comparator1(-) input, then this pin’s status will be decided by TCCATS of RA. When TCCATS is ‘1’,
then Pin 8 is defined as TCC1, otherwise the status is defined as P61.
• Bit 1 (CE2): Comparator (CO2) enable bit
0 = Comparator is CO2 off (default value).
For EM78P257A
Pin 1 can choose P52 only.
Pin 2 can choose P53 only.
Pin 3 can choose P54 or TCC only, and is decided by Bit 5 of Control Register (CONT-5). When TS
is ‘1’, then Pin 3 is defined as TCC, otherwise the status is defined as P54.
For EM78P257B
Pin 2 can choose P52 only.
Pin 3 can choose P53 only.
Pin 4 can choose P54 or TCC only, and is decided by Bit 5 of Control Register (CONT-5). When TS
is ‘1’, then Pin 4 is defined as TCC, otherwise the status is defined as P54.
1 = Comparator is CO2 on.
For EM78P257A
Pin 1 can choose P52 or CO2 only, and decided by COIE2 of IOC90.
Pin 2 can choose CIN2+ only.
Pin 3 can choose P54 ,CIN2- or TCC, and is decided by IOCA0. If CIN2- was not chosen as
comparator1(-) input, then this pin will be decided by Bit 5 of Control Register (CONT-5). When TS
is ‘1’, then Pin 3 is defined as TCC, otherwise status is defined as P54.
For EM78P257B
Pin 2 can choose P52 or CO2 only, and decided by COIE2 of IOC90.
Pin 3 can choose CIN2+ only.
Pin 4 can choose P54 ,CIN2- or TCC as decided by IOCA0. If CIN2- was not chosen as
comparator1(-) input, then this pin will be decided by Bit 5 of Control Register (CONT-5). When TS
is ‘1’, then Pin 4 is defined as TCC, otherwise status defined as P54.• Bit 0 (CE1): Comparator
(CO1) enable bit
0 = Comparator CO1 is off (default value).
For EM78P257A
This specification is subject to change without prior notice.
22
07.27.2004 (V1.4)
EM78P257
OTP ROM
Pin 18 can choose P51 or TCC3 only. If MOUSEN is ‘1’, define as an input of TCCB (TCC3). If
MOUSEN is ‘0’, then the choice is decided by TCCBTS of RB.
Pin 17 can choose P50 or TCC4 only. If MOUSEN is ‘1’ and TCC4E of IOC80 is ‘1’ also, then
choose TCC4, otherwise choose P50.
Pin 16 can choose P55 or OSCI only, and the choice is decided by Bit 9,8,7 of CODE option. When
choice is ‘1,1,1’, then Pin 16 is defined as P55, otherwise the status is defined as OSCI.
For EM78P257B
Pin 19 can choose P51 or TCC3 only. If MOUSEN is ‘1’, define as an input of TCCB (TCC3), if
MOUSEN is ‘0’, then the choice is decided by TCCBTS of RB.
Pin 18 can choose P50 or TCC4 only. If MOUSEN is ‘1’ and TCC4E of IOC80 is ‘1’ also, then
choose TCC4, otherwise choose P50.
Pin 17 can choose P55 or OSCI only, and the choice is decided by Bit 9,8,7 of CODE option. When
choice is ‘1,1,1’, then Pin 17 is defined as P55, otherwise the status is defined as OSCI.
1 = Comparator CO1 is on.
For EM78P257A
Pin 18 can choose P51 or CO1 only, and the choice is decided by COIE1 of IOC90.
Pin 17 can choose CIN1+ only.
Pin 16 can choose P55 ,CIN1- or OSCI, and is decided by IOCA0. If CIN1- was not chosen as
comparator1(-) input, then this pin’s status will be decided by Bit 9,8,7 of CODE option. When
choice is ‘1,1,1’, then Pin 16 is defined as P55, otherwise the status is defined as OSCI.
For EM78P257B
Pin 19 can choose P51 or CO1 only, and the choice is decided by COIE1of IOC90.
Pin 18 can choose CIN1+ only.
Pin 17 can choose P55 ,CIN1- or OSCI, and is decided by IOCA0. If CIN1- was not chosen as
comparator1(-) input, then this pin’s status will be decided by Bit 9,8,7 of CODE option. When
choice is ‘1,1,1’, then Pin 17 is defined as P55, otherwise the status is defined as OSCI.
6. IOCA0 ( CO- INPUT Combine sequence)
•There are 16 combinations of the negative inputs of the four comparators.
7
-
6
-
5
-
This specification is subject to change without prior notice.
4
-
3
CI3
23
2
CI2
1
CI1
0
CI0
07.27.2004 (V1.4)
EM78P257
OTP ROM
Table 4 The list of CO-INPUT combine sequence
CI3 CI2 CI1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
CI0 CO- Input combine status
Comment
0
N/A
1,2,3, and 4 -> negative inputs,
1
1,2
CIN2- -> negative input; CIN1- -> normal I/O pin;
0
1,3
CIN3- -> negative input; CIN1- -> normal I/O pin;
1
1,4
CIN4- -> negative input; CIN1- -> normal I/O pin;
0
2,3
CIN3- -> negative input; CIN2- -> normal I/O pin;
1
2,4
CIN4- -> negative input; CIN2- -> normal I/O pin;
0
3,4
CIN4- -> negative input; CIN3- -> normal I/O pin;
1
1,2,3
CIN3- -> negative input; CIN(1,2)- -> normal I/O pin;
0
1,2,4
CIN4- -> negative input; CIN(1,2)- -> normal I/O pin;
1
1,3,4
CIN4- -> negative input; CIN(1,3)- -> normal I/O pin;
0
2,3,4
CIN4- -> negative input; CIN(2,3)- -> normal I/O pin;
1
1,2,3,4
CIN4- -> negative input; CIN(1,2,3)- -> normal I/O pin;
0
3,2
CIN2- -> negative input; CIN3- -> normal I/O pin;
1
4,2
CIN2- -> negative input; CIN4- -> normal I/O pin;
0
4,3,2
CIN2- -> negative input; CIN(3,4)- -> normal I/O pin;
1
1,4,3
CIN3- -> negative input; CIN(1,4)- -> normal I/O pin;
Example: ( CI3,CI2,CI1,CI0)= (1010) => Comparator 4(-) combined together with Comparator 3(-) and Comparator 2(-),
and both CIN2- and CIN3- work as normal I/O pins.
CIN1+
+
CIN1 -
-
CIN2+
+
CIN2 (Normal I/O)
-
CIN3+
+
CIN3 (Normal I/O)
-
CIN4+
+
CIN4 -
-
C1
CO1
C2
CO2
C3
CO3
C4
CO4
7. IOCB0 (Pull-down Control Register)
7
6
5
4
3
2
1
0
/PD57
/PD56
/PD55
/PD54
/PD53
/PD52
/PD51
/PD50
• Bit 7 (/PD57) Control bit is used to enable the pull-down of P57 pin. (for EM78P257B only)
0: Enable internal pull-down
1: Disable internal pull-down
This specification is subject to change without prior notice.
24
07.27.2004 (V1.4)
EM78P257
OTP ROM
• Bit 6 (/PD56) Use to enable the pull-down of P56 pin. (for EM78P257B only)
• Bit 5 (/PD55) Use to enable the pull-down of P55 pin.
• Bit 4 (/PD54) Use to enable the pull-down of P54 pin.
• Bit 3 (/PD53) Use to enable the pull-down of P53 pin.
• Bit 2 (/PD52) Use to enable the pull-down of P52 pin.
• Bit 1 (/PD51) Use to enable the pull-down of P51 pin.
• Bit 0 (/PD50) Use to enable the pull-down of P50 pin.
• IOCB0 Register is both readable and writable.
8. IOCC0 (Open-drain Control Register)
7
6
5
4
3
2
1
0
OD67
OD66
OD65
OD64
OD63
OD62
OD61
OD60
• Bit 7 (OD67) Use to enable the open-drain of P67 pin.
0: Disable open-drain output
1: Enable open-drain output
• Bit 6 (OD66) Use to enable the open-drain of P66 pin.
• Bit 5 (OD65) Use to enable the open-drain of P65 pin.
• Bit 4 (OD64) Use to enable the open-drain of P64 pin.
• Bit 3 (OD63) Use to enable the open-drain of P63 pin.
• Bit 2 (OD62) Use to enable the open-drain of P62 pin.
• Bit 1 (OD61) Use to enable the open-drain of P61 pin.
• Bit 0 (OD60) Use to enable the open-drain of P60 pin.
• IOCC0 Register is both readable and writable.
9. IOCD0 (Pull-high Control Register)
7
6
5
4
3
2
1
0
/PH57
/PH56
/PH55
/PH54
/PH53
/PH52
/PH51
/PH50
• Bit 7 (/PH57) Use to enable the pull-high of P57 pin. (for EM78P257B only)
0: Enable internal pull-high
1: Disable internal pull-high
• Bit 6 (/PH56) Use to enable the pull-high of P56 pin. (for EM78P257B only)
• Bit 5 (/PH55) Use to enable the pull-high of P55 pin.
• Bit 4 (/PH54) Use to enable the pull-high of P54 pin.
• Bit 3 (/PH53) Use to enable the pull-high of P53 pin.
• Bit 2 (/PH52) Use to enable the pull-high of P52 pin.
• Bit 1 (/PH51) Use to enable the pull-high of P51 pin.
This specification is subject to change without prior notice.
25
07.27.2004 (V1.4)
EM78P257
OTP ROM
• Bit 0 (/PH50) Use to enable the pull-high of P50 pin.
• IOCD0 Register is both readable and writable.
10. IOCE0 (WDT Control Register)
7
6
5
4
3
2
1
0
WDTE
EIS
-
-
-
PSW2
PSW1
PSW0
• Bit 7 (WDTE) Control bit is used to enable Watchdog timer.
0: Disable WDT.
1: Enable WDT.
WDTE is both readable and writable.
• Bit 6 (EIS) Control bit is used to define the function of P60(/INT) pin.
0: P60, bi-directional I/O pin.
1: /INT, external interrupt pin. In this case, the I/O control bit of P60 (bit 0 of IOC6) must be set to "1".
When EIS is "0", the path of /INT is masked. When EIS is "1", the status of /INT pin can also be read
by way of reading Port 6 (R6). Refer to Fig. 8.
EIS is both readable and writable.
• Bit5~3 Not used.
• Bit 2 (PSW2) ~ Bit 0 (PSW0) WDT prescaler bits.
PSW2
PSW1
PSW0
WDT Rate
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1:1
1:2
1:4
1:8
1:16
1:32
1:64
1
1
1
1:128
11. IOCF0 (Interrupt Mask Register)
7
CMP4IE
6
CMP3IE
5
CMP2IE
4
CMP1IE
3
PPC/CMP
2
EXIE
1
ICIE
0
TCIE
• Bit 7 (CMP4IE) CMP3IF interrupt enable bit.
0: disable CMP4IF interrupt
1: enable CMP4IF interrupt
• Bit 6 (CMP3IE) CMP3IF interrupt enable bit.
0: disable CMP3IF interrupt
1: enable CMP3IF interrupt
• Bit 5 (CMP2IE) CMP2IF interrupt enable bit.
This specification is subject to change without prior notice.
26
07.27.2004 (V1.4)
EM78P257
OTP ROM
0: disable CMP2IF interrupt
1: enable CMP2IF interrupt
• Bit 4 (CMP1IE) CMP1IF interrupt enable bit.
0: disable CMP1IF interrupt
1: enable CMP1IF interrupt
• Bit 3 (CMP/PPC) Wake-up by which Interrupt sources.
0: PPC, wake-up by Port 5 input status change. (if enabled)
1: CMP, wake-up by comparators status change. (if enabled)
• Bit 2 (EXIE) EXIF interrupt enable bit.
0: disable EXIF interrupt
1: enable EXIF interrupt
• Bit 1 (ICIE) ICIF interrupt enable bit.
0: disable ICIF interrupt
1: enable ICIF interrupt
• Bit 0 (TCIE) TCIF interrupt enable bit.
0: disable TCIF interrupt
1: enable TCIF interrupt
• Individual interrupt is enabled by setting its associated control bit in the IOCF0 to "1".
• Global interrupt is enabled by the ENI instruction and is disabled by the DISI instruction. Refer to Fig.
10.
• IOCF0 register is both readable and writable.
12. IOC51 ( TCCA Counter )
An eight -bit clock counter. It can be read, written and cleared on any reset condition. When in
Mouse-Mode, it is Up/Down Counter, else it is UP Counter.
13. IOC61 ( TCCBL Counter) /LSB Counter
An eight-bit clock counter is for the least significant byte of TCCBX. TCCBL. It can be read, written
and cleared on any reset condition. When in Mouse-Mode, it is Up/Down Counter; When in IR-Mode,
it is Down Counter, else it is Up Counter.
14. IOC71 (TCCBH Counter) /MSB Counter
An eight -bit clock counter is for the most significant byte of TCCBX. TCCBH. It can be read, written
and cleared on any reset condition. When TCCBE(IOC80) is “0” THEN TCCBH is disable, TCCBE
is”1” then TC CB is 16 bit length counter. When it is in IR-Mode, it is Down Counter, else it is UP
Counter.
This specification is subject to change without prior notice.
27
07.27.2004 (V1.4)
EM78P257
OTP ROM
15. IOC81 (TCCC Counter )
An eight -bit clock counter. It can be read, written and cleared on any reset condition. When in
Mouse-Mode, it is Up/Down Counter, else it is UP Counter.
16. IOC91 ( Low-time Register )
The 8-bit Low-time register controls the active or Low period of the pulse.
The decimal value of its contents determines the number of oscillator cycles and verifies that the IR
OUT pin is active. The active period of IR OUT can be calculated as follows:
tLow=(decimal value held in Low-time register)/fosc
17. IOCA1 ( High-time Register )
The 8-bit High-time register controls the inactive or High period of the pulse.
The decimal value of its contents determines the number of oscillator cycles and verifies that the IR
OUT pin is inactive. The inactive period of IR OUT can be calculated as follows:
tHigh=(decimal value held in High-time register)/fosc
18. IOCB1 ( Pulse timer Register )
The contents of the Low-time and High-time register are loaded alternately into the Pulse timer.
When loaded, the contents of Pulse timer are decremented on every oscillator cycle. Upon reaching
zero, the Pulse timer will be loaded with the contents of the other.
4.3 TCC/WDT & Prescaler
There are two 8 -bit counters available as prescalers for the TCC and WDT respectively. The PSR0~PSR2 bits of the
CONT register are used to determine the ratio of the prescaler of TCC. Likewise, the PWR0~PWR2 bits of the
IOCE0 register are used to determine the prescaler of WDT. The prescaler (PSR0~PSR2) will be cleared by the
instructions each time they are written into TCC. The WDT and prescaler will be cleared by the “WDTC” and “SLEP”
instructions. Fig.6 depicts the circuit diagram of TCC/WDT.
• R1(TCC) is an 8-bit timer/counter. The clock source of TCC can be internal clock or external singal input (edge
selectable from the TCC pin). If TCC signal source is from internal clock, TCC will increase by 1 at every instruction
cycle (without prescaler). As illustrated in Fig. 6, selection of CLK=Fosc/2 or CLK=Fosc/4 depends on the CODE
Option bit <CLKS>. CLK=Fosc/2 is selected if the CLKS bit is "0", and CLK=Fosc/4 is selected if the CLKS bit is
"1". If TCC signal source is from external clock input, TCC will increase by 1 at every falling edge or rising edge of
the TCC pin.
• The watchdog timer is a free running on-chip RC oscillator. The WDT will keep on running even after the oscillator
driver has been turned off (i.e. in sleep mode). During the normal operation or the sleep mode, a WDT time-out (if
This specification is subject to change without prior notice.
28
07.27.2004 (V1.4)
EM78P257
OTP ROM
enabled) will cause the device to reset. The WDT can be enabled or disabled at any time during the normal mode
by software programming. Refer to WDTE bit of IOCE0 register. With no prescaler, the WDT time-out period is
approximately 18 ms1 or 1ms 2 (one oscillator start-up timer period).
CLK (Fosc/2 or Fosc/4)
Data Bus
0
TCC Pin
1
8-Bit Counter (RC)
MUX
8 to 1 MUX
TE (CONT)
SYNC
2 cycles
Prescaler
TS (CONT)
WDT
TCC overflow
interrupt
PSR2~0
(CONT)
8-Bit counter
WDTE
(IOCE0)
TCC (R1)
8 to 1 MUX
Prescaler
PSW2~0
(IOCE0)
WDT Time out
Fig. 6 Block Diagram of TCC and WDT
4.4 I/O Ports
The I/O registers, (Port 5, Port 6, and Port 7), are bi-directional tri-state I/O ports. Port 5 is pulled-high internally by
software. Likewise, P6 has its open-drain output also through software. Port 5 features an input status changed
interrupt (or wake-up) function and is pulled-down by software. Each I/O pin can be defined as "input" or "output" pin
by the I/O control register (IOC5 ~ IOC7). The I/O registers and I/O control registers are both readable and writable.
The I/O interface circuits for Port 5, Port 6 and Port7 are shown in Fig. 7, Fig. 8, and Fig. 9 respectively.
1
NOTE:
VDD=5V, Setup time period = 15.4ms ± 30%.
VDD=3V, Setup time period = 17.6ms ± 30%.
2
NOTE:
VDD=5V, Setup time period = 1.07ms ± 30%.
VDD=3V, Setup time period = 1.22ms ± 30%.
This specification is subject to change without prior notice.
29
07.27.2004 (V1.4)
EM78P257
OTP ROM
PCRD
PORT
Q
P
R
_
Q
C
L
Q
P
R
_
Q
C
L
D
CLK
PCWR
IOD
D
CLK
PDWR
PDRD
0
1
M
U
X
NOTE: Open-drain is not shown in the figure.
Fig. 7 The circuit of I/O port and I/O control register for Port 6 and Port7
PCRD
PORT
Bit 6 of IOCE
0
1
P Q
R
CLK _
C Q
L
D
Q
_
Q
P D
R
CLK
C
L
PCWR
Q
_
Q
P D
R
CLK
C
L
PDWR
IOD
M
U
X
PDRD
T10
P
R Q
CLK _
C Q
L
D
NOTE: Open-drain is not shown in the figure.
Fig. 8 The Circuit of I/O Port and I/O Control Register for P60(/INT)
This specification is subject to change without prior notice.
30
07.27.2004 (V1.4)
EM78P257
OTP ROM
PCRD
Q
P
R
_
CLK
Q
D
PCWR
C
L
P50 ~ P57
PORT
Q
P
R
_
CLK
Q
0
D
IOD
PDWR
C
L
M
U
X
1
PDRD
TI n
D
P
R
CLK
C
L
Q
_
Q
NOTE: Pull-high(down) is not shown in the figure.
Fig. 9 The Circuit of I/O Port and I/O Control Register for P50~P57
IOCF.1
RF.1
TI 0
TI 1
… .
TI 8
Fig. 10 Block Diagram of I/O Port 5 with Input Change Interrupt/Wake-up
This specification is subject to change without prior notice.
31
07.27.2004 (V1.4)
EM78P257
OTP ROM
Table 5 Usage of Port 5 Input Status Changed Wake-up/Interrupt Function
Usage of Port 5 input status changed Wake-up/Interrupt
(I) Wake-up from Port 5 Input Status Change
(II) Port 5 Input Status Change Interrupt
(a) Before SLEEP
1. Read I/O Port 5 (MOV R5,R5)
1. Disable WDT
2. Execute "ENI"
2. Read I/O Port 5 (MOV R5,R5)
3. Enable interrupt (Set IOCF0.1)
3. Execute "ENI" or "DISI"
4. IF Port 5 change (interrupt)
4. Enable interrupt (Set IOCF0.1)
→ Interrupt vector (3FEH)
5. Execute "SLEP" instruction
(b) After Wake-up
1. IF "ENI" → Interrupt vector (3FEH)
2. IF "DISI" → Next instruction
4.5 RESET and Wake-up
1. RESET
A RESET is initiated by one of the following events-
(1) Power on reset;
(2) /RESET pin input "low", or
(3) Watch dog timer time-out (if enabled).
The device is kept in a RESET condition for a period of approximately 18ms1 or 1ms2 (one oscillator start-up timer
period) after the reset is detected. The initial address is 000h.Once the RESET occurs, the following events are
performed.
• The oscillator is running, or will be started.
• The Program Counter (R2) is set to all "0".
• All I/O port pins are configured as input mode (high-impedance state).
• The Watchdog timer and prescaler are cleared.
• When power is switched on, the upper 3 bits of R3 are cleared.
• The bits of the CONT register are set to all "1" except for the Bit 6 (INT flag).
• The bits of the IOCB0 register are set to all "1".
• The IOCC0 register is cleared.
• The bits of the IOCD0 register are set to all "1".
1
NOTE:
VDD=5V, Setup time period = 15.4ms ± 30%.
VDD=3V, Setup time period = 17.6ms ± 30%.
2
NOTE:
VDD=5V, Setup time period = 1.07ms ± 30%.
VDD=3V, Setup time period = 1.22ms ± 30%.
This specification is subject to change without prior notice.
32
07.27.2004 (V1.4)
EM78P257
OTP ROM
• Bit 7 of the IOCE0 register is set to "1", and the others are cleared.
• RF and IOCF0 register are cleared.
The sleep (power down) mode is attained by executing the “SLEP” instruction. While entering sleep mode, WDT
(if enabled) is cleared but keeps on running. The controller can be awakened by
(1) external reset input on /RESET pin.
(2) WDT time-out (if enabled).
(3) Port 5 input status changed (if enabled).
(4) Comparator status changed.
The first two cases will cause the EM78P257A/B to reset. The T and P flags of R3 can be used to determine the
source of the reset (wake-up). Case 3 is considered the continuation of program execution and the global interrupt
("ENI" or "DISI" being executed) decides whether or not the controller branches to the interrupt vector following
wake-up. If ENI is executed before SLEP, the instruction will begin to execute from the address 3FEH after
wake-up. If DISI is executed before SLEP, the operation will restart from the instruction right next to SLEP after
wake-up.
Only one of Cases 2 and 3 can be enabled before entering the sleep mode. That is,
[a] if Port 5 input status changed interrupt is enabled before SLEP , WDT must be disabled by
software. However, the WDT bit in the option register remains enabled. Hence, the
EM78P257A/B can be awakened only by Case 1 or 3. Similarly, the same procedures should be
applied if comparator status change interrupt is used. The device can be awakened only by Case
1 or 4.
[b] if WDT is enabled before SLEP, Port 5 Input Status Change Interrupt must be disabled. Hence,
the EM78P257A/B can be awakened only by Case 1 or 2. Refer to the section on Interrupt.
If Port 5 Input Status Change Interrupt is used to wake-up the EM78P257A/B, the following instructions must be
executed before SLEP:
MOV A, @xx000110b
CONTW
CLR R1
MOV A, @xxxx1110b
CONTW
WDTC
MOV A, @0xxxxxxxb
IOW RE
MOV R5, R5
MOV A, @00000x1xb
IOW RF
ENI (or DISI)
SLEP
NOP
; Select internal TCC clock
; Clear TCC and prescaler
; Select WDT prescaler
; Clear WDT and prescaler
; Disable WDT
; Read Port 5
; Enable Port 5 input change interrupt
; Enable (or disable) global interrupt
; Sleep
This specification is subject to change without prior notice.
33
07.27.2004 (V1.4)
EM78P257
OTP ROM
In a similar way, if the Comparator Status Changed Interrupt is used to wake-up the EM78P257A/B , the following
instructions must be executed before SLEP:
MOV A, @0bxx000110
CONTW
CLR R1
MOV A, @0bxxxx1110
CONTW
WDTC
MOV A, @0b0xxxxxxx
IOW RE
MOV A, @0b1111xxxx
IOW RF
ENI (or DISI)
SLEP
NOP
; Select internal TCC clock
; Clear TCC and prescaler
; Select WDT prescaler
; Clear WDT and prescaler
; Disable WDT
; Enable comparator high interrupt
; Enable (or disable) global interrupt
; Sleep
One problem user must be aware of, is that after waking up from the sleep mode, WDT will enable automatically.
The WDT operation (being enabled or disabled) should be handled appropriately by software after waking up from
the sleep mode.
Table 6 Summary of the Initialized Values for Registers
Address
Name
N/A
IOC50
N/A
N/A
N/A
N/A
N/A
IOC60
IOC70
IOC80
(TCCCR)
IOC90
(CMPCR)
IOCA0
(COICS)
Reset Type
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Bit 7
C57
1
1
Bit 6
C76
1
1
Bit 5
C55
1
1
Bit 4
C54
1
1
Bit 3
C53
1
1
Bit 2
C52
1
1
Bit 1
C51
1
1
Bit 0
C50
1
1
P
P
P
P
P
P
P
P
C67
1
1
C66
1
1
C65
1
1
C64
1
1
C63
1
1
C62
1
1
C61
1
1
C60
1
1
P
P
P
P
P
P
P
P
X
1
1
X
1
1
X
1
1
X
1
1
X
1
1
X
1
1
C71
1
1
C70
1
1
P
P
P
P
P
P
P
P
X
0
0
X
0
0
X
0
0
X
0
0
TCC2E TCC4E TCC6E TCCBE
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
COIE4
0
0
COIE3
0
0
COIE2
0
0
COIE1
0
0
CE4
0
0
CE3
0
0
CE2
0
0
CE1
0
0
P
P
P
P
P
P
P
P
X
1
1
X
1
1
X
1
1
X
1
1
CI3
0
0
CI2
0
0
CI1
0
0
CI0
0
0
This specification is subject to change without prior notice.
34
07.27.2004 (V1.4)
EM78P257
OTP ROM
Address
N/A
N/A
N/A
N/A
Name
IOCB0
(PDCR)
IOCC0
(ODCR)
IOCD0
(PHCR)
IOCE0
Reset Type
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
N/A
N/A
IOCF0
IOC51
(TCCA)
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
N/A
IOC61
(TCCBL)
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
N/A
N/A
N/A
IOC71
(TCCBH)
IOC81
(TCCC)
IOC91
(LTR)
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
P
P
P
P
P
P
P
P
/PD57
1
1
/PD56
1
1
/PD55
1
1
/PD54
1
1
/PD53
1
1
/PD52
1
1
/PD51
1
1
/PD50
1
1
P
P
P
P
P
P
P
P
OD67
0
0
OD66
0
0
OD65
0
0
OD64
0
0
OD63
0
0
OD62
0
0
OD61
0
0
OD60
0
0
P
P
P
P
P
P
P
P
/PH57
1
1
/PH56
1
1
/PH55
1
1
/PH54
1
1
/PH53
1
1
/PH52
1
1
/PH51
1
1
/PH50
1
1
P
P
P
P
P
P
P
P
WDTC
0
0
EIS
0
0
X
1
1
X
1
1
X
1
1
PSW2
1
1
PSW1
1
1
PSW0
1
1
P
P
1
1
1
P
P
P
EXIE
ICIE
TCIE
0
0
0
0
0
0
P
P
P
0
0
0
0
0
0
0
0
PPC/C
MP
0
0
P
P
P
P
P
CMP4IE CMP3IE CMP2IE CPM1IE
TCCA7 TCCA6 TCCA5 TCCA4 TCCA3 TCCA2 TCCA1 TCCA0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
TCCBL TCCBL TCCBL TCCBL TCCBL TCCBL TCCBL TCCBL
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
TCCBH TCCBH TCCBH TCCBH TCCBH TCCBH TCCBH TCCBH
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
TCCC7 TCCC6 TCCC5 TCCC4 TCCC3 TCCC2 TCCC1 TCCC0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
LTR7
0
LTR6
0
LTR5
0
LTR4
0
LTR3
0
LTR2
0
LTR1
0
LTR0
0
This specification is subject to change without prior notice.
35
07.27.2004 (V1.4)
EM78P257
OTP ROM
Address
N/A
N/A
N/A
0x00
0x01
0x02
Name
IOCA1
(HTR)
IOCB1
(PTR)
CONT
R0(IAR)
R1(TCC)
R2(PC)
Reset Type
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Bit 7
0
Bit 6
0
Bit 5
0
Bit 4
0
Bit 3
0
Bit 2
0
Bit 1
0
Bit 0
0
P
P
P
P
P
P
P
P
HTR7
0
0
HTR6
0
0
HTR5
0
0
HTR4
0
0
HTR3
0
0
HTR2
0
0
HTR1
0
0
HTR0
0
0
P
P
P
P
P
P
P
P
PTR7
0
0
PTR6
0
0
PTR5
0
0
PTR4
0
0
PTR3
0
0
PTR2
0
0
PTR1
0
0
PTR0
0
0
P
P
P
P
P
P
P
P
INTE
1
1
INT
0
0
TS
1
1
TE
1
1
X
1
1
PSR2
1
1
PSR1
1
1
PSR0
1
1
P
P
P
P
P
P
P
P
U
P
U
P
U
P
U
P
U
P
U
P
U
P
U
P
P
P
P
P
P
P
P
P
0
0
0
0
0
0
0
0
0
0
0
0
0
00
0
0
P
P
P
P
P
P
P
P
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Jump to address 0x08 or continue to execute next instruction
RST
0
P
IOCS
0
0
PS0
0
0
T
1
t
P
1
t
Z
U
P
DC
U
P
C
U
P
P
P
P
t
t
P
P
P
GP1
U
P
BS
0
P
X
U
P
X
U
P
X
U
P
X
U
P
X
U
P
X
U
P
P
P
P
P
P
P
P
P
P57
1
1
P56
1
1
P55
1
1
P54
1
1
P53
1
1
P52
1
1
P51
1
1
P50
1
1
P
P
P
P
P
P
P
P
P67
1
1
P66
1
1
P65
1
1
P64
1
1
P63
1
1
P62
1
1
P61
1
1
P60
1
1
This specification is subject to change without prior notice.
36
0x03
0x04
0x05
0x06
R3(SR)
R4(RSR)
R5
R6
07.27.2004 (V1.4)
EM78P257
OTP ROM
Address
0x7
0x8
Name
R7
R8
Reset Type
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
0x9
0xA
0xB
0xC
0xD
R9
RA
(TCC
CR1)
RB
(TCC
CR2)
RC
(TCCPR)
RD
(TMR2H)
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
0xE
0xF
RE
(TMR2L)
RF
(ISR)
0x10~0x R10~R3F
3F
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Wake-Up from Pin
Change
Bit Name
Power-On
/RESET and WDT
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
P
P
P
P
P
P
P
P
U
P
U
P
U
P
U
P
U
P
U
P
P71
U
P
P70
U
P
P
P
P
P
P
P
P
P
U
P
U
P
U
P
U
P
U
P
U
P
U
P
U
P
P
P
P
P
P
P
P
P
CMPOU CMPOU CMPOU CMPOU
T4
T3
T2
T1
0
0
0
0
P
P
P
P
-
TCCCIF TCCBIF TCCAIF
0
P
0
P
0
P
0
P
P
P
P
P
P
P
P
P
0
P
0
P
0
P
0
P
0
P
TCCAIE
0
P
0
P
0
P
P
P
P
P
P
P
P
P
0
P
TCCBIE
0
P
0
P
0
P
0
P
TCCCIE
0
P
0
P
0
P
P
P
P
P
P
P
P
P
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
DP1
0
0
DP0
0
0
MF1
0
0
MF0
0
0
IRE
0
0
HF
0
0
LGP
0
0
PWM
0
0
P
MOUSE
N
0
0
P
P
P
P
P
P
P
-
-
-
-
-
-
-
0
0
0
0
0
0
0
0
0
0
0
0
0
0
P
P
P
P
P
P
P
P
0
0
EXIF
0
0
ICIF
0
0
TCIF
0
0
CMP4IF CMP3IF CMP2IF CMP1IF
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
U
P
U
P
U
P
U
P
U
P
U
P
U
P
U
P
This specification is subject to change without prior notice.
37
07.27.2004 (V1.4)
EM78P257
OTP ROM
Address
Name
Reset Type
Wake-Up from Pin
Change
X: not used.
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
P
P
P
P
P
P
P
P
U: unknown or don’t care.
P: previous value before reset.
t: check Table 6
2. /RESET Configure
Refer to Fig.11 When the RESET bit in the OPTION word is programmed to 0, the external /RESET is enabled.
When programmed to 1, the internal /RESET is enabled, tied to the internal Vdd and the pin is defined as P71.
VDD
D
Oscillator
Q
CLK
CLK
CLR
Power-On Reset
Voltage Detector
ENWDTB
WDT Timeout
WDT
Setup time
Reset
/RESET
Fig. 11 Block Diagram of Reset of Controller
3. The status of RST, T, and P of STATUS register
A RESET condition is initiated by one of the following events:
1. A power-on condition.
2. A high-low-high pulse on the /RESET pin, or
3. Watchdog timer time-out.
The values of RST, T, and P, as listed in Table 7 below. are used to check how the processor wakes up.
Table 8 shows the events which may affect the status of RST, T, and P.
This specification is subject to change without prior notice.
38
07.27.2004 (V1.4)
EM78P257
OTP ROM
Table 7 The Values of RST, T, and P after RESET
Reset Type
RST
T
P
0
0
0
0
0
1
1
*P
1
0
0
1
1
*P
0
1
0
0
RST
T
P
Power on
WDTC instruction
0
*P
1
1
1
1
WDT time-out
SLEP instruction
Wake-Up on pin change during SLEEP mode
0
*P
1
0
1
1
*P
0
0
Power on
/RESET during Operating mode
/RESET wake-up during SLEEP mode
WDT during Operating mode
WDT wake-up during SLEEP mode
Wake-Up on pin change during SLEEP mode
*P: Previous status before reset
Table 8 The Status of RST, T, and P being Affected by Events
Event
*P: Previous value before reset
This specification is subject to change without prior notice.
39
07.27.2004 (V1.4)
EM78P257
OTP ROM
4.6 Interrupt
The EM78P257A/B has five interrupt sources as listed below:
(1) TCC overflow interrupt.
(2) Port 5 Input Status Changed Interrupt.
(3) External interrupt [(P60, /INT) pin].
(4) Comparators status change.
(5) IR OUT interrupt.
Before the Port 5 Input Status Change Interrupt is enabled, reading Port 5 (e.g. "MOV R5,R5") is necessary. Each
Port 5 pin will have this feature if its status changes The Port 5 Input Status Change Interrupt will wake up the
EM78P257A/B from the sleep mode if it is enabled prior to going into the sleep mode by executing SLEP
instruction. When wake-up occurs, the controller will continue to execute program in-line if the global interrupt is
disabled. . If the global interrupt is enabled, it will branch out to the interrupt vector 3FEH.
RF is the interrupt status register that records the interrupt requests in the relative flags/bits. IOCF0 is an interrupt
mask register. The global interrupt is enabled by the ENI instruction and is disabled by the DISI instruction. Once
in the interrupt service routine, the source of an interrupt can be determined by polling the flag bits in RF. The
interrupt flag bit must be cleared by instructions before leaving the interrupt service routine to avoid recursive
interrupts.
The flag (except ICIF0 bit) in the Interrupt Status Register (RF) is set regardless of the status of its mask bit or the
execution of ENI. Note that the outcome of RF will be the logic AND of RF and IOCF0 (refer to Fig.12), The RETI
instruction ends the interrupt routine and enables the global interrupt (the execution of ENI).
When an interrupt is generated by the Timer clock/counter (when enabled), the next instruction will be fetched
from address 3FA,3F8,3F6, and 3F4H(TCC,TCCA,TCCB, and TCCC). When an interrupt is generated by the
Comparators (when enabled), the next instruction will be fetched from address 3F2,3F0,3EE, or 3ECH
individually(CO1,CO2,CO3, or CO4). Before the interrupt subroutine is executed, the contents of ACC and the R3
register will be saved by hardware. If another interrupt occurred, the ACC and R3 will be replaced by the new
interrupt. After the interrupt service routine is finished, ACC and R3 will be pushed back.
This specification is subject to change without prior notice.
40
07.27.2004 (V1.4)
EM78P257
OTP ROM
VCC
P
R
CLK
C
L
RF
D
/IRQn
Q
IRQn
INT
_
Q
RFRD
IRQm
ENI/DISI
IOCF
Q
P
R
_
Q
C
L
IOD
D
CLK
IOCFWR
/RESET
IOCFRD
RFWR
Fig. 12 Interrupt input circuit
Interrupt sources
ACC
Interrupt
occurs
STACKACC
ENI/DISI
R3
RETI
STACKR3
Fig. 13 Interrupt backup diagram
In EM78P257A/B, each individual interrupt source has its own interrupt vector as depicted in Table 9.
Table 9 Interrupt vector
Interrupt vector
3EC
3EE
3F0
3F2
3F4
3F6
3F8
3FA
3FC
3FE
Interrupt status
Comparator CO4 interrupt
Comparator CO3 interrupt
Comparator CO2 interrupt
Comparator CO1 interrupt
TCCC overflow interrupt
TCCB overflow interrupt
TCCA overflow interrupt
TCC overflow interrupt
External interrupt
Port 5 pin change
This specification is subject to change without prior notice.
41
07.27.2004 (V1.4)
EM78P257
OTP ROM
4.7 Timer/Counter
1. Overview
Timer1 (TCCA ) and Timer3 (TCCC) are eight-bit clock counters. Timer2 (TCCB) is a 16-bit clock counter. TCCA,
TCCB, and TCCC can be read and written, and cleared at every reset condition.
2. Function Description
Fig.14 shows the TIMER block diagram. Each signal and block is described as follows :
Set predict value
Set predict value
Set predict value
TCCAEN
TCCCEN
TCCBEN
Set TCCCIF
Set TCCBIF
Set TCCAIF
TCCC
TCCB
TCCA
Overflow
Overflow
Overflow
Osci input or
External input
Osci input or
External input
Osci input or
External input
Fig. 14 TIMER Block Diagram
• Osci input : Input clock.
• TCCX: Timer 1~3 register; TCCX increases until it matches with zero, and then reload the previous
value. If TCCXIE is enabled, TCCXIF will be set at the same time.
3. Programming the Related Registers
When defining TCCX, refer to the related registers of its operation as shown in the Table 10 and Table 11 below.
Table 10 Related Control Registers of the TCCX
Address
0x0A
0x0B
0x08
Name
Bit 7
Bit 6
Bit 5
Bit 4
TCR(1)/RA
0
0
0
0
TCR(2)/RB
0
TCCBIE/0 TCCBTS/0 TCCBTE/0
TCCCR/IOC80 TCC2E TCC4E
TCC6E
TCCBE
Bit 3
0
0
0
Bit 2
Bit 1
Bit 0
TCCAIE/0 TCCATS/0 TCCATE/0
TCCCIE/0 TCCCTS/0 TCCCTE/0
0
0
0
Table 11 Related Status/Data Registers of TCCX
Address
Name
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
0x09
TCCSR/R9 CMPOUT4 CMPOUT3 CMPOUT2 CMPOUT1
0
0x05
TCCA/IOC51
TCCA7
TCCA6
TCCA5
TCCA4
TCCA3
0x06
TCCBL/IOC61 TCCBL7 TCCBL6 TCCBL5 TCCBL4 TCCBL3
0x07
TCCBH/IOC71 TCCBH7 TCCBH6 TCCBH5 TCCBH4 TCCBH3
0x08
TCCC/IOC81
TCCC7
TCCC6
TCCC5
TCCC4
TCCC3
0x09
LTR/IOC91
LTR7
LTR6
LTR5
LTR4
LTR3
0x0A
HTR/IOCA1
HTR7
HTR6
HTR5
HTR4
HTR3
0x0B
PTR/IOCB1
PTR7
PTR6
PTR5
PTR4
PTR3
This specification is subject to change without prior notice.
42
Bit 2
TCCCIF
TCCA2
TCCBL2
TCCBH2
TCCC2
LTR2
HTR2
PTR2
Bit 1
TCCBIF
TCCA1
TCCBL1
TCCBH1
TCCC1
LTR1
HTR1
PTR1
Bit 0
TCCAIF
TCCA0
TCCBL0
TCCBH0
TCCC0
LTR0
HTR0
PTR0
07.27.2004 (V1.4)
EM78P257
OTP ROM
4.8 Comparator
EM78P257A/B has four comparators, consisting of two analog inputs and one output. The comparators can be
employed to wake up from sleep mode. Fig. 15 and Fig. 16 show the circuit of the comparator.
CO2
CIN2+
-
-
+
+
CO1
CIN2-
CIN1+
CO2
-
-
CIN1-
CIN2+
+
+
CO1
CIN2-
CIN1+
CIN1-
EM78257A
EM78257B
C I N- 4 -
CIN3 CIN3+
CO3
+
+
-
-
CIN4+
CIN3-
CO4
CIN3+
CO3
CIN4+
+
-
-
CIN4+
CO4
Fig. 15 Comparator Pin Assignments
Cin CMP
+
Cin+
CO
CinCin+
Output
25mV
Fig. 16 Comparator Operating Modes
1. External Reference Signal
The analog signal that is presented at Cin- compares to the signal at Cin+, and the digital output (CO) of the
comparator is adjusted accordingly.
• The reference signal must be between Vss and Vdd
This specification is subject to change without prior notice.
43
07.27.2004 (V1.4)
EM78P257
OTP ROM
• The reference voltage can be applied to either pin of a comparator
• Threshold detector applications may use the same references
• The comparator can operate from the same or different reference sources
• There are 16 combinations of the negative inputs of the four comparators
Name
CMPCR/IOC90
Bit 7
-
Bit 6
-
Bit 5
-
Bit 4
-
Bit 3
CI3
Bit 2
CI2
Bit 1
CI1
Bit 0
CI0
Table 12 The List of CO-INPUT Combine Sequence
CI3 CI2 CI1 CI0 CO- Input combine status
Comment
0
0
0
0
N/A
1,2,3, and 4 -> negative inputs,
0
0
0
1
1,2
CIN2- -> negative input; CIN1- -> normal I/O pin;
0
0
1
0
1,3
CIN3- -> negative input; CIN1- -> normal I/O pin;
0
0
1
1
1,4
CIN4- -> negative input; CIN1- -> normal I/O pin;
0
1
0
0
2,3
CIN3- -> negative input; CIN2- -> normal I/O pin;
0
1
0
1
2,4
CIN4- -> negative input; CIN2- -> normal I/O pin;
0
1
1
0
3,4
CIN4- -> negative input; CIN3- -> normal I/O pin;
0
1
1
1
1,2,3
CIN3- -> negative input; CIN(1,2)- -> normal I/O pin;
1
0
0
0
1,2,4
CIN4- -> negative input; CIN(1,2)- -> normal I/O pin;
1
0
0
1
1,3,4
CIN4- -> negative input; CIN(1,3)- -> normal I/O pin;
1
0
1
0
2,3,4
CIN4- -> negative input; CIN(2,3)- -> normal I/O pin;
1
0
1
1
1,2,3,4
CIN4- -> negative input; CIN(1,2,3)- -> normal I/O pin;
1
1
0
0
3,2
CIN2- -> negative input; CIN3- -> normal I/O pin;
1
1
0
1
4,2
CIN2- -> negative input; CIN4- -> normal I/O pin;
1
1
1
0
4,3,2
CIN2- -> negative input; CIN(3,4)- -> normal I/O pin;
1
1
1
1
1,4,3
CIN3- -> negative input; CIN(1,4)- -> normal I/O pin;
Example: ( CI3,CI2,CI1,CI0)= (1010) => Comparator 4(-) combine together with Comparator 3(-) and Comparator
2(-), and both of CIN3- and CIN2- work as normal I/O pins.
This specification is subject to change without prior notice.
44
07.27.2004 (V1.4)
EM78P257
OTP ROM
CIN1+
+
CIN1 -
-
CIN2+
+
CIN2 (Normal I/O)
-
CIN3+
+
CIN3 (Normal I/O)
-
CIN4+
+
CIN4 -
-
C1
CO1
C2
CO2
C3
CO3
C4
CO4
2. Comparator Outputs
• The compared result are stored in the CMPOUT of R9
• The comparator outputs can output to P51, P52, P63 and P64 by programming Bits 4, 5, 6, and 7
<IOC90> of the CMP control register to 1
• P52, P51, P63 and P64 must be configured as output if implemented
• Fig. 17 shows the comparator output block diagram.
To C0
COIEX
From OP I/O
CEX
EN
Q
EN
Q
D
D
To CMPOUT
RESET
To
CMPXIF
COIEX
CMPXIE
Fig. 17 The Output Configuration of a Comparator
3. Programming the Related Registers
This specification is subject to change without prior notice.
45
07.27.2004 (V1.4)
EM78P257
OTP ROM
When defining Comparators, refer to the related registers of its operation as shown in Table 13 and Table 14 below.
Table 13 Related Control Registers of the Comparators
Address
0x09
0x0A
0x0F
Name
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
CMPCR/IOC90 COIE4/0 COIE3/0 COIE2/0 COIE1/0
CE4/0
CE3/0
COICS/IOCA0
0
0
0
0
CI3/0
CI2/0
IMR/IOCF0 CMP4IE/0 CMP3IE/0 CMP2IE/0 CMP1IE/0 PPC/CMP EXIE/0
Bit 1
Bit 0
CE2/0 CE1/0
CI1/0 CI0/0
ICIE/0 TCIE/0
Table 14 Related Status/Data Registers of Comparators
Address
Name
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0x09 CMPOUT/R9 CMPOUT4/0 CMPOUT3/0 CMPOUT2/0 CMPOUT1/0 0 TCCCIF/0 TCCBIF/0 TCCAIF/0
0x0F
ISR/RF
CMP4IF/0
CMP3IF/0
CMP2IF/0
CMP1IF/0
0
EXIF/0
ICIF/0
TCIF/0
4. Interrupt
• INT, and CMPXIE must be enable
• Interrupt occurs whenever a change takes place on the output pin of the comparators
• The actual changes on the pins can be determined by reading the bits CMPOUTX and R9<P7~P4>
• CMPXIF, the comparator interrupt flag, can only be cleared by software
5. Wake-Up from SLEEP mode
• If enabled, the comparators remains active and the interrupt stays functional during SLEEP mode.
• If a mismatch occurs, the interrupt will wake up the device from SLEEP mode.
• The power consumption should be taken into consideration for the sake of power saving.
• If the function is unemployed during the SLEEP mode, turn off comparators before entering into sleep
mode.
4.9 Oscillator
1. Oscillator Modes
The EM78P257A/B can be operated in the five different oscillator modes, such as Internal RC oscillator mode
(IRC), RC oscillator with Internal capacitor mode(IC),External RC oscillator mode(ERC), High XTAL oscillator
mode(HXT), and Low XTAL oscillator mode(LXT). User can select oneof them by programming OSC2,OCS1 and
OSC0 in the CODE Option register. Table15 depicts how these five modes are defined.
The up-limited operation frequency of crystal/resonator on the different VDDs is listed in Table 16
Table 15 Oscillator Modes defined by OSC2,OSC1 and OSC0
Mode
OSC2
OSC1
OSC0
1
1
1
1
1
0
IRC(Internal RC oscillator mode)
IC(Internal C oscillator mode)
This specification is subject to change without prior notice.
46
07.27.2004 (V1.4)
EM78P257
OTP ROM
ERC(External RC oscillator mode)
HXT(High XTAL oscillator mode)
LXT(Low XTAL oscillator mode)
1
0
0
0
0
0
1
1
0
<Note> The transient point of system frequency between HXT and LXT is around 400 KHz.
Table 16 The summary of maximum operating speeds
Conditions
VDD
2.3
3.0
5.0
Two clocks
Fxt max.(MHz)
4
8
20
2. Crystal Oscillator/Ceramic Resonators(XTAL)
EM78P257A/B can be driven by an external clock signal through the OSCI pin as shown in Fig.18 below.
OSCI
EM78P257A/B
OSCO
Fig. 18 Circuit for External Clock Input
In most applications, pin OSCI and pin OSCO can be connected with a crystal or ceramic resonator to generate
oscillation. Fig. 19 depicts such circuit. The same thing applies whether it is in the HXT mode or in the LXT mode.
Table 17 provides the recommended values of C1 and C2. Since each resonator has its own attribute, user
should refer to its specification for appropriate values of C1 and C2. RS, a serial resistor, may be necessary for AT
strip cut crystal or low frequency mode.
C1
OSCI
EM78P257A/B
XTAL
OSCO
RS
C2
Fig. 19 Circuit for Crystal/Resonator
This specification is subject to change without prior notice.
47
07.27.2004 (V1.4)
EM78P257
OTP ROM
Table 17 Capacitor Selection Guide for Crystal Oscillator or Ceramic Resonators
Oscillator Type
Frequency Mode
Ceramic Resonators
HXT
LXT
Crystal Oscillator
HXT
Frequency
455 kHz
2.0 MHz
4.0 MHz
32.768kHz
100KHz
200KHz
455KHz
1.0MHz
2.0MHz
4.0MHz
C1(pF)
100~150
20~40
10~30
25
25
25
20~40
15~30
15
15
C2(pF)
100~150
20~40
10~30
15
25
25
20~150
15~30
15
15
3. External RC Oscillator Mode
For some applications that do not need to have its timing to be calculated precisely, the RC oscillator (IV.12.3-1)
offers a lot of cost savings. Nevertheless, it should be noted that the frequency of the RC oscillator is influenced by
the supply voltage, the values of the resistor (Rext), the capacitor (Cext), and even by the operation temperature.
Moreover, the frequency also changes slightly from one chip to another due to the manufacturing process
variation.
In order to maintain a stable system frequency, the values of the Cext should not be less than 20pF, and that the
value of Rext should not be greater than 1 M ohm. If they cannot be kept in this range, the frequency is easily
affected by noise, humidity, and leakage.
The smaller the Rext in the RC oscillator, the faster its frequency will be. On the contrary, for very low Rext values,
for instance, 1 KΩ, the oscillator becomes unstable because the NMOS cannot discharge the current of the
capacitance correctly.
Based on the reasons above, it must be kept in mind that all of the supply voltage, the operation temperature, the
components of the RC oscillator, the package types, the way the PCB is layout, will affect the system frequency
Vcc
Rext
OSCI
Cext
EM78P257A/B
Fig. 20 Circuit for External RC Oscillator Mode
This specification is subject to change without prior notice.
48
07.27.2004 (V1.4)
EM78P257
OTP ROM
Table 18 RC Oscillator Frequencies
Cext
Rext
Average Fosc 5V,25°C
Average Fosc 3V,25°C
20 pF
3.3k
5.1k
10k
100k
3.18 MHz
2.1 MHz
1.14 MHz
118 KHz
2.75MHz
2.0MHz
1.12 MHz
121 KHz
100 pF
3.3k
5.1k
10k
100k
1.25 MHz
830 KHz
435 KHz
46KHz
1.20 KHz
815 KHz
440 KHz
48 KHz
3.3k
5.1k
10k
560 KHz
370 KHz
195 KHz
545 KHz
360 KHz
195 KHz
100k
20 KHz
21 KHz
300 pF
<Note>
1. Measured on DIP packages.
2. Design reference only
3. The frequency drift about ±30%.
4. RC Oscillator Mode with Internal Capacitor
If both precision and cost are taken into consideration, EM78P257A/B also offers a special oscillation mode,
which is equipped with an internal capacitor and an external resistor connected to Vcc. The internal capacitor
functions as temperature compensator. In order to obtain more accurate frequency, a precise resistor is
recommended.
Vcc
Rext
OSCI
EM78P257A/B
Fig. 21 Circuit for Internal C Oscillator Mode
Table 19 R Oscillator Frequencies
<Note>
Rext
Average Fosc 5V,25°C
Average Fosc 3V,25°C
51k
4.3 MHz
4.3 MHz
100k
300k
2.5 MHz
800KHz
2.4 MHz
800 KHz
1. Measured on DIP packages.
2. Design reference only
This specification is subject to change without prior notice.
49
07.27.2004 (V1.4)
EM78P257
OTP ROM
3. The frequency drift about ±30%.
5. Internal RC Oscillator Mode
EM78P257A/B offers a versatile internal RC mode with default frequency of 4MHz. The frequency can be
configured by programming the bit RCM0 and bit RCM1 of the Option code. Table 20 describes a typical instance
of the calibration.
Table 20 Calibration Selection for Internal RC Mode
RCM 1
1
1
0
0
<Note>
RCM 0
1
0
1
0
Frequency(MHz)
4
1
455kHz
32.768kHz
1. Measured on DIP packages.
2. Design reference only, the frequency value vary with temperature ,VDD and process.
3. The frequency drift about ±35%.
4.10 Power On Considerations
Any microcontroller is not guaranteed to start to operate properly before the power supply stabilizes at its steady
state.
EM78P257A/B POR voltage range is 1.2V~1.8V. Under customer application, when power is OFF, Vdd must drop
to below 1.2V and remains OFF for 10us before power can be switched ON again. This way, the EM78P257A/B
will reset and work normally. The extra external reset circuit will work well if Vdd can rise at very fast speed (50 ms
or less). However, under most cases where critical applications are involved, extra devices are required to assist
in solving the power-up problems.
1. Programmable Oscillator Set-Up Time
The Option word (SUT) is used to define the oscillator Set-Up time (18ms or 1ms). Theoretically, the range is from
1 ms to 18 ms. For most of crystal or ceramic resonators, the lower the operation frequency, the longer is the
required Set-up time.
2. External Power On Reset Circuit
The circuit shown in Fig.22 implements an external RC to produce the reset pulse. The pulse width (time constant)
should be kept long enough for Vdd to reach minimum operation voltage. This circuit is used when the power
supply has slow rise time. Because the current leakage from the /RESET pin is about ±5µA, it is recommended
that R should not be greater than 40 K. In this way, the voltage in pin /RESET will be held below 0.2V. The diode
This specification is subject to change without prior notice.
50
07.27.2004 (V1.4)
EM78P257
OTP ROM
(D) acts as a short circuit at the moment of power down. The capacitor C will discharge rapidly and fully. Rin, the
current-limited resistor, will prevent high current discharge or ESD (electrostatic discharge) from flowing to pin
/RESET.
Vdd
R
EM78P257A/B
D
/RESET
Rin
C
Fig. 22 External Power on Reset Circuit
3. Residue-Voltage Protection
When battery is replaced, device power (Vdd) is taken off but residue-voltage remains. The residue-voltage may
trips below Vdd minimum, but not to zero. This condition may cause a poor power on reset. Fig.23 and Fig.24
show how to b uild a residue-voltage protection circuit
Vdd
Vdd
33K
EM78P257A/B
Q1
10K
/RESET
100K
1N4684
Fig. 23 Circuit 1 for the residue voltage protection
This specification is subject to change without prior notice.
51
07.27.2004 (V1.4)
EM78P257
OTP ROM
Vdd
Vdd
R1
EM78P257A/B
Q1
/RESET
R2
R3
Fig. 24 Circuit 2 for the residue voltage protection
This specification is subject to change without prior notice.
52
07.27.2004 (V1.4)
EM78P257
OTP ROM
4.11 MOUSE APPLICATION MODE
1. Overview & Features
Overview:
Fig.25 shows how EM78P257A/B communicates with PS/2 connector of PC.
Features:
• RC oscillation.
• Six photo-couples input.
MOUSEN
VCC
+
C1
-
X1(TCC1)
4.5R
MOUSEN
R
15K
MOUSEN
TCCA(UP/DOWN Counter)
After MCU process
send data to PC
VCC
X2(TCC2)
+
C2
-
4.5R
R
15K
MOUSEN
VCC
+
C3
-
Y1(TCC3)
4.5R
R
MOUSEN
15K
TCCB(UP/DOWN Counter)
After MCU process
send data to PC
VCC
Y2(TCC4)
+
C4
-
4.5R
R
MOUSEN
15K
This specification is subject to change without prior notice.
53
07.27.2004 (V1.4)
EM78P257
OTP ROM
MOUSEN
VCC
+
C5
-
Z1(TCC5)
4.5R
R
MOUSEN
15K
TCCC(UP/DOWN Counter)
After MCU process
send data to PC
VCC
Z2(TCC6)
+
C6
-
4.5R
R
MOUSEN
15K
Fig. 25 Mouse Function Diagram
2. Function Description
The following describes the function of each block and signal of Fig.25 depicting how to complete a Mouse
function.
P61/X1
P66/X2
P51/Y1
P50/Y2
P56/Z1
P57/Z2
Comparator
Counter
Use current comparator to measure photo-couples “ON”,or “OFF”.
Four photo-couple singles denoting UP, DOWN, LEFT, and RIGHT states.
During scanning period, as long as the photo-couples state changes, the value of
vertical or horizontal counter will increase or decrease accordingly.
Z-axis inputs.
Photo mode: Current comparator input.
Output level is decided by comparing the value of its two (+,-) pins.
Recording the horizontal, vertical, or rolling shifting values.
3. Programming the Related Registers
When defining MOUSE mode, refer to the related register of its operation as shown in the Table 21 and Table 22
below.
Table 21 Related Control Registers of the MOUSE Mode
Address
0X08
0x0A
0X0B
0X0E
Name
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit1
Bit 0
CONT
INTE/0
INT/0
TS/0
TE/0
0
PSR2/0
PSR1/0
PSR0/0
*INTC/IOC80 TCC2E/0 TCC4E/0 TCC6E/0 TCCBE/0 0
0
0
0
TCR(1)/RA
0
0
0
0
0
TCCAIE/0 TCCATS/0 TCCATE/0
TCR(2)/RB
0
TCCBIE/0 TCCBTS/0 TCCBTE/0 0 TCCCIE/0 TCCCTS/0 TCCCTE/0
MCR/RE
MOUSEN/0
0
0
0
0
0
0
0
<Note> *Bit name/initial value
Table 22 Related Status/Data Register of the MOUSE Mode
Address
Name
Bit 7
Bit 6
This specification is subject to change without prior notice.
Bit 5
54
Bit 4
Bit 3
Bit 2
Bit1
Bit 0
07.27.2004 (V1.4)
EM78P257
OTP ROM
0x01
TCC/R1
0X09
TCCSR/R9
0X05 TCCA/IOC51
0x06 TCCBL/IOC61
TCC7
TCC6
TCC5
TCC4
CMPOUT4 CMPOUT3 CMPOUT2 CMPOUT1
TCCA7
TCCA6
TCCA5
TCCA4
TCCB7
TCCB6
TCCB5
TCCB4
TCC3
0
TCCA3
TCCB3
TCC2
TCCCIF
TCCA2
TCCB2
TCC1
TCCBIF
TCCA1
TCCB1
TCC0
TCCAIF
TCCA0
TCCB0
• TCCA: An eight-bit time clock/counter A. In MOUSE mode, it will load X-axis data into TCCA, it is
defined as an increment/decrement counter.
• TCCB: An eight-bit time clock/counter B. In MOUSE mode, it will load Y-axis data into TCCB, it is
defined as an increment/decrement counter.
• TCCC: An eight-bit time clock/counter C. In MOUSE mode, it will load Z-axis data into TCCC, it is
defined as an increment/decrement counter.
Table 23 TCCX Status Register (1)
7
6
5
4
3
2
1
0
-
-
-
-
-
TCCAIE
TCCATS
TCCATE
• Bit 7~Bit 3 Not used, read as ‘0’.
• Bit 2(TCCAIE) TCCAIF interrupt enable bit.
0: disable TCCAIF interrupt
1: enable TCCAIF interrupt
• Bit 1(TCCATS) TCCA signal source
0: internal instruction cycle clock
1: transition on the TCC1 pin
• Bit 0(TCCATE) TCCA signal edge
0: increment if the transition from low to high (leading edge) takes place on the TCC2 pin
1: increment if the transition from high to low (leading edge) takes place on the TCC2 pin
Table 24 TCCX Status Register (2)
7
-
6
TCCBIE
5
TCCBTS
4
TCCBTE
3
-
2
TCCCIE
1
TCCCTS
0
TCCCTE
• Bit 7 Not used.
• Bit 6(TCCBIE) TCCBIF interrupt enable bit.
0: disable the TCCBIF interrupt
1: enable the TCCBIF interrupt
• Bit 5(TCCBTS) TCCB signal source
0: internal instruction cycle clock
1: transition on the TCC3 pin
• Bit 4(TCCBTE) TCCB signal edge
0: increment if the transition from low to high (leading edge) takes place on the TCC4 pin
1: increment if the transition from high to low (leading edge) takes place on the TCC4 pin
This specification is subject to change without prior notice.
55
07.27.2004 (V1.4)
EM78P257
OTP ROM
• Bit 3 Not used
• Bit 2(TCCCIE) TCCCIF interrupt enable bit.
0: disable the TCCCIF interrupt
1: enable the TCCCIF interrupt
• Bit 1(TCCCTS) TCCC signal source
0: internal instruction cycle clock
1: transition on the TCC5 pin.
• Bit 0(TCCCTE) TCCC signal edge
0: increment if the transition from low to high (leading edge) takes place on the TCC6 pin
1: increment if the transition from high to low (leading edge) takes place on the TCC6 pin
Table 25 MOUSE Control Register
7
6
5
4
3
2
1
0
MOUSEN
-
-
-
-
-
-
-
• Bit 7 (MOUSEN) Mouse application Enable bit.
0: Disable MOUSEN. TCCA,TCCB and TCCC are increment counters.
1: Enable MOUSEN. RA(disable Bit0(TCCATE), Bit1(TCCATS) is ‘1’, Bit2(TCCAIE) is ‘0’ ),
RB(disable Bit0(TCCCTE), Bit1(TCCCTS) is ‘1’, Bit2(TCCCIE) is ‘0’, Bi, disable Bit4(TCCBTE),
Bit5(TCCBTS) is ‘1’, Bit6(TCCBIE) is ‘0’ ) , and TCCA, TCCBL and TCCC work as up/down counters.
For other pin assignments, refer to IOC80.
• Bit 6~Bit 0 Not used.
4. MOUSE mode Timing
(1)Photo-couples pulse width:
X1(Y1)
X2(Y2)
Tr
Tf
Counter increment if the rising/falling edge of X1 is leading the one on X2.
Counter decrement if the rising/falling edge of X1 is falling behind the one on X2.
(2) Sending DATA (data from EM78P257A/B to system)
This specification is subject to change without prior notice.
56
07.27.2004 (V1.4)
EM78P257
OTP ROM
1st
CLK
2nd
CLK
CLK
Tsci
11th
CLK
10th
CLK
Tpi
Tsca
Tsdc
Tsdc
DATA
Start bit
Parity Bit Stop bit
Bit0~Bit7
If CLK is low (inhibit status), no data transmission occurs.
If CLK is high and DATA is low (request-to-send), data is updated. Data is received from the system
and no transmission is started by EM78A/B until CLK and DATA are both high. IF CLK and DATA
are both high, the transmission is ready. DATA is valid prior to the falling edge of CLK and beyond
the rising edge of CLK. During transmission, EM78P257A/B check for line contention by checking
for an inactive level on CLK at interval not to exceed 100u seconds. Contention occurs when the
system lowers CLK to inhibit EM78P257A/B output after EM78P257A/B has started a transmission.
If this occurs before the rising edge of the tenth clock, EM78P257A/B internally stores its buffer and
returns DATA and CLK to an active level. If the contention does not occur by the tenth clock, the
transmission is completed.
Following a transmission, the system inhibits EM78P257A/B by holding CLK low until it can service
the input or until the system receives a request to send a response from EM78P257A/B.
(3) Receiving DATA (from system to EM78P257A/B)
Inhibit
1st
CLK
CLK
Tmca
DATA
2nd
CLK
9th
CLK
10th
CLK
11th
CLK
Tmci
Tmdc
Start bit
Bit0~Bit7
Parity Bit
Stop bit Line Control Bit
System first checks if EM78P257A/B is transmitting data. If transmitting, the system can override
the output by forcing CLK to an inactive level prior to the tenth clock. If EM78P257A/B transmission
is beyond the tenth clock, the system receives the data. If EM78P257A/B is not transmitting or if the
system choose to override the output, the system forces CLK to an inactive level for a period of not
less than 100us while preparing for output. When the system is ready to output start bit (0), it allows
CLK to go to active level. If request-to-send is detected, EM78P257A/B clocks 11 bits. Following
the tenth clock, EM78P257A/B checks for an active level on the DATA line, and if found, forces
This specification is subject to change without prior notice.
57
07.27.2004 (V1.4)
EM78P257
OTP ROM
DATA to low, and clock once more. If framing error occurs, EM78P257A/B continues to clock until
DATA is high, then clocks the line control bit and requests for a Resend. When the system sends
out a command or data transmission that requires a response, the system waits for EM78P257A/B
to respond before sending its next output.
X1,X2,Y1,Y2,Z1,Z2 INPUT IMPEDANCE
18
16
14
R
12
MAX
10
TYP
8
MIN
6
4
2
V
0V
5.
5V
75
4.
V
4.
25
4.
V
0V
4.
75
V
5V
3.
3.
25
V
0V
3.
3.
V
5V
75
2.
2.
25
2.
V
0V
2.
75
1.
V
5V
1.
V
0V
25
1.
1.
75
0.
V
25
0.
0.
5V
0
VOLTS(LIN)
Table 26 MOUSE AC electrical characteristics (TA = 0℃ to 70℃)
Parameters
Key Debounce
Rising Edge Crossed Width Fosc=35 KHz
Falling Edge Crossed Width Fosc=35 KHz
Mouse CLK Active Time
Mouse CLK Inactive Time
Mouse Sample DATA from CLK rising Edge
System CLK Active Time
System CLK Inactive Time
Time from DATA Transition to Falling Edge of CLK
Time from rising Edge of CLK to DATA Transition
th
Time to mouse Inhibit after the 11 CLK to ensure mouse
does not start another Transmission
Sym.
Tkd
Tr
Tf
Tmca
Tmci
Tmdc
Tsca
Tsci
Tsdc
Tscd
Min.
14.3
14.3
-
Typ.
12
42.9
42.9
14.3
42.9
42.9
14.3
28.6
Max.
-
Unit
ms
us
us
us
us
us
us
us
us
us
Tpi
0
-
50
us
In Oscillating Frequency = 34.3 KHz.
This specification is subject to change without prior notice.
58
07.27.2004 (V1.4)
EM78P257
OTP ROM
4.12 INFRARED REMOTE APPLICATION MODE
1. Overview & Features
Overview:
EM78P257A/B is designed for use in universal infrared remote commander applications. Fig.26 shows the
hardware modulator of EM78P257A/B. It can generate programmable pulse trains for driving an infrared LED.
Features:
• Power saving : Idle and Stop modes are provided
• Hardware Modulator providing pulse bursts , with:
-- programmable duty factor for each pulse
-- programmable number of pulse
• Watchdog timer to keep the transmitter from being locked or malfunction
• On-chip oscillator: 455kHz to 24MHz
High-time
end
IR OUT
start
Elapse time by software
Low-time
interrupt
pulse #1
pulse #2
pulse #3
Low-time = 2 (Low-time register =) 2High-time = 4(High-time register = 4) number of pulse = 3
Fig. 26 Example Pulse Train Output of IR OUT Pin
This specification is subject to change without prior notice.
59
07.27.2004 (V1.4)
EM78P257
OTP ROM
Fosc
÷1
÷4
÷8
MF0
MF1
High-Time
Register
Low-Time
Register
Fosco
1:2
Duty:Period 1 : 3
1:4
DP0
DP1
Pulse Timer
HF
TCCBH
(MSB Counter)
H/W Modulator
IR OUT
TCCBL
(LSB Counter)
TCCBIF
1: overflow
PWM
LGP
IRE
<Note> In software design, Low-time and High-time registers cannot set “0” at initial state.
Fig. 27 Hardware Modulator
2. Function Description
The following describes the function of each block and single for Fig.27 which depicts how to complete IR kernel
(hardware modulator).
Low-time Register
The 8-bit Low-time register controls the active or Low period of the pulse.
The decimal value of its contents determines the number of oscillator cycles indicating
that the IR OUT pin is active. The active period of IR OUT can be calculated as follow:
tLow=(decimal value held in Low-time register)/fosco
High-time Register
The 8-bit High-time register control the inactive or High period of the pulse.
The decimal value of its contents determines the number of oscillator cycles indicating
that the IR OUT pin is active. The inactive period of IR OUT can be calculated as follow:
tHigh=(decimal value held in High-time register)/fosco
Pulse Timer
The contents of the Low-time and High-time Latch registers are loaded alternately into
the Pulse timer. When loaded, the Pulse timer contents are decremented by “1” every
oscillator cycle and upon reaching zero, the Pulse timer will be loaded with the contents
of the other register.
IR control register
Contains the bits that control various possibilities for the output pulse
This specification is subject to change without prior notice.
60
07.27.2004 (V1.4)
EM78P257
OTP ROM
LSB Counter
MSB Counter
Loaded by software with the number of pulses required in a pulse burst; loading ’0’ is not
allowed.
IRE
Infrared Remote Enable bit
IR OUT
IR output port.IIROUT = 20mA, when the output voltage drops to 2.4V, at Vdd = 5V
2.1 Operation of the Hardware Modulator
1. Enable IRE , set parameter for IR (RD )
2. Load Low-time register (IOC91)
3. Load High-time register (IOCA1)
4. Load MSB and LSB Counter register (IOC61, IOC71)
The Low-time, High-time, MSB Counter, and LSB Counter register are loaded by software. The
following instructions is an example for generating five pulses train:
MOV A,@0B00001000
MOV 0x0D,A
MOV A, @0x10
IOW 0x08
BS 0x03,6
MOV A,@0x10
IOW 0x09
MOV A,@0x20
IOW 0x0A
MOV A,@0x5
IOW 0x06
MOV A,@0x00
IOW 0x07
;(Enable IR)
;(Enable TCCBH)
;(Select control register segment 1)
;(Set Low-Time Register=10h)
;(Set High-Time Register=20h)
;(Set pulse number = 5 => LSB=5, MSB=0)
;LSB=5
;MSB=0
As soon as the LSB Counter Register is loaded, the Hardware Modulator is started and IR OUT
becomes active (LOW). Simultaneously, the contents of the Low-time register are loaded into the
Pulse Timer, which is then decremented by ‘1’ every oscillator clock cycle. When the value held in
the Pulse Timer becomes zero the contents of the LSB & MSB Counter are decremented by ‘1’ and
IR OUT become inactive (HIGH).
The contents of the High-time register are now loaded into the Pulse Timer which is decremented
by ‘1’ every oscillator clock cycle. When the value held in the Pulse Timer becomes zero, IR OUT
becomes active (LOW). One pulse cycle has now been generated.
The process of alternately loading the contents of the Low-time register and High-time register into
the Pulse Timer continues until the contents of the LSB & MSB Counter become zero. When this
occurs TCCBIF is asserted; an interrupt to the CPU is generated and the interrupt flag is raised
stopping the operation of the Hardware Modulator (If TCCBIF want to be clear ,the IR must be
disable firstly). The programmed pulse train has now been generated. If the Hardware Modulator
This specification is subject to change without prior notice.
61
07.27.2004 (V1.4)
EM78P257
OTP ROM
want to be restarted , we must disable IR in advance and then enable IR again.The time delay
between two pulse trains is determined by software.
3. Pin Description
SYMBOL
PIN
DESCRIPTION
P60 to P66
7~13
Standard I/O Port lines, generally used for keypad scanning
P50 to P57
1~4,17~20
Standard I/O Port lines, generally used for keypad sensing
P67(IR OUT)
14
Pulse train output pin, capable of sinking 30mA
OSCO
16
External clock signal input
OSCI
17
External clock signal input
Vdd
15
Power supply
Vss
6
Ground
4. Programmed the Related Registers
When defining IR mode is defined, refer to the related register of its operation as shown in the Table 27 and Table
28 below.
Table 27 Related Control Registers of the IR Mode
Address
Name
Bit 7
0x0B
TCR(2)/RB
0
0x08 TCCCR/IOC80 TCC2E
0x0D
IRCR/RD
DP1/0
Bit 6
TCCBIE/0
TCC4E
DP0/0
Bit 5
Bit 4
TCCBTS/0 TCCBTE/0
TCC6E
TCCBE
MF1/0
MF0/0
Bit 3
Bit 2
Bit1
Bit 0
0
TCCCIE/0 TCCCTS/0 TCCCTE/0
IRE/0
HF/0
LGP/0
PWM/0
<Note> *Bit name/initial value
Table 28 Related status/data register of the IR mode
Address
Name
0x06
TCCBL/IOC61
0x07
TCCBH/IOC71
0x09
LTR/IOC91
0x0A
HTR/IOCA1
0X0B
PTR/IOCB1
Bit 7
TCCBL7
TCCBH7
LTR7
HTR7
PTR7
Bit 6
Bit 5
Bit 4
Bit 3
TCCBL6 TCCBL5 TCCBL4 TCCBL3
TCCBH6 TCCBH5 TCCBH4 TCCBH3
LTR6
LTR5
LTR4
LTR3
HTR6
HTR5
HTR4
HTR3
PTR6
PTR5
PTR4
PTR3
Bit 2
Bit1
Bit 0
TCCBL2 TCCBL1 TCCBL0
TCCBH2 TCCBH1 TCCBH0
LTR2
LTR1
LTR0
HTR2
HTR1
HTR0
PTR2
PTR1
PTR0
• TCCBL : An eight-bit clock counter is for the least significant byte of TCCBX. TCCBL, which can be
read, written, and cleared at any reset condition.
• TCCBH : An eight-bit clock counter is for the most significant byte of TCCBX. TCCBH, which can be
read, written, and cleared at any reset condition.
• Low-time Register :The 8-bit Low-time register that controls the active or Low period of the pulse. The
High-time register controls the inactive or High period of the cycle.
• The decimal value of its contents determines the number of oscillator cycles indicating that the IR
OUT pin is active. The active period of IR OUT can be calculated as follow:
tLow=(decimal value held in Low-time register)/fosco
• High-time Register :The 8-bit High-time register control the inactive or High period of the pulse.
This specification is subject to change without prior notice.
62
07.27.2004 (V1.4)
EM78P257
OTP ROM
• The decimal value of its contents determines the number of oscillator cycles indicating that the IR
OUT pin is active. The inactive period of IR OUT can be calculated as follow:
tHigh=(decimal value held in High-time register)/fosco
• Pulse timer Register :The contents of the Low-time and High-time registers which are loaded
alternately into the Pulse timer. When loaded, the Pulse timer contents are decremented by “1” every
oscillator cycle. Upon reaching zero, the Pulse timer will be loaded with the contents of the other
register.
Table 29 TCCX Status Register (2)
7
-
6
TCCBIE
5
TCCBTS
4
TCCBTE
3
-
2
TCCCIE
1
TCCCTS
0
TCCCTE
• Bit 6(TCCBIE) TCCBIF interrupt enable bit.
0: disable TCCBIF interrupt
1: enable TCCBIF interrupt
Table 30 TCCX Control Register
7
6
5
4
3
2
1
0
TCC2E
TCC4E
TCC6E
TCCBE
-
-
-
-
• Bit 4 (TCCBE): Control bit which is used to enable most significant byte of counter
1 = Enable most significant byte of TCCBH.
0 = Disable most significant byte of TCCBH (default value).
Table 31 IR Control Register
7
DP1
6
DP0
5
MF1
4
MF0
3
IRE
2
HF
1
LGP
0
PWM
• Bit7:Bit6 (DP1:DP0) : Duty and Period ratio
DP1
0
0
1
1
DP0
0
1
0
1
Ratio
1:2(default)
1:3
1:4
-
• Bit 5:Bit 4 ( MF1:MF0 ) : Modulated frequency
MF1
0
0
1
1
MF0
0
1
0
1
Fosco
Fosc/1
Fosc/4
Fosc/8
• Bit 3(IRE) Infrared Remote Enable bit
0: Disable IRE. Disable H/W Modulator Function.
This specification is subject to change without prior notice.
63
07.27.2004 (V1.4)
EM78P257
OTP ROM
1: Enable IRE. Ignored RB(Bit4(TCCBTE); Bit5(TCCBTS)), and TCCBX set as decrement counter.
Enable H/W Modulator Function.
• Bit 2(HF) High Frequency. When HF = 1; the Low-time part of the generated pulse is modulated with
Frequency Fosco.
• Bit 1(LGP) Long Pulse. When LGP = 1; the contents of the High-time register are ignored. A single
pulse is generated. Its pulse is determined as shown below.
Pulse width = (Contents of Low-time register) x (number of pulse) x (1/Fosco)
If HF = 1; this pulse is modulated with Frequency Fosco (selected by M1,M0).
• Bit 0(PWM) Pulse Width Modulation. When PWM = 1 and LGP = 0, the LSB Counter & MSB Counter
are disabled, a continuous pulse train is generated, and the output signal is actually a PWM
waveform format of PWM.
5. IR mode timing
Fosc
Fosco
IR OUT
start
start
CASE 1
Software time
Low-time Register = 3
High-time Register = 2
Number of pulses = 2
IR OUT
Interrupt to CPU
CASE 2
Fig. 28 CASE 1shows a typical pulse train(DP=00;MF=10;HF=0;LGP=0;PWM=0); CASE 2 shows
the sa me pulse train after being modulated with a frequency of 1/4Fosc
(DP=00 ;MF=10 ;HF=1;LGP=0;PWM=0).
This specification is subject to change without prior notice.
64
07.27.2004 (V1.4)
EM78P257
OTP ROM
Fosc
Fosco
IR OUT
start
start
CASE 1
L o w-t i m e R e g i s t e r = 3
Interrupt to CPU
Software time
Number of pulses = 3
IR OUT
CASE 2
Fig. 29 CASE 1 shows a typical long pulse(DP=00;MF=10;HF=1;LGP=1;PWM=0); CASE 2 shows
the same long pulse after being modulated with a frequency of 1/4Fosc
(DP=00;MF=10;HF=1;LGP=1;PWM=0).
Fosc
Fosco
start
IR OUT
H i g h -t i m e R e g i s t e r = 2
L o w -t i m e R e g i s t e r = 3
Fig. 30 Continuous pulse train (DP=00;MF=10;HF=0;LGP=0;PWM==1).
4.13 CODE OPTION
EM78P257A/B has one CODE option word and one Customer ID word, which are not a part of the normal
program memory.
Word 0
Bit12~Bit0
Code option12~0
Word 1
Bit12~Bit0
Customer’s ID
1. Code Option Register (Word 0)
Bit12
Bit11
Bit10
Bit9
Bit8
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
/RESETEN
/ENWDT
CLKS
OSC2
OSC1
OSC0
/PTB
SUT
TYP
RCOUT
RCM1
RCM0
-
• Bit 12 (/RESETEN): Define Pin4(EM78P257A) or Pin5(EM78P257B) as a reset pin
0: /RESET enable
1: /RESET disable
• Bit 11 (/ENWDT): Watchdog timer enable bit.
This specification is subject to change without prior notice.
65
07.27.2004 (V1.4)
EM78P257
OTP ROM
0: Enable
1: Disable
• Bit 10 (CLKS): Instruction period option bit.
0: Two clocks
1: Four clocks
Refer to the section on Instruction Set.
• Bit 9, 8 and 7 (OSC2,OSC1 and OSC0): Oscillator Modes Selection bits.
Table 32 Oscillator Modes Defined by OSC2,OSC1 and OSC0
Mode
IRC(Internal RC oscillator mode)
IC(Internal C oscillator mode)
ERC(External RC oscillator mode)
HXT(High XTAL oscillator mode)
LXT(Low XTAL oscillator mode)
<Note>
OSC2
OSC1
OSC0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
The transient point of system frequency between HXT and LXY is around 400 KHz.
• Bit 6 (/PTB): Protect bit.
0: Enable
1: Disable
• Bit 5 (SUT): Set-Up Time of device bits.
SUT
*Set-Up Time
1
0
18 ms
1 ms
*Theoretical values, for reference only
• Bit 4 (TYP): Type selection for EM78P257A or EM78P257B.
TYPE
0
1
Series
EM78P257B
EM78P257A
• Bit 3 (RCOUT): A selecting bit of Oscillator Output or I/O port for RC Oscillator.
RCOUT
Pin Function
0
1
P70
OSCO
• Bit 2, and Bit 1 ( RCM1, RCM0): IRC mode selection bits
RCM 1
RCM 0
*Frequency(MHz)
1
1
0
0
1
0
1
0
4
1
455kHz
32.768kHz
<Note> *Theoretical values, for reference only. In fact, the values may be inaccurate by ±35%.
• Bit0 : Not used
This specification is subject to change without prior notice.
66
07.27.2004 (V1.4)
EM78P257
OTP ROM
2. Customer ID Register (Word 1)
Bit12~Bit0
XXXXXXXXXXXXX
• Bit 12~ 0: Customer’s ID code
4.14 Instruction Set
Each instruction in the instruction set is a 13-bit word divided into an OP code and one or more operands.
Normally, all instructions are executed within one single instruction cycle (one instruction consists of 2 oscillator
periods), unless the program counter is changed by instruction "MOV R2,A", "ADD R2,A", or by instructions of
arithmetic or logic operation on R2 (e.g. "SUB R2,A", "BS(C) R2,6", "CLR R2", ⋅⋅⋅⋅). In this case, the execution
takes two instruction cycles.
If for some reasons, the specification of the instruction cycle is not suitable for certain applications, try modifying
the instruction as follows :
(A) Modify one instruction cycle to consist of 4 oscillator periods.
(B) Execute within two instruction cycles the "JMP", "CALL", "RET", "RETL", "RETI" commands, or
the conditional skip ("JBS", "JBC", "JZ", "JZA", "DJZ", "DJZA") which were tested to be true. The
instructions that are written to the program counter, should also take two instruction cycles.
Case (A) is selected by the CODE Option bit, called CLKS. One instruction cycle consists of two oscillator clocks
if CLKS is low, and four oscillator clocks if CLKS is high.
Note that once 4 oscillator periods within one instruction cycle is selected under Case (A), the internal clock
source to TCC will be CLK=Fosc/4 (not Fosc/ 2) as illustrated in Fig.6.
In addition, the instruction set has the following features:
(1) Every bit of any register can be set, cleared, or tested directly.
(2) The I/O register can be regarded as general register. That is, the same instruction can operate on
I/O register.
The symbol "R" represents a register designator that specifies which one of the registers (including operational
registers and general purpose registers) is to be utilized by the instruction. "b" represents a bit field designator that
selects the value for the bit which is located in the register "R", and affects the operation. "k" represents an 8 or
10-bit constant or literal value.
Table 33 The List of the Instruction Set of EM78P257A/B
INSTRUCTION BINARY
0 0000 0000 0000
HEX
0000
MNEMONIC
NOP
This specification is subject to change without prior notice.
OPERATION
No Operation
67
STATUS AFFECTED
None
07.27.2004 (V1.4)
EM78P257
OTP ROM
0
0
0
0
0
0
0
0
0
0
0
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0001
0010
0 011
0100
rrrr
0000
0001
0010
0011
0100
rrrr
0001
0002
0003
0004
000r
0010
0011
0012
0013
0014
001r
DAA
CONTW
SLEP
WDTC
IOW R
ENI
DISI
RET
RETI
CONTR
IOR R
0 0000 0010 0000
0020
TBL
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
00rr
0080
00rr
01rr
01rr
01rr
01rr
02rr
02rr
02rr
02rr
03rr
03rr
03rr
03rr
04rr
04rr
04rr
04rr
05rr
05rr
05rr
05rr
MOV R,A
CLRA
CLR R
SUB A,R
SUB R,A
DECA R
DEC R
OR A,R
OR R,A
AND A,R
AND R,A
XOR A,R
XOR R,A
ADD A,R
ADD R,A
MOV A,R
MOV R,R
COMA R
COM R
INCA R
INC R
DJZA R
DJZ R
0 0110 00rr rrrr
06rr
RRCA R
0 0110 01rr rrrr
06rr
RRC R
0 0110 10rr rrrr
06rr
RLCA R
0 0110 11rr rrrr
06rr
RLC R
0 0111 00rr rrrr
07rr
SWAPA R
0
0
0
0
0
0
0
07rr
07rr
07rr
0xxx
0xxx
0xxx
0xxx
SWAP R
JZA R
JZ R
BC R,b
BS R,b
JBC R,b
JBS R,b
1kkk
CALL k
0000
0000
0000
0001
0001
0001
0001
0010
0010
0010
0010
0011
0011
0011
0011
0100
0100
0100
0100
0101
0101
0101
0101
0111
0111
0111
100b
101b
110b
111b
0000
0000
0000
0000
0000
0001
0001
0001
0001
0001
0001
01rr rrrr
1000 0000
11rr rrrr
00rr rrrr
01rr rrrr
10rr rrrr
11rr rrrr
00rr rrrr
01rr rrrr
10rr rrrr
11rr rrrr
00rr rrrr
01rr rrrr
10rr rrrr
11rr rrrr
00rr rrrr
01rr rrrr
10rr rrrr
11rr rrrr
00rr rrrr
01rr rrrr
10rr rrrr
11rr rrrr
01rr
10rr
11rr
bbrr
bbrr
bbrr
bbrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
1 00kk kkkk kkkk
Decimal Adjust A
A → CONT
0 → WDT, Stop oscillator
0 → WDT
A → IOCR
Enable Interrupt
Disable Interrupt
[Top of Stack] → PC
[Top of Stack] → PC, Enable Interrupt
CONT → A
IOCR → A
R2+A → R2
Bit8,9 do not clear
A→ R
0→A
0→R
R-A → A
R-A → R
R-1 → A
R-1 → R
A ∨ VR → A
A ∨ VR → R
A & R→ A
A & R→ R
A⊕ R → A
A⊕ R → R
A + R→ A
A + R→ R
R→A
R→R
/R → A
/R → R
R+1 → A
R+1 → R
R-1 → A, skip if zero
R-1 → R, skip if zero
R(n) → A(n-1),
R(0) → C, C → A(7)
R(n) → R(n-1),
R(0) → C, C → R(7)
R(n) → A(n+1),
R(7) → C, C → A(0)
R(n) → R(n+1),
R(7) → C, C → R(0)
R(0-3) → A(4-7),
R(4-7) → A(0-3)
R(0-3) ↔ R(4-7)
R+1 → A, skip if zero
R+1 → R, skip if zero
0 → R(b)
1 → R(b)
if R(b)=0, skip
if R(b)=1, skip
PC+1 → [SP],
(Page, k) → PC
This specification is subject to change without prior notice.
68
C
None
T,P
T,P
None <Note1>
None
None
None
None
None
None <Note1>
Z,C,DC
None
Z
Z
Z,C,DC
Z,C,DC
Z
Z
Z
Z
Z
Z
Z
Z
Z,C,DC
Z,C,DC
Z
Z
Z
Z
Z
Z
None
None
C
C
C
C
None
None
None
None
None <Note2>
None <Note3>
None
None
None
07.27.2004 (V1.4)
EM78P257
OTP ROM
1
1
1
1
1
01kk
1000
1001
1010
1011
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
1kkk
18kk
19kk
1Akk
1Bkk
JMP k
MOV A,k
OR A,k
AND A,k
XOR A,k
1 1100 kkkk kkkk
1Ckk
RETL k
1 1101 kkkk kkkk
1 1110 0000 0001
1 1111 kkkk kkkk
1Dkk
1E01
1Fkk
SUB A,k
INT
ADD A,k
(Page, k) → PC
k→A
A∨ k → A
A&k→A
A⊕ k → A
k → A,
[Top of Stack] → PC
k-A → A
PC+1 → [SP], 001H → PC
k+A → A
None
None
Z
Z
Z
None
Z,C,DC
None
Z,C,DC
<Note 1> This instruction is applicable to IOC50~IOC60, IOCB0~IOCF0 only.
<Note 2> This instruction is not recommended for RF operation.
<Note 3> This instruction cannot operate under RF.
This specification is subject to change without prior notice.
69
07.27.2004 (V1.4)
EM78P257
OTP ROM
4.15 Timing Diagrams
AC Test Input/Output Waveform
2.4
2.0
0.8
2.0
TEST POINTS
0.8
0.4
AC Testing : Input is driven at 2.4V for logic "1",and 0.4V for logic "0".Timing measurements are
made at 2.0V for logic "1",and 0.8V for logic "0".
RESET Timing (CLK="0")
NOP
Instruction 1
Executed
CLK
/RESET
Tdrh
TCC Input Timing (CLKS="0")
Tins
CLK
TCC
Ttcc
This specification is subject to change without prior notice.
70
07.27.2004 (V1.4)
EM78P257
OTP ROM
5. ABSOLUTE MAXIMUM RATINGS
Items
Temperature under bias
Storage temperature
Input voltage
Output voltage
This specification is subject to change without prior notice.
0°C
-65°C
-0.3V
-0.3V
71
Rating
to
to
to
to
70°C
150°C
+6.0V
+6.0V
07.27.2004 (V1.4)
EM78P257
OTP ROM
6. ELECTRICAL CHARACTERISTICS
6.1 DC Electrical Characteristic
(Ta=0~70° C, VDD=5.0V±5%, VSS=0V)
Symbol
Fxt
Parameter
XTAL (VDD to 2.3V)
XTAL (VDD to 3V)
XTAL (VDD to 5V)
ERC (VDD to 5V)
IRC (VDD to 5 V)
IC, ER (VDD to 5V)
IIL
Input Leakage Current for input pins
VIH1
Input High Voltage (VDD=5V)
VIL1
Input Low Voltage (VDD=5V)
VIHT1 Input High Threshold Voltage (VDD=5V)
VILT1 Input Low Threshold Voltage (VDD=5V)
VIHX1
Clock Input High Voltage ,(VDD=5V)
VILX1
Clock Input Low Voltage(VDD=5V)
VIH2
Input High Voltage (VDD=3V)
VIL2
Input Low Voltage (VDD=3V)
VIHT2 Input High Threshold Voltage (VDD=3V)
VILT2 Input Low Threshold Voltage (VDD=3V)
VIHX2
Clock Input High Voltage (VDD=3V)
VILX2
Clock Input Low Voltage (VDD=3V)
VOH1
Output High Voltage (Ports 5, 6)
VOL1
Output Low Voltage (Ports 5, 6)
VOH2 Output High Voltage (P67 set to IR OUT)
VOL2 Output Low Voltage (P67 set to IR OUT)
IPH
Pull-high current
IPD
Pull-down current
Power down current
ISB1
ISB2
Power down current
ICC1
Operating supply current
(VDD=3V) at two clocks
ICC2
Operating supply current
(VDD=3V) at two clocks
ICC3
Operating supply current
(VDD=5.0V) at two clocks
ICC4
Operating supply current
(VDD=5.0V) at two clocks
Condition
Two cycle with two clocks
Min
DC
DC
DC
F±30%
F±35%
R: 5.1KΩ, C: 100 pF
4MHz, 1MHz, 455KHz,
32.768KHz
R: 51KΩ
F±30%
VIN = VDD, VSS
Ports 5, 6
2.0
Ports 5, 6
/RESET, TCC
2.0
/RESET, TCC
OSCI
2.5
OSCI
Ports 5, 6
1.5
Ports 5, 6
/RESET, TCC
1.5
/RESET, TCC
OSCI
1.5
OSCI
IOH = -9.0 mA
2.4
IOL = 9.0 mA
IOH = -20.0 mA
2.4
IOL = 20.0 mA
Pull-high active, input pin at VSS
-50
Pull-down active, input pin at VDD
25
All input and I/O pins at VDD,
output pin floating, WDT dis abled
All input and I/O pins at VDD,
output pin floating, WDT enabled
/RESET= 'High', Fosc=32KHz
(Crystal type, two clocks), output
pin floating, WDT disabled
/RESET= 'High', Fosc=32KHz
(Crystal type, two clocks), output
pin floating, WDT enabled
/RESET= 'High', Fosc=2MHz
(Crystal type, two clocks), output
pin floating
/RESET= 'High', Fosc=4MHz
(Crystal type, two clocks), output
pin floating
Typ
Max
4
8
20
830 F±30%
F F±35%
Unit
MHz
MHz
MHz
KHz
4.3
0.4
-240
120
MHz
µA
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
V
µA
µA
1
µA
1
10
µA
15
30
µA
19
35
µA
2.0
mA
4.0
mA
F±30%
±1
0.8
0.8
1.0
0.4
0.4
0.6
0.4
-100
50
Hz
* These parameters are characterizes and tested.
This specification is subject to change without prior notice.
72
07.27.2004 (V1.4)
EM78P257
OTP ROM
* Data in the Minimum, Typical, Maximum(“Min”,“Typ”,”Max”) column are based on characterization results
at 25℃. This data is for design guidance and is tested.
6.2 AC Electrical Characteristic
(Ta=0~70° C, VDD=5V± 5%, VSS=0V)
Symbol
Dclk
Tins
Ttcc
Tdrh
Trst
Twdt1*
Twdt2*
Tset
Thold
Tdelay
Parameter
Input CLK duty cycle
Instruction cycle time
(CLKS="0")
TCC input period
Device reset hold time
/RESET pulse width
Watchdog timer period
Watchdog timer period
Input pin setup time
Input pin hold time
Output pin delay time
Conditions
Crystal type
RC type
Ta = 25°C
Ta = 25°C
Ta = 25°C
Ta = 25°C
Min
45
100
500
(Tins+20)/N*
10.78
2000
10.78
0.75
Cload=20pF
Typ
50
Max
55
DC
DC
15.4
20.2
15.4
1.07
0
20
50
20.2
1.39
Unit
%
ns
ns
ns
ms
ns
ms
ms
ms
ms
ms
* Twdt1: The Option word (SUT) is used to define the oscillator Set-Up time. WDT timeout length is the
same as set-up time(18ms).
* Twdt2: The Option word (SUT) is used to define the oscillator Set-Up time. WDT timeout length is the
same as set-up time(1ms).
* These parameters are characterizes but not tested.
* Data in the Minimum, Typical, Maximum(“Min”,“Typ”,”Max”) column are based on characterization
results at 25℃. This data is for design guidance and is not tested.
* N= selected prescaler ratio.
* The duration of watch dog timer is determined by option code (bit5).
This specification is subject to change without prior notice.
73
07.27.2004 (V1.4)
EM78P257
OTP ROM
6.3 Device Characteristic
The graphs provided following note that based on a limited number of samples and they are provided for
information only. The device characteristic listed herein is not guaranteed. In some graphs, the data
maybe out of the specified operating warranted range.
Vih/Vil (Input pins with inverter)
2
1.5
Vih Vil(Volt)
max (-0℃ to 70℃)
typ 25℃
1
min (-0℃ to 70℃)
0.5
0
2.3
2.8
3.3
3.8
Vdd(Volt)
4.3
4.8
5.3
Fig. 31 Vth (Threshold voltage) of Port5, Port6 and Port7 vs. VDD
This specification is subject to change without prior notice.
74
07.27.2004 (V1.4)
EM78P257
OTP ROM
Voh /Ioh (VDD=3V)
Voh/Ioh (VDD=5V)
0
0
-5
-2
-10
Ioh(mA)
Ioh(mA)
Min 70 ℃
Min 70 ℃
-4
Typ 25 ℃
-15
Typ 25 ℃
Max 0 ℃
-6
Max 0 ℃
-20
-8
-25
0
1
2
3
4
0
5
0.5
1
1.5
2
2.5
3
Voh(Volt)
Voh (Volt)
Fig. 32 Port5, Port6 and Port7 Voh vs. Ioh,
Fig. 33 Port5, Port6 and Port7 Voh vs. Ioh,
VDD=5V
VDD=3V
This specification is subject to change without prior notice.
75
07.27.2004 (V1.4)
EM78P257
OTP ROM
Vol / Iol (VDD=3V)
Vol/Iol (VDD=5V)
80
80
70
60
Max 0 ℃
70
Typ 25 ℃
60
Typ 25 ℃
50
Iol(mA)
50
Iol (mA)
Max 0 ℃
Min 70 ℃
40
Min 70 ℃
40
30
30
20
20
10
10
0
0
0
1
2
3
4
0
5
0.5
1
1.5
2
2.5
3
Vol(Volt)
Vol (Volt)
Fig. 34 Port5, Port6 and Port7 Vol vs. Iol,
Fig. 35 Port5, Port6 and Port7 Vol vs. Iol
VDD=5V
VDD=3V
This specification is subject to change without prior notice.
76
07.27.2004 (V1.4)
EM78P257
OTP ROM
WDT Time_out
30
25
Max 70 ℃
WDT period (mS)
20
Typ 25 ℃
Min 0 ℃
15
10
5
0
2.3
2.8
3.3
3.8
4.3
4.8
5.3
VDD (Volt)
Fig. 36 WDT time out period vs. VDD
This specification is subject to change without prior notice.
77
06.27.2003(V1.2)
EM78P257
OTP ROM
Cext=100pF, Typical RC OSC Frequency
1.4
R= 3.3K
1.2
Frequency(M Hz)
1
R = 5.1K
0.8
0.6
R = 10K
0.4
0.2
R = 100K
0
2.5
3
3.5
4
VDD(Volt)
4.5
5
5.5
Fig. 37 Typical RC OSC Frequency vs. VDD (Cext=100pF, Temperature at 25℃)
Fig. 38 Typical RC OSC Frequency vs. Temperature (R and C are ideal components)
This specification is subject to change without prior notice.
78
06.27.2003(V1.2)
EM78P257
OTP ROM
IRC 1M and 4MHz OSC Frequency (VDD=3V)
6
OSC = 4MHz
Freqrency (M Hz)
5
4
3
2
OSC = 1MHz
1
0
0
10
20
30
40
50
60
70
Temperature (℃)
Fig. 39 Internal RC 1M and 4MHz OSC Frequency vs. Temperature Join Process Drifts, VDD=3V
IRC 32K and 455KHz OSC Frequency (VDD=3V)
700
OSC = 455KHz
Freqrency (K Hz)
600
500
400
300
200
100
OSC = 32KHz
0
0
10
20
30
40
Temperature (℃)
50
60
70
Fig. 40 Internal RC 32K and 455KHz OSC Frequency vs. Temperature Join Process Drifts, VDD=3V
This specification is subject to change without prior notice.
79
06.27.2003(V1.2)
EM78P257
OTP ROM
IRC 1M and 4MHz OSC Frequency (VDD=5V)
6
OSC = 4MHz
Freqrency (M Hz)
5
4
3
2
OSC = 1MHz
1
0
0
10
20
30
40
50
60
70
Temperature (℃)
Fig. 41 Internal RC 1M and 4MHz OSC Frequency vs. Temperature Join Process Drifts, VDD=5V
IRC 32K and 455KHz OSC Frequency (VDD=5V)
700
OSC = 455KHz
Freqrency (K Hz)
600
500
400
300
200
100
OSC = 32KHz
0
0
10
20
30
40
50
60
70
Temperature (℃)
Fig. 42 Internal RC 32K and 455KHz OSC Frequency vs. Temperature Join Process Drifts VDD=5V
Four conditions exist with the Operating Current ICC1 to ICC4. These conditions are as follows :
ICC1: VDD=3V, Fosc=32K Hz, 2 clocks, WDT disable
This specification is subject to change without prior notice.
80
06.27.2003(V1.2)
EM78P257
OTP ROM
ICC2: VDD=3V, Fosc=32K Hz, 2 clocks, WDT enable
ICC3: VDD=5V, Fosc=2M Hz, 2 clocks, WDT enable
ICC4: VDD=5V, Fosc=4M Hz, 2 clocks, WDT enable
Typical ICC1 and ICC2 VS. Temperature
19
18
Icc(uA)
17
Typ. ICC2
16
Typ. ICC1
15
14
13
12
0
10
20
30
40
Temperature(℃)
50
60
70
Fig. 43 Typical operating current (ICC1 and ICC2) vs. Temperature
Maximum ICC1 and ICC2 VS. Temperature
28
Icc(uA)
26
Max. ICC2
24
Max. ICC1
22
20
18
0
10
20
30
40
50
60
70
Temperature(℃)
Fig. 44 Maximum operating current (ICC1 and ICC2) vs. Temperature
This specification is subject to change without prior notice.
81
06.27.2003(V1.2)
EM78P257
OTP ROM
Typical ICC3 and ICC4 VS. Temperature
2.4
Typ. ICC4
2.2
Icc(mA)
2
1.8
1.6
Typ. ICC3
1.4
1.2
0
10
20
30
40
50
60
70
60
70
Temperature(℃)
Fig. 45 Typical operating current (ICC3 and ICC4) vs. Temperature
Maximum ICC3 and ICC4 VS. Temperature
Icc(mA)
2.8
Max. ICC4
2.4
2
Max. ICC3
1.6
0
10
20
30
40
50
Temperature(℃)
Fig. 46 Maximum operating current (ICC3 and ICC4) vs. Temperature
Two conditions exist with the Standby Current ISB1 and ISB2. These conditions are as follows :
ISB1: VDD=5V, WDT disable
ISB2: VDD=5V, WDT enable
This specification is subject to change without prior notice.
82
06.27.2003(V1.2)
EM78P257
OTP ROM
Typical ISB1 and ISB2 VS. Temperature
8
Typ. ISB2
ISB(uA)
6
4
2
Typ. ISB1
0
0
10
20
30
40
50
60
70
Temperature(℃)
Fig. 47 Typical standby current (ISB1 and ISB2) vs. Temperature
Maximum ISB1 and ISB2 VS. Temperature
10
Max. ISB2
ISB(uA)
8
6
4
Max. ISB1
2
0
0
10
20
30
40
50
60
70
Temperature(℃)
Fig. 48 Maximum standby current (ISB1 and ISB2) vs. Temperature
This specification is subject to change without prior notice.
83
06.27.2003(V1.2)
EM78P257
OTP ROM
Fig. 49 Operating voltage under temperature range of 0℃ to 70℃
OSC = 4MHz
2.5
OSC = 32KHz
80
70
2
60
Min.
1.5
I(uA)
I(mA)
Max.
1
Max.
50
Min.
40
30
20
0.5
10
0
0
2.3
2.8
3.3
3.8 4.3
V(Volt)
4.8
2.3
5.3
Fig. 50 V-I curve in operating mode, operating
3.3
3.8 4.3
Voltage(V)
4.8
5.3
Fig. 51 V-I curve in operating mode, operating
frequency is 4MHz
This specification is subject to change without prior notice.
2.8
frequency is 32K Hz
84
06.27.2003(V1.2)
EM78P257
OTP ROM
APPENDIX
Package Types
OTP MCU
EM78P257AP
EM78P257AM
EM78P257AKM
EM78P257BP
EM78P257BM
Package Type
DIP
SOP
SSOP
DIP
SOP
This specification is subject to change without prior notice.
Pin Count
18
18
20
20
20
85
Package Size
300mil
300mil
209mil
300mil
300mil
06.27.2003(V1.2)
EM78P257
OTP ROM
Package Information
18-Lead Plastic Dual in line (PDIP) — 300 mil
This specification is subject to change without prior notice.
86
06.27.2003(V1.2)
EM78P257
OTP ROM
18-Lead Plastic Small Outline (SOP) — 300 mil
This specification is subject to change without prior notice.
87
06.27.2003(V1.2)
EM78P257
OTP ROM
20- Lead Plastic Shrink Small Outline (SSOP) — 209 mil
This specification is subject to change without prior notice.
88
06.27.2003(V1.2)
EM78P257
OTP ROM
20-Lead Plastic Dual in line (PDIP) — 300 mil
This specification is subject to change without prior notice.
89
06.27.2003(V1.2)
EM78P257
OTP ROM
20-Lead Plastic Small Outline (SOP) — 300 mil
This specification is subject to change without prior notice.
90
06.27.2003(V1.2)
EM78P257
OTP ROM
ELAN (HEADQUARTER) MICROELECTRONICS CORP., LTD.
Address : No. 12, Innovation 1st. Rd. Science-Based Industrial Park, Hsinchu City, Taiwan.
Telephone: 886-3-5639977
Facsimile : 886-3-5639966
ELAN (H.K.) MICROELECTRONICS CORP., LTD.
Address : Rm. 1005B, 10/F, Empire Centre, 68 Mody Road, Tsimshatsui, Kowloon, Hong Kong.
Telephone: 852-27233376
Facsimile : 852-27237780
E-mail : elanhk@emc.com.hk
ELAN MICROELECTRONICS SHENZHEN, LTD.
Address : SSMEC Bldg. 3F , Gaoxin S. Ave. 1st , South Area , Shenzhen High-tech Industrial Park., Shenzhen
Telephone: 86-755-26010565
Facsimile : 86-755-26010500
ELAN MICROELECTRONICS SHANGHAI, LTD.
Address : #23 Building No.115 Lane 572 BiBo Road. Zhangjiang, Hi-tech Park, Shanghai
Telephone: 86-21-50803866
Facsimile : 86-21-50804600
Elan Information Technology Group.
Address: 1821 Saratoga Avenue, suite 250, Saratoga, CA 95070, USA
Telephone: 1-408-366-8225
Facsimile : 1-408-366-8220
Elan Microelectronics Corp. (Europe)
Address: Dubendorfstrasse 4, 8051 Zurich, Switzerland
Telephone: 41-43-2994060
Facsimile : 41-43-2994079
Email : info@elan-europe.com
Web-Site : www.elan-europe.com
Copyright © 2004 ELAN Microelectronics Corp. All rights reserved.
ELAN owns the intellectual property rights, concepts, ideas, inventions, know-how (whether patentable or not)
related to the Information and Technology (herein after referred as " Information and Technology") mentioned
above, and all its related indus trial property rights throughout the world, as now may exist or to be created in the
future. ELAN represents no warranty for the use of the specifications described, either expressed or implied,
including, but not limited, to the implied warranties of merchantability and fitness for particular purposes. The entire
risk as to the quality and performance of the application is with the user. In no even shall ELAN be liable for any loss
or damage to revenues, profits or goodwill or other special, incidental, indirect and consequential damages of any
kind, resulting from the performance or failure to perform, including without limitation any interruption of business,
whatever resulting from breach of contract or breach of warranty, even if ELAN has been advised o f the possibility of
such damages.
The specifications of the Product and its applied technology will be updated or changed time by time. All the
information and explanations of the Products in this website is only for your reference. The actual specifications and
applied technology will be based on each confirmed order.
ELAN reserves the right to modify the information without prior notification. The most up-to-day information is
available on the website http://www.emc.com.tw.
This specification is subject to change without prior notice.
91
06.27.2003(V1.2)