Holtek
Holtek
Holtek
HT46R063B/HT46R064B/HT46R065B
Table of Contents
General Description ............................................................................1
Features ...............................................................................................1
CPU Features ........................................................................................................1
Peripheral Features ................................................................................................1
Technical Document ...........................................................................1
Selection Table ....................................................................................2
Block Diagram .....................................................................................2
Pin Assignment ...................................................................................3
Pin Description ....................................................................................4
HT46R064B ...........................................................................................................4
HT46R065B ...........................................................................................................5
HT46R066B ...........................................................................................................6
Absolute Maximum Ratings ...............................................................7
D.C. Characteristics ............................................................................7
A.C. Characteristics ............................................................................9
ADC Characteristics..........................................................................10
Power-on Reset Characteristics ......................................................10
System Architecture..........................................................................11
Clocking and Pipelining.........................................................................................11
Program Counter..................................................................................................12
Stack ....................................................................................................................12
Arithmetic and Logic Unit - ALU ...........................................................................12
Program Memory...............................................................................13
Structure...............................................................................................................13
Special Vectors.....................................................................................................13
Look-up Table.......................................................................................................14
Table Program Example .......................................................................................14
Data Memory......................................................................................15
Structure...............................................................................................................15
Special Purpose Data Memory .............................................................................16
Technical Document
· Application Note
- HA0075E MCU Reset and Oscillator Circuits Application Note
Features
CPU Features · Up to 6-level subroutine nesting
· Operating voltage: · Bit manipulation instruction
fSYS= 4MHz: 2.2V~5.5V · Low voltage reset function
fSYS= 8MHz: 3.0V~5.5V · Wide range of available package types
fSYS= 12MHz: 4.5V~5.5V
· Up to 0.33ms instruction cycle with 12MHz system Peripheral Features
clock at VDD= 5V · Up to 26 bidirectional I/O lines
· Oscillator types: · Up to 8 channel 12-bit ADC
External high freuency Crystal -- HXT
· Up to 2 channel 8-bit PWM
External RC -- ERC
· Software controlled 4-SCOM lines LCD driver with
Internal RC -- HIRC
External low frequency crystal -- LXT 1/2 bias
· Three operational modes: Normal, Slow, Sleep · External interrupt input shared with an I/O line
· Fully integrated internal 4MHz, 8MHz and 12MHz os- · Up to two 8-bit programmable Timer/Event
cillator requires no external components Counter with overflow interrupt and prescaler
· Watchdog Timer function · Time-Base function
· LIRC oscillator function for watchdog timer · Programmable Frequency Divider - PFD
General Description
The Enhanced A/D MCUs are a series of 8-bit high per- taining a high level of cost effectiveness. The fully inte-
formance, RISC architecture microcontrollers specifi- grated system oscillator HIRC, which requires no
cally designed for a wide range of applications. The external components and which has three frequency
usual Holtek microcontroller features of low power con- selections, opens up a huge range of new application
sumption, I/O flexibility, timer functions, oscillator op- possibilities for these devices, some of which may in-
tions, power down and wake-up functions, watchdog clude industrial control, consumer products, household
timer and low voltage reset, combine to provide devices appliances subsystem controllers, etc.
with a huge range of functional options while still main-
Selection Table
Program Data 8-bit Time HIRC RTC LCD
Part No. I/O A/D PWM PFD Stack Package
Memory Memory Timer Base (MHz) (LXT) SCOM
16DIP/NSOP,
HT46R064B 1K´14 64´8 18 1 1 4/8/12 Ö ¾ 12-bit´4 8-bit´1 Ö 4
20DIP/SOP/SSOP
16DIP/NSOP,
HT46R065B 2K´15 96´8 22 2 1 4/8/12 Ö 4 12-bit´4 8-bit´1 Ö 6 20DIP/SOP/SSOP,
24SKDIP/SOP/SSOP
16DIP/NSOP,
HT46R066B 4K´15 128´8 26 2 1 4/8/12 Ö 4 12-bit´8 8-bit´2 Ö 6 20DIP/SOP/SSOP,
24/28SKDIP/SOP/SSOP
Block Diagram
The following block diagram illustrates the main functional blocks.
T im in g
G e n e r a tio n
L C D P W M P F D I/O
S C O M D r iv e r D r iv e r P o rts
8 - b it
R IS C
M C U
C o re
A /D T im e R O M /R A M
C o n v e rte r T im e r B a s e M e m o ry
Pin Assignment
P A 3 /IN T /A N 3 1 2 0 P A 4 /P W M 0
P A 2 /T C 0 /A N 2 2 1 9 P A 5 /O S C 2
P A 3 /IN T /A N 3 1 1 6 P A 4 /P W M 0 P A 1 /P F D /A N 1 3 1 8 P A 6 /O S C 1 P A 3 /IN T /A N 3 1 1 6 P A 4 /P W M 0 /T C 1
P A 2 /T C 0 /A N 2 2 1 5 P A 5 /O S C 2 P A 0 /A N 0 4 1 7 P A 7 /R E S P A 2 /T C 0 /A N 2 2 1 5 P A 5 /O S C 2
P A 1 /P F D /A N 1 3 1 4 P A 6 /O S C 1 V S S 5 1 6 V D D P A 1 /P F D /A N 1 3 1 4 P A 6 /O S C 1
P A 0 /A N 0 4 1 3 P A 7 /R E S P C 0 6 1 5 P C 3 P A 0 /A N 0 4 1 3 P A 7 /R E S
V S S 5 1 2 V D D P C 1 7 1 4 P C 2 V S S 5 1 2 V D D
P B 0 6 1 1 P B 5 P B 0 8 1 3 P B 5 P B 0 /S C O M 0 6 1 1 P B 5
P B 1 7 1 0 P B 4 P B 1 9 1 2 P B 4 P B 1 /S C O M 1 7 1 0 P B 4
P B 2 8 9 P B 3 P B 2 1 0 1 1 P B 3 P B 2 //S C O M 2 8 9 P B 3 /S C O M 3
H T 4 6 R 0 6 4 B H T 4 6 R 0 6 4 B H T 4 6 R 0 6 5 B
1 6 D IP -A /N S O P -A 2 0 D IP -A /S O P -A /S S O P -A 1 6 D IP -A /N S O P -A
P A 3 /IN T /A N 3 1 2 4 P A 4 /P W M 0 /T C 1
P A 2 /T C 0 /A N 2 2 2 3 P A 5 /O S C 2
P A 3 /IN T /A N 3 1 2 0 P A 4 /P W M 0 /T C 1 P A 1 /P F D /A N 1 3 2 2 P A 6 /O S C 1
P A 2 /T C 0 /A N 2 2 1 9 P A 5 /O S C 2 P A 0 /A N 0 4 2 1 P A 7 /R E S
P A 1 /P F D /A N 1 3 1 8 P A 6 /O S C 1 V S S 5 2 0 V D D P A 3 /IN T /A N 3 1 1 6 P A 4 /P W M 0 /T C 1
P A 0 /A N 0 4 1 7 P A 7 /R E S P C 6 6 1 9 P C 5 P A 2 /T C 0 /A N 2 2 1 5 P A 5 /O S C 2
V S S 5 1 6 V D D P C 7 7 1 8 P C 4 P A 1 /P F D /A N 1 3 1 4 P A 6 /O S C 1
P C 0 6 1 5 P C 3 P C 0 8 1 7 P C 3 P A 0 /A N 0 4 1 3 P A 7 /R E S
P C 1 7 1 4 P C 2 P C 1 9 1 6 P C 2 V S S 5 1 2 V D D
P B 0 /S C O M 0 8 1 3 P B 5 P B 0 /S C O M 0 1 0 1 5 P B 5 P B 0 /S C O M 0 6 1 1 P C 3 /P W M 1
P B 1 /S C O M 1 9 1 2 P B 4 P B 1 /S C O M 1 1 1 1 4 P B 4 P B 1 /S C O M 1 7 1 0 P B 4
P B 2 //S C O M 2 1 0 1 1 P B 3 /S C O M 3 P B 2 //S C O M 2 1 2 1 3 P B 3 /S C O M 3 P B 2 //S C O M 2 8 9 P B 3 /S C O M 3
H T 4 6 R 0 6 5 B H T 4 6 R 0 6 5 B H T 4 6 R 0 6 6 B
2 0 D IP -A /S O P -A /S S O P -A 2 4 S K D IP -A /S O P -A /S S O P -A 1 6 D IP -A /N S O P -A
P A 3 /IN T /A N 3 1 2 8 P A 4 /P W M 0 /T C 1
P A 2 /T C 0 /A N 2 2 2 7 P A 5 /O S C 2
P A 3 /IN T /A N 3 1 2 4 P A 4 /P W M 0 /T C 1 P A 1 /P F D /A N 1 3 2 6 P A 6 /O S C 1
P A 2 /T C 0 /A N 2 2 2 3 P A 5 /O S C 2 P A 0 /A N 0 4 2 5 P A 7 /R E S
P A 3 /IN T /A N 3 1 2 0 P A 4 /P W M 0 /T C 1 P A 1 /P F D /A N 1 3 2 2 P A 6 /O S C 1 V S S 5 2 4 V D D
P A 2 /T C 0 /A N 2 2 1 9 P A 5 /O S C 2 P A 0 /A N 0 4 2 1 P A 7 /R E S P C 6 /A N 6 6 2 3 P C 5
P A 1 /P F D /A N 1 3 1 8 P A 6 /O S C 1 V S S 5 2 0 V D D P C 7 /A N 7 7 2 2 P C 4
P A 0 /A N 0 4 1 7 P A 7 /R E S P C 6 /A N 6 6 1 9 P C 5 P C 0 /A N 4 8 2 1 P C 3 /P W M 1
V S S 5 1 6 V D D P C 7 /A N 7 7 1 8 P C 4 P C 1 /A N 5 9 2 0 P C 2
P C 0 /A N 4 6 1 5 P C 3 /P W M 1 P C 0 /A N 4 8 1 7 P C 3 /P W M 1 P D 0 1 0 1 9 P D 3
P C 1 /A N 5 7 1 4 P C 2 P C 1 /A N 5 9 1 6 P C 2 P D 1 1 1 1 8 P D 2
P B 0 /S C O M 0 8 1 3 P B 5 /[IN T ] P B 0 /S C O M 0 1 0 1 5 P B 5 /[IN T ] P B 0 /S C O M 0 1 2 1 7 P B 5 /[IN T ]
P B 1 /S C O M 1 9 1 2 P B 4 /[T C 0 ] P B 1 /S C O M 1 1 1 1 4 P B 4 /[T C 0 ] P B 1 /S C O M 1 1 3 1 6 P B 4 /[T C 0 ]
P B 2 //S C O M 2 1 0 1 1 P B 3 /S C O M 3 /[P F D ] P B 2 //S C O M 2 1 2 1 3 P B 3 /S C O M 3 /[P F D ] P B 2 //S C O M 2 1 4 1 5 P B 3 /S C O M 3 /[P F D ]
H T 4 6 R 0 6 6 B H T 4 6 R 0 6 6 B H T 4 6 R 0 6 6 B
2 0 D IP -A /S O P -A /S S O P -A 2 4 S K D IP -A /S O P -A /S S O P -A 2 8 S K D IP -A /S O P -A /S S O P -A
Pin Description
HT46R064B
HT46R065B
HT46R066B
Note: These are stress ratings only. Stresses exceeding the range specified under ²Absolute Maximum Ratings² may
cause substantial damage to the device. Functional operation of this device at other conditions beyond those listed
in the specification is not implied and prolonged exposure to extreme conditions may affect device reliability.
Test Conditions
Symbol Parameter Min. Typ. Max. Unit
VDD Conditions
fSYS=4MHz 2.2 ¾ 5.5 V
VDD Operating Voltage ¾ fSYS=8MHz 3.0 ¾ 5.5 V
fSYS=12MHz 4.5 ¾ 5.5 V
3V No load, fSYS=32768Hz ¾ 5 10 mA
(LXT on OSC1/OSC2,
Operating Current 5V LVR disabled, LXTLP=1) ¾ 12 24 mA
IDD4
(HIRC + LXT, Slow Mode) 3V No load, fSYS=32768Hz ¾ 5 10 mA
(LXT on XT1/XT2,
5V LVR disabled, LXTLP=1) ¾ 10 20 mA
Test Conditions
Symbol Parameter Min. Typ. Max. Unit
VDD Conditions
Standby Current 3V ¾ ¾ 5 mA
ISTB1 No load, system HALT
(LIRC On, LXT Off) 5V ¾ ¾ 10 mA
Standby Current 3V ¾ ¾ 1 mA
ISTB2 No load, system HALT
(LIRC Off, LXT Off) 5V ¾ ¾ 2 mA
3V No load, system HALT ¾ ¾ 5 mA
5V (LXT on OSC1/OSC2) ¾ ¾ 10 mA
Standby Current
ISTB3
(LIRC Off, LXT On, LXTLP=1) 3V ¾ ¾ 3 mA
No load, system HALT
5V (LXT on XT1/XT2) ¾ ¾ 5 mA
Input Low Voltage for I/O,
VIL1 ¾ ¾ 0 ¾ 0.3VDD V
TCn and INT
Input High Voltage for I/O,
VIH1 ¾ ¾ 0.7VDD ¾ VDD V
TCn and INT
VIL2 Input Low Voltage (RES) ¾ ¾ 0 ¾ 0.4VDD V
VIH2 Input High Voltage (RES) ¾ ¾ 0.9VDD ¾ VDD V
VLVR1 Low Voltage Reset 1 ¾ VLVR = 4.2V 3.98 4.2 4.42 V
VLVR2 Low Voltage Reset 2 ¾ VLVR = 3.15V 2.98 3.15 3.32 V
VLVR3 Low Voltage Reset 3 ¾ VLVR = 2.1V 1.98 2.1 2.22 V
Note: The standby current (ISTB1~ISTB3) and IDD4 are measured with all I/O pins in input mode and tied to VDD.
Test Conditions
Symbol Parameter Min. Typ. Max. Unit
VDD Conditions
2.2V~5.5V 32 ¾ 4000 kHz
fSYS System Clock ¾ 3.0V~5.5V 32 ¾ 8000 kHz
4.5V~5.5V 32 ¾ 12000 kHz
3V/5V Ta=25°C -2% 4 +2% MHz
3V/5V Ta=25°C -2% 8 +2% MHz
5V Ta=25°C -2% 12 +2% MHz
3V/5V Ta=0~70°C -5% 4 +5% MHz
3V/5V Ta=0~70°C -5% 8 +5% MHz
5V Ta=0~70°C -5% 12 +5% MHz
2.2V~
Ta=0~70°C -8% 4 +8% MHz
3.6V
3.0V~
Ta=0~70°C -8% 4 +8% MHz
5.5V
System Clock
fHIRC
(HIRC) 3.0V~
Ta=0~70°C -8% 8 +8% MHz
5.5V
4.5V~
Ta=0~70°C -8% 12 +8% MHz
5.5V
2.2V~
Ta= -40°C~85°C -12% 4 +12% MHz
3.6V
3.0V~
Ta= -40°C~85°C -12% 4 +12% MHz
5.5V
3.0V~
Ta= -40°C~85°C -12% 8 +12% MHz
5.5V
4.5V~
Ta= -40°C~85°C -12% 12 +12% MHz
5.5V
5V Ta=25°C, R=120kW * -2% 4 +2% MHz
5V Ta=0~70°C, R=120kW * -5% 4 +5% MHz
System Clock Ta= -40°C~85°C,
fERC 5V -7% 4 +7% MHz
(ERC) R=120kW *
2.2V~ Ta= -40°C~85°C,
-11% 4 +11% MHz
5.5V R=120kW *
fLXT System Clock (LXT) ¾ ¾ ¾ 32768 ¾ Hz
2.2V~5.5V 0 ¾ 4000 kHz
Timer Input Frequency
fTIMER ¾ 3.0V~5.5V 0 ¾ 8000 kHz
(TCn)
4.5V~5.5V 0 ¾ 12000 kHz
3V ¾ 5 10 15 kHz
fLIRC LIRC Oscillator
5V ¾ 6.5 13 19.5 kHz
tRES External Reset Low Pulse Width ¾ ¾ 1 ¾ ¾ ms
For HXT/LXT ¾ 128 ¾ tSYS
tSST System Start-up time Period ¾ For ERC/IRC
¾ 2 ¾ tSYS
(By configuration option)
Test Conditions
Symbol Parameter Min. Typ. Max. Unit
VDD Conditions
tINT Interrupt Pulse Width ¾ ¾ 1 ¾ ¾ ms
tLVR Low Voltage Width to Reset ¾ ¾ 0.25 1 2 ms
RESTD Reset Delay Time ¾ ¾ ¾ 100 ¾ ms
Note: 1. tSYS=1/fSYS
2. *For fERC, as the resistor tolerance will influence the frequency a precision resistor is recommended.
3. To maintain the accuracy of the internal HIRC oscillator frequency, a 0.1mF decoupling capacitor should
be connected between VDD and VSS and located as close to the device as possible.
Test Conditions
Symbol Parameter Min. Typ. Max. Unit
VDD Conditions
3V
DNL A/C Differential Non-Linearity tAD=0.5ms -2 ¾ 2 LSB
5V
3V
INL ADC Integral Non-Linearity tAD=0.5ms -4 ¾ 4 LSB
5V
V D D
tP O R R R V D D
V P O R
T im e
System Architecture
A key factor in the high-performance features of the Program Counter is incremented at the beginning of the
Holtek range of microcontrollers is attributed to the inter- T1 clock during which time a new instruction is fetched.
nal system architecture. The range of devices take ad- The remaining T2~T4 clocks carry out the decoding and
vantage of the usual features found within RISC execution functions. In this way, one T1~T4 clock cycle
microcontrollers providing increased speed of operation forms one instruction cycle. Although the fetching and
and enhanced performance. The pipelining scheme is execution of instructions takes place in consecutive in-
implemented in such a way that instruction fetching and struction cycles, the pipelining structure of the
instruction execution are overlapped, hence instructions microcontroller ensures that instructions are effectively
are effectively executed in one cycle, with the exception executed in one instruction cycle. The exception to this
of branch or call instructions. An 8-bit wide ALU is used are instructions where the contents of the Program
in practically all operations of the instruction set. It car- Counter are changed, such as subroutine calls or
ries out arithmetic operations, logic operations, rotation, jumps, in which case the instruction will take one more
increment, decrement, branch decisions, etc. The inter- instruction cycle to execute.
nal data path is simplified by moving data through the
For instructions involving branches, such as jump or call
Accumulator and the ALU. Certain internal registers are
instructions, two instruction cycles are required to com-
implemented in the Data Memory and can be directly or
plete instruction execution. An extra cycle is required as
indirectly addressed. The simple addressing methods of
the program takes one cycle to first obtain the actual
these registers along with additional architectural fea-
jump or call address and then another cycle to actually
tures ensure that a minimum of external components is
execute the branch. The requirement for this extra cycle
required to provide a functional I/O and A/D control sys-
should be taken into account by programmers in timing
tem with maximum reliability and flexibility.
sensitive applications.
Clocking and Pipelining
The main system clock, derived from either a Crys-
tal/Resonator or RC oscillator is subdivided into four in-
ternally generated non-overlapping clocks, T1~T4. The
O s c illa to r C lo c k
( S y s te m C lo c k )
P h a s e C lo c k T 1
P h a s e C lo c k T 2
P h a s e C lo c k T 3
P h a s e C lo c k T 4
P ro g ra m C o u n te r P C P C + 1 P C + 2
F e tc h In s t. (P C )
P ip e lin in g
E x e c u te In s t. (P C -1 ) F e tc h In s t. (P C + 1 )
E x e c u te In s t. (P C ) F e tc h In s t. (P C + 2 )
E x e c u te In s t. (P C + 1 )
1 M O V A ,[1 2 H ] F e tc h In s t. 1 E x e c u te In s t. 1
2 C A L L D E L A Y F e tc h In s t. 2 E x e c u te In s t. 2
3 C P L [1 2 H ] F e tc h In s t. 3 F lu s h P ip e lin e
4 : F e tc h In s t. 6 E x e c u te In s t. 6
5 : F e tc h In s t. 7
6 D E L A Y : N O P
Instruction Fetching
Program Counter Counter are pushed onto the stack. At the end of a sub-
During program execution, the Program Counter is used routine or an interrupt routine, signaled by a return in-
to keep track of the address of the next instruction to be struction, RET or RETI, the Program Counter is restored
executed. It is automatically incremented by one each to its previous value from the stack. After a device reset,
time an instruction is executed except for instructions, the Stack Pointer will point to the top of the stack.
such as ²JMP² or ²CALL² that demand a jump to a
P ro g ra m C o u n te r
non-consecutive Program Memory address. Note that
the Program Counter width varies with the Program
Memory capacity depending upon which device is se- T o p o f S ta c k S ta c k L e v e l 1
lected. However, it must be noted that only the lower 8 S ta c k L e v e l 2
bits, known as the Program Counter Low Register, are S ta c k P ro g ra m
S ta c k L e v e l 3
directly addressable by user. P o in te r M e m o ry
Program Memory
The Program Memory is the location where the user Special Vectors
code or program is stored. The device is supplied with
Within the Program Memory, certain locations are re-
One-Time Programmable, OTP, memory where users served for special usage such as reset and interrupts.
can program their application code into the device. By
using the appropriate programming tools, OTP devices · Reset Vector
offer users the flexibility to freely develop their applica- This vector is reserved for use by the device reset for
program initialisation. After a device reset is initiated, the
tions which may be useful during debug or for products
program will jump to this location and begin execution.
requiring frequent upgrades or program changes.
· External interrupt vector
Structure This vector is used by the external interrupt. If the ex-
ternal interrupt pin on the device receives an edge
The Program Memory has a capacity of 1K´14 to
transition, the program will jump to this location and
4K´16. The Program Memory is addressed by the Pro- begin execution if the external interrupt is enabled and
gram Counter and also contains data, table information the stack is not full. The external interrupt active edge
and interrupt entries. Table data, which can be setup in transition type, whether high to low, low to high or both
any location within the Program Memory, is addressed is specified in the CTRL1 register.
by separate table pointer registers.
· Timer/Event 0/1 counter interrupt vector
Device Capacity This internal vector is used by the Timer/Event Coun-
ters. If a Timer/Event Counter overflow occurs, the
HT46R064B 1K´14 program will jump to its respective location and begin
HT46R065B 2K´15 execution if the associated Timer/Event Counter inter-
rupt is enabled and the stack is not full.
HT46R066B 4K´15
· Time base interrupt vector
This internal vector is used by the internal Time Base.
If a Time Base overflow occurs, the program will jump
to this location and begin execution if the Time Base
counter interrupt is enabled and the stack is not full.
H T 4 6 R 0 6 4 B H T 4 6 R 0 6 5 B H T 4 6 R 0 6 6 B
0 0 H R e s e t R e s e t R e s e t
0 4 H E x te rn a l E x te rn a l E x te rn a l
In te rru p t In te rru p t In te rru p t
0 8 H T im e r 0 T im e r 0 T im e r 0
In te rru p t In te rru p t In te rru p t
0 C H A /D T im e r 1 T im e r 1
In te rru p t In te rru p t In te rru p t
1 0 H T im e B a s e A /D A /D
In te rru p t In te rru p t In te rru p t
1 4 H T im e B a s e T im e B a s e
In te rru p t In te rru p t
1 8 H
3 F F H 1 4 b its
7 F F H 1 5 b its
F F F H 1 5 b its
Table Location
Data Memory
The Data Memory is a volatile area of 8-bit wide RAM The two sections of Data Memory, the Special Purpose
internal memory and is the location where temporary in- and General Purpose Data Memory are located at con-
formation is stored. secutive locations. All are implemented in RAM and are 8
bits wide but the length of each memory section is dic-
Structure tated by the type of microcontroller chosen. The start ad-
Divided into two sections, the first of these is an area of dress of the Data Memory for all devices is the address
RAM where special function registers are located. These ²00H².
registers have fixed locations and are necessary for cor- All microcontroller programs require an area of
rect operation of the device. Many of these registers can read/write memory where temporary data can be stored
be read from and written to directly under program con- and retrieved for use later. It is this area of RAM memory
trol, however, some remain protected from user manipu- that is known as General Purpose Data Memory. This
lation. The second area of Data Memory is reserved for area of Data Memory is fully accessible by the user pro-
general purpose use. All locations within this area are gram for both read and write operations. By using the
read and write accessible under program control. ²SET [m].i² and ²CLR [m].i² instructions individual bits
Device Capacity can be set or reset under program control giving the
user a large range of flexibility for bit manipulation in the
HT46R064B 64´8
Data Memory.
HT46R065B 96´8
For some devices, the Data Memory is subdivided into
HT46R066B 128´8 two banks, which are selected using a Bank Pointer.
Only data in Bank 0 can be directly addressed, data in
Bank 1 must be indirectly addressed.
H T 4 6 R 0 6 4 B H T 4 6 R 0 6 5 B H T 4 6 R 0 6 6 B
0 0 H IA R 0 IA R 0 IA R 0
0 1 H M P 0 M P 0 M P 0
0 2 H IA R 1 IA R 1 IA R 1
0 3 H M P 1 M P 1 M P 1
0 4 H
0 5 H A C C A C C A C C
0 6 H P C L P C L P C L
0 7 H T B L P T B L P T B L P
0 8 H T B L H T B L H T B L H
0 9 H W D T S W D T S W D T S
0 A H S T A T U S S T A T U S S T A T U S
0 B H IN T C 0 IN T C 0 IN T C 0
0 C H T M R 0 T M R 0 T M R 0
0 D H T M R 0 C T M R 0 C T M R 0 C
0 E H T M R 1 T M R 1
0 F H T M R 1 C T M R 1 C
1 0 H P A P A P A
1 1 H P A C P A C P A C
1 2 H P A P U P A P U P A P U
1 3 H P A W K P A W K P A W K
1 4 H P B P B P B
1 5 H P B C P B C P B C
1 6 H P B P U P B P U P B P U
1 7 H P C P C P C
1 8 H P C C P C C P C C
1 9 H P C P U P C P U P C P U
1 A H C T R L 0 C T R L 0 C T R L 0
1 B H C T R L 1 C T R L 1 C T R L 1
1 C H S C O M C S C O M C
1 D H P W M 1
1 E H IN T C 1 IN T C 1 IN T C 1
1 F H P W M 0 P W M 0 P W M 0
2 0 H A D R L A D R L A D R L
2 1 H A D R H A D R H A D R H
2 2 H A D C R A D C R A D C R
2 3 H A C S R A C S R A C S R
2 4 H
2 5 H P D
2 6 H P D C
2 7 H P D P U
2 8 H
2 9 H
2 A H
2 B H
2 C H
2 D H
2 E H
2 F H
3 0 H
3 1 H
3 2 H
3 F H
: U n u s e d , re a d a s "0 0 "
· STATUS Register
Bit 7 6 5 4 3 2 1 0
Name ¾ ¾ TO PDF OV Z AC C
R/W ¾ ¾ R R R/W R/W R/W R/W
POR ¾ ¾ 0 0 x x x x
²x² unknown
Bit 7, 6 Unimplemented, read as ²0²
Bit 5 TO: Watchdog Time-Out flag
0: After power up or executing the ²CLR WDT² or ²HALT² instruction
1: A watchdog time-out occurred.
Bit 4 PDF: Power down flag
0: After power up or executing the ²CLR WDT² instruction
1: By executing the ²HALT² instruction
Bit 3 OV: Overflow flag
0: no overflow
1: an operation results in a carry into the highest-order bit but not a carry out of the
highest-order bit or vice versa.
Bit 2 Z: Zero flag
0: The result of an arithmetic or logical operation is not zero
1: The result of an arithmetic or logical operation is zero
Bit 1 AC: Auxiliary flag
0: no auxiliary carry
1: an operation results in a carry out of the low nibbles in addition, or no borrow from the
high nibble into the low nibble in subtraction
Bit 0 C: Carry flag
0: no carry-out
1: an operation results in a carry during an addition operation or if a borrow does not take place
during a subtraction operation
C is also affected by a rotate through carry instruction.
Input/Output Ports and Control Registers high, for an output it must be set low. During program in-
Within the area of Special Function Registers, the port itialisation, it is important to first setup the control regis-
PA, PB, etc data I/O registers and their associated con- ters to specify which pins are outputs and which are
trol register PAC, PBC, etc play a prominent role. These inputs before reading data from or writing data to the I/O
registers are mapped to specific addresses within the ports. One flexible feature of these registers is the ability
Data Memory as shown in the Data Memory table. The to directly program single bits using the ²SET [m].i² and
data I/O registers, are used to transfer the appropriate ²CLR [m].i² instructions. The ability to change I/O pins
output or input data on the port. The control registers from output to input and vice versa by manipulating spe-
specifies which pins of the port are set as inputs and cific bits of the I/O control registers during normal pro-
which are set as outputs. To setup a pin as an input, the gram operation is a useful feature of these devices.
corresponding bit of the control register must be set
¨ HT46R064B
Bit 7 6 5 4 3 2 1 0
Name ¾ ¾ PWMSEL ¾ PWMC0 PFDC LXTLP CLKMOD
R/W ¾ ¾ R/W ¾ R/W R/W R/W R/W
POR ¾ ¾ 0 ¾ 0 0 0 0
¨ HT46R065B
Bit 7 6 5 4 3 2 1 0
Name ¾ PFDCS PWMSEL ¾ PWMC0 PFDC LXTLP CLKMOD
R/W ¾ R/W R/W ¾ R/W R/W R/W R/W
POR ¾ 0 0 ¾ 0 0 0 0
¨ HT46R066B
Bit 7 6 5 4 3 2 1 0
Name PCFG PFDCS PWMSEL PWMC1 PWMC0 PFDC LXTLP CLKMOD
R/W R/W R/W R/W R/W R/W R/W R/W R/W
POR 0 0 0 0 0 0 0 0
· CTRL1 Register
Bit 7 6 5 4 3 2 1 0
Name INTEG1 INTEG0 TBSEL1 TBSEL0 WDTEN3 WDTEN2 WDTEN1 WDTEN0
R/W R/W R/W R/W R/W R/W R/W R/W R/W
POR 1 0 0 0 1 0 1 0
Wake-up Function Register - PAWK terms of speed and power saving. Oscillator selections
When the microcontroller enters the Sleep Mode, vari- and operation are selected through a combination of
ous methods exist to wake the device up and continue configuration options and registers.
with normal operation. One method is to allow a falling
System Oscillator Overview
edge on the I/O pins to have a wake-up function. This
register is used to select which Port A I/O pins are used In addition to being the source of the main system clock
to have this wake-up function. the oscillators also provide clock sources for the Watch-
dog Timer and Time Base functions. External oscillators
Pull-high Registers - PAPU, PBPU, PCPU, PDPU requiring some external components as well as a two
fully integrated internal oscillators, requiring no external
The I/O pins, if configured as inputs, can have internal
components, are provided to form a wide range of both
pull-high resistors connected, which eliminates the need
fast and slow system oscillators.
for external pull-high resistors. This register selects which
I/O pins are connected to internal pull-high resistors. Type Name Freq. Pins
400kHz~ OSC1/
Software COM Register - SCOMC External Crystal HXT
12MHz OSC2
The pins PB0~PB3 on Port B can be used as SCOM
400kHz~
lines to drive an external LCD panel. To implement this External RC ERC OSC1
12MHz
function, the SCOMC register is used to setup the cor-
rect bias voltages on these pins. Internal High
HIRC 4, 8 or 12MHz ¾
Speed RC
T o in te r n a l P A 5 /O S C 2
c ir c u its In te rn a l R C
O S C 2 O s c illa to r
C 2
P A 6 /O S C 1
N o te : 1 . R p is n o r m a lly n o t r e q u ir e d . C 1 a n d C 2 a r e r e q u ir e d .
2 . A lth o u g h n o t s h o w n O S C 1 /O S C 2 p in s h a v e a p a r a s itic N o te : P A 5 /P A 6 u s e d a s n o rm a l I/O s
c a p a c ita n c e o f a r o u n d 7 p F .
Internal RC Oscillator - HIRC
Crystal/Resonator Oscillator - HXT
Using the ERC oscillator only requires that a resistor, When the microcontroller enters the Idle/Sleep Mode,
the system clock is switched off to stop microcontroller
with a value between 24kW and 1.5MW, is connected
activity and to conserve power. However, in many
between OSC1 and VDD, and a capacitor is connected
microcontroller applications it may be necessary to keep
between OSC and ground, providing a low cost oscilla-
the internal timers operational even when the
tor configuration. It is only the external resistor that de-
microcontroller is in the Power-down Mode. To do this,
termines the oscillation frequency; the external
another clock, independent of the system clock, must be
capacitor has no influence over the frequency and is
provided. To do this a configuration option exists to allow
connected for stability purposes only. Device trimming
a high speed oscillator to be used in conjunction with a a
during the manufacturing process and the inclusion of
low speed oscillator, known as the LXT oscillator. The
internal frequency compensation circuits are used to en-
LXT oscillator is implemented using a 32768Hz crystal
sure that the influence of the power supply voltage, tem-
connected to pins OSC1/OSC2. However, for some
perature and process variations on the oscillation
crystals, to ensure oscillation and accurate frequency It should be noted that, no matter what condition the
generation, it is necessary to add two small value exter- LXTLP bit is set to, the LXT oscillator will always func-
nal capacitors, C1 and C2. The exact values of C1 and tion normally, the only difference is that it will take more
C2 should be selected in consultation with the crystal or time to start up if in the Low-power mode.
resonator manufacturer¢s specification. The external
parallel feedback resistor, Rp, is required. The devices Internal Low Speed Oscillator - LIRC
the LXT oscillator must be used together with the HIRC The LIRC is a fully self-contained free running on-chip
oscillator. RC oscillator with a typical frequency of 13kHz at 5V re-
In te r n a l quiring no external components. When the device en-
C 1
O s c illa to r ters the Idle/Sleep Mode, the system clock will stop
C ir c u it running but the WDT oscillator continues to free-run and
3 2 7 6 8 H z R p
In te rn a l R C to keep the watchdog active. However, to preserve
O s c illa to r power in certain applications the LIRC can be disabled
via a configuration option.
T o in te r n a l
c ir c u its
C 2
Operating Modes
N o te : 1 . R p , C 1 a n d C 2 a r e r e q u ir e d . By using the LXT low frequency oscillator in combina-
2 . A lth o u g h n o t s h o w n p in s h a v e a
p a r a s itic c a p a c ita n c e o f a r o u n d 7 p F . tion with a high frequency oscillator, the system can be
selected to operate in a number of different modes.
External LXT Oscillator - HXT These Modes are Normal, Slow, Idle and Sleep.
f H X T C L K M O D
H X T
( D e te r m in e N o r m a l/
C o n fig u r a tio n o p tio n S lo w M o d e )
f E R C
E R C
( N o r m a l)
M U X
M U X f S Y S
f H IR C
H IR C
(S L O W )
f L X T
L X T
C o n fig u r a tio n o p tio n
f L IR C
L IR C M U X T o w a tc h d o g tim e r
f S Y S /4
For all devices, when the system enters the Sleep or Idle · The WDT will be cleared and resume counting if the
Mode, the high frequency system clock will always stop WDT clock source is selected to come from the WDT
running. The accompanying tables shows the relation- or LXT oscillator. The WDT will stop if its clock source
originates from the system clock.
ship between the CLKMOD bit, the HALT instruction and
the high/low frequency oscillators. The CLMOD bit can · The I/O ports will maintain their present condition.
change normal or Slow Mode. · In the status register, the Power Down flag, PDF, will
be set and the Watchdog time-out flag, TO, will be
· Operating Mode Control
cleared.
OSC1/OSC2 Configuration
Operating Standby Current Considerations
HIRC + LXT
Mode HXT ERC HIRC As the main reason for entering the Idle/Sleep Mode is
HIRC LXT to keep the current consumption of the MCU to as low a
Normal Run Run Run Run Run value as possible, perhaps only in the order of several
micro-amps, there are other considerations which must
Slow ¾ ¾ ¾ Stop Run
also be taken into account by the circuit designer if the
Sleep Stop Stop Stop Stop Run power consumption is to be minimised.
²¾² unimplemented Special attention must be made to the I/O pins on the
device. All high-impedance input pins must be con-
Mode Switching nected to either a fixed high or low level as any floating
The devices are switched between one mode and an- input pins could create internal oscillations and result in
other using a combination of the CLKMOD bit in the increased current consumption. Care must also be
CTRL0 register and the HALT instruction. The CLKMOD taken with the loads, which are connected to I/O pins,
bit chooses whether the system runs in either the Nor- which are setup as outputs. These should be placed in a
mal or Slow Mode by selecting the system clock to be condition in which minimum current is drawn or con-
sourced from either a high or low frequency oscillator. nected only to external circuits that do not draw current,
The HALT instruction forces the system into either the such as other CMOS inputs.
Idle or Sleep Mode, depending upon whether the LXT If the configuration options have enabled the Watchdog
oscillator is running or not. The HALT instruction oper- Timer internal oscillator LIRC then this will continue to
ates independently of the CLKMOD bit condition. run when in the Idle/Sleep Mode and will thus consume
When a HALT instruction is executed and the LXT oscil- some power. For power sensitive applications it may be
lator is not running, the system enters the Sleep mode therefore preferable to use the system clock source for
the following conditions exist: the Watchdog Timer. The LXT, if configured for use, will
· The system oscillator will stop running and the appli- also consume a limited amount of power, as it continues
cation program will stop at the ²HALT² instruction. to run when the device enters the Idle/Sleep Mode. To
· The Data Memory contents and registers will maintain
keep the LXT power consumption to a minimum level
their present condition. the LXTLP bit in the CTRL0 register, which controls the
low power function, should be set high.
· A system interrupt
· A WDT overflow
Watchdog Timer
The Watchdog Timer, also known as the WDT, is pro-
If the system is woken up by an external reset, the de-
vided to inhibit program malfunctions caused by the pro-
vice will experience a full system reset, however, if the
device is woken up by a WDT overflow, a Watchdog gram jumping to unknown locations due to certain
Timer reset will be initiated. Although both of these uncontrollable external events such as electrical noise.
wake-up methods will initiate a reset operation, the ac-
Watchdog Timer Operation
tual source of the wake-up can be determined by exam-
ining the TO and PDF flags. The PDF flag is cleared by a It operates by providing a device reset when the Watch-
system power-up or executing the clear Watchdog dog Timer counter overflows. Note that if the Watchdog
Timer instructions and is set when executing the ²HALT² Timer function is not enabled, then any instructions re-
instruction. The TO flag is set if a WDT time-out occurs, lated to the Watchdog Timer will result in no operation.
and causes a wake-up that only resets the Program Setting up the various Watchdog Timer options are con-
Counter and Stack Pointer, the other flags remain in trolled via the configuration options and two internal reg-
their original status. isters WDTS and CTRL1. Enabling the Watchdog Timer
Pins PA0 to PA7 can be setup via the PAWUK register to can be controlled by both a configuration option and the
permit a negative transition on the pin to wake-up the WDTEN bits in the CTRL1 internal register in the Data
system. When a PA0 to PA7 pin wake-up occurs, the pro- Memory.
gram will resume execution at the instruction following Configuration CTRL1 WDT
the ²HALT² instruction. Option Register Function
If the system is woken up by an interrupt, then two possi- Disable Disable OFF
ble situations may occur. The first is where the related Disable Enable ON
interrupt is disabled or the interrupt is enabled but the Enable x ON
stack is full, in which case the program will resume exe-
Watchdog Timer On/Off Control
cution at the instruction following the ²HALT² instruction.
In this situation, the interrupt which woke-up the device The Watchdog Timer will be disabled if bits
will not be immediately serviced, but will rather be ser- WDTEN3~WDTEN0 in the CTRL1 register are written
viced later when the related interrupt is finally enabled or with the binary value 1010B and WDT configuration op-
when a stack level becomes free. The other situation is tion is disable. This will be the condition when the device
where the related interrupt is enabled and the stack is is powered up. Although any other data written to
not full, in which case the regular interrupt response WDTEN3~WDTEN0 will ensure that the Watchdog
takes place. If an interrupt request flag is set to ²1² be- Timer is enabled, for maximum protection it is recom-
fore entering the Idle/Sleep Mode, then any future inter- mended that the value 0101B is written to these bits.
rupt requests will not generate a wake-up function of the
The Watchdog Timer clock can emanate from three dif-
related interrupt will be ignored.
ferent sources, selected by configuration option. These
No matter what the source of the wake-up event is, once are LXT, fSYS/4, or LIRC. It is important to note that when
a wake-up event occurs, there will be a time delay be- the system enters the Idle/Sleep Mode the instruction
fore normal program execution resumes. Consult the ta- clock is stopped, therefore if the configuration options
ble for the related time. have selected fSYS/4 as the Watchdog Timer clock
source, the Watchdog Timer will cease to function. For
Wake-up Oscillator Type
systems that operate in noisy environments, using the
Source ERC, IRC Crystal LIRC or the LXT as the clock source is therefore the rec-
External RES tRSDT + tSST2 tRSDT + tSST2 ommended choice. The division ratio of the prescaler is
determined by bits 0, 1 and 2 of the WDTS register,
PA Port
known as WS0, WS1 and WS2. If the Watchdog Timer in-
Interrupt tSST1 tSST2 ternal clock source is selected and with the WS0, WS1
and WS2 bits of the WDTS register all set high, the
WDT Overflow
prescaler division ratio will be 1:128, which will give a
maximum time-out period.
Under normal program operation, a Watchdog Timer while the second is to use the two commands ²CLR
time-out will initialise a device reset and set the status bit WDT1² and ²CLR WDT2². For the first option, a simple
TO. However, if the system is in the Idle/Sleep Mode, execution of ²CLR WDT² will clear the Watchdog Timer
when a Watchdog Timer time-out occurs, the device will while for the second option, both ²CLR WDT1² and
be woken up, the TO bit in the status register will be set
²CLR WDT2² must both be executed to successfully
and only the Program Counter and Stack Pointer will be
clear the Watchdog Timer. Note that for this second op-
reset. Three methods can be adopted to clear the con-
tion, if ²CLR WDT1² is used to clear the Watchdog
tents of the Watchdog Timer. The first is an external
Timer, successive executions of this instruction will
hardware reset, which means a low level on the external
have no effect, only the execution of a ²CLR WDT2² in-
reset pin, the second is using the Clear Watchdog Timer
struction will clear the Watchdog Timer. Similarly after
software instructions and the third is when a HALT in-
the ²CLR WDT2² instruction has been executed, only a
struction is executed. There are two methods of using
software instructions to clear the Watchdog Timer, one successive ²CLR WDT1² instruction can clear the
of which must be chosen by configuration option. The Watchdog Timer.
first option is to use the single ²CLR WDT² instruction
C L R W D T 1 F la g C le a r W D T T y p e
C L R W D T 2 F la g C o n fig u r a tio n O p tio n
1 o r 2 In s tr u c tio n s
C L R
fS /4
Y S C o n fig . fW D T C K
L X T O p tio n 1 5 s ta g e c o u n te r W D T T im e - o u t
L IR C S e le c t
W D T C lo c k S o u r c e S e le c tio n
W S 2 ~ W S 0
Watchdog Timer
· WDTS Register
Bit 7 6 5 4 3 2 1 0
Name ¾ ¾ ¾ ¾ ¾ WS2 WS1 WS0
R/W ¾ ¾ ¾ ¾ ¾ R/W R/W R/W
POR ¾ ¾ ¾ ¾ ¾ 1 1 1
where it is necessary to forcefully apply a reset condition Note: tRSTD is power-on delay, typical time=50ms
when the microcontroller is running. One example of this
Power-On Reset Timing Chart
is where after power has been applied and the
microcontroller is already running, the RES line is force-
fully pulled low. In such a case, known as a normal oper- For most applications a resistor connected between
VDD and the RES pin and a capacitor connected be-
ation reset, some of the microcontroller registers remain
tween VSS and the RES pin will provide a suitable ex-
unchanged allowing the microcontroller to proceed with
ternal reset circuit. Any wiring connected to the RES
normal operation after the reset line is allowed to return pin should be kept as short as possible to minimise
high. Another type of reset is when the Watchdog Timer any stray noise interference.
overflows and resets the microcontroller. All types of re- For applications that operate within an environment
set operations result in different register conditions be- where more noise is present the Enhanced Reset Cir-
ing setup. cuit shown is recommended.
Another reset exists in the form of a Low Voltage Reset, V D D
· Watchdog Time-out Reset during Normal Operation Program Counter Reset to zero
The Watchdog time-out Reset during normal opera- Interrupts All interrupts will be disabled
tion is the same as a hardware RES pin reset except
Clear after reset, WDT begins
that the Watchdog time-out flag TO will be set to ²1². WDT
counting
W D T T im e - o u t Timer/Event
Timer Counter will be turned off
tR S T D + tS S T Counter
In te rn a l R e s e t The Timer Counter Prescaler will
Prescaler
be cleared
Note: tRSTD is power-on delay, typical time=50ms
Input/Output Ports I/O ports will be setup as inputs
WDT Time-out Reset during Normal Operation
Timing Chart Stack Pointer will point to the top
Stack Pointer
of the stack
· Watchdog Time-out Reset during Idle/Sleep mode
The Watchdog time-out Reset during Idle/Sleep mode
is a little different from other kinds of reset. Most of the
conditions remain unchanged except that the Pro-
gram Counter and the Stack Pointer will be cleared to
²0² and the TO flag will be set to ²1². Refer to the A.C.
Characteristics for tSST details.
The different kinds of resets all affect the internal registers of the microcontroller in different ways. To ensure reliable
continuation of normal program execution after a reset occurs, it is important to know what condition the microcontroller
is in after a particular reset occurs. The following table describes how each type of reset affects each of the
microcontroller internal registers.
HT46R065B
HT46R064B
HT46R066B
Power-on RES or LVR WDT Time-out WDT Time-out
Register
Reset Reset (Normal Operation) (Idle/Sleep)
HT46R065B
HT46R064B
HT46R066B
Power-on RES or LVR WDT Time-out WDT Time-out
Register
Reset Reset (Normal Operation) (Idle/Sleep)
Port A Wake-up
Input/Output Ports
If the HALT instruction is executed, the device will enter
Holtek microcontrollers offer considerable flexibility on
the Idle/Sleep Mode, where the system clock will stop
their I/O ports. Most pins can have either an input or out-
resulting in power being conserved, a feature that is im-
put designation under user program control. Addi-
portant for battery and other low-power applications.
tionally, as there are pull-high resistors and wake-up
Various methods exist to wake-up the microcontroller,
software configurations, the user is provided with an I/O
one of which is to change the logic condition on one of
structure to meet the needs of a wide range of applica-
the PA0~PA7 pins from high to low. After a HALT instruc-
tion possibilities.
tion forces the microcontroller into entering the
For input operation, these ports are non-latching, which Idle/Sleep Mode, the processor will remain idle or in a
means the inputs must be ready at the T2 rising edge of low-power state until the logic condition of the selected
instruction ²MOV A,[m]², where m denotes the port ad- wake-up pin on Port A changes from high to low. This
dress. For output operation, all the data is latched and function is especially suitable for applications that can
remains unchanged until the output latch is rewritten. be woken up via external switches. Note that pins PA0 to
Pull-high Resistors PA7 can be selected individually to have this wake-up
feature using an internal register known as PAWK, lo-
Many product applications require pull-high resistors for
cated in the Data Memory.
their switch inputs usually requiring the use of an external
resistor. To eliminate the need for these external resis-
tors, when configured as an input have the capability of
being connected to an internal pull-high resistor. These
pull-high resistors are selectable via a register known as
PAPU, PBPU, PCPU, PDPU, PEPU and PFPU located in
the Data Memory. The pull-high resistors are imple-
mented using weak PMOS transistors. Note that pin PA7
does not have a pull-high resistor selection.
· PAWK, PAC, PAPU, PBC, PBPU, PCC, PCPU, PDC, PDPU Register
¨ HT46R064B
Register Bit
POR
Name 7 6 5 4 3 2 1 0
PAWK 00H PAWK7 PAWK6 PAWK5 PAWK4 PAWK3 PAWK2 PAWK1 PAWK0
PAC FFH PAC7 PAC6 PAC5 PAC4 PAC3 PAC2 PAC1 PAC0
PAPU 00H ¾ PAPU6 PAPU5 PAPU4 PAPU3 PAPU2 PAPU1 PAPU0
PBC 3FH ¾ ¾ PBC5 PBC4 PBC3 PBC2 PBC1 PBC0
PBPU 00H ¾ ¾ PBPU5 PBPU4 PBPU3 PBPU2 PBPU1 PBPU0
PCC FFH ¾ ¾ ¾ ¾ PCC3 PCC2 PCC1 PCC0
PCPU 00H ¾ ¾ ¾ ¾ PCPU3 PCPU2 PCPU1 PCPU0
¨ HT46R065B
Register Bit
POR
Name 7 6 5 4 3 2 1 0
PAWK 00H PAWK7 PAWK6 PAWK5 PAWK4 PAWK3 PAWK2 PAWK1 PAWK0
PAC FFH PAC7 PAC6 PAC5 PAC4 PAC3 PAC2 PAC1 PAC0
PAPU 00H ¾ PAPU6 PAPU5 PAPU4 PAPU3 PAPU2 PAPU1 PAPU0
PBC 3FH ¾ ¾ PBC5 PBC4 PBC3 PBC2 PBC1 PBC0
PBPU 00H ¾ ¾ PBPU5 PBPU4 PBPU3 PBPU2 PBPU1 PBPU0
PCC FFH PCC7 PCC6 PCC5 PCC4 PCC3 PCC2 PCC1 PCC0
PCPU 00H PCPU7 PCPU6 PCPU5 PCPU4 PCPU3 PCPU2 PCPU1 PCPU0
¨ HT46R066B
Register Bit
POR
Name 7 6 5 4 3 2 1 0
PAWK 00H PAWK7 PAWK6 PAWK5 PAWK4 PAWK3 PAWK2 PAWK1 PAWK0
PAC FFH PAC7 PAC6 PAC5 PAC4 PAC3 PAC2 PAC1 PAC0
PAPU 00H ¾ PAPU6 PAPU5 PAPU4 PAPU3 PAPU2 PAPU1 PAPU0
PBC 3FH ¾ ¾ PBC5 PBC4 PBC3 PBC2 PBC1 PBC0
PBPU 00H ¾ ¾ PBPU5 PBPU4 PBPU3 PBPU2 PBPU1 PBPU0
PCC FFH PCC7 PCC6 PCC5 PCC4 PCC3 PCC2 PCC1 PCC0
PCPU 00H PCPU7 PCPU6 PCPU5 PCPU4 PCPU3 PCPU2 PCPU1 PCPU0
PDC 0FH ¾ ¾ ¾ ¾ PDC3 PDC2 PDC1 PDC0
PDPU 00H ¾ ¾ ¾ ¾ PDPU3 PDPU2 PDPU1 PDPU0
I/O Port Control Registers pull-high selection, even if the PFD function has been
selected.
Each Port has its own control register, known as PAC,
PBC, PCC, PDC which controls the input/output config- · PWM Outputs
uration. With this control register, each I/O pin with or The PWM function whose outputs are pin-shared with
without pull-high resistors can be reconfigured dynami- I/O pins. The PWM output functions are chosen using
cally under software control. For the I/O pin to function the CTRL0 registers. Note that the corresponding bit
of the port control registers, for the output pin, must
as an input, the corresponding bit of the control register
setup the pin as an output to enable the PWM output.
must be written as a ²1². This will then allow the logic
If the pins are setup as inputs, then the pin will function
state of the input pin to be directly read by instructions. as a normal logic input with the usual pull-high selec-
When the corresponding bit of the control register is tions, even if the PWM registers have enabled the
written as a ²0², the I/O pin will be setup as a CMOS out- PWM function.
put. If the pin is currently setup as an output, instructions
· SCOM Driver Pins
can still be used to read the output register. However, it
Pins PB0~PB3 on Port B can be used as LCD COM
should be noted that the program will in fact only read driver pins. This function is controlled using the
the status of the output data latch and not the actual SCOMC register which will generate the necessary
logic status of the output pin. 1/2 bias signals on these four pins.
· A/D Inputs
Pin-shared Functions
Each device in this series has either four or eight in-
The flexibility of the microcontroller range is greatly en- puts to the A/D converter. All of these analog inputs
hanced by the use of pins that have more than one func- are pin-shared with I/O pins. If these pins are to be
tion. Limited numbers of pins can force serious design used as A/D inputs and not as I/O pins then the corre-
constraints on designers but by supplying pins with sponding PCRn bits in the A/D converter control regis-
multi-functions, many of these difficulties can be over- ter, ADCR, must be properly setup. There are no
come. For some pins, the chosen function of the configuration options associated with the A/D con-
multi-function I/O pins is set by configuration options verter. If chosen as I/O pins, then full pull-high resistor
configuration options remain, however if used as A/D
while for others the function is set by application pro-
inputs then any pull-high resistor configuration options
gram control.
associated with these pins will be automatically dis-
· External Interrupt Input connected.
The external interrupt pin, INT, is pin-shared with an
I/O pin. To use the pin as an external interrupt input Pin Remapping Configuration - HT46R066B
the correct bits in the INTC0 register must be pro-
The pin remapping function enables the function pins
grammed. The pin must also be setup as an input by
INT, TC0 and PFD to be located on different port pins. It
setting the PAC3 bit in the Port Control Register. A
pull-high resistor can also be selected via the appro- is important not to confuse the Pin Remapping function
priate port pull-high resistor register. Note that even if with the Pin-shared function, these two functions have
the pin is setup as an external interrupt input the I/O no interdependence.
function still remains. The PCFG bit in the CTRL0 register allows the three
· External Timer/Event Counter Input function pins INT, TC0 and PFD to be remapped to dif-
The Timer/Event Counter pins, TC0 and TC1 are ferent port pins. After power up, this bit will be reset to
pin-shared with I/O pins. For these shared pins to be zero, which will define the default port pins to which
used as Timer/Event Counter inputs, the Timer/Event
these three functions will be mapped. Changing this bit
Counter must be configured to be in the Event Coun-
will move the functions to other port pins.
ter or Pulse Width Capture Mode. This is achieved by
setting the appropriate bits in the Timer/Event Counter Examination of the pin names on the package diagrams
Control Register. The pins must also be setup as in- will reveal that some pin function names are repeated,
puts by setting the appropriate bit in the Port Control this indicates a function pin that can be remapped to
Register. Pull-high resistor options can also be se- other port pins. If the pin name is bracketed then this in-
lected using the port pull-high resistor registers. Note
dicates its alternative location. Pin names without brack-
that even if the pin is setup as an external timer input
ets indicates its default location which is the condition
the I/O function still remains.
after Power-on.
· PFD Output
The PFD function output is pin-shared with an I/O pin. PCFG Bit Status
The output function of this pin is chosen using the
PCFG Bit 0 1
CTRL0 register. Note that the corresponding bit of
the port control register, must setup the pin as an INT/PA3 [INT]/PB5
output to enable the PFD output. If the port control Pin Mapping TC0/PA2 [TC0]/PB4
register has setup the pin as an input, then the pin will PFD/PA1 [PFD]/PB3
function as a normal logic input with the usual
Pin Remapping
I/O Pin Structures Pins PA0 to PA7 each have a wake-up functions, se-
The diagrams illustrate the I/O pin internal structures. As lected via the PAWK register. When the device is in the
the exact logical construction of the I/O pin may differ Idle/Sleep Mode, various methods are available to wake
from these drawings, they are supplied as a guide only the device up. One of these is a high to low transition of
to assist with the functional understanding of the I/O any of the these pins. Single or multiple pins on Port A
pins. can be setup to have this function.
P o rt D a ta
R e a d fro m P o rt W r ite to P o r t
V D D
P u ll- H ig h
C o n tr o l B it S e le c t W e a k
D a ta B u s D Q P u ll- u p
W r ite C o n tr o l R e g is te r C K Q
C h ip R e s e t S
I/O p in
R e a d C o n tr o l R e g is te r
D a ta B it
D Q
W r ite D a ta R e g is te r C K Q
S
M
U
R e a d D a ta R e g is te r X
P A o n ly
S y s te m W a k e -u p
W a k e - u p S e le c t
C o n tr o l B it
D a ta B u s D Q
W r ite C o n tr o l R e g is te r C K Q
S
C h ip R e s e t
P A 7 /R E S
R e a d C o n tr o l R e g is te r
D a ta B it
D Q
W r ite D a ta R e g is te r C K Q
S
M
U
X
R e a d D a ta R e g is te r
S y s te m W a k e -u p (P A 7 )
P A W K 7
R E S fo r P A 7 o n ly
V D D
P u ll- H ig h
S e le c t
C o n tr o l B it W e a k
D a ta B u s D Q P u ll- u p
W r ite C o n tr o l R e g is te r C K Q
S
C h ip R e s e t
P B 0 /S C O M 0 ~
R e a d C o n tr o l R e g is te r P B 3 /S C O M 3
D a ta B it P B 4 ,P B 5
D Q
W r ite D a ta R e g is te r C K Q
S
M
U
X
R e a d D a ta R e g is te r
V D D /2
C O M n E N
S C O M E N
PB Input/Output Port
Configuring the Timer/Event Counter Input Clock The Timer Control Register is known as TMRnC. It is the
Source Timer Control Register together with its corresponding
The Timer/Event Counter clock source can originate timer register that control the full operation of the
from various sources, an internal clock or an external Timer/Event Counter. Before the timer can be used, it is
pin. The internal clock source source is used when the essential that the Timer Control Register is fully pro-
timer is in the timer mode or in the pulse width capture grammed with the right data to ensure its correct opera-
mode. For some Timer/Event Counters, this internal tion, a process that is normally carried out during
clock source is first divided by a prescaler, the division program initialisation.
ratio of which is conditioned by the Timer Control Regis- To choose which of the three modes the timer is to oper-
ter bits T0PSC0~T0PSC2. For Timer/Event Counter 0, ate in, either in the timer mode, the event counting mode
the internal clock source can be either fSYS or the LXT or the pulse width capture mode, bits 7 and 6 of the
Oscillator, the choice of which is determined by the T0S Timer Control Register, which are known as the bit pair
bit in the TMR0C register. TnM1/TnM0, must be set to the required logic levels.
An external clock source is used when the timer is in the The timer-on bit, which is bit 4 of the Timer Control Reg-
event counting mode, the clock source being provided ister and known as TnON, provides the basic on/off con-
on an external timer pin TCn. Depending upon the con- trol of the respective timer. Setting the bit high allows the
dition of the TnEG bit, each high to low, or low to high counter to run, clearing the bit stops the counter. Bits
transition on the external timer pin will increment the 0~2 of the Timer Control Register determine the division
counter by one. ratio of the input clock prescaler. The prescaler bit set-
tings have no effect if an external clock source is used. If
Timer Registers - TMR0, TMR1 the timer is in the event count or pulse width capture
mode, the active transition edge level type is selected by
The timer registers are special function registers located
the logic level of bit 3 of the Timer Control Register
in the Special Purpose Data Memory and is the place
which is known as TnEG. The TnS bit selects the inter-
where the actual timer value is stored. These registers
nal clock source if used.
are known as TMR0 and TMR1. The value in the timer
registers increases by one each time an internal clock
Timer Mode
pulse is received or an external transition occurs on the
external timer pin. The timer will count from the initial In this mode, the Timer/Event Counter can be utilised to
value loaded by the preload register to the full count of measure fixed time intervals, providing an internal inter-
FFH at which point the timer overflows and an internal rupt signal each time the Timer/Event Counter over-
interrupt signal is generated. The timer value will then flows. To operate in this mode, the Operating Mode
be reset with the initial preload register value and con- Select bit pair, TnM1/TnM0, in the Timer Control Regis-
tinue counting. ter must be set to the correct value as shown.
Note that to achieve a maximum full range count of FFH, Control Register Operating Mode Bit7 Bit6
the preload register must first be cleared to all zeros. It Select Bits for the Timer Mode 1 0
should be noted that after power-on, the preload regis-
ters will be in an unknown condition. Note that if the In this mode the internal clock is used as the timer clock.
Timer/Event Counter is in an OFF condition and data is The timer input clock source is either fSYS , fSYS/4 or the
written to its preload register, this data will be immedi- LXT oscillator. However, this timer clock source is fur-
ately written into the actual counter. However, if the ther divided by a prescaler, the value of which is deter-
counter is enabled and counting, any new data written mined by the bits TnPSC2~TnPSC0 in the Timer
into the preload data register during this period will re- Control Register. The timer-on bit, TnON must be set
main in the preload register and will only be written into high to enable the timer to run. Each time an internal
the actual counter the next time an overflow occurs. clock high to low transition occurs, the timer increments
by one; when the timer is full and overflows, an interrupt
Timer Control Registers - TMR0C, TMR1C signal is generated and the timer will reload the value al-
The flexible features of the Holtek microcontroller ready loaded into the preload register and continue
Timer/Event Counters enable them to operate in three counting. A timer overflow condition and corresponding
different modes, the options of which are determined by internal interrupt is one of the wake-up sources, how-
the contents of their respective control register. ever, the internal interrupts can be disabled by ensuring
that the ETnI bits of the INTCn register are reset to zero.
P W M C o n tro l P W M 0 , P W M 1
P W M C 0
P W M C 1
T im e - B a s e C o n tr o l T im e - B a s e e v e n t in te r r u p t P e r io d
T 0 S 1
(2 10 ~ 2 13 ) *
fT P
fS Y S 0
M U X fT P
7 S ta g e C o u n te r
fL X T 1
7
T o T im e r 0 in te r n a l c lo c k
T 0 P S C [2 :0 ] 8 -1 M U X (fT 0 C K = fT P ~ fT P /1 2 8 )
T im e r P r e s c a le r
D a ta B u s
T 0 M 1 , T 0 M 0
P r e lo a d R e g is te r
T im e r 0 In te r n a l C lo c k
(fT 0 C K ) M o d e C o n tro l T 0 O V
U p C o u n te r O v e r flo w
T C 0 to In te rru p t
T 0 O N
T 0 E G ¸ 2 P F D 0
D a ta B u s
T 1 M 1 , T 1 M 0
M P r e lo a d R e g is te r
fS Y S /4
U
L X T O s c illa to r X M o d e C o n tro l T 1 O V
T 1 S
U p C o u n te r O v e r flo w
T C 1 to In te rru p t
T 1 O N
T 1 E G ¸ 2 P F D 1
P F D C S
P F D 0 0
M U X P F D o u tp u t
P F D 1 1
Note: If PWM0/PWM1 is enabled, then fTP comes from fSYS (ignore T0S)
· TMR0C Register
Bit 7 6 5 4 3 2 1 0
Name T0M1 T0M0 T0S T0ON T0EG T0PSC2 T0PSC1 T0PSC0
R/W R/W R/W R/W R/W R/W R/W R/W R/W
POR 0 0 0 0 1 0 0 0
Bit 7 6 5 4 3 2 1 0
Name T1M1 T1M0 T1S T1ON T1EG ¾ ¾ ¾
R/W R/W R/W R/W R/W R/W ¾ ¾ ¾
POR 0 0 0 0 1 ¾ ¾ ¾
P r e s c a le r O u tp u t
In c re m e n t
T im e r C o n tr o lle r T im e r + 1 T im e r + 2 T im e r + N T im e r + N + 1
E x te rn a l E v e n t
In c re m e n t
T im e r C o u n te r T im e r + 1 T im e r + 2 T im e r + 3
E x te rn a l T C n
P in In p u t
T n O N - w ith T n E = 0
P r e s c a le r O u tp u t
In c re m e n t
T im e r + 1 + 2 + 3 + 4
T im e r C o u n te r
P r e s c a le r O u tp u t is s a m p le d a t e v e r y fa llin g e d g e o f T 1 .
Pulse Width Capture Mode Timing Chart (TnE=0)
T im e r O v e r flo w
P F D C lo c k
P A 1 D a ta
P F D O u tp u t a t P A 1
PFD Function
I/O Interfacing ated timer enable bits in the interrupt control register must
The Timer/Event Counter, when configured to run in the be properly set otherwise the internal interrupt associated
event counter or pulse width capture mode, requires the with the timer will remain inactive. The edge select, timer
use of an external timer pin for its operation. As this pin is mode and clock source control bits in timer control regis-
a shared pin it must be configured correctly to ensure that ter must also be correctly set to ensure the timer is prop-
it is setup for use as a Timer/Event Counter input pin. This erly configured for the required application. It is also
is achieved by ensuring that the mode select bits in the important to ensure that an initial value is first loaded into
Timer/Event Counter control register, select either the the timer registers before the timer is switched on; this is
event counter or pulse width capture mode. Additionally because after power-on the initial values of the timer reg-
the corresponding Port Control Register bit must be set isters are unknown. After the timer has been initialised
high to ensure that the pin is setup as an input. Any the timer can be turned on and off by controlling the en-
pull-high resistor connected to this pin will remain valid able bit in the timer control register.
even if the pin is used as a Timer/Event Counter input. When the Timer/Event Counter overflows, its corre-
sponding interrupt request flag in the interrupt control
Programming Considerations register will be set. If the Timer/Event Counter interrupt
When configured to run in the timer mode, the internal is enabled this will in turn generate an interrupt signal.
system clock is used as the timer clock source and is However irrespective of whether the interrupts are en-
therefore synchronised with the overall operation of the abled or not, a Timer/Event Counter overflow will also
microcontroller. In this mode when the appropriate timer generate a wake-up signal if the device is in a
register is full, the microcontroller will generate an internal Power-down condition. This situation may occur if the
interrupt signal directing the program flow to the respec- Timer/Event Counter is in the Event Counting Mode and
tive internal interrupt vector. For the pulse width capture if the external signal continues to change state. In such
mode, the internal system clock is also used as the timer a case, the Timer/Event Counter will continue to count
clock source but the timer will only run when the correct these external events and if an overflow occurs the de-
logic condition appears on the external timer input pin. As vice will be woken up from its Power-down condition. To
this is an external event and not synchronised with the in- prevent such a wake-up from occurring, the timer inter-
ternal timer clock, the microcontroller will only see this ex- rupt request flag should first be set high before issuing
ternal event when the next timer clock pulse arrives. As a the ²HALT² instruction to enter the Idle/Sleep Mode.
result, there may be small differences in measured val-
ues requiring programmers to take this into account dur- Timer Program Example
ing programming. The same applies if the timer is The program shows how the Timer/Event Counter regis-
configured to be in the event counting mode, which again ters are setup along with how the interrupts are enabled
is an external event and not synchronised with the inter- and managed. Note how the Timer/Event Counter is
nal system or timer clock. turned on, by setting bit 4 of the Timer Control Register.
When the Timer/Event Counter is read, or if data is writ- The Timer/Event Counter can be turned off in a similar
ten to the preload register, the clock is inhibited to avoid way by clearing the same bit. This example program sets
errors, however as this may result in a counting error, this the Timer/Event Counters to be in the timer mode, which
should be taken into account by the programmer. Care uses the internal system clock as their clock source.
must be taken to ensure that the timers are properly in-
itialised before using them for the first time. The associ-
:
begin:
;setup Timer 0 registers
mov a,09bh ; setup Timer 0 preload value
mov tmr0,a
mov a,081h ; setup Timer 0 control register
mov tmr0c,a ; timer mode and prescaler set to /2
;setup interrupt register
mov a,00dh ; enable master interrupt and both timer interrupts
mov intc0,a
: :
set tmr0c.4 ; start Timer 0
: :
Time Base
The device includes a Time Base function which is used to generate a regular time interval signal.
The Time Base time interval magnitude is determined using an internal 13 stage counter sets the division ratio of the
clock source. This division ratio is controlled by both the TBSEL0 and TBSEL1 bits in the CTRL1 register. The clock
source is selected using the T0S bit in the TMR0C register.
When the Time Base time out, a Time Base interrupt signal will be generated. It should be noted that as the Time Base
clock source is the same as the Timer/Event Counter clock source, care should be taken when programming.
DC
PWM Operation Parameter AC (0~3)
(Duty Cycle)
A single register, known as PWMn and located in the DC+1
Data Memory is assigned to each Pulse Width Modula- i<AC
Modulation cycle i 64
tor channel. It is here that the 8-bit value, which repre-
(i=0~3) DC
sents the overall duty cycle of one modulation cycle of i³AC
64
the output waveform, should be placed. To increase the
PWM modulation frequency, each modulation cycle is 6+2 Mode Modulation Cycle Values
subdivided into two or four individual modulation sub-
The following diagram illustrates the waveforms associ-
sections, known as the 7+1 mode or 6+2 mode respec-
ated with the 6+2 mode of PWM operation. It is impor-
tively. The required mode and the on/off control for each
tant to note how the single PWM cycle is subdivided into
PWM channel is selected using the CTRL0 and CTRL2
4 individual modulation cycles, numbered from 0~3 and
registers. Note that when using the PWM, it is only nec-
how the AC value is related to the PWM value.
essary to write the required value into the PWMn regis-
ter and select the required mode setup and on/off
fS Y S /2
[P W M ] = 1 0 0
P W M
2 5 /6 4 2 5 /6 4 2 5 /6 4 2 5 /6 4 2 5 /6 4
[P W M ] = 1 0 1
P W M
2 6 /6 4 2 5 /6 4 2 5 /6 4 2 5 /6 4 2 6 /6 4
[P W M ] = 1 0 2
P W M
2 6 /6 4 2 6 /6 4 2 5 /6 4 2 5 /6 4 2 6 /6 4
[P W M ] = 1 0 3
P W M
2 6 /6 4 2 6 /6 4 2 6 /6 4 2 5 /6 4 2 6 /6 4
P W M m o d u la tio n p e r io d : 6 4 /fS Y S
M o d u la tio n c y c le 0 M o d u la tio n c y c le 1 M o d u la tio n c y c le 2 M o d u la tio n c y c le 3 M o d u la tio n c y c le 0
P W M c y c le : 2 5 6 /fS Y S
b 7 b 0
P W M R e g is te r (6 + 2 ) M o d e
A C v a lu e
D C v a lu e
fS Y S /2
[P W M ] = 1 0 0
P W M
5 0 /1 2 8 5 0 /1 2 8 5 0 /1 2 8
[P W M ] = 1 0 1
P W M
5 1 /1 2 8 5 0 /1 2 8 5 1 /1 2 8
[P W M ] = 1 0 2
P W M
5 1 /1 2 8 5 1 /1 2 8 5 1 /1 2 8
[P W M ] = 1 0 3
P W M
5 1 /1 2 8 5 2 /1 2 8
5 2 /1 2 8
P W M m o d u la tio n p e r io d : 1 2 8 /fS Y S
P W M c y c le : 2 5 6 /fS Y S
b 7 b 0
P W M R e g is te r (7 + 1 ) M o d e
A C v a lu e
D C v a lu e
The following sample program shows how the PWM0 output is setup and controlled.
mov a,64h ; setup PWM value of decimal 100
mov pwm0,a
set ctrl0.5 ; select the 7+1 PWM mode
set ctrl0.3 ; select pin PA4 to have a PWM function
clr pac.4 ; setup pin PA4 as an output
set pa.4 ; enable the PWM output
::
clr pa.4 ; disable the PWM output_ pin
; PA4 forced low
C lo c k
A C S R R e g is te r D iv id e r
¸ N
A D O N B B it
A /D E n a b le
P A 0 /A N 0
P A 1 /A N 1
P A 2 /A N 2 A D R L
P A 3 /A N 3 A /D D a ta
A D C
P C 0 /A N 4 A D R H R e g is te r s
P C 1 /A N 5
P C 6 /A N 6
P C 7 /A N 7
A D C R
P C R 0 ~ P C R 2 A D C S 0 ~ A D C S 2 S T A R T E O C B
R e g is te r
ADRH ADRL
Bit 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
Name D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 ¾ ¾ ¾ ¾
R/W R R R R R R R R R R R R ¾ ¾ ¾ ¾
POR x x x x x x x x x x x x ¾ ¾ ¾ ¾
²x² unknown
unimplemented, read as ²0²
D11~D0: ADC conversion data
· ADCR Register
Bit 7 6 5 4 3 2 1 0
Name START EOCB PCR2 PCR1 PCR0 ACS2 ACS1 ACS0
R/W R/W R R/W R/W R/W R/W R/W R/W
POR 0 1 0 0 0 0 0 0
· ACSR Register
Bit 7 6 5 4 3 2 1 0
Name TEST ADONB ¾ ¾ ¾ ADCS2 ADCS1 ADCS0
R/W R/W R/W ¾ ¾ ¾ R/W R/W R/W
POR 1 0 ¾ ¾ ¾ 0 0 0
The START bit in the register is used to start and reset Controlling the power on/off function of the A/D con-
the A/D converter. When themicrocontroller sets this bit verter circuitry is implemented using the value of the
from low to high and then low again, an analog to digital ADONB bit.
conversion cycle will be initiated. When the START bit is Although the A/D clock source is determined by the sys-
brought from low to high but not low again, the EOCB bit tem clock fSYS, and by bits ADCS2, ADCS1 and ADCS0,
in the ADCR register will be set to a ²1² and the analog there are some limitations on the maximum A/D clock
to digital converter will be reset. It is the START bit that is source speed that can be selected. As the minimum value
used to control the overall start operation of the internal of permissible A/D clock period, tAD, is 0.5ms, care must be
analog to digital converter. taken for system clock speeds in excess of 4MHz. For
The EOCB bit in the ADCR register is used to indicate system clock speeds in excess of 4MHz, the ADCS2,
when the analog to digital conversion process is com- ADCS1 and ADCS0 bits should not be set to ²000². Doing
plete. This bit will be automatically set to ²0² by the so will give A/D clock periods that are less than the mini-
microcontroller after a conversion cycle has ended. In mum A/D clock period which may result in inaccurate A/D
addition, the corresponding A/D interrupt request flag conversion values. Refer to the following table for exam-
will be set in the interrupt control register, and if the inter- ples, where values marked with an asterisk * show where,
rupts are enabled, an appropriate internal interrupt sig- depending upon the device, special care must be taken,
nal will be generated. This A/D internal interrupt signal as the values may be less than the specified minimum A/D
will direct the program flow to the associated A/D inter- Clock Period.
nal interrupt address for processing. If the A/D internal
interrupt is disabled, the microcontroller can be used to
poll the EOCB bit in the ADCR register to check whether
it has been cleared as an alternative method of detect-
ing the end of an A/D conversion cycle.
The clock source for the A/D converter, which originates
from the system clock fSYS, is first divided by a division
ratio, the value of which is determined by the ADCS2,
ADCS1 and ADCS0 bits in the ACSR register.
Programming Considerations between the analog input value and the digitised output
When programming, special attention must be given to value for the A/D converter.
the PCR[2:0] bits in the register. If these bits are all Note that to reduce the quantisation error, a 0.5 LSB off-
cleared to zero no external pins will be selected for use set is added to the A/D Converter input. Except for the
as A/D input pins allowing the pins to be used as normal digitised zero value, the subsequent digitised values will
I/O pins. When this happens the internal A/D circuitry change at a point 0.5 LSB below where they would
will be power down. Setting the ADONB bit high has the change without the offset, and the last full scale digitised
ability to power down the internal A/D circuitry, which value will change at a point 1.5 LSB below the VDD level.
may be an important consideration in power sensitive
applications. A/D Programming Example
The following two programming examples illustrate how
A/D Transfer Function
to setup and implement an A/D conversion. In the first
As the device contain a 12-bit A/D converter, its example, the method of polling the EOCB bit in the
full-scale converted digitised value is equal to FFFH. ADCR register is used to detect when the conversion
Since the full-scale analog input value is equal to the cycle is complete, whereas in the second example, the
VDD voltage, this gives a single bit analog input value of A/D interrupt is used to determine when the conversion
VDD/4096. The diagram show the ideal transfer function is complete.
P C R 2 ~ 0 0 0 B x x x B - P C R [2 :0 ] is n o t e q u a l to " 0 "
P C R 0
A D O N B
tO N 2 S T
A D C m o d u le
O N o n o ff o n
A /D s a m p lin g tim e A /D s a m p lin g tim e
tA D C S tA D C S
S T A R T
E O C B
A C S 2 ~
A C S 0 x x x B 0 1 0 B 0 0 0 B 0 0 1 B
P o w e r-o n S ta rt o f A /D S ta rt o f A /D S ta rt o f A /D
R e s e t c o n v e r s io n c o n v e r s io n c o n v e r s io n
R e s e t A /D R e s e t A /D R e s e t A /D
c o n v e rte r c o n v e rte r c o n v e rte r
E n d o f A /D E n d o f A /D
1 : D e fin e p o r t c o n fig u r a tio n c o n v e r s io n c o n v e r s io n
2 : S e le c t a n a lo g c h a n n e l
tA D C tA D C
A /D c o n v e r s io n tim e A /D c o n v e r s io n tim e
N o te : A /D c lo c k m u s t b e fs y s , fS Y S /2 , fS Y S /4 , fS Y S /8 , fS Y S /1 6 o r fS Y S /3 2
tA D C S = 4 tA D
tA D C = 1 6 tA D
1 .5 L S B
F F F H
F F E H
F F D H
A /D C o n v e r s io n
R e s u lt
0 .5 L S B
0 3 H
0 2 H
0 1 H
V D D
( )
0 1 2 3 4 0 9 3 4 0 9 4 4 0 9 5 4 0 9 6 4 0 9 6
A n a lo g In p u t V o lta g e
Ideal A/D Transfer Function
Interrupts
Interrupts are an important part of any microcontroller Counter will then be loaded with a new address which
system. When an external event or an internal function will be the value of the corresponding interrupt vector.
such as a Timer/Event Counter or Time Base requires The microcontroller will then fetch its next instruction
microcontroller attention, their corresponding interrupt from this interrupt vector. The instruction at this vector
will enforce a temporary suspension of the main pro- will usually be a JMP statement which will jump to an-
gram allowing the microcontroller to direct attention to other section of program which is known as the interrupt
their respective needs. service routine. Here is located the code to control the
appropriate interrupt. The interrupt service routine must
The devices contain a single external interrupt and mul-
be terminated with a RETI instruction, which retrieves
tiple internal interrupts. The external interrupt is con-
the original Program Counter address from the stack
trolled by the action of the external interrupt pin, while
and allows the microcontroller to continue with normal
the internal interrupt is controlled by the Timer/Event
execution at the point where the interrupt occurred.
Counters and Time Base overflows.
The various interrupt enable bits, together with their as-
Interrupt Register sociated request flags, are shown in the following dia-
Overall interrupt control, which means interrupt enabling gram with their order of priority.
and request flag setting, is controlled by using two regis- Once an interrupt subroutine is serviced, all the other in-
ters, INTC0 and INTC1. By controlling the appropriate terrupts will be blocked, as the EMI bit will be cleared au-
enable bits in this registers each individual interrupt can tomatically. This will prevent any further interrupt nesting
be enabled or disabled. Also when an interrupt occurs, from occurring. However, if other interrupt requests oc-
the corresponding request flag will be set by the cur during this interval, although the interrupt will not be
microcontroller. The global enable flag if cleared to zero immediately serviced, the request flag will still be re-
will disable all interrupts. corded. If an interrupt requires immediate servicing
while the program is already in another interrupt service
Interrupt Operation routine, the EMI bit should be set after entering the rou-
A Timer/Event Counter overflow, a Time Base event or tine, to allow interrupt nesting. If the stack is full, the in-
an active edge on the external interrupt pin will all gener- terrupt request will not be acknowledged, even if the
ate an interrupt request by setting their corresponding related interrupt is enabled, until the Stack Pointer is
request flag, if their appropriate interrupt enable bit is decremented. If immediate service is desired, the stack
set. When this happens, the Program Counter, which must be prevented from becoming full.
stores the address of the next instruction to be exe-
cuted, will be transferred onto the stack. The Program
A u to m a tic a lly D is a b le d w h e n in te r r u p t
A u to m a tic a lly C le a r e d b y IS R e v e n t is s e r v ic e d E n a b le d m a n u a lly o r
M a n u a lly S e t o r C le a r e d b y S o ftw a r e a u to m a tic a lly w ith R E T I in s tr u c tio n
P r io r ity
E x te rn a l In te rru p t IN T E E M I H ig h
R e q u e s t F la g IN T F
T im e r /E v e n t C o u n te r 0 T 0 E E M I
In te r r u p t R e q u e s t F la g T 0 F
T im e r /E v e n t C o u n te r 1 T 1 E E M I
In te r r u p t R e q u e s t F la g T 1 F
In te rru p t
P o llin g
T im e r /E v e n t C o u n te r 2 T 2 E E M I
In te r r u p t R e q u e s t F la g T 2 F
A /D C o n v e r s io n A D E E M I
In te r r u p t R e q u e s t F la g A D F
T im e B a s e T B E E M I
In te r r u p t R e q u e s t F la g T B F L o w
Interrupt Scheme
When an interrupt request is generated it takes 2 or 3 in- In cases where both external and internal interrupts are
struction cycle before the program jumps to the interrupt enabled and where an external and internal interrupt oc-
vector. If the device is in the Sleep or Idle Mode and is curs simultaneously, the external interrupt will always
woken up by an interrupt request then it will take 3 cy- have priority and will therefore be serviced first. Suitable
cles before the program jumps to the interrupt vector. masking of the individual interrupts using the interrupt
registers can prevent simultaneous occurrences.
Main
Program External Interrupt
Interrupt Request or
Interrupt Flag Set by Instruction
For an external interrupt to occur, the global interrupt en-
able bit, EMI, and external interrupt enable bit, INTE,
N
Enable Bit Set ?
must first be set. An actual external interrupt will take
place when the external interrupt request flag, INTF, is
Y set, a situation that will occur when an edge transition
Main
appears on the external INT line. The type of transition
Automatically Disable Interrupt
Program
Clear EMI & Request Flag that will trigger an external interrupt, whether high to low,
low to high or both is determined by the INTEG0 and
INTEG1 bits, which are bits 6 and 7 respectively, in the
Wait for 2 ~ 3 Instruction Cycles
CTRL1 control register. These two bits can also disable
the external interrupt function.
ISR Entry
INTEG1 INTEG0 Edge Trigger Type
0 0 External interrupt disable
0 1 Rising edge Trigger
RETI
(it will set EMI automatically) 1 0 Falling edge Trigger
1 1 Both edge Trigger
Interrupt Flow
The external interrupt pin is pin-shared with the I/O pin
Interrupt Priority PA3 and can only be configured as an external interrupt
pin if the corresponding external interrupt enable bit in
Interrupts, occurring in the interval between the rising
the INTC0 register has been set and the edge trigger
edges of two consecutive T2 pulses, will be serviced on
type has been selected using the CTRL1 register. The
the latter of the two T2 pulses, if the corresponding inter-
rupts are enabled. In case of simultaneous requests, the pin must also be setup as an input by setting the corre-
following table shows the priority that is applied. These sponding PAC.3 bit in the port control register. When the
can be masked by resetting the EMI bit. interrupt is enabled, the stack is not full and a transition
appears on the external interrupt pin, a subroutine call to
HT46R064B the external interrupt vector at location 04H, will take
place. When the interrupt is serviced, the external inter-
Interrupt Source Priority Vector rupt request flag, INTF, will be automatically reset and
External Interrupt 1 04H the EMI bit will be automatically cleared to disable other
interrupts. Note that any pull-high resistor connections
Timer/Event Counter 0 Overflow 2 08H
on this pin will remain valid even if the pin is used as an
A/D Conversion Complete 3 0CH external interrupt input.
Time Base Overflow 4 10H
HT46R065B/HT46R066B
Interrupt Source Priority Vector
External Interrupt 1 04H
Timer/Event Counter 0 Overflow 2 08H
Timer/Event Counter 1 Overflow 3 0CH
A/D Conversion Complete 4 10H
Time Base Overflow 5 14H
¨ INTC0 Register
Bit 7 6 5 4 3 2 1 0
Name ¾ ADF T0F INTF ADE T0E INTE EMI
R/W ¾ R/W R/W R/W R/W R/W R/W R/W
POR ¾ 0 0 0 0 0 0 0
Bit 7 6 5 4 3 2 1 0
Name ¾ ¾ ¾ TBF ¾ ¾ ¾ TBE
R/W ¾ ¾ ¾ R/W ¾ ¾ ¾ R/W
POR ¾ ¾ ¾ 0 ¾ ¾ ¾ 0
· HT46R065B/HT46R066B
¨ INTC0 Register
Bit 7 6 5 4 3 2 1 0
Name ¾ T1F T0F INTF T1E T0E INTE EMI
R/W ¾ R/W R/W R/W R/W R/W R/W R/W
POR ¾ 0 0 0 0 0 0 0
Bit 7 6 5 4 3 2 1 0
Name ¾ ¾ TBF ADF ¾ ¾ TBE ADE
R/W ¾ ¾ R/W R/W ¾ ¾ R/W R/W
POR ¾ ¾ 0 0 ¾ ¾ 0 0
Timer/Event Counter Interrupt All of these interrupts have the capability of waking up
For a Timer/Event Counter interrupt to occur, the global the processor when in the Idle/Sleep Mode.
interrupt enable bit, EMI, and the corresponding timer Only the Program Counter is pushed onto the stack. If
interrupt enable bit, TnE, must first be set. An actual the contents of the register or status register are altered
Timer/Event Counter interrupt will take place when the by the interrupt service program, which may corrupt the
Timer/Event Counter request flag, TnF, is set, a situation desired control sequence, then the contents should be
that will occur when the relevant Timer/Event Counter saved in advance.
overflows. When the interrupt is enabled, the stack is
not full and a Timer/Event Counter n overflow occurs, a
SCOM Function for LCD
subroutine call to the relevant timer interrupt vector, will
take place. When the interrupt is serviced, the timer in- The devices have the capability of driving external LCD
terrupt request flag, TnF, will be automatically reset and panels. The common pins for LCD driving, SCOM0~
the EMI bit will be automatically cleared to disable other SCOM3, are pin shared with certain pin on the PB0~
interrupts. PB3 port. The LCD signals (COM and SEG) are gener-
ated using the application program.
Time Base Interrupt
LCD Operation
For a time base interrupt to occur the global interrupt en-
able bit EMI and the corresponding interrupt enable bit An external LCD panel can be driven using this device
TBE, must first be set. An actual Time Base interrupt will by configuring the PB0~PB3 pins as common pins and
take place when the time base request flag TBF is set, a using other output ports lines as segment pins. The LCD
situation that will occur when the Time Base overflows. driver function is controlled using the SCOMC register
When the interrupt is enabled, the stack is not full and a which in addition to controlling the overall on/off function
time base overflow occurs a subroutine call to time base also controls the bias voltage setup function. This en-
vector will take place. When the interrupt is serviced, the ables the LCD COM driver to generate the necessary
time base interrupt flag. TBF will be automatically reset VDD/2 voltage levels for LCD 1/2 bias operation.
and the EMI bit will be automatically cleared to disable The SCOMEN bit in the SCOMC register is the overall
other interrupts. master control for the LCD Driver, however this bit is
used in conjunction with the COMnEN bits to select
Programming Considerations
which Port B pins are used for LCD driving. Note that the
By disabling the interrupt enable bits, a requested inter- Port Control register does not need to first setup the pins
rupt can be prevented from being serviced, however, as outputs to enable the LCD driver operation.
once an interrupt request flag is set, it will remain in this
SCOMEN COMnEN Pin Function O/P Level
condition in the interrupt register until the corresponding
interrupt is serviced or until the request flag is cleared by 0 X I/O 0 or 1
a software instruction. 1 0 I/O 0 or 1
It is recommended that programs do not use the ²CALL 1 1 SCOMN VDD/2
subroutine² instruction within the interrupt subroutine.
Interrupts often occur in an unpredictable manner or Output Control
need to be serviced immediately in some applications. If
only one stack is left and the interrupt is not well con-
trolled, the original control sequence will be damaged
once a ²CALL subroutine² is executed in the interrupt
subroutine.
Bit 7 6 5 4 3 2 1 0
Name ¾ ISEL1 ISEL0 SCOMEN COM3EN COM2EN COM1EN COM0EN
R/W R/W R/W R/W R/W R/W R/W R/W R/W
POR 0 0 0 0 0 0 0 0
Configuration Options
Configuration options refer to certain options within the MCU that are programmed into the OTP Program Memory de-
vice during the programming process. During the development process, these options are selected using the HT-IDE
software development tools. As these options are programmed into the device using the hardware programming tools,
once they are selected they cannot be changed later by the application software. All options must be defined for proper
system function, the details of which are shown in the table.
No. Options
1 Watchdog Timer: enable or disable
Watchdog Timer clock source: LXT, LIRC or fSYS/4
2
Note: LXT oscillator must be selected by OSC configuration option if WDT clock source is from LXT.
3 CLRWDT instructions: 1 or 2 instructions
4 System oscillator configuration: HXT, HIRC, ERC, HIRC + LXT
5 LVR function: enable or disable
6 LVR voltage: 2.1V, 3.15V or 4.2V
7 RES or PA7 pin function
8 Internal RC: 4MHz, 8MHz or 12MHz
Application Circuits
V D D
0 .0 1 m F
V D D
1 0 k W ~ R e s e t
1 0 0 k W C ir c u it
1 N 4 1 4 8 P A 0 /A N 0
0 .1 m F P A 1 /P F D /A N 1
R E S /P A 7 P A 2 /T C 0 /A N 2
3 0 0 W
0 .1 ~ 1 m F P A 3 /IN T /A N 3
P A 4 /T C 1 /P W M 0
V S S P B 0 ~ P B 7
P C 2 /P W M 1
P C 3 /P W M 2
O S C O S C 1 P C 0 /A N 4
C ir c u it P C 1 /A N 5
O S C 2 P C 6 /A N 6
S e e O s c illa to r P C 7 /A N 7
S e c tio n P D 0 ~ P D 7
X T 1 P E 0 ~ P E 1
O S C
C ir c u it X T 2 P F 0 ~ P F 1
S e e O s c illa to r
S e c tio n
Instruction Set
Introduction subtract instruction mnemonics to enable the necessary
arithmetic to be carried out. Care must be taken to en-
C e n t ra l t o t he s u c c e s s f u l oper a t i on o f a n y
sure correct handling of carry and borrow data when re-
microcontroller is its instruction set, which is a set of pro-
sults exceed 255 for addition and less than 0 for
gram instruction codes that directs the microcontroller to
subtraction. The increment and decrement instructions
perform certain operations. In the case of Holtek
INC, INCA, DEC and DECA provide a simple means of
microcontrollers, a comprehensive and flexible set of
increasing or decreasing by a value of one of the values
over 60 instructions is provided to enable programmers
in the destination specified.
to implement their application with the minimum of pro-
gramming overheads.
Logical and Rotate Operations
For easier understanding of the various instruction
The standard logical operations such as AND, OR, XOR
codes, they have been subdivided into several func-
and CPL all have their own instruction within the Holtek
tional groupings.
microcontroller instruction set. As with the case of most
instructions involving data manipulation, data must pass
Instruction Timing
through the Accumulator which may involve additional
Most instructions are implemented within one instruc- programming steps. In all logical data operations, the
tion cycle. The exceptions to this are branch, call, or ta- zero flag may be set if the result of the operation is zero.
ble read instructions where two instruction cycles are Another form of logical data manipulation comes from
required. One instruction cycle is equal to 4 system the rotate instructions such as RR, RL, RRC and RLC
clock cycles, therefore in the case of an 8MHz system which provide a simple means of rotating one bit right or
oscillator, most instructions would be implemented left. Different rotate instructions exist depending on pro-
within 0.5ms and branch or call instructions would be im- gram requirements. Rotate instructions are useful for
plemented within 1ms. Although instructions which re- serial port programming applications where data can be
quire one more cycle to implement are generally limited rotated from an internal register into the Carry bit from
to the JMP, CALL, RET, RETI and table read instruc- where it can be examined and the necessary serial bit
tions, it is important to realize that any other instructions set high or low. Another application where rotate data
which involve manipulation of the Program Counter Low operations are used is to implement multiplication and
register or PCL will also take one more cycle to imple- division calculations.
ment. As instructions which change the contents of the
PCL will imply a direct jump to that new address, one Branches and Control Transfer
more cycle will be required. Examples of such instruc- Program branching takes the form of either jumps to
tions would be ²CLR PCL² or ²MOV PCL, A². For the specified locations using the JMP instruction or to a sub-
case of skip instructions, it must be noted that if the re- routine using the CALL instruction. They differ in the
sult of the comparison involves a skip operation then sense that in the case of a subroutine call, the program
this will also take one more cycle, if no skip is involved must return to the instruction immediately when the sub-
then only one cycle is required. routine has been carried out. This is done by placing a
return instruction RET in the subroutine which will cause
Moving and Transferring Data
the program to jump back to the address right after the
The transfer of data within the microcontroller program CALL instruction. In the case of a JMP instruction, the
is one of the most frequently used operations. Making program simply jumps to the desired location. There is
use of three kinds of MOV instructions, data can be no requirement to jump back to the original jumping off
transferred from registers to the Accumulator and point as in the case of the CALL instruction. One special
vice-versa as well as being able to move specific imme- and extremely useful set of branch instructions are the
diate data directly into the Accumulator. One of the most conditional branches. Here a decision is first made re-
important data transfer applications is to receive data garding the condition of a certain data memory or indi-
from the input ports and transfer data to the output ports. vidual bits. Depending upon the conditions, the program
will continue with the next instruction or skip over it and
Arithmetic Operations jump to the following instruction. These instructions are
The ability to perform certain arithmetic operations and the key to decision making and branching within the pro-
data manipulation is a necessary feature of most gram perhaps determined by the condition of certain in-
microcontroller applications. Within the Holtek put switches or by the condition of internal data bits.
microcontroller instruction set are a range of add and
Instruction Definition
DAA [m] Decimal-Adjust ACC for addition with result in Data Memory
Description Convert the contents of the Accumulator value to a BCD ( Binary Coded Decimal) value re-
sulting from the previous addition of two BCD variables. If the low nibble is greater than 9 or
if AC flag is set, then a value of 6 will be added to the low nibble. Otherwise the low nibble
remains unchanged. If the high nibble is greater than 9 or if the C flag is set, then a value of
6 will be added to the high nibble. Essentially, the decimal conversion is performed by add-
ing 00H, 06H, 60H or 66H depending on the Accumulator and flag conditions. Only the C
flag may be affected by this instruction which indicates that if the original BCD sum is
greater than 100, it allows multiple precision decimal addition.
Operation [m] ¬ ACC + 00H or
[m] ¬ ACC + 06H or
[m] ¬ ACC + 60H or
[m] ¬ ACC + 66H
Affected flag(s) C
NOP No operation
Description No operation is performed. Execution continues with the next instruction.
Operation No operation
Affected flag(s) None
RET A,x Return from subroutine and load immediate data to ACC
Description The Program Counter is restored from the stack and the Accumulator loaded with the
specified immediate data. Program execution continues at the restored address.
Operation Program Counter ¬ Stack
ACC ¬ x
Affected flag(s) None
RLCA [m] Rotate Data Memory left through Carry with result in ACC
Description Data in the specified Data Memory and the carry flag are rotated left by 1 bit. Bit 7 replaces
the Carry bit and the original carry flag is rotated into the bit 0. The rotated result is stored in
the Accumulator and the contents of the Data Memory remain unchanged.
Operation ACC.(i+1) ¬ [m].i; (i = 0~6)
ACC.0 ¬ C
C ¬ [m].7
Affected flag(s) C
RRCA [m] Rotate Data Memory right through Carry with result in ACC
Description Data in the specified Data Memory and the carry flag are rotated right by 1 bit. Bit 0 re-
places the Carry bit and the original carry flag is rotated into bit 7. The rotated result is
stored in the Accumulator and the contents of the Data Memory remain unchanged.
Operation ACC.i ¬ [m].(i+1); (i = 0~6)
ACC.7 ¬ C
C ¬ [m].0
Affected flag(s) C
SBCM A,[m] Subtract Data Memory from ACC with Carry and result in Data Memory
Description The contents of the specified Data Memory and the complement of the carry flag are sub-
tracted from the Accumulator. The result is stored in the Data Memory. Note that if the re-
sult of subtraction is negative, the C flag will be cleared to 0, otherwise if the result is
positive or zero, the C flag will be set to 1.
Operation [m] ¬ ACC - [m] - C
Affected flag(s) OV, Z, AC, C
SDZA [m] Skip if decrement Data Memory is zero with result in ACC
Description The contents of the specified Data Memory are first decremented by 1. If the result is 0, the
following instruction is skipped. The result is stored in the Accumulator but the specified
Data Memory contents remain unchanged. As this requires the insertion of a dummy in-
struction while the next instruction is fetched, it is a two cycle instruction. If the result is not
0, the program proceeds with the following instruction.
Operation ACC ¬ [m] - 1
Skip if ACC = 0
Affected flag(s) None
SIZA [m] Skip if increment Data Memory is zero with result in ACC
Description The contents of the specified Data Memory are first incremented by 1. If the result is 0, the
following instruction is skipped. The result is stored in the Accumulator but the specified
Data Memory contents remain unchanged. As this requires the insertion of a dummy in-
struction while the next instruction is fetched, it is a two cycle instruction. If the result is not
0 the program proceeds with the following instruction.
Operation ACC ¬ [m] + 1
Skip if ACC = 0
Affected flag(s) None
SUBM A,[m] Subtract Data Memory from ACC with result in Data Memory
Description The specified Data Memory is subtracted from the contents of the Accumulator. The result
is stored in the Data Memory. Note that if the result of subtraction is negative, the C flag will
be cleared to 0, otherwise if the result is positive or zero, the C flag will be set to 1.
Operation [m] ¬ ACC - [m]
Affected flag(s) OV, Z, AC, C
TABRDC [m] Read table (current page) to TBLH and Data Memory
Description The low byte of the program code (current page) addressed by the table pointer (TBLP) is
moved to the specified Data Memory and the high byte moved to TBLH.
Operation [m] ¬ program code (low byte)
TBLH ¬ program code (high byte)
Affected flag(s) None
TABRDL [m] Read table (last page) to TBLH and Data Memory
Description The low byte of the program code (last page) addressed by the table pointer (TBLP) is
moved to the specified Data Memory and the high byte moved to TBLH.
Operation [m] ¬ program code (low byte)
TBLH ¬ program code (high byte)
Affected flag(s) None
Package Information
16-pin DIP (300mil) Outline Dimensions
A A
1 6 9 1 6 9
B B
1 8 1 8
H H
C C
D D
E G I E G I
F F
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.780 ¾ 0.880
B 0.240 ¾ 0.280
C 0.115 ¾ 0.195
D 0.115 ¾ 0.150
E 0.014 ¾ 0.022
F 0.045 ¾ 0.070
G ¾ 0.100 ¾
H 0.300 ¾ 0.325
I ¾ ¾ 0.430
Dimensions in mm
Symbol
Min. Nom. Max.
A 19.81 ¾ 22.35
B 6.10 ¾ 7.11
C 2.92 ¾ 4.95
D 2.92 ¾ 3.81
E 0.36 ¾ 0.56
F 1.14 ¾ 1.78
G ¾ 2.54 ¾
H 7.62 ¾ 8.26
I ¾ ¾ 10.92
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.735 ¾ 0.775
B 0.240 ¾ 0.280
C 0.115 ¾ 0.195
D 0.115 ¾ 0.150
E 0.014 ¾ 0.022
F 0.045 ¾ 0.070
G ¾ 0.100 ¾
H 0.300 ¾ 0.325
I ¾ ¾ 0.430
Dimensions in mm
Symbol
Min. Nom. Max.
A 18.67 ¾ 19.69
B 6.10 ¾ 7.11
C 2.92 ¾ 4.95
D 2.92 ¾ 3.81
E 0.36 ¾ 0.56
F 1.14 ¾ 1.78
G ¾ 2.54 ¾
H 7.62 ¾ 8.26
I ¾ ¾ 10.92
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.745 ¾ 0.785
B 0.275 ¾ 0.295
C 0.120 ¾ 0.150
D 0.110 ¾ 0.150
E 0.014 ¾ 0.022
F 0.045 ¾ 0.060
G ¾ 0.100 ¾
H 0.300 ¾ 0.325
I ¾ ¾ 0.430
Dimensions in mm
Symbol
Min. Nom. Max.
A 18.92 ¾ 19.94
B 6.99 ¾ 7.49
C 3.05 ¾ 3.81
D 2.79 ¾ 3.81
E 0.36 ¾ 0.56
F 1.14 ¾ 1.52
G ¾ 2.54 ¾
H 7.62 ¾ 8.26
I ¾ ¾ 10.92
1 6 9
A B
1 8
C '
G
D H
E F a
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.228 ¾ 0.244
B 0.150 ¾ 0.157
C 0.012 ¾ 0.020
C¢ 0.386 ¾ 0.402
D ¾ ¾ 0.069
E ¾ 0.050 ¾
F 0.004 ¾ 0.010
G 0.016 ¾ 0.050
H 0.007 ¾ 0.010
a 0° ¾ 8°
Dimensions in mm
Symbol
Min. Nom. Max.
A 5.79 ¾ 6.20
B 3.81 ¾ 3.99
C 0.30 ¾ 0.51
C¢ 9.80 ¾ 10.21
D ¾ ¾ 1.75
E ¾ 1.27 ¾
F 0.10 ¾ 0.25
G 0.41 ¾ 1.27
H 0.18 ¾ 0.25
a 0° ¾ 8°
A A
2 0 1 1 2 0 1 1
B B
1 1 0 1 1 0
H H
C C
D D
E F G I E F G I
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.980 ¾ 1.060
B 0.240 ¾ 0.280
C 0.115 ¾ 0.195
D 0.115 ¾ 0.150
E 0.014 ¾ 0.022
F 0.045 ¾ 0.070
G ¾ 0.100 ¾
H 0.300 ¾ 0.325
I ¾ 0.430 ¾
Dimensions in mm
Symbol
Min. Nom. Max.
A 24.89 ¾ 26.92
B 6.10 ¾ 7.11
C 2.92 ¾ 4.95
D 2.92 ¾ 3.81
E 0.36 ¾ 0.56
F 1.14 ¾ 1.78
G ¾ 2.54 ¾
H 7.62 ¾ 8.26
I ¾ 10.92 ¾
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.945 ¾ 0.985
B 0.275 ¾ 0.295
C 0.120 ¾ 0.150
D 0.110 ¾ 0.150
E 0.014 ¾ 0.022
F 0.045 ¾ 0.060
G ¾ 0.100 ¾
H 0.300 ¾ 0.325
I ¾ 0.430 ¾
Dimensions in mm
Symbol
Min. Nom. Max.
A 24.00 ¾ 25.02
B 6.99 ¾ 7.49
C 3.05 ¾ 3.81
D 2.79 ¾ 3.81
E 0.36 ¾ 0.56
F 1.14 ¾ 1.52
G ¾ 2.54 ¾
H 7.62 ¾ 8.26
I ¾ 10.92 ¾
2 0 1 1
A B
1 1 0
C '
G
D H
E F a
· MS-013
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.393 ¾ 0.419
B 0.256 ¾ 0.300
C 0.012 ¾ 0.020
C¢ 0.496 ¾ 0.512
D ¾ ¾ 0.104
E ¾ 0.050 ¾
F 0.004 ¾ 0.012
G 0.016 ¾ 0.050
H 0.008 ¾ 0.013
a 0° ¾ 8°
Dimensions in mm
Symbol
Min. Nom. Max.
A 9.98 ¾ 10.64
B 6.50 ¾ 7.62
C 0.30 ¾ 0.51
C¢ 12.60 ¾ 13.00
D ¾ ¾ 2.64
E ¾ 1.27 ¾
F 0.10 ¾ 0.30
G 0.41 ¾ 1.27
H 0.20 ¾ 0.33
a 0° ¾ 8°
2 0 1 1
A B
1 1 0
C '
G
D H
E F a
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.228 ¾ 0.244
B 0.150 ¾ 0.158
C 0.008 ¾ 0.012
C¢ 0.335 ¾ 0.347
D 0.049 ¾ 0.065
E ¾ 0.025 ¾
F 0.004 ¾ 0.010
G 0.015 ¾ 0.050
H 0.007 ¾ 0.010
a 0° ¾ 8°
Dimensions in mm
Symbol
Min. Nom. Max.
A 5.79 ¾ 6.20
B 3.81 ¾ 4.01
C 0.20 ¾ 0.30
C¢ 8.51 ¾ 8.81
D 1.24 ¾ 1.65
E ¾ 0.64 ¾
F 0.10 ¾ 0.25
G 0.38 ¾ 1.27
H 0.18 ¾ 0.25
a 0° ¾ 8°
A A
2 4 1 3 2 4 1 3
B B
1 1 2 1 1 2
H H
C C
D D
E F G I E F G I
Dimensions in inch
Symbol
Min. Nom. Max.
A 1.230 ¾ 1.280
B 0.240 ¾ 0.280
C 0.115 ¾ 0.195
D 0.115 ¾ 0.150
E 0.014 ¾ 0.022
F 0.045 ¾ 0.070
G ¾ 0.100 ¾
H 0.300 ¾ 0.325
I ¾ 0.430 ¾
Dimensions in mm
Symbol
Min. Nom. Max.
A 31.24 ¾ 32.51
B 6.10 ¾ 7.11
C 2.92 ¾ 4.95
D 2.92 ¾ 3.81
E 0.36 ¾ 0.56
F 1.14 ¾ 1.78
G ¾ 2.54 ¾
H 7.62 ¾ 8.26
I ¾ 10.92 ¾
Dimensions in inch
Symbol
Min. Nom. Max.
A 1.160 ¾ 1.195
B 0.240 ¾ 0.280
C 0.115 ¾ 0.195
D 0.115 ¾ 0.150
E 0.014 ¾ 0.022
F 0.045 ¾ 0.070
G ¾ 0.100 ¾
H 0.300 ¾ 0.325
I ¾ 0.430 ¾
Dimensions in mm
Symbol
Min. Nom. Max.
A 29.46 ¾ 30.35
B 6.10 ¾ 7.11
C 2.92 ¾ 4.95
D 2.92 ¾ 3.81
E 0.36 ¾ 0.56
F 1.14 ¾ 1.78
G ¾ 2.54 ¾
H 7.62 ¾ 8.26
I ¾ 10.92 ¾
Dimensions in inch
Symbol
Min. Nom. Max.
A 1.145 ¾ 1.185
B 0.275 ¾ 0.295
C 0.120 ¾ 0.150
D 0.110 ¾ 0.150
E 0.014 ¾ 0.022
F 0.045 ¾ 0.060
G ¾ 0.100 ¾
H 0.300 ¾ 0.325
I ¾ 0.430 ¾
Dimensions in mm
Symbol
Min. Nom. Max.
A 29.08 ¾ 30.10
B 6.99 ¾ 7.49
C 3.05 ¾ 3.81
D 2.79 ¾ 3.81
E 0.36 ¾ 0.56
F 1.14 ¾ 1.52
G ¾ 2.54 ¾
H 7.62 ¾ 8.26
I ¾ 10.92 ¾
2 4 1 3
A B
1 1 2
C '
G
D H
E F a
· MS-013MS-013
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.393 ¾ 0.419
B 0.256 ¾ 0.300
C 0.012 ¾ 0.020
C¢ 0.598 ¾ 0.613
D ¾ ¾ 0.104
E ¾ 0.050 ¾
F 0.004 ¾ 0.012
G 0.016 ¾ 0.050
H 0.008 ¾ 0.013
a 0° ¾ 8°
Dimensions in mm
Symbol
Min. Nom. Max.
A 9.98 ¾ 10.64
B 6.50 ¾ 7.62
C 0.30 ¾ 0.51
C¢ 15.19 ¾ 15.57
D ¾ ¾ 2.64
E ¾ 1.27 ¾
F 0.10 ¾ 0.30
G 0.41 ¾ 1.27
H 0.20 ¾ 0.33
a 0° ¾ 8°
2 4 1 3
A B
1 1 2
C '
G
D H
E F a
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.228 ¾ 0.244
B 0.150 ¾ 0.157
C 0.008 ¾ 0.012
C¢ 0.335 ¾ 0.346
D 0.054 ¾ 0.060
E ¾ 0.025 ¾
F 0.004 ¾ 0.010
G 0.022 ¾ 0.028
H 0.007 ¾ 0.010
a 0° ¾ 8°
Dimensions in mm
Symbol
Min. Nom. Max.
A 5.79 ¾ 6.20
B 3.81 ¾ 3.99
C 0.20 ¾ 0.30
C¢ 8.51 ¾ 8.79
D 1.37 ¾ 1.52
E ¾ 0.64 ¾
F 0.10 ¾ 0.25
G 0.56 ¾ 0.71
H 0.18 ¾ 0.25
a 0° ¾ 8°
2 8 1 5
B
1 1 4
D
I
E F G
Dimensions in inch
Symbol
Min. Nom. Max.
A 1.375 ¾ 1.395
B 0.278 ¾ 0.298
C 0.125 ¾ 0.135
D 0.125 ¾ 0.145
E 0.016 ¾ 0.020
F 0.050 ¾ 0.070
G ¾ 0.100 ¾
H 0.295 ¾ 0.315
I ¾ 0.375 ¾
Dimensions in mm
Symbol
Min. Nom. Max.
A 34.93 ¾ 35.43
B 7.06 ¾ 7.57
C 3.18 ¾ 3.43
D 3.18 ¾ 3.68
E 0.41 ¾ 0.51
F 1.27 ¾ 1.78
G ¾ 2.54 ¾
H 7.49 ¾ 8.00
I ¾ 9.53 ¾
2 8 1 5
A B
1 1 4
C '
G
D H
E F a
· MS-013
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.393 ¾ 0.419
B 0.256 ¾ 0.300
C 0.012 ¾ 0.020
C¢ 0.697 ¾ 0.713
D ¾ ¾ 0.104
E ¾ 0.050 ¾
F 0.004 ¾ 0.012
G 0.016 ¾ 0.050
H 0.008 ¾ 0.013
a 0° ¾ 8°
Dimensions in mm
Symbol
Min. Nom. Max.
A 9.98 ¾ 10.64
B 6.50 ¾ 7.62
C 0.30 ¾ 0.51
C¢ 17.70 ¾ 18.11
D ¾ ¾ 2.64
E ¾ 1.27 ¾
F 0.10 ¾ 0.30
G 0.41 ¾ 1.27
H 0.20 ¾ 0.33
a 0° ¾ 8°
2 8 1 5
A B
1 1 4
C '
G
D H
a
E F
Dimensions in inch
Symbol
Min. Nom. Max.
A 0.228 ¾ 0.244
B 0.150 ¾ 0.157
C 0.008 ¾ 0.012
C¢ 0.386 ¾ 0.394
D 0.054 ¾ 0.060
E ¾ 0.025 ¾
F 0.004 ¾ 0.010
G 0.022 ¾ 0.028
H 0.007 ¾ 0.010
a 0° ¾ 8°
Dimensions in mm
Symbol
Min. Nom. Max.
A 5.79 ¾ 6.20
B 3.81 ¾ 3.99
C 0.20 ¾ 0.30
C¢ 9.80 ¾ 10.01
D 1.37 ¾ 1.52
E ¾ 0.64 ¾
F 0.10 ¾ 0.25
G 0.56 ¾ 0.71
H 0.18 ¾ 0.25
a 0° ¾ 8°
D
T 2
A B C
T 1
F
W
B 0
C
D 1 P
K 0
A 0
R e e l H o le
IC p a c k a g e p in 1 a n d th e r e e l h o le s
a r e lo c a te d o n th e s a m e s id e .
SOP 20W
SOP 24W