EMC EM78P5830AP 8-bit micro-controller Datasheet

EM785830AA
8-BIT MICRO-CONTROLLER
Version 1.6
ELAN MICROELECTRONICS CORP.
No. 12, Innovation 1st RD., Science-Based Industrial Park
Hsin Chu City, Taiwan
TEL: (03) 5639977
FAX: (03)5630118
Version History
Specification Revision History
Version
EM785830AA
1.0
1.1
1.2
1.3
1.4
1.5
1.6
Content
Initial version
Add 17.9MHz main CLK
Add code option “ADIS” to determine AD channel
1. Change “ADIS” define
2. ADD eFHP5830A, eFHP5830AA, and eFHP5830BA package
1. ADD the description about ADC’s offset voltage
1. Modify stack level from 16 to 12
2. Modify program ROM size from 4K to 16K
3. Rename “eFH5830A” to eFH5830AA
4. Remove IDLE mode
5. Change AD channel from 8 to 4
6. Remove 17.9MHz main CLK
1.Rename from eFH5830AA to EM785830AA
Relative to EM785830AA’s ROM-less, OTP and mask:
ROM-less
OTP
EM78P5830A
EM78P5830AA
ICE5830
Mask
EM785830AA
Difference between EM785830AA/EM78P5830A/EM78P5830AA
Some differences are between EM78P5830A, EM78P5830AA and EM78P5830BA, these difference are list at next table:
ADIS
(code option)
VERSEL
(code option)
PHO
(code option)
MS
(IOCC page1 bit0)
AD resolution
Stack number
EM785830AA
EM78P5830A EM78P5830AA
Un-effect
(4 channel only)
Must = 0
Un-effect
(4 channel only)
Un-effect
Un-effect
(4 channel only)
Must = 0
Must = 0
Un-effect
Must = 0
Must = 1
Must = 1
Un-effect
10 bit
12
8 bit
16
10 bit
16
User Application Note
(Before using this chip, take a look at the following description note, it includes important messages.)
1. There are some undefined bits in the registers. The values in these bits are unpredicted. These
bits are not allowed to use. We use the symbol “-” in the spec to recognize them. A fixed value
must be write in some specific unused bits by software or some unpredicted wrong will occur.
These bits are as below.
Register
R7
RA
RA
RD
RD
Register
PAGE
1
0
2
0
0
Default value
Bit
1
7
0~7
0~2
4
0
0
0
0
X
Initial Setting value
(by user software)
0
0
0
0
1
Effect
RAM access will error
Un-expect error
Un-expect error
Power consumption increase
Un-expect error
EM785830AA
8-bit Micro-controller
RD
RE
IOC5
IOC6
IOC6
IOC7
IOC7
IOC8
IOC8
IOC9
IOCA
IOCB
IOCC
IOCC
IOCE
IOCF
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
5~6
0~3
5~7
0~1
0~1
1~2;7
1~2;7
0~7
0~7
0~7
3,6
0~7
0;3~7
2~7
0~3
4~6
X
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
Un-expect error
Un-expect error
Power consumption increase
Power consumption increase
Power consumption increase
Power consumption increase
Power consumption increase
Power consumption increase
Power consumption increase
Un-expect error
Power consumption increase
Power consumption increase
Power consumption increase
Un-expect error
Un-expect error
Un-expect error
2. You will see some names for the register bits definitions. Some name will be appear very
frequently in the whole spec. The following describes the meaning for the register’s definitions
such as bit type, bit name, bit number and so on.
RA
PAGE0
7
RAB7
R/W-0
Bit type
6
RAB6
R/W-0
5
BAB5
R-1
read/write
(default value=0)
4
RAB4
R/W-1
3
X
read/write
(default value=1)
2
RAB2
R
1
RAB1
R-0
read only
(w/o default value)
0
RAB0
R/W
read/write
(w/o default value)
Bit name
Bit number
Register name and its page
(undefined) not allowed to use
read only
(default value=1)
read only
(default value=0)
3. Always set IOCC PAGE1 bit 0 = 1 otherwise partial ADC function cannot be used.
4. Please do not switch MCU operation mode from normal mode to sleep mode directly. Before
into sleep mode, please switch MCU to green mode.
5. While switching main clock (regardless of high freq to low freq or on the other hand), adding 6
instructions delay (NOP) is required.
6. Offset voltage will effect ADC’s result, please refer to figure 16 to detail.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
1
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
I. General Description
The EM785830AA is an 8-bit RISC type microprocessor with low power, high speed CMOS technology. There
are 16Kx13 bits ROM within it.
This integrated single chip has an on_chip watchdog timer (WDT, data RAM, programmable real time
clock/counter, internal interrupt, power down mode, 4-channel 10-bit A/D converter, two channel PWM output, SPI and
tri-state I/O.
II. Feature
CPU
· Operating voltage : 2.2V~5.5V at main CLK less then 3.58MHz.
Main CLK(Hz)
Under 3.58M
7.16M
10.74M
14.3M
Operating Voltage(min)
2.2
2.5
3
3.6
• 16k x 13 on chip Program Memory
• 0.5k x 8 on chip data RAM
• Up to 21 bi-directional tri-state I/O ports(4 shared with AD input; 1 shared with external interrupt input )
• 12 level stack for subroutine nesting
• 8-bit real time clock/counter (TCC)
• Two 8-bit counters : COUNTER1 and COUNTER2
• On-chip watchdog timer (WDT)
• 99.9% single instruction cycle commands
• Four modes (Main clock can be programmed from 447.829k to 14.3MHz generated by internal PLL)
Mode
CPU status
Main clock
32.768kHz clock status
Sleep mode
Turn off
Turn off
Turn off
Green mode
Turn on
Turn off
Turn on
Normal mode Turn on
Turn on
Turn on
• 7 level Normal mode frequency : 447.8K , 895.7K , 1.79M , 3.58M , 7.16M , 10.75M and 14.3MHz.
• Input port interrupt function
• Dual clocks operation (Internal PLL main clock , External 32.768KHz)
SPI
• Serial Peripheral Interface (SPI) : a kind of serial I/O interface
• Interrupt flag available for the read buffer full or transmitter buffer empty.
• Programmable baud rates of communication
• Three-wire synchronous communication. (shared with IO)
PWM
• Dual PWM (Pulse Width Modulation) with 10-bit resolution
• Programmable period (or baud rate)
• Programmable duty cycle
ADC
· Operating : 2.5V∼5.5V
· 4 channel 10-bit successive approximation A/D converter
· Internal (VDD) or external reference
POR
· Power-on voltage detector reset
PACKAGE
EM78P5830AM, EM78P5830AAM, EM785830AAM Æ 28 pin SOP
EM78P5830AP, EM78P5830AAP, EM785830AAP Æ 28 pin PDIP
III. Application
General products
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
2
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
IV. Pin Configuration
AVSS
1
28
PLLC
AVDD
P67
2
27
ADR/P66
3
26
NC
AD6/P65
4
25
P97
AD5/P64
5
24
P96
AD4/P63
6
23
P95
AD3/P62
7
22
P94
XIN
8
21
P93
XOUT
9
20
P92
/RESET
10
19
P91
P76/SCK
11
18
P90
P75/SDO
12
17
PC2/PWM 2
P74/SDI
13
16
PC1/PWM 1
P73/INT3
14
15
P70/INT0
EM785830AAP, EM785830AAM
EM78P5830AP, EM78P5830AM
EM78P5830AAP, EM78P5830AAM
Fig.1 Pin assignment
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
3
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
V. Functional Block Diagram
CPU
DATA RAM
CONTROL REGISTER
TIM ING
CONTROL
TIM ER
TCC
COUNTER1
COUNTER2
WDT
I/O PORT
SPI
PWM
10-bit A/D
ROM
RAM
Fig.2a Block diagram
XIN XOUT PLLC
WDT
timer
R2
ROM
Oscillator
timing control
Interrupt
control
R1(TCC)
DATA
RAM
STACK
Prescaler
Instruction
register
General
RAM
Control sleep
and wakeup
on I/O port
ALU
R3
R5
ACC
Instruction
decoder
R4
DATA & Control Bus
SPI
PWM
10-bit A/D
IOC6
IOC7
IOC9
R6
R7
R9
IOCC
RC
PORT6
PORT7
PORT9
PORTC
P62~P67
P70
P73~P76
P90~P97
PC1~PC2
Fig.2b Block diagram
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
4
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
VI. Pin Descriptions
PIN
I/O
DESCRIPTION
POWER
AVDD
AVSS
POWER
POWER
Power
Ground
CLOCK
XIN
XOUT
PLLC
I
O
I
Input pin for 32.768 kHz oscillator
Output pin for 32.768 kHz oscillator
Phase loop lock capacitor, connect a capacitor 0.047u to 0.1u to the ground.
10-bit 4 channel A/D
VREF
I (P66)
AD3
I (P62)
AD4
I (P63)
AD5
I(P64)
AD6
I(P65)
SPI
SCK
IO (PORT76)
SDO
O (PORT75)
SDI
I (PORT74)
PWM
PWM1
O
PWM2
O
IO
P62 ~P67
P70 ; P73~P76
P90 ~ P97
PC1 ~ PC2
INT0
I/O
I/O
I/O
I/O
PORT70
INT3
PORT73
/RESET
I
ADC reference input. Shared with PORT66
ADC input channel 3. Shared with PORT62
ADC input channel 4. Shared with PORT63
ADC input channel 5. Shared with PORT64
ADC input channel 6. Shared with PORT65
Master: output pin, Slave: input pin. This pin shared with PORT76.
Output pin for serial data transferring. This pin shared with PORT75.
Input pin for receiving data. This pin shared with PORT74.
Pulse width modulation output channel 1
This pin shared with PORTC1
Pulse width modulation output channel 2
This pin shared with PORTC2
PORT6 can be INPUT or OUTPUT port each bit.
PORT7 can be INPUT or OUTPUT port each bit.
PORT9 can be INPUT or OUTPUT port each bit.
PORTC can be INPUT or OUTPUT port each bit.
Interrupt sources. Once PORT70 has a falling edge or rising edge signal
(controlled by CONT register), it will generate a interruption.
Interrupt sources which has the same interrupt flag. Any pin from PORT73
has a falling edge signal, it will generate a interruption.
Low reset
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
5
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
VII. Functional Descriptions
VII.1 Operational Registers
Register configuration
06
07
R PAGE registers
R PAGE0
R PAGE1
R PAGE2
Indirect addressing
TCC
PC
Page, Status
RAM bank, RSR
Port5 I/O data,
SPI control
Program ROM page
Port6 I/O data
SPI data buffer
Port7 I/O data
Data RAM bank
08
09
Port9 I/O data
Addr
00
01
02
03
04
05
0A PLL, Main clock,
WDTE
0B
0C
0D
0E
0F
10
:
1F
20
:
3F
PortC I/O data
Data RAM address
Data RAM data
buffer
R PAGE3
PWM control
Duty of PWM1
PWM1 control
Duty of PWM1
Period of PWM1
Duty of PWM2
PWM2 control
Duty of PWM2
Period of PWM2
ADC output data
buffer
Counter1 data
Counter2 data
Interrupt flag
Interrupt flag
16 bytes
Common registers
Bank0~Bank3
Common registers
(32x8 for each
bank)
IOC PAGE registers
Addr IOC PAGE0
IOC PAGE1
00
01
02
03
04
05 Port5 I/O control,
06 Port6 I/O control
Port6 switches
07 Port7 I/O control
Port7 pull high
08
09 Port9 I/O control
0A
0B
ADC control
0C PortC I/O control
0D
Clock
source(CN1,CN2)
Prescaler(CN1,CN2
)
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
6
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
0E
0F
10
:
1F
20
:
3F
Interrupt mask
VII.2 Operational Register Detail Description
R0 (Indirect Addressing Register)
R0 is not a physically implemented register. It is used as indirect addressing pointer. Any instruction using R0
as register actually accesses data pointed by the RAM Select Register (R4).
Example:
Mov A, @0x20
;store a address at R4 for indirect addressing
Mov 0x04, A
Mov A, @0xAA
;write data 0xAA to R20 at bank0 through R0
Mov 0x00, A
R1 (TCC)
TCC data buffer. Increased by 16.384KHz or by the instruction cycle clock (controlled by CONT register).
Written and read by the program as any other register.
R2 (Program Counter)
The structure is depicted in Fig.3.
Generates 16k × 13 on-chip ROM addresses to the relative programming instruction codes.
"JMP" instruction allows the direct loading of the low 10 program counter bits.
"CALL" instruction loads the low 10 bits of the PC, PC+1, and then push into the stack.
"RET'' ("RETL k", "RETI") instruction loads the program counter with the contents at the top of stack.
"MOV R2, A" allows the loading of an address from the A register to the PC, and the ninth and tenth bits are
cleared to "0''.
"ADD R2,A" allows a relative address be added to the current PC, and contents of the ninth and tenth bits are
cleared to "0''.
"TBL" allows a relative address added to the current PC, and contents of the ninth and tenth bits don't change.
The most significant bit (A10~A11) will be loaded with the contents of bit PS0~PS1 in the status register (R5
PAGE0) upon the execution of a "JMP'', "CALL'', "ADD R2, A'', or "MOV R2, A'' instruction.
If an interrupt is triggered, PROGRAM ROM will jump to address 0x08 at page0. The CPU will store ACC,
R3 status and R5 PAGE automatically, and they will be restored after instruction RETI.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
7
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
R5(PAGE)
CALL
and
INTERRUPT
A13 A12 A11 A10
A9 A8
A7~A0
0 0 0 0
PAGE0
00000~003FF
0 0 0 1
PAGE1
00400~007FF
0 0 1 0
PAGE2
RET
RETL
RETI
00800~00BFF
:
:
:
1 1 1 1
PAGE15
STACK1
STACK2
STACK3
STACK4
STACK5
STACK6
STACK7
STACK8
STACK9
STACK10
STACK11
STACK12
store
ACC,R3,R5(PAGE)
restore
05400~057FF
Fig.3 Program counter organization
R3 (Status, Page selection)
(Status flag, Page selection bits)
7
6
5
4
3
2
1
0
RPAGE1 RPAGE0 IOCPAGE
T
P
Z
DC
C
R/W-0
R/W-0
R/W-0
R
R
R/W
R/W
R/W
Bit 0(C) : Carry flag
Bit 1(DC) : Auxiliary carry flag
Bit 2(Z) : Zero flag
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 4(T) : Time-out bit
Set to 1 by the "SLEP" and "WDTC" command, or during power up and reset to 0 by WDT timeout.
EVENT
T
P
WDT wake up from sleep mode
0
0
WDT time out (not sleep mode)
0
1
/RESET wake up from sleep
1
0
Power up
1
1
Low pulse on /RESET
x
X
REMARK
x : don't care
Bit 5(IOCPAGE) : change IOC5 ~ IOCE to another page
Please refer to Fig.4 control register configuration for details.
0/1 Î IOC page0 / IOC page1
Bit 6(RPAGE0 ~ RPAGE1) : change R5 ~ RE to another page
Please refer to VII.1 Operational registers for detail register configuration.
(RPAGE1,RPAGE0)
R page # selected
(0,0)
(0,1)
(1,0)
(1,1)
R page 0
R page 1
R page 2
R page 3
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
8
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
R4 (RAM selection for common registers R20 ~ R3F))
(RAM selection register)
7
6
5
4
3
2
1
0
RB1
RB0
RSR5
RSR4
RSR3
RSR2
RSR1
RSR0
R/W-0
R/W-0
R/W
R/W
R/W
R/W
R/W
R/W
Bit 0 ~ Bit 5 (RSR0 ~ RSR5) : Indirect addressing for common registers R20 ~ R3F
RSR bits are used to select up to 32 registers (R20 to R3F) in the indirect addressing mode.
Bit 6 ~ Bit 7 (RB0 ~ RB1) : Bank selection bits for common registers R20 ~ R3F
These selection bits are used to determine which bank is activated among the 4 banks for 32 register (R20 to
R3F).
Please refer to VII.1 Operational registers for details.
R5 (PORT5 I/O data, Program page selection, SPI control , PWM control)
PAGE0 (PORT5 I/O data register, Program page register)
7
6
5
4
3
2
1
PS3
PS2
PS1
R/W-0
R/W-0
R/W-0
Bit 0 ~ Bit 3 (PS0 ~ PS3): Program page selection bits
PS3 PS2 PS1 PS0 Program memory page (Address)
0
0
0
0
Page 0
0
0
0
1
Page 1
0
0
1
0
Page 2
0
0
1
1
Page 3
:
:
:
:
:
:
:
:
:
:
1
1
1
0
Page 14
1
1
1
1
Page 15
0
PS0
R/W-0
User can use PAGE instruction to change page to maintain program page by user.
Bit 4: (undefined) not allowed to use. This bit must clear to 0 or some unpredicted wrong will occur.
Bit 5 ~ Bit 7: (undefined) not allowed to use. These bits are not sure be 0 or 1.
PAGE2 (SPI control)
7
6
RBF
SPIE
R/W-0
R/W-0
5
SRO
R/W-0
4
SE
R/W-0
3
SCES
R/W-0
2
SBR2
R/W-0
1
SBR1
R/W-0
0
SBR0
R/W-0
Bit 0 ~ Bit 2 (SBR0 ~ SBR2) : SPI baud rate selection bits
SBR2
0
0
0
0
1
1
1
1
SBR1
0
0
1
1
0
0
1
1
SBR0
0
1
0
1
0
1
0
1
Mode
Master
Master
Master
Master
Master
Master
Slave
Master
Baud rate
Fsco
Fsco/2
Fsco/4
Fsco/8
Fsco/16
Fsco/32
16.384k
<Note> Fsco = CPU instruction clock
For example :
If PLL is enabled and main clock is selected to 3.5826MHz, the instruction clock is 3.5826MHz/2
Î Fsco=3.5862MHz/2
If PLL is enabled and main clock is selected to 3.5826MHz, the instruction clock is 0.895MHz/2
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
9
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Î Fsco=0.895MHz/2
If PLL is disabled, the instruction clock is 32.768kHz/2 Î Fsco=32.768kHz/2.
Bit 3 (SCES) : SPI clock edge selection bit
1ÎData shifts out on falling edge, and shifts in on rising edge. Data is hold during the high level.
0ÎData shifts out on rising edge, and shifts in on falling edge. Data is hold during the low level.
Bit 4 (SE) : SPI shift enable bit
1 Î Start to shift, and keep on 1 while the current byte is still being transmitted.
0 Î Reset as soon as the shifting is complete, and the next byte is ready to shift.
<Note> This bit has to be reset in software.
Bit 5 (SRO) : SPI read overflow bit
1 Î A new data is received while the previous data is still being hold in the SPIB register. In this situation,
the data in SPIS register will be destroyed. To avoid setting this bit, users had better to read SPIB
register even if the transmission is implemented only.
0 Î No overflow, <Note> This can only occur in slave mode.
Bit 6 (SPIE) : SPI enable bit
1 Î Enable SPI mode
0 Î Disable SPI mode
Bit 7 (RBF) : SPI read buffer full flag
1 Î Receive is finished, SPIB is full.
0 Î Receive is not finish yet, SPIB is empty.
SDO
SDI
Master Device
Salve Device
R5 page1
SPIR register
SPIW register
SPIS Reg
Bit7
SDI
SDO
SCK
SCK
SPI module
Bit 0
Fig.4 Single SPI Master / Salve Communication
Fig. 4 shows how SPI to communicate with other device by SPI module. If SPI is a master controller, it
sends clock through the SCK pin. An 8-bit data is transmitted and received at the same time. If SPI,
however, is defined as a slave, its SCK pin could be programmed as an input pin. Data will continue to be
shifted on a basis of both the clock rate and the selected edge.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
10
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Write
R5
Read
R5
RBF
RBFI
SPIWC
SPIR reg.
SPIW reg.
set to 1
SPIE
SDI/P74
Buffer Full Detector
SDI
MUX
SPIS reg.
shift right
PORT62
bit 7
bit 0
SPIC reg. (R4 page1)
SDO
SDO/P75
MUX
PORT61
Edge
Select
SPIE
0
3
SBR0 ~SBR2
Noise
Filter
SBR2~SBR0
2
3
Clock Select
Tsco
Prescaler
4, 8, 16, 32, 64, 128
Edge
Select
16.38kHz
SCK
PORT60
MUX
SCK/P76
SCK
SPIE
Fig.5 SPI structure
SPIC reg. : SPI control register
SDO: Serial data out
SDI: Serial data in
SCK: Serial clock
RBF : Set by buffer full detector, and reset in software.
RBFI : Interrupt flag. Set by buffer full detector, and reset in software.
Buffer Full Detector : Sets to 1, while an 8-bit shifting is complete.
SE : Loads the data in SPIW register, and begin to shift
SPIE : SPI control register
SPIS reg. : Shifting byte out and in.
The MSB will be shifted first. Both the SPIS register and the SPIW register are loaded at the same time. Once
data being written to, SPIS starts transmission / reception. The received data will be moved to the SPIR
register, as the shifting of the 8-bit data is complete. The RBF (Read Buffer Full ) flag and the RBFI(Read
Buffer Full Interrupt) flag are set.
SPIR reg. : Read buffer.
The buffer will be updated as the 8-bit shifting is complete. The data must be read before the next reception is
finished. The RBF flag is cleared as the SPIR register read.
SPIW reg. : Write buffer.
The buffer will deny any write until the 8-bit shifting is complete. The SE bit will be kept in 1 if the
communication is still under going. This flag must be cleared as the shifting is finished. Users can determine if
the next write attempt is available.
SBR2 ~ SBR0: Programming the clock frequency/rates and sources.
Clock select : Selecting either the internal instruction clock or the external 16.338KHz clock as the shifting clock.
Edge Select : Selecting the appropriate clock edges by programming the SCES bit
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
11
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
SCK
(SCES=0)
SCK
(SCES=1)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
SDO
SDI
RBF
Shift data in
Shift data out
Clear by software
Fig.6 SPI timing
PAGE3 (PWMCON)
7
6
5
4
3
2
1
PWM2E PWM1E
T2EN
T1EN
T2P1
T2P0
T1P1
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit 0 ~ Bit 1 ( T1P0 ~ T1P1 ): TMR1 clock prescale option bits.
0
T1P0
R/W-0
T1P1
T1P0
Prescale
0
0
1:2(Default)
0
1
1:8
1
0
1:32
1
1
1:64
Bit 2 ~ Bit 3 ( T2P0 ~ T2P1 ): TMR2 clock prescale option bits.
T2P1
T2P0
Prescale
0
0
1:2(Default)
0
1
1:8
1
0
1:32
1
1
1:64
Bit 4 (T1EN): TMR1 enable bit
0 Î TMR1 is off (default value).
1 Î TMR1 is on.
Bit 5 (T2EN): TMR2 enable bit
0 Î TMR2 is off (default value).
1 Î TMR2 is on.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
12
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Bit 6 (PWM1E): PWM1 enable bit
0 Î PWM1 is off (default value), and its related pin carries out the PC1 function;
1 Î PWM1 is on, and its related pin will be set to output automatically.
Bit 7 (PWM2E): PWM2 enable bit
0 Î PWM2 is off (default value), and its related pin carries out the PC2 function.
1 Î PWM2 is on, and its related pin will be set to output automatically.
R6 (PORT6 I/O data, SPI data buffer)
PAGE0 (PORT6 I/O data register)
7
6
5
4
3
2
P67
P66
P65
P64
P63
P62
R/W
R/W
R/W
R/W
R/W
R/W
Bit0 ~Bit1: Unused register. These two bits are not allowed to use.
Bit2 ~ Bit7 (P62 ~ P67) : 6-bit PORT6(2~7) I/O data register
User can use IOC register to define input or output each bit.
1
X
-
0
X
-
PAGE1 : (undefined) not allowed to use
PAGE2 (SPI data buffer)
7
6
5
4
3
2
1
0
SPIB7
SPIB6
SPIB5
SPIB4
SPIB3
SPIB2
SPIB1
SPIB0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit 0 ~ Bit 7 (SPIB0 ~ SPIB7) : SPI data buffer
If you write data to this register, the data will write to SPIW register. If you read this data, it will read the
data from SPIR register. Please refer to figure7
PAGE3 (DT1L: the Least Significant Byte ( Bit 7 ~ Bit 0) of Duty Cycle of PWM1)
7
6
5
4
3
2
1
0
PWM1[7] PWM1[6] PWM1[5] PWM1[4] PWM1[3] PWM1[2] PWM1[1] PWM1[0]
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
A specified value keeps the output of PWM1 to stay at high until the value matches with TMR1.
R7 (PORT7 I/O data, Data RAM bank)
PAGE0 (PORT7 I/O data register)
7
6
5
4
3
2
1
0
X
P76
P75
P74
P73
X
X
P70
R/W
R/W
R/W
R/W
R/W
Bit 0 ; Bit3 ~ Bit 7 (P73 ~ P76) : 5-bit PORT7 I/O data register
User can use IOC register to define input or output each bit.
Bit1~2, Bit 7: Unused register. These three bits are not allowed to use.
PAGE1 (Data RAM bank selection bits)
7
6
5
4
3
2
1
0
AD9
AD8
ADRES
0
RAM_B0
R
R
R/W-0
R/W-0
R/W-0
Bit 0(RAM_B0) : Data RAM bank selection bits
Each bank has address 0 ~ address 255 which is total 256 (0.25k) bytes RAM size.
Data RAM bank selection : (Total RAM = 0.5K)
RAM_B0 RAM bank
0
Bank0
1
Bank1
Bit 1 : (undefined) not allowed to use. This bit must clear to 0.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
13
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Bit 2(ADRES) : Resolution selection for ADC
0 Î ADC is 8-bit resolution
When 8-bit resolution is selected, the most significant(MSB) 8-bit data output of the internal 10-bit ADC
will be mapping to RB PAGE1 so R7 PAGE1 bit 4 ~5 will be of no use.
1 Î ADC is 10-bit resolution
When 10-bit resolution is selected, 10-bit data output of the internal 10-bit ADC will be exactly mapping
to RB PAGE1 and R7 PAGE1 bit 4 ~5.
Bit 3 : (undefined) not allowed to use
Bit 4 ~ Bit 5(AD8 ~ AD9) : The most significant 2 bit of 10-bit ADC conversion output data
Combine these two bits and RB PAGE1 as complete 10-bit ADC conversion output data.
Bit 6 ~ Bit 7: (undefined) not allowed to use.
PAGE2 : (undefined) not allowed to use
PAGE3 (DT1H: the Most Significant Byte ( Bit 1 ~ Bit 0 ) of Duty Cycle of PWM1)
7
6
5
4
3
2
1
0
PWM1[9] PWM1[8]
R/W-0
R/W-0
Bit 0 ~ Bit 1 (PWM1[8] ~ PWM1[9]): The Most Significant Byte of PWM1 Duty Cycle
A specified value keeps the PWM1 output to stay at high until the value matches with TMR1.
Bit 2 Bit 7 : unused
R8 (Data RAM address, PWM1 period)
PAGE0: (undefined) not allowed to use
PAGE1 (Data RAM address register)
7
6
5
4
3
2
1
0
RAM_A7 RAM_A6 RAM_A5 RAM_A4 RAM_A3 RAM_A2 RAM_A1 RAM_A0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit 0 ~ Bit 7 (RAM_A0 ~ RAM_A7) : data RAM address
The data RAM bank’s selection is from R7 PAGE1 bit0 (RAM_B0).
PAGE2: (undefined) not allowed to use)
PAGE3(PRD1): Period of PWM1
7
6
5
4
3
2
1
0
PRD1[7] PRD1[6] PRD1[5] PRD1[4] PRD1[3] PRD1[2] PRD1[1] PRD1[0]
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
The content of this register is a period (time base) of PWM1. The frequency of PWM1 is the reverse of the
period.
R9 (PORT9 I/O data, Data RAM data buffer)
PAGE0 (PORT9 I/O data register)
7
6
5
4
3
2
1
0
P97
P96
P95
P94
P93
P92
P91
P90
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit 0 ~ Bit 7 (P90 ~ P97) : 8-bit PORT9(0~7) I/O data register
User can use IOC register to define input or output each bit.
PAGE1 (Data RAM data register)
7
6
5
4
3
2
1
0
RAM_D7 RAM_D6 RAM_D5 RAM_D4 RAM_D3 RAM_D2 RAM_D1 RAM_D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit 0 ~ Bit 7 (RAM_D0 ~ RAM_D7) : Data RAM’s data register.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
14
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
The address for data RAM is accessed from R8 PAGE1. The data RAM bank is selected by R7 PAGE1 Bit0
(RAM_B0).
PAGE2 : (undefined) not allowed to use
PAGE3 (DT2L: the Least Significant Byte ( Bit 7 ~ Bit 0 ) of Duty Cycle of PWM2)
7
6
5
4
3
2
1
0
PWM2[7] PWM2[6] PWM2[5] PWM2[4] PWM2[3] PWM2[2] PWM2[1] PWM2[0]
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
A specified value keeps the output of PWM2 to stay at high until the value matches with TMR2.
RA (PLL, Main clock selection, Watchdog timer)
PAGE0 (PLL enable bit, Main clock selection bits, Watchdog timer enable bit)
7
6
5
4
3
2
1
0
0
PLLEN
CLK2
CLK1
CLK0
X
X
WDTEN
R/W-0
R/W-0
R/W
R/W
R/W
R/W-0
Bit 0(WDTEN) : Watch dog control bit
User can use WDTC instruction to clear watch dog counter. The counter 's clock source is 32768/2 Hz. If
the prescaler assigns to TCC. Watch dog will time out by (1/32768 )*2 * 256 = 15.616mS. If the
prescaler assigns to WDT, the time of time out will be more times depending on the ratio of prescaler.
0/1 Î disable/enable
Bit 1~Bit 2 : Unused, these 2 bits are not allowed to use.
Bit 3 ~ Bit 5 (CLK0 ~ CLK2) : MAIN clock selection bits
User can choose different frequency of main clock by CLK1 and CLK2. All the clock selection is list below.
PLLEN
1
1
1
1
1
1
1
1
0
CLK2
CLK1
CLK0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
don’t care don’t care don’t care
Sub clock
MAIN clock
32.768kHz 447.829kHz
32.768kHz 895.658kHz
32.768kHz 1.791MHz
32.768kHz 3.582MHz
32.768kHz 7.165MHz
32.768kHz 10.747MHz
32.768kHz 14.331MHz
Can’t allowed to use
32.768kHz don’t care
CPU clock
447.829kHz (Normal mode)
895.658kHz (Normal mode)
1.791MHz (Normal mode)
3.582MHz (Normal mode)
7.165MHz (Normal mode)
10.747MHz (Normal mode)
14.331MHz (Normal mode)
32.768kHz (Green mode)
Bit 6(PLLEN) : PLL's power control bit which is CPU mode control register
0/1 Î disable PLL/enable PLL
If enable PLL, CPU will operate at normal mode (high frequency). Otherwise, it will run at green mode
(low frequency, 32768 Hz).
447.8293kHz ~14.3MHz
CLK2 ~ CLK0
PLL circuit
1
switch
ENPLL
0
System
clock
Sub-clock
32.768kHz
Fig.7 The relation between 32.768kHz and PLL
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
15
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Bit 7: Unused register. Always keep this bit to 0 or some un-expect error will happen!
The status after wake-up and the wake-up sources list as the table below.
Wakeup signal
TCC time out
IOCF bit0=1
COUNTER1 time out
IOCF bit1=1
COUNTER2 time out
IOCF bit2=2
WDT time out
PORT7 (0,3)
SLEEP mode
RA(7,6)=(0,0)
+ SLEP
No function
No function
No function
Reset and jump to
address 0
Reset and Jump to
address 0
<Note> PORT70 's wakeup function is controlled by IOCF bit 3. It's falling edge or rising edge trigger
(controlled by CONT register bit7).
PORT73 's wakeup function is controlled by IOCF bit 5. It is falling edge trigger.
PAGE1,2 : (undefined) not allowed to use
PAGE3 (DT2H: the Most Significant Byte ( Bit 1 ~ Bit 0 ) of Duty Cycle of PWM2)
7
6
5
4
3
2
1
0
PWM2[9] PWM2[8]
R/W-0
R/W-0
Bit 0 ~ Bit 1 (PWM2[8] ~ PWM2[9]): The Most Significant Byte of PWM1 Duty Cycle
A specified value keeps the PWM1 output to stay at high until the value matches with TMR1.
Bit 2 ~ Bit 7 : unused
RB (ADC input data buffer)
PAGE0 : (undefined) not allowed to use
PAGE1 (ADC output data register)
7
6
5
4
3
2
1
0
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
R
R
R
R
R
R
R
R
Bit 0 ~ Bit 7 (AD0 ~ AD7) : The last significant 8 bit of 10-bit or whole of 8 bit resolution ADC conversion
output data. Combine there 8 bits and R7 PAGE1 bit4~5 as complete 10-bit ADC conversion output data in 10
bit resolution mode.
PAGE2 (undefined) not allowed to use. This page is not sure to be 0 or 1
PAGE3 (PRD2: Period of PWM2)
7
6
5
4
3
2
1
0
PRD2[7] PRD2[6] PRD2[5] PRD2[4] PRD2[3] PRD2[2] PRD2[1] PRD2[0]
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
The content of this register is a period (time base) of PWM2. The frequency of PWM2 is the reverse of the
period.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
16
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
RC (PORTC I/O data, Counter1 data)
PAGE0 (PORT9 I/O data register)
7
6
5
4
3
2
1
0
X
X
X
X
X
PC2
PC1
X
R/W
R/W
Bit 1 ~ Bit 2 (PC1 ~ PC2): PORTC1,PORTC2 I/O data register
User can use IOC register to define input or output each bit.
Bit 0; Bit 3~Bit 7: (undefined) not allowed to use. These bits are not sure to 0 or 1
PAGE1 (Counter1 data register)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
CN17
CN16
CN15
CN14
CN13
CN12
CN11
CN10
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit 0 ~ Bit 7 (CN10 ~ CN17) : Counter1's buffer that user can read and write.
Counter1 is a 8-bit up-counter with 8-bit prescaler that user can use RC PAGE1 to preset and read the
counter.(write Î preset) After a interruption , it will reload the preset value.
Example for writing :
MOV 0x0C, A ; write the data at accumulator to counter1 (preset)
Example for reading :
MOV A, 0x0C
; read the data at counter1 to accumulator
PAGE2,3 (undefined) not allowed to use. This page is not sure to 0 or 1
RD (Counter2 data)
PAGE0 (Unused)
7
6
5
4
3
2
1
0
0
0
1
0
0
0
X
X
R/W-0
R/W-0
R/W-0
R/W
R/W
R/W
Bit 0 ~Bit 2 : These three bits must clear to 0 or MCU power consumption will increase.
Bit 3 , Bit 7 : (undefined) not allowed to use
Bit4 ~ Bit6: These 3 bits are unused, please clear bit5 and bit6 to 0 and set bit4 to 1.
PAGE1 (Counter2 data register)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
CN27
CN26
CN25
CN24
CN23
CN22
CN21
CN20
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Bit 0 ~ Bit 7 (CN20 ~ CN27) : Counter2's buffer that user can read and write.
Counter2 is a 8-bit up-counter with 8-bit prescaler that user can use RD PAGE1 to preset and read the
counter.(write Î preset) After a interruption, it will reload the preset value.
Example for writing :
MOV 0x0D, A ; write the data at accumulator to counter2 (preset)
Example for reading :
MOV A, 0x0D ; read the data at counter2 to accumulator
PAGE2,3 (undefined) not allowed to use. This page is not sure to 0 or 1
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
17
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
RE (Interrupt flag)
PAGE0 (Interrupt flag)
7
6
5
4
3
2
1
0
PWM2
RBF
ADI
PWM1
0
0
0
0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit0 ~ Bit3 : These three bits must clear to 0 or unable to expect error will occur .
Bit 4(PWM1) : PWM1 one period reach interrupt flag.
Bit 5 (ADI) : ADC interrupt flag after a sampling
Bit 6 (RBF) : SPI data transfer complete interrupt
If SPI's RBF signal has a rising edge signal (RBF set to "1" when transfer data completely), CPU will set
this bit.
Bit 7(PWM2) : PWM2 one period reach interrupt flag.
PAGE2,3 (undefined) not allowed to use. This page is not sure to 0 or 1
RF (Interrupt status)
(Interrupt status register)
7
6
5
4
3
2
1
0
INT3
INT0
CNT2
CNT1
TCIF
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
"1" means interrupt request, "0" means non-interrupt
Bit 0(TCIF) : TCC timer overflow interrupt flag
Set when TCC timer overflows.
Bit 1(CNT1) : counter1 timer overflow interrupt flag
Set when counter1 timer overflows.
Bit 2(CNT2) : counter2 timer overflow interrupt flag
Set when counter2 timer overflows.
Bit 3(INT0) : external INT0 pin interrupt flag
If PORT70 has a falling edge/rising edge (controlled by CONT register) trigger signal, CPU will set this bit.
Bit 4~6: Unused (These bits are not sure to 0 or 1. When programmer determine what interrupt occur in
subroutine, be care to note these bits)
Bit 7(INT3) : external PORT73 pin interrupt flag
<Note> IOCF is the interrupt mask register. User can read and clear.
Trigger edge as the table
Signal
Trigger
TCC
COUNTER1
COUNTER2
INT0
Time out
Time out
Time out
Falling
Rising edge
Falling edge
INT3
R10~R3F (General Purpose Register)
R10~R3F (Banks 0 ~ 3) : all are general purpose registers.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
18
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
VII.3 Special Purpose Registers
A (Accumulator)
Internal data transfer, or instruction operand holding
It's not an addressable register.
CONT (Control Register)
7
6
5
4
3
2
P70EG
INT
TS
RETBK
PAB
PSR2
Bit 0 ~ Bit 2 (PSR0 ~ PSR2) : TCC/WDT prescaler bits
PSR2
PSR1
PSR0
TCC rate
WDT 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
1:1
1:2
1:4
1:8
1:16
1:32
1:64
1:128
1
PSR1
0
PSR0
Bit 3(PAB) : Prescaler assignment bit
0/1 Î TCC/WDT
Bit 4(RETBK) : Return value backup control for interrupt routine
0/1 Î disable/enable
When this bit is set to 1, the CPU will store ACC,R3 status and R5 PAGE automatically after an interrupt is
triggered. And it will be restored after instruction RETI. When this bit is set to 0, the user need to store ACC,
R3 and R5 PAGE in user program.
Bit 5(TS) : TCC signal source
0 Î internal instruction cycle clock
1 Î 16.384kHz
Bit 6 (INT) : INT enable flag
0 Î interrupt masked by DISI or hardware interrupt
1 Î interrupt enabled by ENI/RETI instructions
Bit 7(P70EG) : interrupt edge type of P70
0 Î P70 's interruption source is a rising edge signal.
1 Î P70 's interruption source is a falling edge signal.
CONT register is readable (CONTR) and writable (CONTW).
TCC and WDT :
There is an 8-bit counter available as prescaler for the TCC or WDT. The prescaler is available for the TCC
only or WDT only at the same time.
An 8 bit counter is available for TCC or WDT determined by the status of the bit 3 (PAB) of the CONT
register.
See the prescaler ratio in CONT register.
Fig.8 depicts the circuit diagram of TCC/WDT.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
19
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
16.38KHz
Fig.8 Block diagram of TCC WDT
IOC5 (Unused)
PAGE0 (Unused)
7
6
0
0
5
0
4
3
2
1
0
X
X
X
X
X
R/W
R/W
R/W
Bit0~4 : (undefined) not allowed to use
Bit5~Bit7(Unused) : These three bits must clear to 0 or MCU power consumption will increase.
The default value in these 3 bits are “1”. Please clear them to “0” when init MCU.
PAGE1 (undefined) not allowed to use.(This page is not sure to 0 or 1 )
IOC6 (PORT6 I/O control, P6* pins switch control)
PAGE0 (PORT6 I/O control register)
7
6
5
4
3
2
1
0
IOC67
IOC66
IOC65
IOC64
IOC63
IOC62
0
0
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
Bit0~Bit1 (Unused) : These two bits must clear to 0 or MCU power consumption will increase.
The default value in these 2 bits are “1”. Please clear them to “0” when init MCU.
Bit 2 ~ Bit 7 (IOC62 ~ IOC67) : PORT6(0~7) I/O direction control register
0 Î put the relative I/O pin as output
1 Î put the relative I/O pin into high impedance
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
20
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
PAGE1 (P6* pins switch control register)
7
6
5
4
3
2
1
0
P66S
P65S
P64S
P63S
P62S
0
0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit 0~Bit 1 : These 2 bits are undefined bits. Please clear them to 0.
Bit 2(P62S) : Select normal I/O PORT62 pin or channel 3 input AD3 pin of ADC
0 Î P62 (I/O PORT62) pin is selected
1 Î AD3 (Channel 3 input of ADC) pin is selected
Bit 3(P63S) : Select normal I/O PORT63 pin or channel 4 input AD4 pin of ADC
0 Î P63 (I/O PORT63) pin is selected
1 Î AD4 (Channel 4 input of ADC) pin is selected
Bit 4(P64S) : Select normal I/O PORT64 pin or channel 5 input AD5 pin of ADC
0 Î P64 (I/O PORT64) pin is selected
1 Î AD5 (Channel 5 input of ADC) pin is selected
Bit 5(P65S) : Select normal I/O PORT65 pin or channel 6 input AD6 pin of ADC
0 Î P65 (I/O PORT65) pin is selected
1 Î AD5 (Channel 6 input of ADC) pin is selected
Bit 6(P66S) : Select modulation transmitting output pin of AD or I/O PORT66 pin
0 Î P66 (I/O PORT66) pin is selected and ADC reference voltage come from internal VDD
1 Î VREF (External reference voltage input of ADC) pin is selected, ADC reference voltage come from
pin “ADR”.
IOC7 (PORT7 I/O control, PORT7 pull high control)
PAGE0 (PORT7 I/O control register)
7
6
5
4
3
2
1
0
0
IOC76
IOC75
IOC74
IOC73
0
0
IOC70
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
Bit1~Bit2; Bit7 (Unused) : These 3 bits must clear to 0 or MCU power consumption will increase.
The default value in these 3 bits are “1”. Please clear them to “0” when init MCU.
Bit 0 ; Bit3~Bit6 (IOC70; IOC73~IOC76) : PORT7 I/O direction control register
0 Î put the relative I/O pin as output
1 Î put the relative I/O pin into high impedance
PAGE1 (PORT7 pull high control register)
7
6
5
4
3
2
1
0
0
PH76
PH75
PH74
PH73
0
0
PH70
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit1~Bit2; Bit7 (Unused) : These3 bits must clear to 0 or MCU power consumption will increase.
Bit0 ; Bit3~Bit6 : PORT7 pull high control register
0 Î disable pull high function.
1 Î enable pull high function
IOC8 (Unused)
PAGE0 (Unused)
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
** This page must clear to 0 or MCU power consumption will increase.
The default value in these 8 bits are “1”. Please clear them to “0” when init MCU.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
21
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
PAGE1 (Unused)
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
** This page must clear to 0 or the power consumption of MCU will increase.
IOC9 (PORT9 I/O control, PORT9 switches)
PAGE0 (PORT9 I/O control register)
7
6
5
4
3
2
1
0
IOC97
IOC96
IOC95
IOC94
IOC93
IOC92
IOC91
IOC90
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
Bit 0 ~ Bit 7 (IOC90 ~ IOC97) : PORT9(0~7) I/O direction control register
0 Î put the relative I/O pin as output
1 Î put the relative I/O pin into high impedance
PAGE1 (Unused)
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
**These 8 bits must clear to 0 or Port9 input or output function will wronging
IOCA (Unused)
PAGE0(undefined) not allowed to use
PAGE1(undefined) not allowed to use
7
6
5
4
3
2
1
0
X
X
X
X
0
0
0
0
R/W
R/W
R/W-0
R/W-0
Bit0~Bit1 : Undefined registers. Please clear these two bits to 0.
Bit3 , Bit6 (Unused) : These 2 bits must clear to 0 or MCU power consumption will increase.
Bit2, 4,5,6 are undefined register, they are not allowed to use.
IOCB (ADC control)
PAGE0 (Unused)
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
** This page must clear to 0 or MCU power consumption will increase.
The default value in these 8 bits are “1”. Please clear them to “0” when init MCU.
PAGE1 (ADC control bits)
7
6
5
4
3
2
1
0
IN2
IN1
IN0
ADCLK1 ADCLK0 ADPWR
X
ADST
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit 0(ADST) : AD converter start to sample
By setting to “1”, the AD will start to sample data. This bit will be cleared by hardware automatically after a
sampling.
Bit 1 : (undefined) not allowed to use
Bit 2(ADPWR) : AD converter power control, 1/0 Î enable/disable
Bit 3 ~ Bit 4 (ADCLK0 ~ ADCLK1) : AD circuit ‘s sampling clock source.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
22
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
For PLL clock = 895.658kHz ~ 14.3MHz (CLK2~CLK0 = 001 ~ 111)
ADCLK1 ADCLK0
Sampling rate
Operation voltage
0
0
74.6K
>=3.5V
0
1
37.4K
>=3.0V
1
0
18.7K
>=2.5V
1
1
9.3K
>=2.5V
For PLL clock = 447.829kHz (CLK2~CLK0 = 000)
ADCLK1 ADCLK0
Sampling rate
Operation voltage
0
0
37.4K
>=3.0V
0
1
18.7K
>=3.0V
1
0
9.3K
>=2.5V
1
1
4.7K
>=2.5V
This is a CMOS multi-channel 10-bit successive approximation A/D converter.
Features
74.6kHz maximum conversion speed at 5V.
Adjusted full scale input
External reference voltage input or internal(VDD) reference voltage
4 analog inputs multiplexed into one A/D converter
Power down mode for power saving
A/D conversion complete interrupt
Interrupt register, A/D control and status register, and A/D data register
PLL
fpll
Programmable
divider
1/Mx
Divider
Nx
fs
fadc
10-bit
ADC
ADC output
ADCLK1~ADCLK0
ENPLL
CLK2 ~ CLK0
Fig.9 ADC voltage control logic
fpll
14.331MHz
10.747MHz
7.165MHz
3.582MHz
1.791MHz
895.658kHz
447.829kHz
Mx
16
12
8
4
2
1
1
fs
895.658kHz
895.658kHz
895.658kHz
895.658kHz
895.658kHz
895.658kHz
447.829kHz
Nx = 1
74.638kHz
74.638kHz
74.638kHz
74.638kHz
74.638kHz
74.638kHz
37.391kHz
fadcon = fadc / 12
Nx = 2
Nx = 4
37.391kHz
18.659khz
37.391kHz
18.659khz
37.391kHz
18.659khz
37.391kHz
18.659khz
37.391kHz
18.659khz
37.391kHz
18.659khz
18.659khz
9.329kHz
Bit 5 ~ Bit 7(IN0~ IN2) : Input channel selection of AD converter
These two bits can choose one of three AD input.
IN2
IN1
IN0
Input
0
0
0
0
0
1
0
1
0
AD3
0
1
1
AD4
1
0
0
AD5
1
0
1
AD6
1
1
0
1
1
1
-
Nx = 8
9.329kHz
9.329kHz
9.329kHz
9.329kHz
9.329kHz
9.329kHz
4.665kHz
Pin
Not select
Not select
P62
P63
P64
P65
Not select
Not select
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
23
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
IOCC (PORTC I/O control, ADC control)
PAGE0 (Unused)
7
6
5
4
3
2
1
0
IOCC2
IOCC1
0
0
0
0
0
0
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
R/W-1
Bit 1 ~ Bit 2 (IOCC1 ~ IOCC2) : PORTC(1~2) I/O direction control register
0 Î put the relative I/O pin as output
1 Î put the relative I/O pin into high impedance
** Bit0 , Bit3 ~ Bit7 must clear to 0 or MCU power consumption will increase.
The default value in these 6 un-define bits are “1”. Please clear them to “0” when init MCU.
PAGE1 (PORT switch)
7
6
5
4
3
2
1
0
MS
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W/0
Bit 0(MS) : P6* switch mode selection
0 Î (default unknown)
1 Î ADC input mode selection
(Always set this bit to “1” otherwise partial ADC function cannot be used)
Bit 1 ~ Bit 7: (undefined) not allowed to use
IOCD (Clock source, Prescaler of CN1 and CN2)
PAGE0 (Reserved)
PAGE1 (Clock source and prescaler for COUNTER1 and COUNTER2)
7
6
5
4
3
2
CNT2S
C2_PSC2 C2_PSC1 C2_PSC0
CNT1S
C1_PSC2
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit 0 ~ Bit 2 (C1_PSC0 ~ C1_PSC2) : COUNTER1 prescaler ratio
C1_PSC2
C1_PSC1
C1_PSC0
COUNTER1
0
0
0
1:2
0
0
1
1:4
0
1
0
1:8
0
1
1
1:16
1
0
0
1:32
1
0
1
1:64
1
1
0
1:128
1
1
1
1:256
Bit 3(CNT1S) : COUNTER1 clock source
0/1 Î 16.384kHz/system clock
Bit 4 ~ Bit 6 (C2_PSC0 ~ C2_PSC2) : COUNTER2 prescaler ratio
C2_PSC2
C2_PSC1
C2_PSC0
COUNTER2
0
0
0
1:2
0
0
1
1:4
0
1
0
1:8
0
1
1
1:16
1
0
0
1:32
1
0
1
1:64
1
1
0
1:128
1
1
1
1:256
Bit 7(CNT2S) : COUNTER2 clock source
0/1 Î 16.384kHz/system clock
1
C1_PSC1
R/W-0
0
C1_PSC0
R/W-0
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
24
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
IOCE (Interrupt mask,)
PAGE0 (Interrupt mask)
7
6
5
4
3
2
1
0
PWM2
RBF
ADI
PWM1
0
0
0
0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit 0 ~ Bit 3 : Undefined register. Please clear these bits to 0.
Bit 4(PWM1) : PWM1 one period reach interrupt mask.
Bit 5 (ADI) : ADC conversion complete interrupt mask
0/1 Î disable/enable interrupt
There are four registers for A/D converter. Use one bit of interrupt control register (IOCE PAGE0 Bit5) for
A/D conversion complete interrupt. The status and control register of A/D (IOCB PAGE1 and RE PAGE0
Bit5) responses the A/D conversion status or takes control on A/D. The A/D data register (RB PAGE1)
stores A/D conversion result.
ADI bit in IOCE PAGE0 register is end of A/D conversion complete interrupt enable/disable. It
enables/disables ADI flag in RE register when A/D conversion is complete. ADI flag indicates the end of an
A/D conversion. The A/D converter sets the interrupt flag, ADI in RE PAGE0 register when a conversion is
complete. The interrupt can be disabled by setting ADI bit in IOCE PAGE0 Bit5 to ‘0’.
The A/D converter has 4 analog input channels AD3~AD6 multiplexed into one sample and hold to A/D
module. Reference voltage can be driven from VREF pin or internal power. The A/D converter itself is of
an 8-bit successive approximation type and produces an 8-bit result in the RB PAGE1 data register. A
conversion is initiated by setting a control bit ADST in IOCB PAGE1 Bit0. Prior to conversion, the
appropriate channel must be selected by setting IN0~IN1 bits in RE register and allowed for enough time to
sample data. Every conversion data of A/D need 12-clock cycle time. The minimum conversion time
required is 13 us (73K sample rate). ADST Bit in IOCB PAGE1 Bit0 must be set to begin a conversion.
It will be automatically reset in hardware when conversion is complete. At the end of conversion, the
START bit is cleared and the A/D interrupt is activated if ADI in IOCE PAGE0 Bit5 = 1. ADI will be set
when conversion is complete. It can be reset in software.
If ADI = 0 in IOCE PAGE0 Bit5, when A/D start conversion by setting ADST(IOCB PAGE1 Bit0) =
1 then A/D will continue conversion without stop and hardware won’t reset ADST bit. In this condition,
ADI is deactived. After ADI in IOCE PAGE0 bit5 is set, ADI in RE PAGE0 bit5 will activate again.
To minimum operating current , all biasing circuits in the A/D module that consume DC current are power
down when ADPWR bit in IOCB PAGE1 Bit2 register is a ’0’. When ADPWR bit is a ‘1’, A/D converter
module is operating.
User has to set PORT62~PORT65 as AD converter input pin or bi-direction IO PORT
1
2
3
4
5
6
7
8
9
10
START
SAMPLE
ADI(IOCE PAGE0 bit5 ) =1
Clear by software
ADI(RE PAGE0 bit 5)
DATA
Fig.10 A/D converter timing
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
25
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Bit 6 (RBF) : SPI’s RBF interrupt mask
0/1 Î disable/enable interrupt
Bit 7(PWM2) : PWM2 one period reach interrupt mask.
IOCF (Interrupt mask)
(Interrupt mask register)
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
INT3
INT0
CNT2
CNT1
TCIF
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
R/W-0
Bit 0 ~ 3 ; Bit 7 : interrupt enable bit
0 Î disable interrupt
1 Î enable interrupt
Bit 4~Bit6 : (remain these values to “0”othwise it will generate unpredicted interrupts)
The status after interrupt and the interrupt sources list as the table below.
Interrupt signal
TCC time out
IOCF bit0=1
And "ENI"
COUNTER1 time out
IOCF bit1=1
And "ENI"
COUNTER2 time out
IOCF bit2=2
And "ENI"
PORT70; 3
IOCF bit3 bit7 =1
And "ENI"
RBF
IOCE bit6 = 1
And “ENI
ADI
IOCE bit5 = 1
And “ENI
PWM1
IOCE bit4 = 1
And “ENI
PWM2
IOCE bit7 = 1
And “ENI
GREEN mode
NORMAL mode
RA(7,6)=(x,0)
no SLEP
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt <ps>
(jump to address 8 at
page0)
No function
RA(7,6)=(x,1)
no SLEP
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt
(jump to address 8 at
page0)
Interrupt <ps>
(jump to address 8 at
page0)
Interrupt <ps>
(jump to address 8 at
page0)
<Note> PORT70 's interrupt function is controlled by IOCF bit 3. It's falling edge or rising edge trigger
(controlled by CONT register bit7).
PORT73 's interrupt function is controlled by IOCF bit 7. They are falling edge trigger.
ADI interrupt source function is controlled by RE PAGE0 bit 5. It is rising edge trigger after ADC
sample complete.
<ps> It only happens when master and 16.386kHz mode is selected.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
26
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
VII.4 I/O Port
The I/O registers are bi-directional tri-state I/O ports. The I/O ports can be defined as "input" or "output" pins by
the I/O control registers under program control. The I/O data registers and I/O control registers are both readable
and writable. The I/O interface circuit is shown in Fig.11.
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
Fig.11_1 The circuit of I/O port and I/O control register
VDD
VDD
VDD
pull
high
PIN
120
ohm
Fig.11_2 The input/output circuit of EM785830AA input/output ports
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
27
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
VII.5 RESET
The RESET can be caused by
(1) Power on reset
(2) WDT timeout. (if enabled and in GREEN or NORMAL mode)
(3) /RESET pin pull low
Once the RESET occurs, the following functions are performed.
• The oscillator is running, or will be started.
• The Program Counter (R2) is set to all "0".
• When power on, the upper 3 bits of R3 and the upper 2 bits of R4 are cleared.
• The Watchdog timer and prescaler counter are cleared.
• The Watchdog timer is disabled.
• The CONT register is set to all "1"
• The other register (bit 7 ~ bit 0) default values are as follows.
Operation registers :
Address
R register
PAGE0
0x4
0x5
0x6
0x7
0x8
0x9
0xA
0xB
0xC
0xD
0xE
0xF
00xxxxxx
xxxx0000
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
00011xx0
xxxxxxxx
xxxxxxxx
xxxxx000
00000000
00000000
R register
PAGE1
R register
PAGE2
R register
PAGE3
IOC register
PAGE0
IOC register
PAGE1
xxxx0000
xxxxxxxx
xxxx0000
00000000
xxxxxxxx
11111111
xxxxxxxx
00000000
00000000
00000000
xxxxxxxx
00000000
00000000
xxxxxx00
00000000
00000000
xxxxxx00
00000000
111x0000
11111111
11111111
11111111
11111111
xxxxxxxx
11111111
11111111
xxxxxxxx
0000xxxx
00000000
00000000
00000000
00000000
00000000
x0xx0xx
000000x0
00000000
00000000
xxxxxxxx
0x000000
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
VII.6 Wake-up
The controller provided sleep mode for power saving :
SLEEP mode, RA(7) = 0 + "SLEP" instruction
The controller will turn off all the CPU and crystal. Other circuit with power control like key tone control or
PLL control (which has enable register), user has to turn it off by software.
Wake-up from SLEEP mode
(1) WDT time out
(2) External interrupt
(3) /RESET pull low
All these cases will reset controller , and run the program at address zero. The status just like the power on reset.
VII.7 Interrupt
RF is the interrupt status register which records the interrupt request in flag bit. IOCF is the interrupt mask
register. Global interrupt is enabled by ENI instruction and is disabled by DISI instruction. When one of the
interrupts (when enabled) generated, will cause the next instruction to be fetched from address 008H. Once in the
interrupt service routine, the source of the interrupt can be determined by polling the flag bits in the RF register.
The interrupt flag bit must be cleared in software before leaving the interrupt service routine and enabling
interrupts to avoid recursive interrupts.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
28
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
VII.8 Instruction Set
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 operates on I/O
register.
The symbol "R" represents a register designator which specifies which one of the 64 registers (including
operational registers and general purpose registers) is to be utilized by the instruction. Bits 6 and 7 in R4
determine the selected register bank. "b'' represents a bit field designator which selects the number of the bit,
located in the register "R'', affected by the operation. "k'' represents an 8 or 10-bit constant or literal value.
INSTRUCTION BINARY
0000
0001
0010
0011
0100
rrrr
0000
0001
0010
0011
HEX
0000
0001
0002
0003
0004
000r
0010
0011
0012
0013
MNEMONIC
NOP
DAA
CONTW
SLEP
WDTC
IOW R
ENI
DISI
RET
RETI
0 0000 0001 0100
0 0000 0001 rrrr
0 0000 0010 0000
0014
001r
0020
CONTR
IOR R
TBL
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
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
0
0
0
0
0
0
0
0
0
0
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0001
0001
0001
0001
0010
0010
0010
0010
0011
0011
0011
0011
0100
0100
0100
0000
0000
0000
0000
0000
0000
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
OPERATION
No Operation
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 bits 9,10 do not
clear
A→R
0→A
0→R
R-A → A
R-A → R
R-1 → A
R-1 → R
A∨R→A
A∨R→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
STATUS
AFFECTED
None
C
None
T,P
T,P
None
None
None
None
None
Instruction
cycle
1
1
1
1
1
1
1
1
2
2
None
None
Z,C,DC
1
1
2
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
29
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
0
0
0
0
0
0
0100
0101
0101
0101
0101
0110
11rr
00rr
01rr
10rr
11rr
00rr
rrrr
rrrr
rrrr
rrrr
rrrr
rrrr
04rr
05rr
05rr
05rr
05rr
06rr
COM R
INCA R
INC R
DJZA R
DJZ R
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
1
0111
0111
0111
100b
101b
110b
111b
00kk
01rr rrrr
10rr rrrr
11rr rrrr
bbrr rrrr
bbrr rrrr
bbrr rrrr
bbrr rrrr
kkkk kkkk
07rr
07rr
07rr
0xxx
0xxx
0xxx
0xxx
1kkk
SWAP R
JZA R
JZ R
BC R,b
BS R,b
JBC R,b
JBS R,b
CALL k
1
1
1
1
1
1
1
1
01kk
1000
1001
1010
1011
1100
1101
1110
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
0000
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
kkkk
0001
1kkk
18kk
19kk
1Akk
1Bkk
1Ckk
1Dkk
1E01
JMP k
MOV A,k
OR A,k
AND A,k
XOR A,k
RETL k
SUB A,k
INT
1 1110 100k kkkk
1 1111 kkkk kkkk
1E8k
1Fkk
PAGE k
ADD A,k
/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
(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->R5(4:0)
k+A → A
Z
Z
Z
None
None
C
1
1
1
2 if skip
2 if skip
1
C
1
C
1
C
1
None
1
None
None
None
None
None
None
None
None
1
2 if skip
2 if skip
1
1
2 if skip
2 if skip
2
None
None
Z
Z
Z
None
Z,C,DC
None
2
1
1
1
1
2
1
1
None
Z,C,DC
1
1
** 1 Instruction cycle = 2 main CLK
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
30
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
VII.9 Code Option
CODE Option Register
13
12
11
10
9
0
0
1
8
7
6
5
4
3
2
1
0
MER
Bit 3(MER) : Memory error recover function
0 Î disable memory error recover function
1 Î enable memory error recovery function
If user enable memory error recovery function, MCU will improve effect from environment noise.
Bit 9: This bit must set to 1.
Bit10 ~ Bit11 : These 2 bits must clear to 0.
VII.10 Dual sets of PWM (Pulse Width Modulation)
(1) Overview
In PWM mode, both PWM1 and PWM2 pins produce up to a 10-bit resolution PWM output (see. Fig.12
for the functional block diagram). A PWM output has a period and a duty cycle, and it keeps the output in
high. The baud rate of the PWM is the inverse of the period. Fig.13 depicts the relationships between a
period and a duty cycle.
DL2H + DL2L
latch
To PWM1IF
DT2H
+
DT2L
Fosc
1:2
1:8
1:32
1:64
Duty Cycle
Match
Comparator
PWM1
MUX
R
Q
TMR1H + TMR1L
reset
S
IOC6
Comparator
T1P0 T1P1 T1EN
Period
Match
PRD1
Data Bus
Data Bus
DL2H + DL2L
T2P0 T2P1 T2EN
DT2H
+
DT2L
Comparator
latch
To PWM2IF
Duty Cycle
Match
PWM2
Fosc
1:2
1:8
1:32
1:64
R
TMR2H + TMR2L
reset
MUX
Q
S
IOC6
Comparator
Period
Match
PRD2
Fig.12 The Functional Block Diagram of the Dual PWMs
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
31
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Period
Duty Cycle
PRD1 = TMR1
DT1 = TMR1
Fig.13 The Output Timing of the PWM
(2) Increment Timer Counter ( TMRX: TMR1H/TWR1L or TMR2H/TWR2L )
TMRX are ten-bit clock counters with programmable prescalers. They are designed for the PWM module
as baud rate clock generators. TMRX can be read, written, and cleared at any reset conditions. If
employed, they can be turned down for power saving by setting T1EN bit [PWMCON<4>] or T2EN bit
[PWMCON<5>] to 0.
(3) PWM Period ( PRDX : PRD1 or PRD2 )
The PWM period is defined by writing to the PRDX register. When TMRX is equal to PRDX, the
following events occur on the next increment cycle:
• TMRX is cleared.
• The PWMX pin is set to 1.
• The PWM duty cycle is latched from DT1/DT2 to DTL1/DTL2.
< Note > The PWM output will not be set, if the duty cycle is 0;
• The PWMXIF pin is set to 1.
The following formula describes how to calculate the PWM period:
PERIOD = (PRDX + 1) * 4 * (1/Fosc) * (TMRX prescale value )
Where Fosc is system clock
(4) PWM Duty Cycle ( DTX: DT1H/ DT1L and DT2H/ DT2L; DTL: DL1H/DL1L and DL2H/DL2L )
The PWM duty cycle is defined by writing to the DTX register, and is latched from DTX to DLX while
TMRX is cleared. When DLX is equal to TMRX, the PWMX pin is cleared. DTX can be loaded at any
time. However, it cannot be latched into DTL until the current value of DLX is equal to TMRX.
The following formula describes how to calculate the PWM duty cycle:
Duty Cycle = (DTX) * (1/Fosc) * (TMRX prescale value )
(5) PWM Programming Procedures/Steps
Load PRDX with the PWM period.
(1) Load DTX with the PWM Duty Cycle.
(2) Enable interrupt function by writing IOCF PAFE0, if required.
(3) Set PWMX pin to be output by writing a desired value to IOCC PAGE0.
(4) Load a desired value to R5 PAGE3 with TMRX prescaler value and enable both PWMX and TMRX.
(6) Timer
Timer1 (TMR1) and Timer2 (TMR2) (TMRX) are 10-bit clock counters with programmable prescalers,
respectively. They are designed for the PWM module as baud rate clock generators. TMRX can be read,
written, and cleared at any reset conditions.
The figure in the next page shows TMRX block diagram. Each signal and block are described as follows:
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
32
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Fosc
1:2
1:8
1:32
1:64
To PWM1IF
MUX
TMR1X
reset
Period
Match
Comparator
T1P0
T1P1 T1EN
PRD1
Data Bus
Data Bus
PRD2
T2P0 T2P1 T2EN
Fosc
1:2
1:8
1:32
1:64
Comparator
TMR2X
Period
Match
reset
MUX
To PWM2IF
*TMR1X = TMR1H + TMR1L;
*TMR2X = TMR2H +TMR2L
Fig.14 TMRX Block Diagram
• Fosc: Input clock.
• Prescaler ( T1P0 and T1P1/T2P1 and T2P0 ): Options of 1:2, 1:8, 1:32, and 1:64 are defined by TMRX. It is
cleared when any type of reset occurs.
• TMR1X and TMR2X (TMR1H/TWR1L and TMR2H/TMR2L ):Timer X register; TMRX is increased until
it matches with PRDX, and then is reset to 0. TMRX cannot be read.
• PRDX ( PRD1 and PRD2 ): PWM period register.
When defining TMRX, refer to the related registers of its operation as shown in prescale register. It must be
noted that the PWMX bits must be disabled if their related TMRXs are employed. That is, bit 7 and bit 6 of
the PWMCON register must be set to ‘0’.
Related Control Registers(R5 PAGE3) of TMR1 and TMR2
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3 Bit 2
Bit 1
PWM2E PWM1E T2EN T1EN T2P1 T2P0
T1P1
Bit 0
T1P0
Timer programming procedures/steps
(1) Load PRDX with the TIMER period.
(2) Enable interrupt function by writing IOCF PAGE0, if required
(3) Load a desired value to PWMCON with the TMRX prescaler value and enable both TMRX and disable
PWMX.
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
33
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
VIII. Absolute Operation Maximum Ratings
RATING
DC SUPPLY VOLTAGE
INPUT VOLTAGE
OPERATING TEMPERATURE RANGE
SYMBOL
VALUE
UNIT
VDD
Vin
Ta
-0.3 To 6
-0.5 to VDD +0.5
0 to 70
V
V
℃
IX. DC Electrical Characteristic
(Ta = 25°C, AVDD=VDD=5V±5%, VSS=0V)
Parameter
Symbol Condition
Min
Input leakage current for
IIL1
VIN = VDD, VSS
input pins
Input leakage current for biIIL2
VIN = VDD, VSS
directional pins
Input high voltage
VIH
2.5
Input low voltage
VIL
Input high threshold voltage
VIHT /RESET, TCC
2.0
Input low threshold voltage
VILT /RESET, TCC
Clock input high voltage
VIHX OSCI
3.5
Clock input low voltage
VILX OSCI
Output high voltage for
VOH1 IOH = -6mA
2.4
PORTC1~PORTC2
Output high voltage for
VOH2 IOH = -10mA
2.4
PORT62~PORT67; PORT7
Output high voltage for
VOH3 IOH = -20mA
2.4
PORT9
Output low voltage for
VOL1 IOH = 6mA
PORTC1~PORTC2
Output low voltage for
VOL2 IOH = 10mA
PORT62~PORT67; PORT7
Output low voltage for
VOL3 IOH = 20mA
PORT9
Pull-high current
IPH
Pull-high active input pin at
VSS
Power down current
ISB1
All input and I/O pin at VDD,
(SLEEP mode)
output pin floating, WDT
disabled
Low clock current
ISB2
CLK=32.768KHz, All analog
(GREEN mode)
circuits disabled, All input
and I/O pin at VDD, output
pin floating, WDT disabled
pin floating, WDT disabled
Operating supply current
ICC1
/RESET=High,
(Normal mode)
CLK=3.582MHz, All analog
circuits disabled, output pin
floating
Typ
Max
±1
Unit
µA
±1
µA
0.8
0.8
1.5
V
V
V
V
V
V
V
V
V
0.4
V
0.4
V
0.4
V
-10
-15
µA
4
8
µA
35
50
µA
1
2
mA
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
34
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
XI. AC Electrical Characteristic
CPU instruction timing (Ta = 25°C, AVDD=VDD=5V, VSS=0V)
Parameter
Symbol
Input CLK duty cycle
Instruction cycle time
Dclk
Tins
Device delay hold time
TCC input period
Watchdog timer period
Tdrh
Ttcc
Twdt
Condition
Min
Typ
Max
Unit
45
50
60
550
16
55
%
us
ns
ms
ns
ms
Max
52.8
38.4
Unit
mV
mV
32.768kHz
3.582MHz
Note 1
Ta = 25°C
(Tins+20)/N
16
Note 1: N= selected prescaler ratio.
ADC characteristic (VDD = 5V, Ta = +25°C, for internal reference voltage)
Parameter
Symbol
Condition
Upper bound offset voltage
Vofh
Lower bound offset voltage
Vofl
*These parameters are characterized but not tested.
* About ADC characteristic, please refer to next page.
Min
Typ
44
32
Timing characteristic (AVDD=VDD=5V,Ta=+25°C)
Description
Symbol Min Typ Max Unit
Oscillator timing characteristic
OSC start up
32.768kHz
Toscs
400
3.579MHz PLL
5
SPI timing characteristic (CPU clock 3.58MHz and Fsco = 3.58Mhz /2)
/SS set-up time
Tcss
560
/SS hold time
Tcsh
250
SCLK high time
Thi
250
SCLK low time
Tlo
250
SCLK rising time
Tr
15
SCLK falling time
Tf
15
SDI set-up time to the reading edge of SCLK
Tisu
25
SDI hold time to the reading edge of SCLK
Tihd
25
SDO disable time
Tdis
Timing characteristic of reset
The minimum width of reset low pulse
Trst
3
The delay between reset and program start
Tdrs
18
1500
10
ms
us
ns
30
30
560
ns
ns
ns
ns
ns
ns
ns
uS
mS
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
35
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
VDD
OSC
Toscs
Power
on reset
Trst
/RESET
Tdrs
Tdrs
Program
Active
The relative between OSC stable time and power on reset
EM78P5830A operation voltage(X axis Æ min VDD ; Y axis Æ main CLK):
MHz
14.33
10.74
7.16
3.58
1.79
V
2.2
2.5
3.0
3.6
4
5.5
Fig.15 The relative between operating voltage and main CLK
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
36
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
EM785830AA’s 10 bit ADC characteristic
EM785830AA build in 10 bit resolution, multi channel ADC function. In ideal, if ADC’s reference voltage is 5V,
the ADC’s LSB will be 5V/1024. But in practical, for some physics or circuit’s character, some un-ideal will effect the
converter result. As the next figure, offset voltage will reduce AD’s converter range. If AD’s input voltage less than VOFL,
ADC will output 0; in opposition, if input voltage is larger than (VDD-VOFH), ADC will output 1023. That is to say the
physics AD converter range will replace by (VDD-VOFH+LSB-VOFL+LSB). If we defined that VRB = VOFL – LSB and
VRT = VDD-VOFH+LSB, the physics LSB is:
LSB = (VRT - VRB) / 1024
= (VDD – (VOFH+VOFL) ) / 1022
For real operating, please think about the effect of AD’s offset voltage. If converter the range of (VRT - VRB), the AD
converter’s opposite result will be précised.
10-bit ADC
VDD
VRT
VOFH
Min. input for ADC output = 1023
(For 10-bit ADC, internally it takes this range to
average 1024 steps)
Min. input for ADC output = 1
VOFL
VRB
0V
Fig.16 The relative between ADC and offset voltage
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
37
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
XII. Timing Diagrams
ins
Fig.17 AC timing
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
38
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Appendix I: Describe of EM78P5830A/AA (only list the difference between mask
and OTP)
The EM78P5830A is an 8-bit RISC type microprocessor with low power, high speed CMOS technology. There
are 16Kx13 bits Electrical One Time Programmable Read Only Memory (OTP-ROM) within it. It provides security bits
and some One time programmable Option bits to protect the OTP memory code from any external access as well as to
meet user’s options.
This integrated single chip has an on_chip watchdog timer (WDT), program OTP-ROM, data RAM,
programmable real time clock/counter, internal interrupt, power down mode, built-in three-wire SPI, dual PWM(Pulse
Width Modulation), 4-channel 10-bit A/D converter and tri-state I/O.
Feature
CPU
• Operating voltage : 2.2V~5.5V at main CLK less then 3.58MHz.
Main CLK(Hz)
Under 3.58M
7.16M
10.74M
14.3M
Operating Voltage(min)
2.2
2.5
3
3.6
• 16k x 13 on chip Electrical One Time Programmable Read Only Memory (OTP-ROM)
• 0.5k x 8 on chip data RAM
•Up to 21 bi-directional tri-state I/O ports(4 shared with AD input; 1 shared with external interrupt input )
•16 level stack for subroutine nesting
•8-bit real time clock/counter (TCC)
•two 8-bit counters : COUNTER1 and COUNTER2
•On-chip watchdog timer (WDT)
•99.9% single instruction cycle commands
•Three modes (Main clock can be programmed from 447.829k to 14.3MHz generated by internal PLL)
Mode
CPU status
Main clock
32.768kHz clock status
Sleep mode
Turn off
Turn off
Turn off
Green mode
Turn on
Turn off
Turn on
Normal mode Turn on
Turn on
Turn on
• 7 level Normal mode frequency : 447.8K , 895.7K , 1.79M , 3.58M , 7.16M , 10.75M and 14.3MHz.
•Input port interrupt function
•Dual clocks operation (Internal PLL main clock , External 32.768KHz)
SPI
• Serial Peripheral Interface (SPI) : a kind of serial I/O interface
• Interrupt flag available for the read buffer full,
• Programmable baud rates of communication
• Three-wire synchronous communication. (shared with IO)
PWM
• Dual PWM (Pulse Width Modulation) with 10-bit resolution
• Programmable period (or baud rate)
• Programmable duty cycle
ADC
•Operating : 2.5V∼5.5V
•4 channel 10-bit successive approximation A/D converter
•Internal (VDD) or external reference
POR
•2.0V Power-on voltage detector reset
PACKAGE
28 pin PDIP and SOP package(300 mil)
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
39
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
One time programmable ROM burner pin
OTP PIN NAME
MASK ROM PIN NAME
VDD
AVDD
VPP
/RESET
DINCK
P65
ACLK
P64
PGMB
P63
OEB
P62
DATA
P73
GND
AVSS
P.S.
EM78P5830A CODE Option Register
13
12
11
10
9
0
0
1
8
7
6
5
4
3
2
1
MER
0
/POT0
Bit 0 (/POT0): program ROM protect option.
If set 1 to the bit, program memory can be access; else if clear this bit , program memory can not be
access.
Bit 3(MER) : Memory error recover function
0 Î disable memory error recover function
1 Î enable memory error recovery function
If user enable memory error recovery function, MCU will improve effect from environment noise.
Bit 9: Please set this bit to 1.
Bit 10: Please clear this bit to 0.
Bit 11: Please clear this bit to 0.
DC Electrical Characteristic
(Ta = 25°C, AVDD=VDD=5V±5%, VSS=0V)
Parameter
Symbol Condition
Output high voltage for
VOH2 IOH = -10mA
PORT62~PORT67
Output high voltage for
VOH3 IOH = -20mA
PORT7 ; PORT9
Output low voltage for
VOL2 IOH = 10mA
PORT62~PORT67
Output low voltage for
VOL3 IOH = 20mA
PORT7 ; PORT9
Min
2.4
Typ
Max
2.4
Unit
V
V
0.4
V
0.4
V
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
40
12/1/2004 V1.6
EM785830AA
8-bit Micro-controller
Appendix II: Package spec of EM785830AA, EM78P5830A/AA
EM785830AAP, EM78P5830AP, EM78P5830AAP
EM785830AAM, EM78P5830AM, EM78P5830AAM
__________________________________________________________________________________________________________________________________________________________________
* This specification is subject to be changed without notice.
41
12/1/2004 V1.6
Similar pages