Professional Documents
Culture Documents
Features
· Operating voltage: · Up to 0.5ms instruction cycle with 8MHz system clock
fSYS=4MHz: 2.2V~5.5V at VDD=5V
fSYS=8MHz: 3.3V~5.5V · 4 or 6-level subroutine nesting
· 13 to 23 bidirectional I/O lines · 4 channels 8 or 9-bit resolution A/D converter
· External interrupt input shared with an I/O line · 1 or 2 channel 8-bit PWM output shared with I/O lines
· 8-bit programmable Timer/Event Counter with over- · Bit manipulation instruction
flow interrupt and 7-stage prescaler · Table read instructions
· On-chip crystal and RC oscillator
· 63 powerful instructions
· Watchdog Timer function
· All instructions executed in one or two machine
· PFD for audio frequency generation
cycles
· Power down and wake-up functions to reduce power · Low voltage reset function
consumption · Range of packaging types
General Description
The Cost-Effective A/D Type MCU Devices are a series The benefits of integrated A/D and PWM functions, in
of 8-bit high performance RISC architecture addition to low power consumption, high performance,
microcontrollers, designed especially for applications I/O flexibility and low-cost, provide these devices with
that interface directly to analog signals, such as those the versatility to suit a wide range of application possibil-
from sensors. All devices include an integrated ities such as sensor signal processing, motor driving, in-
multi-channel Analog to Digital Converter in addition to dustrial control, consumer products, subsystem
one or two Pulse Width Modulation outputs. The usual controllers, etc. Many features are common to all de-
Holtek MCU features such as power down and wake-up vices, however, they differ in areas such as I/O pin
functions, oscillator options, programmable frequency count, Program Memory capacity, A/D resolution, stack
divider, etc. combine to ensure user applications require capacity and package types.
a minimum of external components.
Device Types
Devices which have the letter ²R² within their part number, indicate that they are OTP devices offering the advantages
of easy and effective program updates, using the Holtek range of development and programming tools. These devices
provide the designer with the means for fast and low-cost product development cycles. Devices which have the letter
²C² within their part number indicate that they are mask version devices. These devices offer a complementary device
for applications that are at a mature state in their design process and have high volume and low cost demands.
Fully pin and functionally compatible with their OTP sister devices, the mask version devices provide the ideal substi-
tute for products which have gone beyond their development cycle and are facing cost-down demands.
In this datasheet, for convenience, when describing device functions, only the OTP types are mentioned by name,
however the same described functions also apply to the Mask type devices.
Selection Table
Most features are common to all devices, the main feature distinguishing them are Program Memory capacity, I/O
count, A/D resolution, stack capacity and package types. The following table summarises the main features of each de-
vice.
Program Data
Part No. VDD I/O Timer Int. A/D PWM Stack Package Types
Memory Memory
HT46R46 2.2V~ 16NSOP, 18DIP/SOP,
1K´14 64´8 13 8-bit´1 3 8-bit´4 8-bit´1 4
HT46C46 5.5V 20SSOP
HT46R47 2.2V~ 16NSOP, 18DIP/SOP,
2K´14 64´8 13 8-bit´1 3 9-bit´4 8-bit´1 6
HT46C47 5.5V 20SSOP
HT46R48A 2.2V~ 20DIP/SOP,
2K´14 88´8 19 8-bit´1 3 9-bit´4 8-bit´1 6
HT46C48A 5.5V 24SKDIP/SOP/SSOP
2.2V~ 20DIP/SOP,
HT46R49 4K´15 128´8 23 8-bit´1 3 9-bit´4 8-bit´2 6
5.5V 24/28SKDIP/SOP
Note: Part numbers including ²C² are mask version devices, ²R² are OTP devices.
For devices that exist in two package formats, the table reflects the situation for the larger package.
Block Diagram
S y s te m R C / P ro g ra m
A d d re s s D e c o d e r
X 't a l O s c illa t o r C o u n te r
T im in g In s tr u c tio n In s tr u c tio n
G e n e ra to r D e c o d e r R e g is te r P ro g ra m
M e m o ry
S ta c k
W D T S ta c k P o in te r
O s c illa to r
A d d re s s D e c o d e r
D a ta M M U X A C C
U
M e m o ry X T o P ro g ra m
M e m o ry L o o k -u p L o o k -u p M e m o ry
P o in te r A L U T a b le T a b le
R e g is te r P o in te r C o n fig u r a tio n
S h ifte r O p tio n
D e v ic e
A /D R e s e t & C o n fig . C o n fig . T im e r / C o n fig . In te rru p t C o n fig . I/O
P W M P F D P r o g r a m m in g
C o n v e rte r L V R R e g is te r R e g is te r C o u n te r R e g is te r C ir c u it R e g is te r P o r ts
C ir c u itr y
Note: This block diagram represents the OTP devices, for the mask devices there is no Device Programming
Circuitry.
Pin Assignment
P A 3 /P F D 1 2 0 P A 4 /T M R P B 4 1 2 0 P B 5
P A 3 /P F D 1 1 8 P A 4 /T M R P A 2 2 1 9 P A 5 /IN T P A 3 /P F D 2 1 9 P A 4 /T M R
P A 3 /P F D 1 1 6 P A 4 /T M R P A 2 2 1 7 P A 5 /IN T P A 1 3 1 8 P A 6 P A 2 3 1 8 P A 5 /IN T
P A 2 2 1 5 P A 5 /IN T P A 1 3 1 6 P A 6 P A 0 4 1 7 P A 7 P A 1 4 1 7 P A 6
P A 1 3 1 4 P A 6 P A 0 4 1 5 P A 7 P B 3 /A N 3 5 1 6 O S C 2 P A 0 5 1 6 P A 7
P A 0 4 1 3 P A 7 P B 3 /A N 3 5 1 4 O S C 2 N C 6 1 5 O S C 1 P B 3 /A N 3 6 1 5 O S C 2
P B 1 /A N 1 5 1 2 O S C 2 P B 2 /A N 2 6 1 3 O S C 1 P B 2 /A N 2 7 1 4 V D D P B 2 /A N 2 7 1 4 O S C 1
P B 0 /A N 0 6 1 1 O S C 1 P B 1 /A N 1 7 1 2 V D D P B 1 /A N 1 8 1 3 R E S P B 1 /A N 1 8 1 3 V D D
V S S 7 1 0 V D D P B 0 /A N 0 8 1 1 R E S P B 0 /A N 0 9 1 2 P D 0 /P W M P B 0 /A N 0 9 1 2 R E S
P D 0 /P W M 8 9 R E S V S S 9 1 0 P D 0 /P W M V S S 1 0 1 1 N C V S S 1 0 1 1 P D 0 /P W M
H T 4 6 R 4 6 /H T 4 6 C 4 6 H T 4 6 R 4 6 /H T 4 6 C 4 6 H T 4 6 R 4 6 /H T 4 6 C 4 6 H T 4 6 R 4 8 A /H T 4 6 C 4 8 A
H T 4 6 R 4 7 /H T 4 6 C 4 7 H T 4 6 R 4 7 /H T 4 6 C 4 7 H T 4 6 R 4 7 /H T 4 6 C 4 7 2 0 D IP -A /S O P -A
1 6 N S O P -A 1 8 D IP -A /S O P -A 2 0 S S O P -A
P B 5 1 2 8 P B 6
P B 4 2 2 7 P B 7
P B 5 1 2 4 P B 6 P B 5 1 2 4 P B 6 P A 3 /P F D 3 2 6 P A 4 /T M R
P B 4 2 2 3 P B 7 P B 4 2 2 3 P B 7 P A 2 4 2 5 P A 5 /IN T
P A 3 /P F D 3 2 2 P A 4 /T M R P A 3 /P F D 1 2 0 P A 4 /T M R P A 3 /P F D 3 2 2 P A 4 /T M R P A 1 5 2 4 P A 6
P A 2 4 2 1 P A 5 /IN T P A 2 2 1 9 P A 5 /IN T P A 2 4 2 1 P A 5 /IN T P A 0 6 2 3 P A 7
P A 1 5 2 0 P A 6 P A 1 3 1 8 P A 6 P A 1 5 2 0 P A 6 P B 3 /A N 3 7 2 2 O S C 2
P A 0 6 1 9 P A 7 P A 0 4 1 7 P A 7 P A 0 6 1 9 P A 7 P B 2 /A N 2 8 2 1 O S C 1
P B 3 /A N 3 7 1 8 O S C 2 P B 3 /A N 3 5 1 6 O S C 2 P B 3 /A N 3 7 1 8 O S C 2 P B 1 /A N 1 9 2 0 V D D
P B 2 /A N 2 8 1 7 O S C 1 P B 2 /A N 2 6 1 5 O S C 1 P B 2 /A N 2 8 1 7 O S C 1 P B 0 /A N 0 1 0 1 9 R E S
P B 1 /A N 1 9 1 6 V D D P B 1 /A N 1 7 1 4 V D D P B 1 /A N 1 9 1 6 V D D V S S 1 1 1 8 P D 1 /P W M 1
P B 0 /A N 0 1 0 1 5 R E S P B 0 /A N 0 8 1 3 R E S P B 0 /A N 0 1 0 1 5 R E S P C 0 1 2 1 7 P D 0 /P W M 0
V S S 1 1 1 4 P D 0 /P W M V S S 9 1 2 P D 1 /P W M 1 V S S 1 1 1 4 P D 1 /P W M 1 P C 1 1 3 1 6 P C 4
P C 0 1 2 1 3 P C 1 P C 0 1 0 1 1 P D 0 /P W M 0 P C 0 1 2 1 3 P D 0 /P W M 0 P C 2 1 4 1 5 P C 3
H T 4 6 R 4 8 A /H T 4 6 C 4 8 A H T 4 6 R 4 9 H T 4 6 R 4 9 H T 4 6 R 4 9
2 4 S K D IP -A /S O P -A /S S O P -A 2 0 D IP -A /S O P -A 2 4 S K D IP -B /S O P -B 2 8 S K D IP -A /S O P -A
Pin Description
HT46R46, HT46R47
Configuration
Pin Name I/O Description
Option
PA0~PA2 Bidirectional 8-bit input/output port. Each individual pin on this port can be config-
PA3/PFD Pull-high ured as a wake-up input by a configuration option. Software instructions determine
PA4/TMR I/O Wake-up if the pin is a CMOS output or Schmitt Trigger input. Configuration options deter-
PA5/INT PA3 or PFD mine which pins on the port have pull-high resistors. Pins PA3, PA4 and PA5 are
PA6~PA7 pin-shared with PFD, TMR and INT, respectively.
Bidirectional 4-bit input/output port. Software instructions determine if the pin is a
PB0/AN0
CMOS output or Schmitt Trigger input. Configuration options determine which pins
PB1/AN1
I/O Pull-high on the port have pull-high resistors. PB is pin-shared with the A/D input pins. The
PB2/AN2
A/D inputs are selected via software instructions. Once selected as an A/D input,
PB3/AN3
the I/O function and pull-high resistor options are disabled automatically.
Bidirectional 1-bit input/output port. Software instructions determine if the pin is a
Pull-high CMOS output or Schmitt Trigger input.
PD0/PWM I/O
PD0 or PWM A configuration option determines if this pin has a pull-high resistor. The PWM out-
put is pin-shared with pin PD0 selected via a configuration option.
OSC1, OSC2 are connected to an external RC network or external crystal, deter-
OSC1 I Crystal
mined by configuration option, for the internal system clock. If the RC system clock op-
OSC2 O or RC
tion is selected, pin OSC2 can be used to measure the system clock at 1/4 frequency.
RES I ¾ Schmitt Trigger reset input. Active low.
VDD ¾ ¾ Positive power supply
VSS ¾ ¾ Negative power supply, ground
Note: 1. Each pin on PA can be programmed through a configuration option to have a wake-up function.
2. Individual pins can be selected to have a pull-high resistor.
3. Pins PB2/AN2~PB3/AN3 exist but are not bonded out on the 16-pin package.
4. unbonded pins should be setup as outputs or as inputs with pull-high resistors to conserve power.
HT46R48A
Configuration
Pin Name I/O Description
Option
PA0~PA2 Bidirectional 8-bit input/output port. Each individual pin on this port can be config-
PA3/PFD Pull-high ured as a wake-up input by a configuration option. Software instructions determine
PA4/TMR I/O Wake-up if the pin is a CMOS output or Schmitt Trigger input. Configuration options deter-
PA5/INT PA3 or PFD mine which pins on the port have pull-high resistors. Pins PA3, PA4 and PA5 are
PA6~PA7 pin-shared with PFD, TMR and INT, respectively.
PB0/AN0 Bidirectional 8-bit input/output port. Software instructions determine if the pin is a
PB1/AN1 CMOS output or Schmitt Trigger input. Configuration options determine which pins
PB2/AN2 I/O Pull-high on the port have pull-high resistors. PB is pin-shared with the A/D input pins. The
PB3/AN3 A/D inputs are selected via software instructions. Once selected as an A/D input,
PB4~PB7 the I/O function and pull-high resistor options are disabled automatically.
Bidirectional 2-bit input/output port. Software instructions determine if the pin is a
PC0~PC1 I/O Pull-high CMOS output or Schmitt Trigger input. Configuration options determine which pins
on the port have pull-high resistors.
Bidirectional 1-bit input/output port. Software instructions determine if the pin is a
Pull-high CMOS output or Schmitt Trigger input. Configuration option determines if this pin
PD0/PWM I/O
I/O or PWM has a pull-high resistor. The PWM output is pin-shared with pin PD0 selected via a
configuration option.
OSC1, OSC2 are connected to an external RC network or external crystal, deter-
OSC1 I mined by configuration option, for the internal system clock. If the RC system clock
Crystal or RC
OSC2 O option is selected, pin OSC2 can be used to measure the system clock at 1/4 fre-
quency.
RES I ¾ Schmitt Trigger reset input. Active low.
Note: 1. Each pin on PA can be programmed through a configuration option to have a wake-up function.
2. Individual pins can be selected to have a pull-high resistor.
3. Pins PB4~PB7 exist but are not bonded out on the 20-pin package.
4. Unbonded pins should be setup as outputs or as inputs with pull-high resistors to conserve power.
HT46R49
Configuration
Pin Name I/O Description
Option
PA0~PA2 Bidirectional 8-bit input/output port. Each individual pin on this port can be config-
PA3/PFD Pull-high ured as a wake-up input by a configuration option. Software instructions deter-
PA4/TMR I/O Wake-up mine if the pin is a CMOS output or Schmitt Trigger input. Configuration options
PA5/INT PA3 or PFD determine which pins on the port have pull-high resistors. Pins PA3, PA4 and PA5
PA6~PA7 are pin-shared with PFD, TMR and INT, respectively.
PB0/AN0 Bidirectional 8-bit input/output port. Software instructions determine if the pin is a
PB1/AN1 CMOS output or Schmitt Trigger input. Configuration options determine which
PB2/AN2 I/O Pull-high pins on the port have pull-high resistors. PB is pin-shared with the A/D input pins.
PB3/AN3 The A/D inputs are selected via software instructions. Once selected as an A/D in-
PB4~PB7 put, the I/O function and pull-high resistor options are disabled automatically.
Bidirectional 5-bit input/output port. Software instructions determine if the pin is a
PC0~PC4 I/O Pull-high CMOS output or Schmitt Trigger input. Configuration options determine which
pins on the port have pull-high resistors.
Bidirectional 2-bit input/output port. Software instructions determine if the pin is a
PD0/PWM0 Pull-high CMOS output or Schmitt Trigger input. Configuration option determines if this pin
I/O
PD1/PWM1 I/O or PWM has a pull-high resistor. The PWM output are pin-shared with pins PD0 and PD1
selected via a configuration option.
OSC1, OSC2 are connected to an external RC network or external crystal, deter-
OSC1 I mined by configuration option, for the internal system clock. If the RC system
Crystal or RC
OSC2 O clock option is selected, pin OSC2 can be used to measure the system clock at
1/4 frequency.
RES I ¾ Schmitt Trigger reset input. Active low.
Note: 1. Each pin on PA can be programmed through a configuration option to have a wake-up function.
2. Individual pins can be selected to have a pull-high resistor.
3. Pins PC1~PC4 exist but are not bonded out on the 20-pin and 24-pin package.
Pins PB4~PB7 exist but are not bonded out on the 20-pin package.
4. Unbonded pins should be setup as outputs or as inputs with pull-high resistors to conserve power.
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
3V VOL=0.1VDD 4 8 ¾ mA
IOL I/O Port Sink Current
5V VOL=0.1VDD 10 20 ¾ mA
3V VOH=0.9VDD -2 -4 ¾ mA
IOH I/O Port Source Current
5V VOH=0.9VDD -5 -10 ¾ mA
3V ¾ 20 60 100 kW
RPH Pull-high Resistance
5V ¾ 10 30 50 kW
VAD A/D Input Voltage ¾ ¾ 0 ¾ VDD V
EAD A/D Conversion Error ¾ ¾ ¾ ±0.5 ±1 LSB
Test Conditions
Symbol Parameter Min. Typ. Max. Unit
VDD Conditions
3V ¾ 45 90 180 ms
tWDTOSC Watchdog Oscillator Period
5V ¾ 32 65 130 ms
Watchdog Time-out Period
tWDT1 ¾ ¾ 215 ¾ 216 tWDTOSC
(RC)
Watchdog Time-out Period
tWDT2 ¾ ¾ 217 ¾ 218 tSYS
(System Clock)
tRES External Reset Low Pulse Width ¾ ¾ 1 ¾ ¾ ms
tSST System Start-up Timer Period ¾ Wake-up from HALT ¾ 1024 ¾ *tSYS
Note: *tSYS=1/fSYS
System Architecture
A key factor in the high-performance features of the Clocking and Pipelining
H o l t e k r a n g e o f C o s t - E ff e c t i v e A / D Ty p e The main system clock, derived from either a Crys-
microcontrollers is attributed to the internal system ar- tal/Resonator or RC oscillator is subdivided into four in-
chitecture. The range of devices take advantage of the ternally generated non-overlapping clocks, T1~T4. The
usual features found within RISC microcontrollers pro- Program Counter is incremented at the beginning of the
viding increased speed of operation and enhanced per- T1 clock during which time a new instruction is fetched.
formance. The pipelining scheme is implemented in The remaining T2~T4 clocks carry out the decoding and
such a way that instruction fetching and instruction exe- execution functions. In this way, one T1~T4 clock cycle
cution are overlapped, hence instructions are effectively forms one instruction cycle. Although the fetching and
executed in one cycle, with the exception of branch or execution of instructions takes place in consecutive in-
call instructions. An 8-bit wide ALU is used in practically struction cycles, the pipelining structure of the
all operations of the instruction set. It carries out arith- microcontroller ensures that instructions are effectively
metic operations, logic operations, rotation, increment, executed in one instruction cycle. The exception to this
decrement, branch decisions, etc. The internal data are instructions where the contents of the Program
path is simplified by moving data through the Accumula- Counter are changed, such as subroutine calls or
tor and the ALU. Certain internal registers are imple- jumps, in which case the instruction will take one more
mented in the Data Memory and can be directly or instruction cycle to execute.
indirectly addressed. The simple addressing methods of
these registers along with additional architectural fea- When the RC oscillator is used, OSC2 is freed for use as
tures ensure that a minimum of external components is a T1 phase clock synchronizing pin. This T1 phase clock
required to provide a functional I/O and A/D control sys- has a frequency of fSYS/4 with a 1:3 high/low duty cycle.
tem with maximum reliability and flexibility. This makes For instructions involving branches, such as jump or call
these devices suitable for low-cost, high-volume pro- instructions, two machine cycles are required to com-
duction for controller applications requiring from 1K up plete instruction execution. An extra cycle is required as
to 4K words of Program Memory and 64 to 128 bytes of the program takes one cycle to first obtain the actual
Data Memory storage. jump or call address and then another cycle to actually
execute the branch. The requirement for this extra cycle
should be taken into account by programmers in timing
sensitive applications
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 met, the next instruction, which has already been
During program execution, the Program Counter is used fetched during the present instruction execution, is dis-
to keep track of the address of the next instruction to be carded and a dummy cycle takes its place while the cor-
executed. It is automatically incremented by one each rect instruction is obtained.
time an instruction is executed except for instructions, The lower byte of the Program Counter, known as the
such as ²JMP² or ²CALL² that demand a jump to a Program Counter Low register or PCL, is available for
non-consecutive Program Memory address. For the program control and is a readable and writable register.
Cost-Effective A/D Type series of microcontrollers, note By transferring data directly into this register, a short
that the Program Counter width varies with the Program program jump can be executed directly, however, as
Memory capacity depending upon which device is se- only this low byte is available for manipulation, the
lected. However, it must be noted that only the lower 8 jumps are limited to the present page of memory, that is
bits, known as the Program Counter Low Register, are 256 locations. When such program jumps are executed
directly addressable by user. it should also be noted that a dummy cycle will be in-
When executing instructions requiring jumps to serted.
non-consecutive addresses such as a jump instruction, The lower byte of the Program Counter is fully accessi-
a subroutine call, interrupt or reset, etc., the ble under program control. Manipulating the PCL might
microcontroller manages program control by loading the cause program branching, so an extra cycle is needed
required address into the Program Counter. For condi- to pre-fetch. Further information on the PCL register can
tional skip instructions, once the condition has been be found in the Special Function Register section.
Program Counter
Structure
If the stack is full and an enabled interrupt takes place,
The Program Memory has a capacity of 1K by 14, 2K by
the interrupt request flag will be recorded but the ac-
14 or 4K by 15 bits depending upon which device is se-
knowledge signal will be inhibited. When the Stack
lected. The Program Memory is addressed by the Pro-
Pointer is decremented, by RET or RETI, the interrupt
gram Counter and also contains data, table information
will be serviced. This feature prevents stack overflow al-
and interrupt entries. Table data, which can be setup in
lowing the programmer to use the structure more easily.
any location within the Program Memory, is addressed
However, when the stack is full, a CALL subroutine in-
by separate table pointer registers.
struction can still be executed which will result in a stack
overflow. Precautions should be taken to avoid such
Special Vectors
cases which might cause unpredictable program
branching. Within the Program Memory, certain locations are re-
served for special usage such as reset and interrupts.
Note: For the HT46R46, 4 levels of stack are available
and for the HT46R47,HT46R48A and · Location 000H
HT46R49, 6 levels of stack are available. This vector is reserved for use by the device reset for
program initialisation. After a device reset is initiated, the
Arithmetic and Logic Unit - ALU program will jump to this location and begin execution.
H T 4 6 R 4 7
H T 4 6 R 4 6 H T 4 6 R 4 8 A H T 4 6 R 4 9
0 0 0 H
In itia lis a tio n In itia lis a tio n In itia lis a tio n
V e c to r V e c to r V e c to r
0 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 V e c to r In te rru p t V e c to r In te rru p t V e c to r
0 0 8 H
T im e r /E v e n t C o u n te r T im e r /E v e n t C o u n te r T im e r /E v e n t C o u n te r
In te rru p t V e c to r In te rru p t V e c to r In te rru p t V e c to r
0 0 C H
A /D C o n v e rte r A /D C o n v e rte r A /D C o n v e rte r
In te rru p t V e c to r In te rru p t V e c to r In te rru p t V e c to r
0 1 0 H
0 1 4 H
3 0 0 H
3 F F H
4 0 0 H
7 F F H
8 0 0 H
F F F H N o t Im p le m e n te d
1 4 b its 1 4 b its 1 5 b its
P ro g ra m C o u n te r
H ig h B y te P ro g ra m
M e m o ry
T B L P
T B L H S p e c ifie d b y [m ]
T a b le C o n te n ts H ig h B y te T a b le C o n te n ts L o w B y te
Table Location
0 0 H 0 0 H 0 0 H
S p e c ia l P u r p o s e
S p e c ia l P u r p o s e D a ta M e m o ry S p e c ia l P u r p o s e
D a ta M e m o ry D a ta M e m o ry
2 7 H
2 8 H
3 F H 3 F H
4 0 H 4 0 H
G e n e ra l P u rp o s e
G e n e ra l P u rp o s e D a ta M e m o ry
D a ta M e m o ry
G e n e ra l P u rp o s e
D a ta M e m o ry
7 F H 7 F H
H T 4 6 R 4 6 a n d H T 4 6 R 4 7 H T 4 6 R 4 8 A
B F H
H T 4 6 R 4 9
Note: Most of the Data Memory bits can be directly manipulated using the ²SET [m].i² and ²CLR [m].i² with the excep-
tion of a few dedicated bits. The Data Memory can also be accessed through the memory pointer register MP.
This area of Data Memory is where registers, necessary One Memory Pointer, known as MP, is physically imple-
for the correct operation of the microcontroller, are mented in Data Memory. The Memory Pointer can be
stored. Most of the registers are both readable and written to and manipulated in the same way as normal
writable but some are protected and are readable only, registers providing an easy way of addressing and
the details of which are located under the relevant Spe- tracking data. When using any operation on the indirect
cial Function Register section. Note that for locations addressing register IAR, it is actually the address speci-
that are unused, any read instruction to these addresses fied by the Memory Pointer that the microcontroller will
will return the value ²00H². be directed to.
For devices with 64 or 88 bytes of RAM Data Memory,
Special Function Registers bit 7 of the Memory Pointer is not implemented. How-
ever, it must be noted that when the Memory Pointer for
To ensure successful operation of the microcontroller,
these devices is read, bit 7 will be read as high.
certain internal registers are implemented in the Data
Memory area. These registers ensure correct operation
H T 4 6 R 4 6 H T 4 6 R 4 7 H T 4 6 R 4 8 A H T 4 6 R 4 9
0 0 H IA R IA R IA R IA R
0 1 H M P M P M P M P
0 2 H
0 3 H
0 4 H
0 5 H A C C A C C A C C A C C
0 6 H P C L P C L P C L P C L
0 7 H T B L P 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 T B L H
0 9 H
0 A H S T A T U S S T A T U S S T A T U S S T A T U S
0 B H IN T C IN T C IN T C IN T C
0 C H
0 D H T M R T M R T M R T M R
0 E H T M R C T M R C T M R C T M R C
0 F H
1 0 H
1 1 H
1 2 H P A P A P A P A
1 3 H P A C P A C P A C P A C
1 4 H P B P B P B P B
1 5 H P B C P B C P B C P B C
1 6 H P C P C
1 7 H P C C P C C
1 8 H P D P D P D P D
1 9 H P D C P D C P D C P D C
1 A H P W M P W M P W M P W M 0
1 B H P W M 1
1 C H
1 D H
1 E H
1 F H
2 0 H A D R L A D R L A D R L
2 1 H A D R 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 A D C R
2 3 H A C S R A C S R A C S R A C S R : U n u s e d , re a d a s "0 0 "
The following example shows how to clear a section of four RAM locations already defined as locations adres1 to
adres4.
data .section ¢data¢
adres1 db ?
adres2 db ?
adres3 db ?
adres4 db ?
block db ?
code .section at 0 ¢code¢
org 00h
start:
mov a,04h ; setup size of block
mov block,a
mov a,offset adres1 ; Accumulator loaded with first RAM address
mov mp,a ; setup memory pointer with first RAM address
loop:
clr IAR ; clear the data at address defined by MP
inc mp ; increment memory pointer
sdz block ; check if last memory location has been cleared
jmp loop
continue:
The important point to note here is that in the example shown above, no reference is made to specific RAM addresses.
These two special function registers are used to control ¨ Z is set if the result of an arithmetic or logical opera-
operation of the look-up table which is stored in the Pro- tion is zero; otherwise Z is cleared.
gram Memory. TBLP is the table pointer and indicates ¨ OV is set if an operation results in a carry into the
the location where the table data is located. Its value highest-order bit but not a carry out of the high-
must be setup before any table read commands are ex- est-order bit, or vice versa; otherwise OV is cleared.
ecuted. Its value can be changed, for example using the ¨ PDF is cleared by a system power-up or executing
²INC² or ²DEC² instructions, allowing for easy table data the ²CLR WDT² instruction. PDF is set by executing
pointing and reading. TBLH is the location where the the ²HALT² instruction.
high order byte of the table data is stored after a table
¨ TO is cleared by a system power-up or executing
read data instruction has been executed. Note that the
the ²CLR WDT² or ²HALT² instruction. TO is set by
lower order table data byte is transferred to a user de-
a WDT time-out.
fined location.
b 7 b 0
T O P D F O V Z A C C S T A T U S R e g is te r
S y s te m M a n a g e m e n t F la g s
P o w e r d o w n fla g
W a tc h d o g tim e - o u t fla g
N o t im p le m e n te d , re a d a s "0 "
Status Register
In addition, on entering an interrupt sequence or execut- trol register must be set high, for an output it must be set
ing a subroutine call, the status register will not be low. During program initialization, it is important to first
pushed onto the stack automatically. If the contents of setup the control registers to specify which pins are out-
the status registers are important and if the subroutine puts and which are inputs before reading data from or
can corrupt the status register, precautions must be writing data to the I/O ports. One flexible feature of these
taken to correctly save it. registers is the ability to directly program single bits us-
ing the ²SET [m].i² and ²CLR [m].i² instructions. The
Interrupt Control Register - INTC ability to change I/O pins from output to input and vice
This 8-bit register, known as the INTC register, controls versa by manipulating specific bits of the I/O control reg-
the operation of both external and internal timer inter- isters during normal program operation is a useful fea-
rupts. By setting various bits within this register using ture of these devices.
standard bit manipulation instructions, the enable/disable
function of each interrupt can be independently con- Pulse Width Modulator Registers -
PWM, PWM0, PWM1
trolled. A master interrupt bit within this register, the EMI
bit, acts like a global enable/disable and is used to set all E a c h d e v i c e i n t h e C o s t - E ff e c t i v e A / D Ty p e
of the interrupt enable bits on or off. This bit is cleared microcontroller range contains either one or two Pulse
when an interrupt routine is entered to disable further in- Width Modulators. Each one has its own related inde-
terrupt and is set by executing the ²RETI² instruction. pendent control register. For devices with a single PWM
function this is register is known as PWM, while for de-
Timer/Event Counter Registers - TMR, TMRC vices with two PWM functions, their control register
All devices possess a single internal 8-bit count-up names are PWM0 and PWM1. The 8-bit contents of
timer. An associated register known as TMR is the loca- these registers, defines the duty cycle value for the
modulation cycle of the corresponding Pulse Width
tion where the timer¢s 8-bit value is located. This register
Modulator.
can also be preloaded with fixed data to allow different
time intervals to be setup. An associated control regis-
A/D Converter Registers -
ter, known as TMRC, contains the setup information for
ADR, ADRL, ADRH, ADCR, ACSR
this timer, which determines in what mode the timer is to
be used as well as containing the timer on/off control E a c h d e v i c e i n t h e C o s t - E ff e c t i v e A / D Ty p e
function. microcontroller range contains a 4-channel 8-bit or 9-bit
A/D converter. The correct operation of the A/D requires
Input/Output Ports and Control Registers the use of one or two data registers, a control register
and a clock source register. For the HT46R46 device,
Within the area of Special Function Registers, the I/O
which has an 8-bit A/D converter, there is a single data
registers and their associated control registers play a
register, known as ADR. For the other devices, which
prominent role. All I/O ports have a designated register
contain a 9-bit A/D converter, there are two data regis-
correspondingly labeled as PA, PB, PC and PD. These
ters, a high byte data register known as ADRH, and a
labeled I/O registers are mapped to specific addresses
low byte data register known as ADRL. These are the
within the Data Memory as shown in the Data Memory
register locations where the digital value is placed after
table, which are used to transfer the appropriate output
the completion of an analog to digital conversion cycle.
or input data on that port. With each I/O port there is an
The channel selection and configuration of the A/D con-
associated control register labeled PAC, PBC, PCC and
verter is setup via the control register ADCR while the
PDC, also mapped to specific addresses with the Data
A/D clock frequency is defined by the clock source reg-
Memory. The control register specifies which pins of that
ister, ACSR.
port are set as inputs and which are set as outputs. To
setup a pin as an input, the corresponding bit of the con-
Input/Output Ports
Holtek microcontrollers offer considerable flexibility on of the I/O ports is directly mapped to a bit in its associ-
their I/O ports. With the input or output designation of ev- ated port control register. For the I/O pin to function as
ery pin fully under user program control, pull-high op- an input, the corresponding bit of the control register
tions for all ports and wake-up options on certain pins, must be written as a ²1². This will then allow the logic
the user is provided with an I/O structure to meet the state of the input pin to be directly read by instructions.
needs of a wide range of application possibilities. When the corresponding bit of the control register is
Depending upon which device or package is chosen, written as a ²0², the I/O pin will be setup as a CMOS out-
the microcontroller range provides from 13 to 23 put. If the pin is currently setup as an output, instructions
bidirectional input/output lines labeled with port names can still be used to read the output register. However, it
PA, PB, PC and PD. These I/O ports are mapped to the should be noted that the program will in fact only read
RAM Data Memory with specific addresses as shown in the status of the output data latch and not the actual
the Special Purpose Data Memory table. All of these I/O logic status of the output pin.
ports can be used for input and output operations. For
Pin-shared Functions
input operation, these ports are non-latching, which
means the inputs must be ready at the T2 rising edge of The flexibility of the microcontroller range is greatly en-
instruction ²MOV A,[m]², where m denotes the port ad- hanced by the use of pins that have more than one func-
dress. For output operation, all the data is latched and tion. Limited numbers of pins can force serious design
remains unchanged until the output latch is rewritten. constraints on designers but by supplying pins with
multi-functions, many of these difficulties can be over-
Pull-high Resistors come. For some pins, the chosen function of the
Many product applications require pull-high resistors for multi-function I/O pins is set by configuration options
their switch inputs usually requiring the use of an exter- while for others the function is set by application pro-
nal resistor. To eliminate the need for these external re- gram control.
sistors, all I/O pins, when configured as an input have · External Interrupt Input
the capability of being connected to an internal pull-high The external interrupt pin INT is pin-shared with the
resistor. These pull-high resistors are selectable via I/O pin PA5. For applications not requiring an external
configuration options and are implemented using a interrupt input, the pin-shared external interrupt pin
weak PMOS transistor. can be used as a normal I/O pin, however to do this,
the external interrupt enable bits in the INTC register
Port A Wake-up must be disabled.
Each device has a HALT instruction enabling the · External Timer Clock Input
microcontroller to enter a Power Down Mode and pre- The external timer pin TMR is pin-shared with the I/O
serve power, a feature that is important for battery and pin PA4. To configure it to operate as a timer input, the
corresponding control bits in the timer control register
other low-power applications. Various methods exist to
must be correctly set. For applications that do not re-
wake-up the microcontroller, one of which is to change
quire an external timer input, the pin can be used as a
the logic condition on one of the Port A pins from high to normal I/O pin. Note that if used as a normal I/O pin
low. After a ²HALT² instruction forces the microcontroller the timer mode control bits in the timer control register
into entering a HALT condition, the processor will re- must select the timer mode, which has an internal
main idle or in a low-power state until the logic condition clock source, to prevent the input pin from interfering
of the selected wake-up pin on Port A changes from high with the timer operation.
to low. This function is especially suitable for applica- · PFD Output
tions that can be woken up via external switches. Note Each device contains a PFD function whose single
that each pin on Port A can be selected individually to output is pin-shared with PA3. The output function of
have this wake-up feature. this pin is chosen via a configuration option and re-
mains fixed after the device is programmed. Note that
I/O Port Control Registers the corresponding bit of the port control register,
Each I/O port has its own control register PAC, PBC, PAC.3, must setup the pin as an output to enable the
PFD output. If the PAC port control register has setup
PCC and PDC, to control the input/output configuration.
the pin as an input, then the pin will function as a nor-
With this control register, each CMOS output or input
mal logic input with the usual pull-high option, even if
with or without pull-high resistor structures can be re- the PFD configuration option has been selected.
configured dynamically under software control. Each pin
V D D
P u ll- H ig h
C o n tr o l B it O p tio n 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
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
S y s te m W a k e -u p W a k e - u p O p tio n P A o n ly
V D D
P u ll- H ig h
C o n tr o l B it O p tio n 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 A 4 /T M R
R e a d C o n tr o l R e g is te r
D a ta B it P A 5 /IN T
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
IN T fo r P A 5 o n ly
T M R fo r P A 4 o n ly
S y s te m W a k e -u p
W a k e - u p O p tio n
V D D
P u ll- H ig h
C o n tr o l B it O p tio n 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 A 3 /P F D
R e a d C o n tr o l R e g is te r P D 0 /P W M
D a ta B it
P D 0 /P W M 0
D Q ( H T 4 6 R 4 9 2 8 - p in p a c k a g e o n ly )
P D 1 /P W M 1
W r ite D a ta R e g is te r C K Q
S
M
U
P F D o r P W M W a v e fo rm X
M P F D /P W M O p tio n
U
X
R e a d D a ta R e g is te r
V D D
P u ll- H ig h
C o n tr o l B it O p tio n 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 /A N 0 ~ P B 3 /A N 3
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
P C R 2 A n a lo g
P C R 1 In p u t
P C R 0 S e le c to r
T o A /D C o n v e rte r
A C S 2 ~ A C S 0
PB Input/Output Ports
I/O Pin Structures If these pins are setup as inputs they may oscillate and
The following diagrams illustrate the I/O pin internal increase power consumption, especially notable if the
structures. As the exact logical construction of the I/O device is in the Power Down Mode. It is therefore recom-
pin may differ from these drawings, they are supplied as mended that any unbonded pins should be setup as out-
a guide only to assist with the functional understanding puts, or if setup as inputs, then they should be
of the I/O pins. connected to pull-high resistors.
D a ta B u s
R e lo a d
P r e lo a d R e g is te r
P S C 2 ~ P S C 0 T M 1 T M 0
(1 /1 ~ 1 /1 2 8 )
fS Y S 8 - S ta g e P r e s c a le r T im e r /E v e n t C o u n te r O v e r flo w
T im e r /E v e n t C o u n te r
M o d e C o n tro l to In te rru p t
T O N
8 - B it T im e r /E v e n t C o u n te r ¸ 2 P F D
P A 4 /T M R In p u t
T E
8-bit Timer/Event Counter Structure
b 7 b 0
T M 1 T M 0 T O N T E P S C 2 P S C 1 P S C 0 T M R C R e g is te r
T im e r P r e s c a le r R a te S e le c t
P S C 2 P S C 1 P S C 0 T im e r R a te
0 0 0 1 :1
0 0 1 1 :2
0 1 0 1 :4
0 1 1 1 :8
1 0 0 1 :1 6
1 0 1 1 :3 2
1 1 0 1 :6 4
1 1 1 1 :1 2 8
E v e n t C o u n te r A c tiv e E d g e S e le c t
1 : c o u n t o n fa llin g e d g e
0 : c o u n t o n r is in g e d g e
P u ls e W id th M e a s u r e m e n t A c tiv e E d g e S e le c t
1 : s ta rt c o u n tin g o n r is in g e d g e , s to p o n fa llin g e d g e
0 : s ta rt c o u n tin g o n fa llin g e d g e , s to p o n r is in g e d g e
T im e r /E v e n t C o u n te r C o u n tin g E n a b le
1 : e n a b le
0 : d is a b le
N o t im p le m e n te d , r e a d a s " 0 "
O p e r a tin g M o d e S e le c t
T M 1 T M 0
0 0 n o m o d e a v a ila b le
0 1 e v e n t c o u n te r m o d e
1 0 tim e r m o d e
1 1 p u ls e w id th m e a s u r e m e n t m o d e
Configuring the Timer Mode mode, the second is to ensure that the port control regis-
In this mode, the timer can be utilised to measure fixed ter configures the pin as an input. It should be noted that
time intervals, providing an internal interrupt signal each a timer overflow is one of the wake-up sources. Also in
time the counter overflows. To operate in this mode, bits the Event Counting mode, the Timer/Event Counter will
TM1 and TM0 of the TMRC register must be set to 1 and continue to record externally changing logic events on
0 respectively. In this mode, the internal clock is used as the timer input pin, even if the microcontroller is in the
the timer clock. The input clock frequency to the timer is Power Down Mode. As a result when the timer over-
fSYS divided by the value programmed into the timer flows it will generate a wake-up and if the interrupts are
prescaler, the value of which is determined by bits enabled also generate a timer interrupt signal.
PSC0~PSC2 of the TMRC register. The timer-on bit,
Configuring the Pulse Width Measurement Mode
TON must be set high to enable the timer to run. Each
time an internal clock high to low transition occurs, the In this mode, the width of external pulses applied to the
timer increments by one. When the timer is full and over- pin-shared external pin PA4/TMR can be measured. In
flows, the timer will be reset to the value already loaded the Pulse Width Measurement Mode, the timer clock
into the preload register and continue counting. If the source is supplied by the internal clock. For the timer to
timer interrupt is enabled, an interrupt signal will also be operate in this mode, bits TM0 and TM1 must both be
generated. The timer interrupt can be disabled by ensur- set high. If the TE bit is low, once a high to low transition
ing that the ETI bit in the INTC register is cleared to zero. has been received on the PA4/TMR pin, the timer will
It should be noted that a timer overflow is one of the start counting until the PA4/TMR pin returns to its origi-
wake-up sources. nal high level. At this point the TON bit will be automati-
cally reset to zero and the timer will stop counting. If the
Configuring the Event Counter Mode TE bit is high, the timer will begin counting once a low to
In this mode, a number of externally changing logic high transition has been received on the PA4/TMR pin
events, occurring on external pin PA4/TMR, can be re- and stop counting when the PA4/TMR pin returns to its
corded by the internal timer. For the timer to operate in original low level. As before, the TON bit will be automat-
the event counting mode, bits TM1 and TM0 of the ically reset to zero and the timer will stop counting. It is
TMRC register must be set to 0 and 1 respectively. The important to note that in the Pulse Width Measurement
timer-on bit, TON must be set high to enable the timer to Mode, the TON bit is automatically reset to zero when
count. With TE low, the counter will increment each time the external control signal on the external timer pin re-
the PA4/TMR pin receives a low to high transition. If the turns to its original level, whereas in the other two
TE bit is high, the counter will increment each time TMR modes the TON bit can only be reset to zero under pro-
receives a high to low transition. As in the case of the gram control. The residual value in the timer, which can
other two modes, when the counter is full and overflows, now be read by the program, therefore represents the
the timer will be reset to the value already loaded into length of the pulse received on pin PA4/TMR. As the
the preload register and continue counting. If the timer TON bit has now been reset any further transitions on
interrupt is enabled, an interrupt signal will also be gen- the PA4/TMR pin will be ignored. Not until the TON bit is
erated. The timer interrupt can be disabled by ensuring again set high by the program can the timer begin fur-
that the ETI bit in the INTC register is cleared to zero. To ther pulse width measurements. In this way single shot
ensure that the external pin PA4/TMR is configured to pulse measurements can be easily made. It should be
operate as an event counter input pin, two things have to noted that in this mode the counter is controlled by logi-
happen. The first is to ensure that the TM0 and TM1 bits cal transitions on the PA4/TMR pin and not by the logic
place the timer/event counter in the event counting level.
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
As in the case of the other two modes, when the counter bit PA3 is set to ²1². This output data bit is used as the
is full and overflows, the timer will be reset to the value on/off control bit for the PFD output. Note that the PFD
already loaded into the preload register. If the timer in- output will be low if the PA3 output data bit is cleared to
terrupt is enabled, an interrupt signal will also be gener- ²0².
ated. To ensure that the external pin PA4/TMR is
Using this method of frequency generation, and if a
configured to operate as a pulse width measuring input
crystal oscillator is used for the system clock, very pre-
pin, two things have to happen. The first is to ensure that
cise values of frequency can be generated.
the TM0 and TM1 bits place the timer/event counter in
the pulse width measuring mode, the second is to en-
Prescaler
sure that the port control register configures the pin as
an input. It should be noted that a timer overflow is one Bits PSC0~PSC2 of the TMRC register can be used to
of the wake-up sources. define the pre-scaling stages of the internal clock
sources of the Timer/Event Counter. The Timer/Event
Programmable Frequency Divider - PFD Counter overflow signal can be used to generate signals
for the PFD and Timer Interrupt.
The PFD output is pin-shared with the I/O pin PA3. The
PFD function is selected via configuration option, how-
I/O Interfacing
ever, if not selected, the pin can operate as a normal I/O
pin. The timer overflow signal is the clock source for the The Timer/Event Counter, when configured to run in the
PFD circuit. The output frequency is controlled by load- event counter or pulse width measurement mode, re-
ing the required values into the timer prescaler registers quire the use of the external PA4/TMR pin for correct op-
to give the required division ratio. The counter, driven by eration. As this pin is a shared pin it must be configured
the system clock which is divided by the prescaler value, correctly to ensure it is setup for use as a Timer/Event
will begin to count-up from this preload register value Counter input and not as a normal I/O pin. This is imple-
until full, at which point an overflow signal is generated, mented by ensuring that the mode select bits in the
causing the PFD output to change state. The counter Timer/Event Counter control register, select either the
will then be automatically reloaded with the preload reg- event counter or pulse width measurement mode. Addi-
ister value and continue counting-up. tionally the Port Control Register PAC bit 4 must be set
high to ensure that the pin is setup as an input. Any
For the PFD output to function, it is essential that the
pull-high resistor configuration option on this pin will re-
corresponding bit of the Port A control register PAC bit 3
main valid even if the pin is used as a Timer/Event
is setup as an output. If setup as an input the PFD output
Counter input.
will not function, however, the pin can still be used as a
normal input pin. The PFD output will only be activated if
E x te rn a l T M R
P in In p u t
T O N ( w ith T 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 .
T im e r O v e r flo w
P F D C lo c k
P A 3 D a ta
P F D O u tp u t a t P A 3
Programming Considerations the timer can be turned on and off by controlling the en-
When configured to run in the timer mode, the internal able bit in the timer control register. Note that setting the
system clock is used as the timer clock source and is timer enable bit high to turn the timer on, should only be
therefore synchronized with the overall operation of the executed after the timer mode bits have been properly
microcontroller. In this mode when the appropriate timer setup. Setting the timer enable bit high together with a
register is full, the microcontroller will generate an internal mode bit modification, may lead to improper timer oper-
interrupt signal directing the program flow to the respec- ation if executed as a single timer control register byte
tive internal interrupt vector. For the pulse width mea- write instruction.
surement mode, the internal system clock is also used as When the Timer/Event counter overflows, its corre-
the timer clock source but the timer will only run when the sponding interrupt request flag in the interrupt control
correct logic condition appears on the external timer input register will be set. If the timer interrupt is enabled this
pin. As this is an external event and not synchronized will in turn generate an interrupt signal. However irre-
with the internal timer clock, the microcontroller will only spective of whether the interrupts are enabled or not, a
see this external event when the next timer clock pulse Timer/Event counter overflow will also generate a
arrives. As a result, there may be small differences in wake-up signal if the device is in a Power-down condi-
measured values requiring programmers to take this into tion. This situation may occur if the Timer/Event Counter
account during programming. The same applies if the is in the Event Counting Mode and if the external signal
timer is configured to be in the event counting mode, continues to change state. In such a case, the
which again is an external event and not synchronized Timer/Event Counter will continue to count these exter-
with the internal system or timer clock. nal events and if an overflow occurs the device will be
When the Timer/Event Counter is read, or if data is writ- woken up from its Power-down condition. To prevent
ten to the preload register, the clock is inhibited to avoid such a wake-up from occurring, the timer interrupt re-
errors, however as this may result in a counting error, this quest flag should first be set high before issuing the
should be taken into account by the programmer. Care HALT instruction to enter the Power Down Mode.
must be taken to ensure that the timers are properly in-
Timer Program Example
itialised before using them for the first time. The associ-
ated timer enable bits in the interrupt control register must This program example shows how the Timer/Event
be properly set otherwise the internal interrupt associated Counter registers are setup, along with how the inter-
with the timer will remain inactive. The edge select, timer rupts are enabled and managed. Note how the
mode and clock source control bits in timer control regis- Timer/Event Counter is turned on, by setting bit 4 of the
ter must also be correctly set to ensure the timer is prop- Timer Control Register. The Timer/Event Counter can
erly configured for the required application. It is also be turned off in a similar way by clearing the same bit.
important to ensure that an initial value is first loaded into This example program sets the Timer/Event Counter to
the timer registers before the timer is switched on; this is be in the timer mode, which uses the internal system
because after power-on the initial values of the timer reg- clock as the clock source.
isters are unknown. After the timer has been initialised
begin:
;setup Timer registers
mov a,09bh ; setup Timer preload value
mov tmr,a;
mov a,081h ; setup Timer control register
mov tmrc,a ; timer mode and prescaler set to /2
; setup interrupt register
mov a,005h ; enable master interrupt and timer interrupt
mov intc,a
set tmrc.4 ; start Timer - note mode bits must be previously setup
Other
1 6+2 PD0 PWM
Devices 6+2 PWM Mode
Each full PWM cycle, as it is controlled by an 8-bit PWM,
For devices with one PWM output, a single register, lo- PWM0 or PWM1 register, has 256 clock periods. How-
cated in the Data Memory is assigned to the Pulse Width ever, in the 6+2 PWM Mode, each PWM cycle is subdi-
Modulator and is known as the PWM register. For de- vided into four individual sub-cycles known as
vices with two PWM outputs, two registers are provided modulation cycle 0~modulation cycle 3, denoted as ²i²
and are known as PWM0 and PWM1. It is in these regis- in the table. Each one of these four sub-cycles contains
ters, that the 8-bit value, which represents the overall 64 clock cycles. In this mode, a modulation frequency
duty cycle of one modulation cycle of the output wave- increase by a factor of four is achieved. The 8-bit PWM,
form, should be placed. To increase the PWM modula- PWM0 or PWM1 register value, which represents the
tion frequency, each modulation cycle is modulated into overall duty cycle of the PWM waveform, is divided into
four individual modulation sub-sections, known as the two groups. The first group which consists of bit2~bit7 is
6+2 mode. Note that it is only necessary to write the re- denoted here as the DC value. The second group which
quired modulation value into the corresponding PWM consists of bit0~bit1 is known as the AC value. In the
register as the subdivision of the waveform into its 6+2 PWM mode, the duty cycle value of each of the four
sub-modulation cycles is implemented automatically modulation sub-cycles is shown in the following table.
within the microcontroller hardware. For all devices, the
DC
PWM clock source is the system clock fSYS. Parameter AC (0~3)
(Duty Cycle)
This method of dividing the original modulation cycle
DC+ 1
into a further 4 sub-cycles enables the generation of i<AC
Modulation cycle i 64
higher PWM frequencies, which allow a wider range of
(i=0~3) DC
applications to be served. As long as the periods of the
i³AC
generated PWM pulses are less than the time constants 64
of the load, the PWM output will be suitable as such long 6+2 Mode Modulation Cycle Values
time constant loads will average out the pulses of the
PWM output. The difference between what is known as
The following diagram illustrates the waveforms associ- out, and of course after the required PWM value has
ated with the 6+2 mode of PWM operation. It is impor- been written into the PWM register, writing a ²1² to the
tant to note how the single PWM cycle is subdivided into corresponding bit in the PD output data register will en-
4 individual modulation cycles, numbered from 0~3 and able the PWM data to appear on the pin. Writing a ²0² to
how the AC value is related to the PWM value. the corresponding bit in the PD output data register will
disable the PWM output function and force the output
PWM Output Control low. In this way, the Port D data output register can be
On all devices, the PWM outputs are pin-shared with used as an on/off control for the PWM function. Note
pins PD0 and PD1. To operate as PWM outputs and not that if the configuration options have selected the PWM
as I/O pins, the correct PWM configuration options must function, but a ²1² has been written to its corresponding
be selected. A ²0² must also be written to the corre- bit in the PDC control register to configure the pin as an
sponding bits in the I/O port control register PDC to en- input, then the pin can still function as a normal input
sure that the required PWM output pin is setup as an line, with pull-high resistor options.
output. After these two initial steps have been carried
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 , P W M 0 , P W M 1 R e g is te r
A C v a lu e
D C v a lu e
V D D
A /D r e fe r e n c e v o lta g e
P B 0 /A N 0
A D R
P B 1 /A N 1
P B 2 /A N 2 A D C o r A /D D a ta
A D R L R e g is te r s
P B 3 /A N 3
A D R H
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
P in C o n fig u r a tio n C h a n n e l S e le c t S ta r t B it E n d o f
B its B its C o n v e r s io n B it
A/D Converter Structure
The ADCR control register also contains the nal interrupt address for processing. If the A/D internal
PCR2~PCR0 bits which determine which pins on Port B interrupt is disabled, the microcontroller can be used to
are used as analog inputs for the A/D converter and poll the EOCB bit in the ADCR register to check whether
which pins are to be used as normal I/O pins. If the 3-bit it has been cleared as an alternative method of detect-
address on PCR2~PCR0 has a value of ²100² or higher, ing the end of an A/D conversion cycle.
then all four pins, namely AN0, AN1, AN2 and AN3 will all
be set as analog inputs. Note that if the PCR2~PCR0 bits A/D Converter Clock Source Register - ACSR
are all set to zero, then all the Port B pins will be setup as The clock source for the A/D converter, which originates
normal I/Os and the internal A/D converter circuitry will be from the system clock fSYS, is first divided by a division
powered off to reduce the power consumption. ratio, the value of which is determined by the ADCS1
The START bit in the ADCR register is used to start and and ADCS0 bits in the ACSR register.
reset the A/D converter. When the microcontroller sets Although the A/D clock source is determined by the sys-
this bit from low to high and then low again, an analog to tem clock fSYS, and by bits ADCS1 and ADCS0, there are
digital conversion cycle will be initiated. When the some limitations on the maximum A/D clock source speed
START bit is brought from low to high but not low again, that can be selected. As the minimum value of permissible
the EOCB bit in the ADCR register will be set to a ²1² A/D clock period, tAD, is 0.5ms for the HT46R46, device,
and the analog to digital converter will be reset. It is the and 1ms for the other devices, care must be taken for sys-
START bit that is used to control the overall on/off opera- tem clock speeds in excess of 2MHz. With the exception of
tion of the internal analog to digital converter. the HT46R46 device, for system clock speeds in excess of
The EOCB bit in the ADCR register is used to indicate 2MHz, the ADCS1 and ADCS0 bits should not be set to
when the analog to digital conversion process is com- ²00². For the HT46R46 device, for system clock speeds in
plete. This bit will be automatically set to ²0² by the excess of 4MHz, the ADCS1 and ADCS0 bits should not
microcontroller after a conversion cycle has ended. In be set to ²00². Doing so will give A/D clock periods that are
addition, the corresponding A/D interrupt request flag less than the minimum A/D clock period which may result
will be set in the interrupt control register, and if the inter- in inaccurate A/D conversion values. Refer to the following
rupts are enabled, an appropriate internal interrupt sig- table for examples, where values marked with an asterisk
nal will be generated. This A/D internal interrupt signal * show where, depending upon the device, special care
will direct the program flow to the associated A/D inter- must be taken, as the values may be less than the speci-
fied minimum A/D Clock Period.
b 7 b 0
S T A R T E O C B P C R 2 P C R 1 P C R 0 A C S 2 A C S 1 A C S 0 A D C R R e g is te r
S e le c t A /D c h a n n e l
A C S 2 A C S 1 A C S 0
0 0 0 : A N 0
0 0 1 : A N 1
0 1 0 : A N 2
0 1 1 : A N 3
1 X X : u n d e fin e d , m u s t n o t b e u s e d
P o r t B A /D c h a n n e l c o n fig u r a tio n s
P C R 2 P C R 1 P C R 0
0 0 0 : P o rt B A /D c h a n n e ls - a ll o ff
0 0 1 : P B 0 e n a b le d a s A N 0
0 1 0 : P B 0 ~ P B 1 e n a b le d a s A N 0 ~ A N 1
0 1 1 : P B 0 ~ P B 2 e n a b le d a s A N 0 ~ A N 2
1 X X : P B 0 ~ P B 3 e n a b le d a s A N 0 ~ A N 3
E n d o f A /D c o n v e r s io n fla g
1 : n o t e n d o f A /D c o n v e r s io n - A /D c o n v e r s io n w a itin g o r in p r o g r e s s
0 : e n d o f A /D c o n v e r s io n - A /D c o n v e r s io n e n d e d
S ta r t th e A /D c o n v e r s io n
0 ® 1 ® 0 : S ta rt
0 ® 1 : R e s e t A /D c o n v e rte r a n d s e t E O C B to "1 "
b 7 b 0
T E S T A D C S 1 A D C S 0 A C S R R e g is te r
S e le c t A /D c o n v e r te r c lo c k s o u r c e
A D C S 1 A D C S 0
0 0 : s y s te m c lo c k /2
0 1 : s y s te m c lo c k /8
1 0 : s y s te m c lo c k /3 2
1 1 : u n d e fin e d
N o t im p le m e n te d , r e a d a s " 0 "
F o r te s t m o d e u s e o n ly
The following timing diagram shows graphically the various stages involved in an analog to digital conversion process
and its associated timing.
S T A R T
P C R 2 ~ 0 0 0 B 0 1 1 B 1 0 0 B 0 0 0 B
P C R 0
1 . P B p o rt s e tu p a s I/O s
2 . A /D c o n v e r te r is p o w e r e d o ff
to r e d u c e p o w e r c o n s u m p tio n
A C S 2 ~
A C S 0 0 0 0 B 0 1 0 B 0 0 0 B 0 0 1 B D o n 't c a r e
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 E n d o f A /D
1 : D e fin e P B 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 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 tA D C
N o te : A /D c lo c k m u s t b e fS Y S /2 , fS Y S /8 o r fS Y S /3 2
The setting up and operation of the A/D converter func- Programming Considerations
tion is fully under the control of the application program as When programming, special attention must be given to
there are no configuration options associated with the the A/D channel selection bits in the ADCR register. If
A/D converter. After an A/D conversion process has been these bits are all cleared to zero no external pins will be
initiated by the application program, the microcontroller selected for use as A/D input pins allowing the pins to be
internal hardware will begin to carry out the conversion, used as normal I/O pins. When this happens the power
during which time the program can continue with other supplied to the internal A/D circuitry will be reduced re-
functions. The time taken for the A/D conversion is de- sulting in a reduction of supply current. This ability to re-
pendent upon the device chosen and is a function of the duce power by turning off the internal A/D function by
A/D clock period tAD as shown in the table. clearing the A/D channel selection bits may be an impor-
Device A/D Conversion Time tant consideration in battery powered applications.
Example: using an EOCB polling method to detect the end of conversion for the HT46R46
clr EADI ; disable ADC interrupt
mov a,00000001B
mov ACSR,a ; setup the ACSR register to select fSYS/8 as
; the A/D clock
mov a,00100000B ; setup ADCR register to configure Port PB0~PB3
; as A/D inputs
mov ADCR,a ; and select AN0 to be connected to the A/D
; converter
:
: ; As the Port B channel bits have changed the
; following START
; signal (0-1-0) must be issued within 10
; instruction cycles
:
Start_conversion:
clr START
set START ; reset A/D
clr START ; start A/D
Polling_EOC:
sz EOCB ; poll the ADCR register EOCB bit to detect end
; of A/D conversion
jmp polling_EOC ; continue polling
mov a,ADR ; read conversion result value from the ADR
; register
mov adr_buffer,a ; save result to user defined memory
:
:
jmp start_conversion ; start next A/D conversion
Example: using an interrupt method to detect the end of conversion for the HT46R46
clr EADI ; disable ADC interrupt
mov a,00000001B
mov ACSR,a ; setup the ACSR register to select fSYS/8 as
; the A/D clock
A/D Transfer Function transfer function between the analog input value and the
As the HT46R46 device contain an 8-bit A/D converter, digitised output value for the A/D converters.
their full-scale converted digitized value is equal to Note that to reduce the quantisation error, a 0.5 LSB off-
0FFH. Since the full-scale analog input value is equal to set is added to the A/D Converter input. Except for the
the voltage, this gives a single bit analog input value of digitised zero value, the subsequent digitised values will
VDD/256. For the other devices which each contain a change at a point 0.5 LSB below where they would
9-bit A/D converter, their full-scale converted digitised change without the offset, and the last full scale digitised
value is equal to 1FFH giving a single bit analog input value will change at a point 1.5 LSB below the VDD level.
value of VDD/512. The following graphs show the ideal
1 .5 L S B
F F H
F E H
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 2 5 3 2 5 4 2 5 5 2 5 6 2 5 6
A n a lo g In p u t V o lta g e
Ideal A/D Transfer Function - HT46R46
1 .5 L S B
1 F F H
1 F E H
1 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 5 0 9 5 1 0 5 1 1 5 1 2 5 1 2
A n a lo g In p u t V o lta g e
Interrupts
Interrupts are an important part of any microcontroller Counter, which stores the address of the next instruction
system. When an external event or an internal function to be executed, will be transferred onto the stack. The
such as a Timer/Event Counter or an A/D converter re- Program Counter will then be loaded with a new ad-
quires microcontroller attention, their corresponding in- dress which will be the value of the corresponding inter-
terrupt will enforce a temporary suspension of the main rupt vector. The microcontroller will then fetch its next
program allowing the microcontroller to direct attention instruction from this interrupt vector. The instruction at
to their respective needs. Each device in this series con- this vector will usually be a JMP statement which will
tains a single external interrupt and two internal inter- jump to another section of program which is known as
rupts functions. The external interrupt is controlled by the interrupt service routine. Here is located the code to
the action of the external INT pin, while the internal inter- control the appropriate interrupt. The interrupt service
rupts are controlled by the Timer/Event Counter over- routine must be terminated with a RETI statement,
flow and the A/D converter interrupt. which retrieves the original Program Counter address
from the stack and allows the microcontroller to continue
Interrupt Register with normal execution at the point where the interrupt
Overall interrupt control, which means interrupt enabling occurred.
and request flag setting, is controlled by a single INTC The various interrupt enable bits, together with their as-
register, which is located in Data Memory. By controlling sociated request flags, are shown in the following dia-
the appropriate enable bits in this register each individ- gram with their order of priority.
ual interrupt can be enabled or disabled. Also when an
Once an interrupt subroutine is serviced, all the other in-
interrupt occurs, the corresponding request flag will be
terrupts will be blocked, as the EMI bit will be cleared au-
set by the microcontroller. The global enable flag if
tomatically. This will prevent any further interrupt nesting
cleared to zero will disable all interrupts.
from occurring. However, if other interrupt requests oc-
Interrupt Operation cur during this interval, although the interrupt will not be
immediately serviced, the request flag will still be re-
A Timer/Event Counter overflow, an end of A/D conver- corded. If an interrupt requires immediate servicing
sion or the external interrupt line being pulled low will all while the program is already in another interrupt service
generate an interrupt request by setting their corre- routine, the EMI bit should be set after entering the rou-
sponding request flag, if their appropriate interrupt en- tine, to allow interrupt nesting. If the stack is full, the in-
able bit is set. When this happens, the Program terrupt request will not be acknowledged, even if the
b 7 b 0
A D F T F E IF E A D I E T I E E I E M I IN T C R e g is te r
M a s te r In te r r u p t G lo b a l E n a b le
1 : g lo b a l e n a b le
0 : g lo b a l d is a b le
E x te r n a l In te r r u p t E n a b le
1 : e n a b le
0 : d is a b le
T im e r /E v e n t C o u n te r In te r r u p t E n a b le
1 : e n a b le
0 : d is a b le
A /D C o n v e r te r In te r r u p t E n a b le
1 : e n a b le
0 : d is a b le
E x te r n a l In te r r u p t R e q u e s t F la g
1 : a c tiv e
0 : in a c tiv e
T im e r /E v e n t C o u n te r In te r r u p t R e q u e s t F la g
1 : a c tiv e
0 : in a c tiv e
A /D C o n v e r te r In te r r u p t R e q u e s t F la g
1 : a c tiv e
0 : in a c tiv e
F o r te s t m o d e u s e o n ly .
M u s t b e w r itte n a s " 0 " o th e r w is e m a y
r e s u lt in u n p r e d ic ta b le o p e r a tio n
T im e r /E v e n t C o u n te r E T I In te rru p t
In te r r u p t R e q u e s t F la g T F P o llin g
A /D C o n v e rte r E A D I
In te r r u p t R e q u e s t F la g A D F L o w
Interrupt Structure
related interrupt is enabled, until the Stack Pointer is Timer/Event Counter Interrupt
decremented. If immediate service is desired, the stack For a Timer/Event Counter interrupt to occur, the global
must be prevented from becoming full. interrupt enable bit, EMI, and the corresponding timer
interrupt enable bit, ETI, must first be set. An actual
Interrupt Priority
Timer/Event Counter interrupt will take place when the
Interrupts, occurring in the interval between the rising Timer/Event Counter request flag, TF, is set, a situation
edges of two consecutive T2 pulses, will be serviced on that will occur when the Timer/Event Counter overflows.
the latter of the two T2 pulses, if the corresponding inter- When the interrupt is enabled, the stack is not full and a
rupts are enabled. In case of simultaneous requests, Timer/Event Counter overflow occurs, a subroutine call
the following table shows the priority that is applied. to the timer interrupt vector at location 08H, will take
These can be masked by resetting the EMI bit. place. When the interrupt is serviced, the timer interrupt
request flag, TF, will be automatically reset and the EMI
Interrupt Source All Devices Priority
bit will be automatically cleared to disable other inter-
External Interrupt 1
rupts.
Timer/Event Counter Overflow 2
A/D Converter Interrupt 3 A/D Interrupt
For an A/D interrupt to occur, the global interrupt enable
In cases where both external and internal interrupts are
bit, EMI, and the corresponding interrupt enable bit,
enabled and where an external and internal interrupt oc-
EADI, must be first set. An actual A/D interrupt will take
curs simultaneously, the external interrupt will always
place when the A/D converter request flag, ADF, is set, a
have priority and will therefore be serviced first. Suitable
situation that will occur when an A/D conversion process
masking of the individual interrupts using the INTC reg-
has completed. When the interrupt is enabled, the stack
ister can prevent simultaneous occurrences.
is not full and an A/D conversion process finishes exe-
cution, a subroutine call to the A/D interrupt vector at lo-
External Interrupt
cation 0CH, will take place. When the interrupt is
For an external interrupt to occur, the global interrupt en- serviced, the A/D interrupt request flag, ADF, will be au-
able bit, EMI, and external interrupt enable bit, EEI, must tomatically reset and the EMI bit will be automatically
first be set. An actual external interrupt will take place cleared to disable other interrupts.
when the external interrupt request flag, EIF, is set, a situ-
ation that will occur when a high to low transition appears Programming Considerations
on the INT line. The external interrupt pin is pin-shared
By disabling the interrupt enable bits, a requested inter-
with the I/O pin PA5 and can only be configured as an ex-
rupt can be prevented from being serviced, however,
ternal interrupt pin if the corresponding external interrupt
once an interrupt request flag is set, it will remain in this
enable bit in the INTC register has been set. The pin must
condition in the INTC register until the corresponding in-
also be setup as an input by setting the corresponding
terrupt is serviced or until the request flag is cleared by a
PAC.5 bit in the port control register. When the interrupt is
software instruction.
enabled, the stack is not full and a high to low transition
appears on the external interrupt pin, a subroutine call to It is recommended that programs do not use the ²CALL
the external interrupt vector at location 04H, will take subroutine² instruction within the interrupt subroutine.
place. When the interrupt is serviced, the external inter- Interrupts often occur in an unpredictable manner or
rupt request flag, EIF, will be automatically reset and the need to be serviced immediately in some applications. If
EMI bit will be automatically cleared to disable other inter- only one stack is left and the interrupt is not well con-
rupts. Note that any pull-high resistor configuration op- trolled, the original control sequence will be damaged
tions on this pin will remain valid even if the pin is used as once a ²CALL subroutine² is executed in the interrupt
an external interrupt input. subroutine.
All of these interrupts have the capability of waking up Although the microcontroller has an internal RC reset
the processor when in the Power Down Mode. function, if the VDD power supply rise time is not fast
enough or does not stabilise quickly at power-on, the
Only the Program Counter is pushed onto the stack. If internal reset function may be incapable of providing
the contents of the register or status register are altered proper reset operation. For this reason it is recom-
by the interrupt service program, which may corrupt the mended that an external RC network is connected to
desired control sequence, then the contents should be the RES pin, whose additional time delay will ensure
saved in advance. that the RES pin remains low for an extended period
to allow the power supply to stabilise. During this time
delay, normal operation of the microcontroller will be
Reset and Initialisation inhibited. After the RES line reaches a certain voltage
A reset function is a fundamental part of any value, the reset delay time tRSTD is invoked to provide
microcontroller ensuring that the device can be set to an extra delay time after which the microcontroller will
begin normal operation. The abbreviation SST in the
some predetermined condition irrespective of outside
figures stands for System Start-up Timer.
parameters. The most important reset condition is after
power is first applied to the microcontroller. In this case, V D D
0 .9 V D D
internal circuitry will ensure that the microcontroller, af- R E S
ter a short delay, will be in a well defined state and ready tR S T D
HT46R46
Reset RES or LVR WDT Time-out WDT Time-out
Register
(Power-on) Reset (Normal Operation) (HALT)
MP 1xxx xxxx 1uuu uuuu 1uuu uuuu 1uuu uuuu
ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu
PCL 0000 0000 0000 0000 0000 0000 0000 0000
TBLP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu
TBLH --xx xxxx --uu uuuu --uu uuuu --uu uuuu
STATUS --00 xxxx --uu uuuu --1u uuuu --11 uuuu
INTC -000 0000 -000 0000 -000 0000 -uuu uuuu
TMR xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
TMRC 00-0 1000 00-0 1000 00-0 1000 uu-u uuuu
PA 1111 1111 1111 1111 1111 1111 uuuu uuuu
PAC 1111 1111 1111 1111 1111 1111 uuuu uuuu
PB ---- 1111 ---- 1111 ---- 1111 ---- uuuu
PBC ---- 1111 ---- 1111 ---- 1111 ---- uuuu
PD ---- ---1 ---- ---1 ---- ---1 ---- ---u
PDC ---- ---1 ---- ---1 ---- ---1 ---- ---u
PWM xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADR xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADCR 0100 0000 0100 0000 0100 0000 uuuu uuuu
ACSR 1--- --00 1--- --00 1--- --00 u--- --uu
HT46R47
Reset RES or LVR WDT Time-out WDT Time-out
Register
(Power-on) Reset (Normal Operation) (HALT)
MP 1xxx xxxx 1uuu uuuu 1uuu uuuu 1uuu uuuu
ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu
PCL 0000 0000 0000 0000 0000 0000 0000 0000
TBLP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu
TBLH --xx xxxx --uu uuuu --uu uuuu --uu uuuu
STATUS --00 xxxx --uu uuuu --1u uuuu --11 uuuu
INTC -000 0000 -000 0000 -000 0000 -uuu uuuu
TMR xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
TMRC 00-0 1000 00-0 1000 00-0 1000 uu-u uuuu
PA 1111 1111 1111 1111 1111 1111 uuuu uuuu
PAC 1111 1111 1111 1111 1111 1111 uuuu uuuu
PB ---- 1111 ---- 1111 ---- 1111 ---- uuuu
PBC ---- 1111 ---- 1111 ---- 1111 ---- uuuu
PD ---- ---1 ---- ---1 ---- ---1 ---- ---u
PDC ---- ---1 ---- ---1 ---- ---1 ---- ---u
PWM xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADRL x--- ---- x--- ---- x--- ---- u--- ----
ADRH xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADCR 0100 0000 0100 0000 0100 0000 uuuu uuuu
ACSR 1--- --00 1--- --00 1--- --00 u--- --uu
HT46R48A
Reset RES or LVR WDT Time-out WDT Time-out
Register
(Power-on) Reset (Normal Operation) (HALT)
MP 1xxx xxxx 1uuu uuuu 1uuu uuuu 1uuu uuuu
ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu
PCL 0000 0000 0000 0000 0000 0000 0000 0000
TBLP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu
TBLH --xx xxxx --uu uuuu --uu uuuu --uu uuuu
STATUS --00 xxxx --uu uuuu --1u uuuu --11 uuuu
INTC -000 0000 -000 0000 -000 0000 -uuu uuuu
TMR xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
TMRC 00-0 1000 00-0 1000 00-0 1000 uu-u uuuu
PA 1111 1111 1111 1111 1111 1111 uuuu uuuu
PAC 1111 1111 1111 1111 1111 1111 uuuu uuuu
PB 1111 1111 1111 1111 1111 1111 uuuu uuuu
PBC 1111 1111 1111 1111 1111 1111 uuuu uuuu
PC ---- --11 ---- --11 ---- --11 ---- --uu
PCC ---- --11 ---- --11 ---- --11 ---- --uu
PD ---- ---1 ---- ---1 ---- ---1 ---- ---u
PDC ---- ---1 ---- ---1 ---- ---1 ---- ---u
PWM xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADRL x--- ---- x--- ---- x--- ---- u--- ----
ADRH xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADCR 0100 0000 0100 0000 0100 0000 uuuu uuuu
ACSR 1--- --00 1--- --00 1--- --00 u--- --uu
HT46R49
Reset RES or LVR WDT Time-out WDT Time-out
Register
(Power-on) Reset (Normal Operation) (HALT)
MP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu
ACC xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu
PCL 0000 0000 0000 0000 0000 0000 0000 0000
TBLP xxxx xxxx uuuu uuuu uuuu uuuu uuuu uuuu
TBLH -xxx xxxx -uuu uuuu -uuu uuuu -uuu uuuu
STATUS --00 xxxx --uu uuuu --1u uuuu --11 uuuu
INTC -000 0000 -000 0000 -000 0000 -uuu uuuu
TMR xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
TMRC 00-0 1000 00-0 1000 00-0 1000 uu-u uuuu
PA 1111 1111 1111 1111 1111 1111 uuuu uuuu
PAC 1111 1111 1111 1111 1111 1111 uuuu uuuu
PB 1111 1111 1111 1111 1111 1111 uuuu uuuu
PBC 1111 1111 1111 1111 1111 1111 uuuu uuuu
PC ---1 1111 ---1 1111 ---1 1111 ---u uuuu
PCC ---1 1111 ---1 1111 ---1 1111 ---u uuuu
PD ---- --11 ---- --11 ---- --11 ---- --uu
PDC ---- --11 ---- --11 ---- --11 ---- --uu
PWM0 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
PWM1 xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADRL x--- ---- x--- ---- x--- ---- u--- ----
ADRH xxxx xxxx xxxx xxxx xxxx xxxx uuuu uuuu
ADCR 0100 0000 0100 0000 0100 0000 uuuu uuuu
ACSR 1--- --00 1--- --00 1--- --00 u--- --uu
Oscillator
Various oscillator options offer the user a wide range of
functions according to their various application require- Crystal Oscillator C1 and C2 Values
ments. Two types of system clocks can be selected
Crystal Frequency C1 C2 CL
while various clock source options for the Watchdog
Timer are provided for maximum flexibility. All oscillator 8MHz TBD TBD TBD
options are selected through the configuration options. 4MHz TBD TBD TBD
The two methods of generating the system clock are: 1MHz TBD TBD TBD
· External crystal/resonator oscillator
Note: 1. C1 and C2 values are for guidance only.
· External RC oscillator
2. CL is the crystal manufacturer specified
One of these two methods must be selected using the load capacitor value.
configuration options.
Crystal Recommended Capacitor Values
More information regarding the oscillator is located in
Application Note HA0075E on the Holtek website.
Resonator C1 and C2 Values
External Crystal/Resonator Oscillator Resonator Frequency C1 C2
The simple connection of a crystal across OSC1 and 3.58MHz TBD TBD
OSC2 will create the necessary phase shift and feed- 1MHz TBD TBD
back for oscillation, and will normally not require exter-
455kHz TBD TBD
nal capacitors. However, for some crystals and most
resonator types, to ensure oscillation and accurate fre- Note: C1 and C2 values are for guidance only.
quency generation, it may be necessary to add two Resonator Recommended Capacitor Values
small value external capacitors, C1 and C2. The exact
External RC Oscillator
C 1 In te r n a l
O S C 1 O s c illa to r Using the external system RC oscillator requires that a
C a C ir c u it
resistor, with a value between 24kW and 1MW, is con-
R p R f
nected between OSC1 and ground, and a capacitor is
connected to VDD. The generated system clock divided
C b by 4 will be provided on OSC2 as an output which can
T o in te r n a l
O S C 2 c ir c u its
C 2 be used for external synchronization purposes. Note
that as the OSC2 output is an NMOS open-drain type, a
N o te : 1 . R p is n o r m a lly n o t r e q u ir e d . pull high resistor should be connected if it to be used to
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
c a p a c ita n c e o f a r o u n d 7 p F . monitor the internal frequency. Although this is a cost ef-
fective oscillator configuration, the oscillation frequency
Crystal/Resonator Oscillator can vary with VDD, temperature and process variations
and is therefore not suitable for applications where tim-
values of C1 and C2 should be selected in consultation
ing is critical or where accurate oscillator frequencies
with the crystal or resonator manufacturer¢s specifica-
are required.For the value of the external resistor ROSC
tion. The external parallel feedback resistor, Rp, is nor-
refer to the Holtek website for typical RC Oscillator vs.
mally not required but in some cases may be needed to
Temperature and VDD characteristics graphics. Note
assist with oscillation start up.
that it is the only microcontroller internal circuitry to-
Internal Ca, Cb, Rf Typical Values @ 5V, 25°C gether with the external resistor, that determine the fre-
quency of the oscillator. The external capacitor shown
Ca Cb Rf
on the diagram does not influence the frequency of os-
11~13pF 13~15pF 470kW cillation.
V D D
Oscillator Internal Component Values
4 7 0 p F
O S C 1
R O S C
fS Y S /4 N M O S O p e n D r a in O S C 2
RC Oscillator
takes place. If an interrupt request flag is set to ²1² be- only resets the last stage of the divider chain, for this
fore entering the Power Down Mode, the wake-up func- reason the actual division ratio and corresponding
tion of the related interrupt will be disabled. Watchdog Timer time-out can vary by a factor of two.
The exact division ratio depends upon the residual value
No matter what the source of the wake-up event is, once
in the Watchdog Timer counter before the clear instruc-
a wake-up situation occurs, a time period equal to 1024
tion is executed. It is important to realise that as there
system clock periods will be required before normal sys-
are no independent internal registers or configuration
tem operation resumes. However, if the wake-up has
options associated with the length of the Watchdog
originated due to an interrupt, the actual interrupt sub-
Timer time-out, it is completely dependent upon the fre-
routine execution will be delayed by an additional one or
quency of fSYS/4 or the internal WDT oscillator.
more cycles. If the wake-up results in the execution of
the next instruction following the ²HALT² instruction, this If the fSYS/4 clock is used as the WDT clock source, it
will be executed immediately after the 1024 system should be noted that when the system enters the Power
clock period delay has ended. Down Mode, then the instruction clock is stopped and
the WDT will lose its protecting purposes. For systems
that operate in noisy environments, using the internal
Watchdog Timer
WDT oscillator is strongly recommended.
The Watchdog Timer is provided to prevent program mal-
Under normal program operation, a WDT time-out will
functions or sequences from jumping to unknown loca-
initialise a device reset and set the status bit TO. How-
tions, due to certain uncontrollable external events such
ever, if the system is in the Power Down Mode, when a
as electrical noise. It operates by providing a device reset
WDT time-out occurs, the TO bit in the status register
when the WDT counter overflows. The WDT clock is sup-
will be set and only the Program Counter and Stack
plied by one of two sources selected by configuration op-
Pointer will be reset. Three methods can be adopted to
tion: its own self contained dedicated internal WDT
clear the contents of the WDT. The first is an external
oscillator or fSYS/4. Note that if the WDT configuration op-
hardware reset, which means a low level on the RES
tion has been disabled, then any instruction relating to its
pin, the second is using the watchdog software instruc-
operation will result in no operation.
tions and the third is via a ²HALT² instruction.
I n t h e C o s t - E ff e c t i v e A / D Ty p e s e r i e s o f
There are two methods of using software instructions to
microcontrollers, all Watchdog Timer options, such as
clear the Watchdog Timer, one of which must be chosen
enable/disable, WDT clock source and clear instruction
by configuration option. The first option is to use the sin-
type all selected through configuration options. There
are no internal registers associated with the WDT in the gle ²CLR WDT² instruction while the second is to use the
Cost-Effective A/D Type MCU series. One of the WDT two commands ²CLR WDT1² and ²CLR WDT2². For the
clock sources is an internal oscillator which has an ap- first option, a simple execution of ²CLR WDT² will clear
proximate period of 65ms at a supply voltage of 5V. How- the WDT while for the second option, both ²CLR WDT1²
ever, it should be noted that this specified internal clock and ²CLR WDT2² must both be executed to successfully
period can vary with VDD, temperature and process clear the WDT. Note that for this second option, if ²CLR
variations. The other WDT clock source option is the WDT1² is used to clear the WDT, successive executions
fSYS/4 clock. Whether the WDT clock source is its own of this instruction will have no effect, only the execution of
internal WDT oscillator, or from fSYS/4, it is further di- a ²CLR WDT2² instruction will clear the WDT. Similarly
vided by 16 via an internal 15-bit counter and a clearable after the ²CLR WDT2² instruction has been executed,
single bit counter to give longer Watchdog time-outs. As only a successive ²CLR WDT1² instruction can clear the
this ratio is fixed it gives an overall Watchdog Timer Watchdog Timer.
time-out value of 215/fS to 216/fS. As the clear instruction
C L R W D T 1 F la g
C le a r W D T T y p e
C o n fig u r a tio n O p tio n
C L R W D T 2 F la g
1 o r 2 In s tr u c tio n s
C L R
fS Y S /4 W D T C lo c k S o u r c e
fS W D T T im e - o u t
C o n fig u r a tio n 1 5 - b it C o u n te r ¸ 2
2 1 5 / f
S ~ 2 1 6 /fS
W D T O s c illa to r O p tio n
W D T C lo c k S o u r c e
Watchdog Timer
Configuration Options
Configuration options refer to certain options within the MCU that are programmed into the device during the program-
ming 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 as the application software has no control over the configuration options. All options must
be defined for proper system function, the details of which are shown in the table.
No. Options
1 Watchdog Timer clock source: WDT oscillator or fSYS/4
2 Watchdog Timer function: enable or disable
3 CLRWDT instructions: 1 or 2 instructions
4 System oscillator: Crystal or RC
PA, PB and PD: pull-high enable or disable
5
PC: pull-high enable or disable - HT46R48A and HT46R49 only
PWM: enable or disable - Except HT46R49
6
PWM0, PWM1: enable or disable - HT46R49 only
7 PA0~PA7: wake-up enable or disable - bit option
8 PFD: normal I/O or PFD output
9 LVR function: enable or disable
Application Circuits
V D D
V D D
P A 0 ~ P A 2
R e s e t
1 0 0 k W P A 3 /P F D
C ir c u it
0 .1 m F P A 4 /T M R
R E S
P A 5 /IN T
0 .1 m F
P A 6 ~ P A 7
P B 0 /A N 0 ~ P B 3 /A N 3
V S S P B 4 ~ P B 7
P C 0 ~ P C 1
P C 2 ~ P C 4
O S C O S C 1
P D 0 /P W M
C ir c u it O S C 2
S e e O s c illa to r
S e c tio n
Instruction Set
arithmetic to be carried out. Care must be taken to
Introduction ensure correct handling of carry and borrow data when
Central to the successful operation of any results exceed 255 for addition and less than 0 for sub-
microcontroller is its instruction set, which is a set of pro- traction. The increment and decrement instructions
gram instruction codes that directs the microcontroller to INC, INCA, DEC and DECA provide a simple means of
perform certain operations. In the case of Holtek increasing or decreasing by a value of one of the values
microcontrollers, a comprehensive and flexible set of in the destination specified.
over 60 instructions is provided to enable programmers
Logical and Rotate Operations
to implement their application with the minimum of pro-
gramming overheads. The standard logical operations such as AND, OR, XOR
and CPL all have their own instruction within the Holtek
For easier understanding of the various instruction
microcontroller instruction set. As with the case of most
codes, they have been subdivided into several func-
instructions involving data manipulation, data must pass
tional groupings.
through the Accumulator which may involve additional
Instruction Timing programming steps. In all logical data operations, the
zero flag may be set if the result of the operation is zero.
Most instructions are implemented within one instruc- Another form of logical data manipulation comes from
tion cycle. The exceptions to this are branch, call, or ta- the rotate instructions such as RR, RL, RRC and RLC
ble read instructions where two instruction cycles are which provide a simple means of rotating one bit right or
required. One instruction cycle is equal to 4 system left. Different rotate instructions exist depending on pro-
clock cycles, therefore in the case of an 8MHz system gram requirements. Rotate instructions are useful for
oscillator, most instructions would be implemented serial port programming applications where data can be
within 0.5ms and branch or call instructions would be im- rotated from an internal register into the Carry bit from
plemented within 1ms. Although instructions which re- where it can be examined and the necessary serial bit
quire one more cycle to implement are generally limited set high or low. Another application where rotate data
to the JMP, CALL, RET, RETI and table read instruc- operations are used is to implement multiplication and
tions, it is important to realize that any other instructions division calculations.
which involve manipulation of the Program Counter Low
register or PCL will also take one more cycle to imple- Branches and Control Transfer
ment. As instructions which change the contents of the
Program branching takes the form of either jumps to
PCL will imply a direct jump to that new address, one
specified locations using the JMP instruction or to a sub-
more cycle will be required. Examples of such instruc-
routine using the CALL instruction. They differ in the
tions would be ²CLR PCL² or ²MOV PCL, A². For the sense that in the case of a subroutine call, the program
case of skip instructions, it must be noted that if the re- must return to the instruction immediately when the sub-
sult of the comparison involves a skip operation then routine has been carried out. This is done by placing a
this will also take one more cycle, if no skip is involved return instruction RET in the subroutine which will cause
then only one cycle is required. the program to jump back to the address right after the
CALL instruction. In the case of a JMP instruction, the
Moving and Transferring Data
program simply jumps to the desired location. There is
The transfer of data within the microcontroller program no requirement to jump back to the original jumping off
is one of the most frequently used operations. Making point as in the case of the CALL instruction. One special
use of three kinds of MOV instructions, data can be and extremely useful set of branch instructions are the
transferred from registers to the Accumulator and conditional branches. Here a decision is first made re-
vice-versa as well as being able to move specific imme- garding the condition of a certain data memory or indi-
diate data directly into the Accumulator. One of the most vidual bits. Depending upon the conditions, the program
important data transfer applications is to receive data will continue with the next instruction or skip over it and
from the input ports and transfer data to the output ports. jump to the following instruction. These instructions are
the key to decision making and branching within the pro-
Arithmetic Operations gram perhaps determined by the condition of certain in-
The ability to perform certain arithmetic operations and put switches or by the condition of internal data bits.
data manipulation is a necessary feature of most
microcontroller applications. Within the Holtek
microcontroller instruction set are a range of add and
subtract instruction mnemonics to enable the necessary
Note: 1. For skip instructions, if the result of the comparison involves a skip then two cycles are required,
if no skip takes place only one cycle is required.
2. Any instruction which changes the contents of the PCL will also require 2 cycles for execution.
3. For the ²CLR WDT1² and ²CLR WDT2² instructions the TO and PDF flags may be affected by
the execution status. The TO and PDF flags are cleared after both ²CLR WDT1² and
²CLR WDT2² instructions are consecutively executed. Otherwise the TO and PDF flags
remain unchanged.
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 NSOP (150mil) Outline Dimensions
1 6 9
A B
1 8
C '
G
D H
E F a
· MS-012
Dimensions in mil
Symbol
Min. Nom. Max.
A 228 ¾ 244
B 150 ¾ 157
C 12 ¾ 20
C¢ 386 ¾ 394
D ¾ ¾ 69
E ¾ 50 ¾
F 4 ¾ 10
G 16 ¾ 50
H 7 ¾ 10
a 0° ¾ 8°
A A
1 8 1 0 1 8 1 0
B B
1 9 1 9
H H
C C
D D
E G I E G I
F F
Fig1. Full Lead Packages Fig2. 1/2 Lead Packages
Dimensions in mil
Symbol
Min. Nom. Max.
A 880 ¾ 920
B 240 ¾ 280
C 115 ¾ 195
D 115 ¾ 150
E 14 ¾ 22
F 45 ¾ 70
G ¾ 100 ¾
H 300 ¾ 325
I ¾ ¾ 430
Dimensions in mil
Symbol
Min. Nom. Max.
A 845 ¾ 880
B 240 ¾ 280
C 115 ¾ 195
D 115 ¾ 150
E 14 ¾ 22
F 45 ¾ 70
G ¾ 100 ¾
H 300 ¾ 325
I ¾ ¾ 430
Dimensions in mil
Symbol
Min. Nom. Max.
A 845 ¾ 885
B 275 ¾ 295
C 120 ¾ 150
D 110 ¾ 150
E 14 ¾ 22
F 45 ¾ 60
G ¾ 100 ¾
H 300 ¾ 325
I ¾ ¾ 430
1 8 1 0
A B
1 9
C '
G
D H
E F a
· MS-013
Dimensions in mil
Symbol
Min. Nom. Max.
A 393 ¾ 419
B 256 ¾ 300
C 12 ¾ 20
C¢ 447 ¾ 463
D ¾ ¾ 104
E ¾ 50 ¾
F 4 ¾ 12
G 16 ¾ 50
H 8 ¾ 13
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 mil
Symbol
Min. Nom. Max.
A 980 ¾ 1060
B 240 ¾ 280
C 115 ¾ 195
D 115 ¾ 150
E 14 ¾ 22
F 45 ¾ 70
G ¾ 100 ¾
H 300 ¾ 325
I ¾ ¾ 430
Dimensions in mil
Symbol
Min. Nom. Max.
A 945 ¾ 985
B 275 ¾ 295
C 120 ¾ 150
D 110 ¾ 150
E 14 ¾ 22
F 45 ¾ 60
G ¾ 100 ¾
H 300 ¾ 325
I ¾ ¾ 430
2 0 1 1
A B
1 1 0
C '
G
D H
E F a
· MS-013
Dimensions in mil
Symbol
Min. Nom. Max.
A 393 ¾ 419
B 256 ¾ 300
C 12 ¾ 20
C¢ 496 ¾ 512
D ¾ ¾ 104
E ¾ 50 ¾
F 4 ¾ 12
G 16 ¾ 50
H 8 ¾ 13
a 0° ¾ 8°
2 0 1 1
A B
1 1 0
C '
G
D H
E F a
Dimensions in mil
Symbol
Min. Nom. Max.
A 228 ¾ 244
B 150 ¾ 158
C 8 ¾ 12
C¢ 335 ¾ 347
D 49 ¾ 65
E ¾ 25 ¾
F 4 ¾ 10
G 15 ¾ 50
H 7 ¾ 10
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 mil
Symbol
Min. Nom. Max.
A 1230 ¾ 1280
B 240 ¾ 280
C 115 ¾ 195
D 115 ¾ 150
E 14 ¾ 22
F 45 ¾ 70
G ¾ 100 ¾
H 300 ¾ 325
I ¾ ¾ 430
Dimensions in mil
Symbol
Min. Nom. Max.
A 1160 ¾ 1195
B 240 ¾ 280
C 115 ¾ 195
D 115 ¾ 150
E 14 ¾ 22
F 45 ¾ 70
G ¾ 100 ¾
H 300 ¾ 325
I ¾ ¾ 430
Dimensions in mil
Symbol
Min. Nom. Max.
A 1145 ¾ 1185
B 275 ¾ 295
C 120 ¾ 150
D 110 ¾ 150
E 14 ¾ 22
F 45 ¾ 60
G ¾ 100 ¾
H 300 ¾ 325
I ¾ ¾ 430
2 4 1 3
A B
1 1 2
C '
G
D H
E F a
· MS-013
Dimensions in mil
Symbol
Min. Nom. Max.
A 393 ¾ 419
B 256 ¾ 300
C 12 ¾ 20
C¢ 598 ¾ 613
D ¾ ¾ 104
E ¾ 50 ¾
F 4 ¾ 12
G 16 ¾ 50
H 8 ¾ 13
a 0° ¾ 8°
2 4 1 3
A B
1 1 2
C '
G
D H
E F a
Dimensions in mil
Symbol
Min. Nom. Max.
A 228 ¾ 244
B 150 ¾ 157
C 8 ¾ 12
C¢ 335 ¾ 346
D 54 ¾ 60
E ¾ 25 ¾
F 4 ¾ 10
G 22 ¾ 28
H 7 ¾ 10
a 0° ¾ 8°
2 8 1 5
B
1 1 4
D
I
E F G
Dimensions in mil
Symbol
Min. Nom. Max.
A 1375 ¾ 1395
B 278 ¾ 298
C 125 ¾ 135
D 125 ¾ 145
E 16 ¾ 20
F 50 ¾ 70
G ¾ 100 ¾
H 295 ¾ 315
I ¾ ¾ 375
2 8 1 5
A B
1 1 4
C '
G
D H
E F a
· MS-013
Dimensions in mil
Symbol
Min. Nom. Max.
A 393 ¾ 419
B 256 ¾ 300
C 12 ¾ 20
C¢ 697 ¾ 713
D ¾ ¾ 104
E ¾ 50 ¾
F 4 ¾ 12
G 16 ¾ 50
H 8 ¾ 13
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 18W
SOP 20W
SOP 24W