DS89C420-QNG [MAXIM]

Ultra-High-Speed Microcontroller; 超高速微控制器
DS89C420-QNG
型号: DS89C420-QNG
厂家: MAXIM INTEGRATED PRODUCTS    MAXIM INTEGRATED PRODUCTS
描述:

Ultra-High-Speed Microcontroller
超高速微控制器

微控制器
文件: 总58页 (文件大小:670K)
中文:  中文翻译
下载:  下载PDF数据表文档文件
-
DS89C420  
Ultra-High-Speed Microcontroller  
www.maxim-ic.com  
FEATURES  
PIN ASSIGNMENT (Top View)  
§ 80C52 compatible  
P1.0/T2  
P1.1/T2EX  
P1.2/RXD1  
P1.3/TXD1  
P1.4/INT2  
P1.5/INT3  
P1.6/INT4  
P1.7/INT5  
RST  
1
2
3
4
5
6
7
8
9
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
40  
39  
38  
37  
36  
35  
34  
33  
32  
31  
30  
29  
28  
27  
26  
25  
24  
23  
22  
21  
VCC  
P0.0  
P0.1  
P0.2  
P0.3  
P0.4  
P0.5  
P0.6  
P0.7  
EA/VPP  
ALE/PROG  
PSEN  
P2.7  
- 8051 pin and instruction-set compatible  
- Four bidirectional I/O ports  
- Three 16-bit timer counters  
- 256 bytes scratchpad RAM  
§ On-chip memory  
P3.0/RXD0  
P3.1/TXD0  
P3.2/INT0  
P3.3/INT1  
P3.4/T0  
DS89C420  
- 16kB flash memory  
- In-system programmable through serial  
port  
P2.6  
P2.5  
P3.5/T1  
- 1kB SRAM for MOVX  
P3.6/WR  
P3.7/RD  
P2.4  
P2.3  
§ ROMSIZE feature  
XTAL2  
XTAL1  
P2.2  
P2.1  
- Selects internal program memory size from  
0 to 16k  
VSS  
P2.0  
40-Pin DIP  
- Allows access to entire external memory  
map  
6
1
40  
- Dynamically adjustable by software  
7
39  
§ High-speed architecture  
- 1 clock-per-machine cycle  
- DC to 33MHz operation  
DS89C420  
- Single-cycle instruction in 30ns  
- Optional variable length MOVX to access  
fast/slow peripherals  
- Dual data pointers with auto  
increment/decrement and toggle select  
- Supports four paged modes  
17  
29  
18  
33  
28  
23  
44-Pin PLCC  
§ Power Management Mode  
- Programmable clock divider  
- Automatic hardware and software exit  
§ Two full-duplex serial ports  
§ Programmable watchdog timer  
§ 13 interrupt sources (six external)  
§ Five levels of interrupt priority  
§ Power-fail reset  
34  
44  
22  
12  
DS89C420  
§ Early warning power-fail interrupt  
1
11  
44-Pin TQFP  
Note: Some revisions of this device may incorporate deviations from published specifications known as errata. Multiple  
revisions of any device may be simultaneously available through various sales channels. For information about device errata,  
click here: http://www.maxim-ic.com/errata.  
1 of 58  
051302  
DS89C420  
DESCRIPTION  
The DS89C420 offers the highest performance available in 8051-compatible microcontrollers. It features  
a redesigned processor core that executes every 8051 instruction (depending on the instruction type) up to  
12 times faster than the original for the same crystal speed. Typical applications see a speed improvement  
of 10 times using the same code and crystal. The DS89C420 offers a maximum crystal speed of 33MHz,  
achieving execution rates up to 33 million instructions per second (MIPS).  
The DS89C420 is pin compatible with all three packages of the standard 8051 and includes standard  
resources such as three timer/counters, four 8-bit I/O ports, and a serial port. It features 16kB of in-system  
programmable flash memory, which can be programmed in-system from an I/O port using a built-in  
program memory loader. It can also be loaded externally using standard commercially available  
programmers.  
Besides greater speed, the DS89C420 includes 1kB of data RAM, a second full-hardware serial port,  
seven additional interrupts, two more levels of interrupt priority, programmable watchdog timer, brown-  
out monitor, and power-fail reset. The device also provides dual data pointers (DPTRs) to speed up  
block-data memory moves. This feature is further enhanced with a new selectable automatic  
increment/decrement and toggle-select operation. The speed of MOVX data memory access can be  
adjusted by adding stretch values up to 10 machine cycle times for flexibility in selecting external  
memory and peripherals.  
A power management mode (PMM) significantly consumes less power by slowing the CPU execution  
rate from 1 clock period per cycle to 1024 clock periods per cycle. A selectable switchback feature can  
automatically cancel this mode to enable a normal speed response to interrupts.  
The EMI reduction feature disables the ALE signal when the processor is not accessing external memory.  
ORDERING INFORMATION  
MAX. CLOCK  
SPEED (MHz)  
PART  
PIN-PACKAGE  
TEMP. RANGE  
DS89C420-MCL  
DS89C420-QCL  
DS89C420-ECL  
DS89C420-MNL  
DS89C420-QNL  
DS89C420-ENL  
40-Plastic DIP  
44-PLCC  
44-TQFP  
40-Plastic DIP  
44-PLCC  
33  
33  
33  
33  
33  
33  
0°C to +70°C  
0°C to +70°C  
0°C to +70°C  
-40°C to +85°C  
-40°C to +85°C  
-40°C to +85°C  
44-TQFP  
2 of 58  
DS89C420  
Figure 1. BLOCK DIAGRAM  
Control &  
Sequencer  
Interrupt  
CPU  
PC  
AR Inc  
AR  
SFRs  
Internal  
Registers  
DPTR  
DPTR1  
SP  
Decoder  
IR  
Address Bus  
Internal Control Bus  
Timer /  
Counters  
1Kx 8  
RAM  
16K x 8  
Flash  
Serial I/O  
I/O Ports  
Watchdog Timer  
&
Power Manager  
Clock &  
Reset  
Memory  
Control  
ROM  
Loader  
P0 P1 P2 P3  
3 of 58  
DS89C420  
Table 1. PIN DESCRIPTION  
PIN  
PLCC  
NAME  
FUNCTION  
DIP  
TQFP  
40  
12, 44  
6, 38  
VCC  
VCC - +5V  
1, 22, 23,  
34  
16, 17,  
28, 39  
20  
9
GND  
RST  
GND. Logic Ground  
10  
4
External Reset. The RST input pin is bidirectional and contains  
a Schmitt trigger to recognize external active-high reset inputs.  
The pin also employs an internal pulldown resistor to allow for a  
combination of wire OR’d external reset sources. An RC is not  
required for power-up, since the device provides this function  
internally.  
18, 19  
20, 21  
14, 15  
XTAL1  
XTAL2  
XTAL1, XTAL2. The crystal oscillator pins XTAL1 and  
XTAL2 provide support for fundamental mode parallel resonant,  
AT cut crystals. XTAL1 also acts as an input if there is an  
external clock source in place of a crystal. XTAL2 serves as the  
output of the crystal amplifier.  
29  
32  
26  
Program Store Enable. This signal is commonly connected to  
PSEN  
optional external program memory as a chip enable. PSEN  
provides an active-low pulse and is driven high when external  
program memory is not being accessed.  
In 1-cycle page mode 1, PSEN remains low for consecutive  
page hits.  
30  
33  
27  
Address Latch Enable. Functions as a clock to latch the  
external address LSB from the multiplexed address/data bus on  
Port 0. This signal is commonly connected to the latch enable of  
an external 373 family transparent latch. In default mode, ALE  
has a pulse width of 1.5 XTAL1 cycles and a period of four  
XTAL1 cycles. In page mode, the ALE pulse width is altered  
according to the page mode selection. In traditional 8051 mode,  
ALE is high when using the EMI reduction mode and during a  
reset condition. ALE can be enabled by writing ALEON = 1  
(PMR.2). Note that ALE operates independently of ALEON  
during external memory accesses. As an alternate mode, this pin  
ALE/PROG  
( PROG) is used to execute the parallel program function.  
4 of 58  
DS89C420  
PIN  
PLCC  
2–9  
NAME  
FUNCTION  
DIP  
TQFP  
1–8  
40–44  
P1.0–P1.7  
Port 1, I/O. Port 1 functions as both an 8-bit, bidirectional I/O  
port and an alternate functional interface for timer 2 I/O, new  
external interrupts, and new serial port 1. The reset condition of  
port 1 is with all bits at a logic 1. In this state, a weak pullup  
holds the port high. This condition also serves as an input state,  
since any external circuit that writes to the port overcomes the  
weak pullup. When software writes a 0 to any port pin, the  
DS89C420 activates a strong pulldown that remains on until  
either a 1 is written or a reset occurs. Writing a 1 after the port  
has been at 0 causes a strong transition driver to turn on,  
followed by a weaker sustaining pullup. Once the momentary  
strong driver turns off, the port again becomes the output high  
(and input) state. The alternate functions of Port 1 are outlined  
below.  
1
2
3
PORT ALTERNATE FUNCTION  
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
9
40  
41  
42  
43  
44  
1
P1.0  
P1.1  
P1.2  
P1.3  
P1.4  
P1.5  
P1.6  
T2  
External I/O for Timer/Counter2  
T2EX Timer 2 Capture/Reload Trigger  
RXD1 Serial Port 1 Receive  
TXD1 Serial Port 1 Transmit  
INT2 External Interrupt 2 (Positive Edge Detect)  
INT3 External Interrupt 3 (Negative Edge Detect)  
INT4 External Interrupt 4 (Positive Edge Detect)  
2
P1.7  
INT5 External Interrupt 5 (Negative Edge Detect)  
3
21  
22  
23  
24  
25  
27  
28  
24  
25  
26  
27  
28  
29  
30  
31  
18  
19  
20  
21  
22  
23  
24  
25  
P2.0 (A8)  
P2.1 (A9)  
P2.2 (A10)  
P2.3 (A11)  
P2.4 (A12)  
P2.5 (A13)  
P2.6 (A14)  
P2.7 (A15)  
Port 2 (A8–15), I/O. Port 2 is an 8-bit, bidirectional I/O port.  
The reset condition of port 2 is logic high. In this state, a weak  
pullup holds the port high. This condition also serves as an  
input mode, since any external circuit that writes to the port  
overcomes the weak pullup. When software writes a 0 to any  
port pin, the DS89C420 activates a strong pulldown that  
remains on until either a 1 is written or a reset occurs. Writing a  
1 after the port has been at 0 causes a strong transition driver to  
turn on, followed by a weaker sustaining pullup. Once the  
momentary strong driver turns off, the port again becomes both  
the output high and input state. As an alternate function, port 2  
can function as the MSB of the external address bus when  
reading external program memory and read/write external  
RAM or peripherals. In page mode 1, port 2 provides both the  
MSB and LSB of the external address bus; in page mode 2, it  
provides the MSB and data.  
5 of 58  
DS89C420  
PIN  
PLCC  
NAME  
FUNCTION  
DIP  
TQFP  
5, 7–13 P3.0–P3.7  
10–17  
11, 13–  
19  
Port 3, I/O. Port 3 functions as both an 8-bit, bidirectional I/O  
port and an alternate functional interface for external interrupts,  
RD  
serial port 0, timer 0 and 1 inputs, and  
and WR strobes. The  
reset condition of port 3 is with all bits at a logic 1. In this state,  
a weak pullup holds the port high. This condition also serves as  
an input mode, since any external circuit that writes to the port  
overcomes the weak pullup. When software writes a 0 to any  
port pin, the DS89C420 activates a strong pulldown that  
remains on until either a 1 is written or a reset occurs. Writing a  
1 after the port has been at 0 causes a strong transition driver to  
turn on, followed by a weaker sustaining pullup. Once the  
momentary strong driver turns off, the port again becomes both  
the output high and input state. The alternate modes of Port 3  
are outlined below.  
PORT ALTERNATE FUNCTION  
P3.0  
P3.1  
P3.2  
P3.3  
P3.4  
P3.5  
P3.6  
RXD0 Serial Port 0 Receive  
TXD0 Serial Port 0 Transmit  
INT0 External Interrupt 0  
INT1 External Interrupt 1  
10  
11  
12  
13  
14  
15  
16  
17  
31  
11  
13  
14  
15  
16  
17  
18  
19  
35  
5
P3.0  
P3.1  
P3.2  
P3.3  
P3.4  
P3.5  
P3.6  
P3.7  
7
8
9
T0  
Timer 0 External Input  
10  
11  
12  
13  
29  
T1  
Timer 1 External Input  
WR  
RD  
External Data Memory Write Strobe  
P3.7  
External Data Memory Read Strobe  
External Access. Allows selection of internal or external  
program memory. Connect to ground to force the DS89C420 to  
use an external memory-program memory. The internal RAM  
is still accessible as determined by register settings. Connect to  
VCC to use internal flash memory.  
EA  
6 of 58  
DS89C420  
COMPATIBILITY  
The DS89C420 is a fully static CMOS 8051-compatible microcontroller similar to the DS87C520 in  
functional features, but with much higher performance. In most cases the DS89C420 can drop into an  
existing socket for the 8xc51 family to improve the operation significantly. While remaining familiar to  
8051 family users, it has many new features. The DS89C420 runs the standard 8051 family instruction set  
and is pin compatible with DIP, PLCC, and TQFP packages. In general, software written for existing  
8051-based systems works without DS89C420 modification, with the exception of critical timing  
routines, since the DS89C420 performs its instructions much faster than the original for any given crystal  
selection.  
The DS89C420 provides three 16-bit timer/counters, two full-duplex serial ports, and 256 bytes of direct  
RAM plus 1kB of extra MOVX RAM. I/O ports can operate as in standard 8051 products. Timers default  
to a 12 clock-per-cycle operation to keep their timing compatible with original 8051 family systems.  
However, timers are individually programmable to run at the new 1 clock-per-cycle if desired. The  
DS89C420 provides several new hardware features implemented by new SFRs.  
PERFORMANCE OVERVIEW  
The DS89C420 features a completely redesigned high-speed 8051-compatible core and allows operation  
at a higher clock frequency, but the updated core does not have the dummy memory cycles that are  
present in a standard 8051. A conventional 8051 generates machine cycles using the clock frequency  
divided by 12. In the DS89C420, the same machine cycle takes 1 clock. Thus, the fastest instructions  
execute 12 times faster for the same crystal frequency (and actually 24 times faster for the INC data  
pointer instruction). It should be noted that this speed improvement reduces when using external memory  
access modes that require more than 1 clock per cycle.  
Improvement of individual programs depends on the actual instructions used. Speed-sensitive  
applications make the most use of instructions that are 12 times faster. However, the sheer number of 12-  
to-1 improved op codes makes dramatic speed improvements likely for any code. These architecture  
improvements produce instruction cycle times as low as 30ns (33MIPs). The dual data pointer feature  
also allows the user to eliminate wasted instructions when moving blocks of memory. The new page  
modes allow for increased efficiency in external memory accesses.  
INSTRUCTION SET SUMMARY  
All instructions perform the same functions as their 8051 counterparts. Their effect on bits, flags, and  
other status functions is also identical. However, the timing of each instruction is different in both  
absolute and relative number of clocks.  
For absolute timing of real-time events, the timing of software loops can be calculated using information  
in the “Instruction Set” table of the DS89C420 User’s Guide. However, counter/timers default to run at  
the older 12 clocks per increment. In this way, timer-based events occur at the standard intervals with  
software executing at higher speed. Timers optionally can run at lower numbers of clocks per increment  
to take advantage of faster processor operation.  
The relative time of some instructions might be different in the new architecture than it was previously.  
For example, in the original architecture, the “MOVX A, @DPTR” instruction and the “MOV direct,  
direct” instruction used two machine cycles or 24 oscillator cycles. Therefore, they required the same  
amount of time. In the DS89C420, the MOVX instruction takes as little as two machine cycles or two  
oscillator cycles but the “MOV direct, direct” uses three machine cycles or three oscillator cycles. While  
7 of 58  
DS89C420  
both are faster than their original counterparts, they now have different execution times. This is because  
the DS89C420 usually uses one machine cycle for each instruction byte and requires one cycle for  
execution. The user concerned with precise program timing should examine the timing of each instruction  
to become familiar with the changes.  
SPECIAL FUNCTION REGISTERS (SFRs)  
All peripherals and operations that are not explicit instructions in the DS89C420 are controlled through  
SFRs. The most common features basic to the architecture are mapped to the SFRs. These include the  
CPU registers (ACC, B, and PSW), data pointers (DPTRs), stack pointer, I/O ports, timer/counters, and  
serial ports. In many cases, an SFR controls an individual function or reports the function’s status. The  
SFRs reside in register locations 80hFFh and are only accessible by direct addressing. SFRs whose  
addresses end in 0h or 8h are bit-addressable.  
All standard SFR locations from the 8051 are duplicated in the DS89C420 and several SFRs have been  
added for the unique features of the DS89C420. Most of these features are controlled by bits in SFRs  
located in unused locations in the 8051 SFR map. This allows for increased functionality while  
maintaining complete instruction set compatibility. Table 2 summarizes the SFRs and their locations.  
Table 3 specifies the default reset condition for all SFR bits.  
DATA POINTERS  
The data pointers (DPTR and DPTR1) are used to assign a memory address for the MOVX instructions.  
This address can point to a MOVX RAM location (on-chip or off-chip), or a memory-mapped peripheral.  
Two pointers are useful when moving data from one memory area to another, or when using a memory-  
mapped peripheral for both source and destination addresses. The user selects the active pointer through a  
dedicated SFR bit (Sel = DPS.0), or activates an automatic toggling feature for altering the pointer  
selection (TSL = DPS.5). An additional feature, if selected, provides automatic incrementing or  
decrementing of the current DPTR.  
STACK POINTER  
The stack pointer denotes the register location at the top of the stack, which is the last used value. The  
user can place the stack anywhere in the scratchpad RAM by setting the stack pointer to the desired  
location, although the lower bytes are normally used for working registers.  
I/O PORTS  
The DS89C420 offers four 8-bit I/O ports. Each I/O port is represented by an SFR location, and can be  
written or read. The I/O port has a latch that contains the value written by software.  
COUNTER/TIMERS  
Three 16-bit timer/counters are available in the DS89C420. Each timer is contained in two SFR locations  
that can be read or written by software. The timers are controlled by other SFRs described in the “SFR  
Bit Description” section of the DS89C420 User’s Guide.  
SERIAL PORTS  
The DS89C420 provides two UARTs that are controlled and accessed by SFRs. Each UART has an  
address that is used to read and write the UART. The same address is used for both read and write  
operations, and the read and write operations are distinguished by the instruction. Each UART is  
controlled by its own SFR control register.  
8 of 58  
DS89C420  
Table 2. SPECIAL FUNCTION REGISTERS  
REGISTER ADDR  
BIT7  
BIT6  
BIT5  
BIT4  
BIT3  
BIT2  
BIT1  
BIT0  
P0  
80h  
81h  
82h  
83h  
84h  
85h  
86h  
P0.7  
P0.6  
P0.5  
P0.4  
P0.3  
P0.2  
P0.1  
P0.0  
SP  
DPL  
DPH  
DPL1  
DPH1  
DPS  
PCON  
ID1  
SMOD_0  
TF1  
ID0  
SMOD0  
TR1  
TSL  
OFDF  
TF0  
AID  
OFDE  
TR0  
GF1  
IE1  
STOP  
IE0  
SEL  
IDLE  
IT0  
87h  
GF0  
IT1  
TCON  
TMOD  
TL0  
88h  
89h  
8Ah  
8Bh  
8Ch  
8Dh  
8Eh  
90h  
91h  
96h  
GATE  
C/ T  
M1  
M0  
GATE  
C/ T  
M1  
M0  
TL1  
TH0  
TH1  
CKCON  
P1  
WD1  
WD0  
T2M  
T1M  
T0M  
MD2  
MD1  
MD0  
P1.0/T2  
BGS  
P1.7/ INT5 P1.6/INT4 P1.5/ INT3  
P1.4/INT2 P1.3/TXD1 P1.2/RXD1 P1.1/T2EX  
EXIF  
CKMOD  
SCON0  
IE5  
IE4  
IE3  
IE2  
CKRY  
T0MH  
RGMD  
RGSL  
T2MH  
T1MH  
98h  
SM0/FE_0  
SM1_0  
SM2_0  
REN_0  
TB8_0  
RB8_0  
TI_0  
RI_0  
SBUF0  
ACON  
P2  
99h  
9Dh  
A0h  
A8h  
A9h  
AAh  
B0h  
B1h  
B8h  
B9h  
BAh  
C0h  
C1h  
C2h  
C4h  
C5h  
C7h  
C8h  
C9h  
CAh  
CBh  
PAGEE  
P2.7  
PAGES1  
P2.6  
PAGES0  
P2.5  
P2.4  
P2.3  
P2.2  
P2.1  
P2.0  
IE  
EA  
ES1  
ET2  
ES0  
ET1  
EX1  
ET0  
EX0  
SADDR0  
SADDR1  
P3  
P3.7/ RD  
P3.6/ WR  
MPS1  
P3.5/T1  
MPT2  
P3.4/T0  
MPS0  
P3.3/ INT1  
MPT1  
P3.2/ INT0  
MPX1  
P3.1/TXD0 P3.0/RXD0  
IP1  
MPT0  
MPX0  
IP0  
LPS1  
LPT2  
LPS0  
LPT1  
LPX1  
LPT0  
LPX0  
SADEN0  
SADEN1  
SCON1  
SBUF1  
ROMSIZE  
PMR  
SM0/FE_1  
SM1_1  
SM2_1  
REN_1  
TB8_1  
RB8_1  
TI_1  
RI_1  
PRAME  
4X/ 2X  
RMS2  
RMS1  
DME1  
RMS0  
DME0  
CD1  
PIS2  
CD0  
SWB  
CTM  
ALEON  
STATUS  
TA  
PIS1  
PIS0  
SPTA1  
SPRA1  
SPTA0  
SPRA0  
T2CON  
T2MOD  
RCAP2L  
RCAP2H  
TF2  
EXF2  
RCLK  
TCLK  
EXEN2  
TR2  
C/ T2  
CP/ RL2  
T2OE  
DCEN  
9 of 58  
DS89C420  
REGISTER ADDR  
BIT7  
BIT6  
BIT5  
BIT4  
BIT3  
BIT2  
BIT1  
BIT0  
TL2  
CCh  
CDh  
D0h  
D5h  
D6h  
D8h  
E0h  
E8h  
F0h  
F1h  
F8h  
TH2  
PSW  
CY  
AC  
F0  
RS1  
RS0  
OV  
F1  
P
FCNTL  
FDATA  
WDCON  
ACC  
EIE  
FBUSY  
FERR  
FC3  
FC2  
FC1  
FC0  
SMOD_1  
POR  
EPFI  
PFI  
WDIF  
WTRF  
EWT  
RWT  
EWDI  
EX5  
EX4  
EX3  
EX2  
B
EIP1  
MPWDI  
LPWDI  
MPX5  
LPX5  
MPX4  
LPX4  
MPX3  
LPX3  
MPX2  
LPX2  
EIP0  
10 of 58  
DS89C420  
Table 3. SFR RESET VALUE  
REGISTER  
P0  
ADDR  
BIT7  
BIT6  
BIT5  
BIT4  
BIT3  
BIT2  
BIT1  
BIT0  
80h  
81h  
82h  
83h  
84h  
85h  
86h  
87h  
88h  
89h  
8Ah  
8Bh  
8Ch  
8Dh  
8Eh  
90h  
91h  
96h  
98h  
99h  
9Dh  
A0h  
A8h  
A9h  
AAh  
B0h  
B1h  
B8h  
B9h  
BAh  
C0h  
C1h  
C2h  
C4h  
C5h  
C7h  
C8h  
C9h  
CAh  
CBh  
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
SP  
0
0
0
1
1
DPL  
0
0
0
0
0
DPH  
0
0
0
0
0
DPL1  
DPH1  
DPS  
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
PCON  
TCON  
TMOD  
TL0  
Special  
Special  
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
TL1  
0
0
0
TH0  
0
0
0
TH1  
0
0
0
CKCON  
P1  
0
0
0
1
1
1
EXIF  
Special  
Special  
Special  
CKMOD  
SCON0  
SBUF0  
ACON  
P2  
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
IE  
SADDR0  
SADDR1  
P3  
IP1  
IP0  
SADEN0  
SADEN1  
SCON1  
SBUF1  
ROMSIZE  
PMR  
STATUS  
TA  
T2CON  
T2MOD  
RCAP2L  
RCAP2H  
11 of 58  
DS89C420  
REGISTER  
TL2  
ADDR  
BIT7  
BIT6  
BIT5  
BIT4  
BIT3  
BIT2  
BIT1  
BIT0  
CCh  
CDh  
D0h  
D5h  
D6h  
D8h  
E0h  
E8h  
F0h  
F1h  
F8h  
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
TH2  
0
0
0
0
PSW  
0
0
0
0
FCNTL  
FDATA  
WDCON  
ACC  
EIE  
0
1
0
0
0
0
0
0
Special  
Special  
Special  
Special  
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
B
EIP1  
EIP0  
12 of 58  
DS89C420  
MEMORY ORGANIZATION  
There are three distinct memory areas in the DS89C420: scratchpad registers, program memory, and data  
memory. All registers are located on-chip but the program and data memory spaces can be either on-chip,  
off-chip, or both. There are 16kB of on-chip program memory implemented in flash memory and 1kB of  
on-chip data memory space that can be configured as program space using the PRAME bit in the  
ROMSIZE feature. The DS89C420 uses a memory-addressing scheme that separates program memory  
from data memory. The program and data segments can be overlapped since they are accessed in different  
ways. If the maximum address of on-chip program or data memory is exceeded, the DS89C420 performs  
an external memory access using the expanded memory bus. The PSEN signal goes active low to serve  
as a chip enable or output enable when performing a code fetch from external program memory. MOVX  
instructions activate the RD or WR signal for external MOVX data memory access. The lower 128  
bytes of on-chip flash memory store reset and interrupt vectors. The program memory ROMSIZE feature  
allows software to dynamically configure the maximum address of on-chip program memory. This allows  
the DS89C420 to act as a bootloader for an external flash or NV SRAM. It also enables the use of the  
overlapping external program spaces.  
256 bytes of on-chip RAM serve as a register area and program stack, which are separated from the data  
memory.  
REGISTER SPACE  
Registers are located in the 256 bytes of on-chip RAM, which can be divided into two subareas of 128  
bytes each as illustrated in Figure 2. Separate classes of instructions are used to access the registers and  
the program/data memory. The upper 128 bytes are overlapped with the 128 bytes of SFRs in the memory  
map. The upper 128 bytes of scratchpad RAM are accessed by indirect addressing, and the SFR area is  
accessed by direct addressing. The lower 128 bytes can be accessed by direct or indirect addressing.  
There are four banks of eight individual working registers in the lower 128 bytes of scratchpad RAM.  
The working registers are general-purpose RAM locations that can be addressed within the selected bank  
by any instructions that use R0–R7. The register bank selection is controlled through the program status  
register in the SFR area. The contents of the working registers can be used for indirectly addressing the  
upper 128 bytes of scratchpad RAM.  
To support the Boolean operations, there are individually addressable bits in both the RAM and SFR  
areas. In the scratchpad RAM area, registers 20h2Fh are bit-addressable by software using Boolean  
operation instructions.  
Another use of the scratchpad RAM area is for the stack. The stack pointer in the SFRs is used to select  
storage locations for program variables and for return addresses of control operations.  
13 of 58  
DS89C420  
Figure 2. MEMORY MAP  
FFFF  
FFFF  
INTERNAL  
MEMORY  
03FF  
1K x 8  
SRAM  
External  
Program  
Memory  
External  
Data  
Memory  
INTERNAL  
REGISTERS  
Data OR  
prog mem  
addr from  
400 - 7FF  
128 Bytes SFR  
0000  
3FFF  
4000  
FF  
8K x 8  
Flash  
Memory  
(Program)  
128 Bytes  
Indirect  
Addressing  
2000  
1FFF  
80  
7F  
2F  
8K x 8  
Flash  
Memory  
(Program)  
Bit Addressable  
20  
1F  
Bank 3  
03FF  
0000  
Bank 2  
Bank 1  
Bank 0  
00  
0000  
0000  
14 of 58  
DS89C420  
MEMORY CONFIGURATION  
As illustrated in Figure 2, the DS89C420 incorporates two 8kB flash memories for on-chip program  
memory and 1kB of SRAM for on-chip data memory or a particular range (400–7FF) of “alternate”  
program memory space. The DS89C420 uses an address scheme that separates program memory from  
data memory, such that the 16-bit address bus can address each memory area up to 64kB.  
PROGRAM MEMORY ACCESS  
On-chip program memory begins at address 0000h and is contiguous through 3FFFh (16kB). Exceeding  
the maximum address of on-chip program memory causes the device to access off-chip memory.  
However, the maximum on-chip decoded address is selectable by software using the ROMSIZE feature.  
Software can cause the DS89C420 to behave like a device with less on-chip memory. This is beneficial  
when overlapping external memory is used. The maximum memory size is dynamically variable. Thus, a  
portion of memory can be removed from the memory map to access off-chip memory, then be restored to  
access on-chip memory. In fact, all of the on-chip memory can be removed from the memory map  
allowing the full 64kB memory space to be addressed from off-chip memory. Program memory addresses  
that are larger than the selected maximum are automatically fetched from outside the part through ports 0  
and 2 (Figure 2).  
The ROMSIZE register is used to select the maximum on-chip decoded address for program memory.  
Bits RMS2, RMS1, RMS0 have the following effect:  
RMS0  
ADDRESS  
MAXIMUM ON-CHIP  
PROGRAM MEMORY  
RMS2  
RMS1  
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0k  
1k/03FFh  
2k/07FFh  
4k/0FFFh  
8k/1FFFh  
16k (default)/3FFFh  
Invalid–Reserved  
Invalid–Reserved  
The reset default condition is a maximum on-chip program-memory address of 16kB. When accessing  
external program memory, the first 16kB would be inaccessible. To select a smaller effective program  
memory size, software must alter bits RMS2–RMS0. Altering these bits requires a timed access  
procedure as explained later.  
Care should be taken so that changing the ROMSIZE register does not corrupt program execution. For  
example, assume that a DS89C420 is executing instructions from internal program memory near the  
12kB boundary (~3000h) and that the ROMSIZE register is currently configured for a 16kB internal  
program space. If software reconfigures the ROMSIZE register to 4kB (0000h0FFFh) in the current  
state, the device immediately jumps to external program execution because program code from 4kB to  
16kB (1000h–3FFFh) is no longer located on-chip. This could result in code misalignment and execution  
of an invalid instruction. The recommended method is to modify the ROMSIZE register from a location  
in memory that is internal (or external) both before and after the operation. In the above example, the  
instruction that modifies the ROMSIZE register should be located below the 4kB (1000h) boundary or  
above the 16kB (3FFFh) boundary so that it is unaffected by the memory modification. The same  
15 of 58  
DS89C420  
precaution should be applied if the internal program memory size is modified while executing from  
external program memory.  
For non-page mode operations, off-chip memory is accessed using the multiplexed address/data bus on  
P0 and the MSB address on P2. While serving as a memory bus, these pins are not I/O ports. This  
convention follows the standard 8051 method of expanding on-chip memory. Off-chip program memory  
access also occurs if the EA pin is a logic 0. EA overrides all bit settings. The PSEN signal goes active  
(low) to serve as a chip enable or output enable when port 0 and port 2 fetch from external program  
memory.  
The RD and WR signals are used to control the external data memory device. Data memory is accessed  
by MOVX instructions. The MOVX@Ri instruction uses the value in the designated working register to  
provide the LSB of the address, while port 2 supplies the address MSB. The MOVX@DPTR instruction  
uses one of the two data pointers to move data over the entire 64kB external data memory space.  
Software selects the data pointer to be used by writing to the SEL bit (DPS.0).  
The DS89C420 also provides a user option for high-speed external memory access by reconfiguring the  
external memory interface into page mode operation.  
Note: When using the original 8051 expanded bus structure, the throughput is reduced by 75% compared  
with that of internal operations. This is due to the CPU being stalled for three out of four clocks waiting  
for the data fetch, which takes four clocks. Page Mode 1 is the only external addressing mode where the  
CPU does not require stalls for external memory access, but page misses result in reduced external access  
performance.  
ON-CHIP PROGRAM MEMORY  
The full on-chip program memory range can be fetched by the processor automatically. The reset routines  
and all interrupt vectors are located in the lower 128 bytes of the on-chip program memory area.  
On-chip program memory is logically divided into two 8kB flash memory banks and is designed to be  
programmed with the standard 5V VCC supply by using a built-in program memory loader. It can also be  
programmed in standard flash or EPROM programmers. The DS89C420 incorporates a memory  
management unit (MMU) and other hardware to support any of the two programming methods. The  
MMU controls program and data memory access, and provides sequencing and timing controls for  
programming the on-chip program memory. There is also a separate security flash block that is used to  
support a standard three-level lock, a 64-byte encryption array, and other flash options.  
SECURITY FEATURES  
The DS89C420 incorporates a 64-byte encryption array, allowing the user to verify program codes while  
viewing the data in encrypted form. The encryption array is implemented in a security flash memory  
block that has the same electrical and timing characteristics as the on-chip program memory. Once the  
encryption array is programmed to non-FFh, the data presented in the verify mode is encrypted. Each  
byte of data is XNOR’ed with a byte in the encryption array during verification.  
A three-level lock restricts viewing of the internal program and data memory contents. By programming  
the three lock bits, the user can select a level of security as specified in Table 4. Once a security level is  
selected and programmed, the setting of the lock bits remains. Only a mass erase can erase these bits to  
allow reprogramming the security level to a less restricted protection.  
16 of 58  
DS89C420  
Table 4. FLASH MEMORY LOCK BITS  
LEVEL LB1  
LB2  
LB3  
PROTECTION  
No program lock. Encrypted verify if encryption array is  
programmed.  
1
1
1
1
Prevent MOVC in external memory from reading program  
code in internal memory. EA is sampled and latched on reset.  
Allow no further parallel or program memory loader  
programming.  
2
0
1
1
Level 2 plus no verify operation. Also prevent MOVX in  
external memory from reading internal SRAM.  
3
4
X
X
0
1
0
Level 3 plus no external execution.  
X
The DS89C420 provides user-selectable options that must be set before beginning software execution.  
The option control register uses flash bits rather than SFRs, and is individually erasable and  
programmable as a byte-wide register. Bit 3 of this register is defined as the watchdog POR default.  
Setting this bit to 1 disables the watchdog reset function on power-up, and clearing this bit to 0 enables  
the watchdog reset function automatically. Other bits of this register are undefined and are at logic 1  
when read. The value of this register can be read at address FCh in parallel programming mode or when  
executing a verify-option control-register instruction in ROM loader mode.  
The signature bytes can be read in ROM loader mode or in parallel programming mode. Reading data  
from addresses 30h, 31h, and 60h provides signature information about manufacturer, part, and extension  
as follows:  
ADDRESS VALUE  
30h DAh  
FUNCTION  
Manufacturer ID  
31h 42h  
DS89C420 Device ID  
Device Extension  
60h 01h  
ROM LOADER  
The full 16kB of on-chip flash program-memory space, security flash block, and external SRAM can be  
programmed in-system from an external source through serial port 0 under the control of a built-in ROM  
loader. The ROM loader also has an auto-baud feature that determines which baud rate frequencies are  
being used for communication and sets up the baud rate generator for communication at that frequency.  
When the DS89C420 is powered up and has entered its user operating mode, the ROM loader mode can  
be invoked at any time by forcing RST = 1, EA = 0, and PSEN = 0. It remains in effect until power-  
down or when the condition (RST = 1 and PSEN = EA = 0) is removed. Entering the ROM loader mode  
forces the processor to start fetching from the 2kB internal ROM for program memory initialization and  
other loader functions.  
17 of 58  
DS89C420  
The read/write accessibility is determined by the state of the lock bits, which can be verified directly by  
the ROM loader. In the ROM loader mode, a mass-erase operation also erases the memory bank select  
and sets it to the default state. Otherwise, the memory bank select cannot be altered in the ROM loader  
mode.  
Flash programming is executed by a series of internal flash commands that are derived (by the built-in  
ROM loader) from data transmitted over the serial interface from a host PC. ROM loader software for  
creating required commands (for flash or external data memory) from the host PC is available from  
Dallas Semiconductor, titled “Loader 420.”  
Full details of the ROM loader software and its implementation are given in the DS89C420 User’s Guide.  
PARALLEL PROGRAMMING  
The DS89C420 allows parallel programming of its internal flash memory compatible with standard flash  
or EPROM programmers. In parallel programming mode, a mass-erase command is used to erase all  
memory locations in the 16kB program memory, the security block, and the memory bank select. Erasing  
the memory bank select sets it to the default state; the memory bank select cannot be altered otherwise. If  
lock bit LB2 has not been programmed, the program code can be read back for verification. The state of  
the lock bits can also be verified directly in the parallel programming mode. One instruction is used to  
read signature information (at addresses 30, 31, and 60h). Separate instructions are used for the option  
control register.  
The following sequence can be used to program the flash memory in the parallel programming mode:  
1) The DS89C420 is powered up and running at a clock speed between 4MHz and 6MHz.  
2) Set RST = EA = 1 and PSEN = 0.  
3) Apply the appropriate logic combination to pins P2.6, P2.7, P3.6, and P3.7 to select one of the flash  
instructions shown in Table 8.  
-
For program operation, apply the desired address to pins P1.7:0 and P2.5:0. Data is written to  
port 0.  
-
For verify operation, apply the desired address to pins P1.7:0 and P2.5:0. Data is read at port 0.  
4) Pulse ALE/ PROG once to perform an erase/program operation.  
5) Repeat steps 3 and 4 as necessary.  
18 of 58  
DS89C420  
Table 5. PARALLEL PROGRAMMING INSTRUCTION SET  
P2.5:0,  
P1.7:0  
INSTRUCTION  
P0.7:0  
P2.6 P2.7 P3.6 P3.7  
OPERATION  
PROG  
Mass erase the 16k x 8 program  
memory, the security block and the  
bank select. The contents of every  
memory location is returned to FFh.  
Mass Erase  
Don’t care Don’t care PL(1)  
H
L
L
L
Write Program  
Memory  
ADDR  
ADDR  
DIN  
PL(3)  
H(4)  
L
L
H
L
H
H
H
H
Program the 16k program memory.  
Verify the 16k program memory.  
Read Program  
Memory  
DOUT  
Write  
Encryption  
Array  
Program the 64 byte encryption  
array.  
ADDR  
DIN  
PL(3)  
L
H
L
H
Write LB1  
Write LB2  
Write LB3  
Don’t care Don’t care PL(3)  
Don’t care Don’t care PL(3)  
Don’t care Don’t care PL(3)  
H
H
H
H
H
L
H
L
H
L
L
Program LB1 to logic 0.  
Program LB2 and LB1 to 00b.  
Program LB3, LB2, and LB1 to  
000b.  
H
Verify the lock bits. The lock bits  
are at address 40h and the three  
LSBs of the DOUT are the logic  
value of the lock bits LB3, LB2,  
and LB1, respectively.  
Read Lock Bits Don’t care  
Write Option  
DOUT  
DIN  
H(4)  
L
L
L
H
Program the option control register.  
Bit 3 of the DIN represents the  
watchdog POR default setting.  
Control  
Don’t care  
PL(3)  
L
H
L
L
L
L
Register  
Erase Option  
Control  
Erase the option control register.  
This operation disables the watch-  
dog reset function on power-up.  
Don’t care Don’t care PL(2)  
H
H
Register  
30h = Manufacturer ID  
31h = Device ID  
Read Address  
30, 31, 60, FC  
H(4)  
L
L
L
L
60h = Device extension  
ADDR  
DOUT  
FCh = Verify the option control  
register. Bit 3 of the DOUT is the  
logic value of the watchdog POR.  
1) Mass erase requires an active-low PROG pulse width of 828ms.  
2) Erase option control register requires an active-low PROG pulse width of 828ms.  
3) Byte program requires an active-low PROG pulse width of 100ms max.  
4)  
PROG is weakly pulled to a high internally.  
NOTES:  
1) P3.2 is pulled low during programming to indicate Busy. P3.2 is pulled high again when  
programming is completed to indicate Ready.  
2) P3.0 is pulled high during programming to indicate an error.  
19 of 58  
DS89C420  
ON-CHIP MOVX DATA MEMORY  
On-chip data memory is provided by the 1kB SRAM and occupies addresses 0000h through 03FFh. The  
internal data memory is disabled after a power-on reset, and any MOVX instruction directs the data  
memory access to the external data memory. To enable the internal data memory, software must  
configure the data memory enable bits DME1 and DME0 (PMR.1-0). See “SFR Bit Descriptions” in the  
DS89C420 User’s Guide for data memory configurations. Once enabled, MOVX instructions with  
addresses inside the 1k range access the on-chip data memory, and addresses exceeding the 1k range  
automatically access external data memory.  
An internal data memory cycle spans only one system clock period to support fast internal execution.  
DATA POINTER INCREMENT/DECREMENT AND OPTIONS  
The DS89C420 incorporates a hardware feature to assist applications that require data pointer  
increment/decrement. Data pointer increment/decrement bits ID0 and ID1 (DPS.6 and DPS.7) define how  
the INC DPTR instruction functions in relation to the active DPTR (selected by the SEL bit). Setting  
ID0 = 1 and SEL = 0 enables the decrement operation for DPTR, and execution of the INC DPTR  
instruction decrements the DPTR contents by 1. Similarly, setting ID1 = 1 and SEL = 1 enables the  
decrement operation for DPTR1, and execution of the INC DPTR instruction decrements the DPTR1  
contents by 1. With this feature, the user can configure the data pointers to operate in four ways for the  
INC DPTR instruction:  
ID1  
ID0  
SEL = 0  
SEL = 1  
0
0
Increment DPTR  
Increment DPTR1  
0
1
1
1
0
1
Decrement DPTR Increment DPTR1  
Increment DPTR Decrement DPTR1  
Decrement DPTR Decrement DPTR1  
The active data pointer is always selected by the SEL (DPS.0) bit. The DS89C420 offers a programmable  
option that allows any instructions related to data pointer to toggle the SEL bit automatically. This option  
is enabled by setting the toggle-select-enable bit (TSL-DPS.5) to a logic 1. Once enabled, the SEL bit is  
automatically toggled after the execution of one of the following five DPTR-related instructions:  
INC DPTR  
MOV DPTR #data16  
MOVC A, @A+DPTR  
MOVX A, @DPTR  
MOVX @DPTR, A  
The DS89C420 also offers a programmable option that automatically increases (or decreases) the  
contents of the selected data pointer by 1 after the execution of a DPTR-related instruction. The actual  
function (increment or decrement) is dependent upon the setting of the ID1 and ID0 bits. This option is  
enabled by setting the automatic increment/decrement enable (AID-DPS.4) to a logic 1 and is affected by  
one of the following three instructions:  
MOVC A, @A+DPTR  
MOVX A, @DPTR  
MOVX @DPTR, A  
20 of 58  
DS89C420  
EXTERNAL MEMORY  
The DS89C420 executes external memory cycles for code fetches and read/writes of external program  
and data memory. A non-page external memory cycle is four times slower than the internal memory  
cycles (i.e., an external memory cycle contains four system clocks)*. However, a page mode external  
memory cycle can be completed in 1, 2, or 4 system clocks for a page hit and 2, 4, or 8 system clocks for  
a page miss, depending on user selection. The DS89C420 also supports a second page mode operation  
with a different external bus structure that provides for fast external code fetches but uses 4 system clock  
cycles for data memory access.  
*For this reason, although a DS89C420 can be substituted for a ROM-less 8051 device (DS80C310,  
C320, etc.), there is no increase in execution speed.  
EXTERNAL PROGRAM MEMORY INTERFACE (NON-PAGE MODE)  
Figure 3 shows the timing relationship for internal and external code fetches when CD1 and CD0 are set  
to 10b, assuming the microcontroller is in non-page mode for external fetches. Note that an external  
program fetch takes 4 system clocks, and an internal program fetch requires only 1 system clock.  
As illustrated in Figure 3, ALE is deasserted when executing an internal memory fetch. The DS89C420  
provides a programmable user option to turn on ALE during internal program memory operation. ALE is  
automatically enabled for code fetch externally, independent of the setting of this option.  
PSEN is only asserted for external code fetches, and is inactive during internal execution.  
21 of 58  
DS89C420  
Figure 3. EXTERNAL PROGRAM MEMORY ACCESS  
(NON-PAGE MODE and CD1:CD0 = 10)  
Ext Memory Cycle  
Ext Memory Cycle  
Internal Memory Cycles  
C1  
C2  
C3 C4  
C1  
C2  
C3 C4  
XTAL1  
ALE  
PSEN  
Port 0  
Port 2  
LSB Add  
Data  
LSB Add  
Data  
MSB Add  
MSB Add  
EXTERNAL DATA MEMORY INTERFACE IN NON-PAGE MODE OPERATION  
Just like the program memory cycle, the external data memory cycle is four times slower than the internal  
data memory cycle in non-page mode. A basic internal memory cycle contains one system clock and a  
basic external memory cycle contains four system clocks for non-page mode operation.  
The DS89C420 allows software to adjust the speed of external data memory access by stretching the  
memory bus cycle. CKCON (8Eh) provides an application-selectable stretch value for this purpose.  
Software can change the stretch value dynamically by changing the setting of CKCON.2–CKCON.0.  
Table 6 shows the data memory cycle stretch values and their effects on the external MOVX-memory bus  
cycle and the control signal pulse width in terms of the number of oscillator clocks. A stretch machine  
cycle always contains four system clocks.  
Table 6. DATA MEMORY CYCLE STRETCH VALUES  
RD / WR PULSE WIDTH (IN NUMBER OF OSCILLATOR CLOCKS)  
STRETCH  
MD2:MD0  
4X/2X, CD1,  
CD0 = 100  
0.5  
4X/2X, CD1,  
CD0 = 000  
1
4X/2X, CD1,  
CD0 = X10  
2
4X/2X, CD1,  
CD0 = X11  
CYCLES  
000  
001  
010  
011  
100  
101  
110  
111  
0
1
2048  
4096  
1
2
3
4
5
6
7
2
4
4
2
8
8192  
3
6
12  
16  
20  
24  
28  
12288  
16384  
20480  
24576  
28672  
7
8
8
10  
12  
14  
9
10  
22 of 58  
DS89C420  
As shown in Table 6, the stretch feature supports eight stretched external data-memory access cycles that  
can be categorized into three timing groups. When the stretch value is cleared to 000b, there is no stretch  
on external data memory access and a MOVX instruction is completed in two basic memory cycles.  
When the stretch value is set to 1, 2, or 3, the external data-memory access is extended by 1, 2, or 3  
stretch machine cycles, respectively. Note that the first stretch value does not result in adding four system  
clocks to the RD / WR control signals. This is because the first stretch uses one system clock to create  
additional setup time and one system clock to create additional address hold time. When using very slow  
RAM and peripherals, a larger stretch value (4–7) can be selected. In this stretch category, one stretch  
machine cycle (4 system clocks) is used to stretch the ALE pulse width, one stretch machine cycle is used  
to create additional setup, one stretch machine cycle is used to create additional hold time, and one stretch  
machine cycle is added to the RD or WR strobes.  
Figures 4 and 5 illustrate the timing relationship for external data-memory access in full speed (stretch  
value = 0), in the default stretch setting (stretch value =1), and slow data-memory accessing  
(stretch value = 4) when the system clock is in divide by one mode (CD1:CD0 = 10b).  
Figure 4. NON-PAGE MODE, EXTERNAL DATA-MEMORY ACCESS  
(STRETCH = 0, CD1:CD2 = 10)  
MOVX Instruction  
1st Machine Cycle  
2nd Machine Cycle  
XTAL1  
ALE  
PSEN  
RD WR  
A
MOVX  
A
INST  
A
DATA  
Port 0  
Port 2  
A
A
MOVX  
Instruction  
Fetch  
Memory  
Access  
Stretch = 0  
23 of 58  
DS89C420  
Figure 5. NON-PAGE MODE, EXTERNAL DATA-MEMORY ACCESS  
(STRETCH = 1, CD1:CD2 = 10)  
MOVX Instruction  
1st Machine Cycle  
2nd Machine Cycle  
3rd Machine Cycle  
XTAL1  
ALE  
PSEN  
RD WR  
A
MOVX  
A
INST  
A
DATA  
Port 0  
Port 2  
A
A
MOVX  
Instruction  
Fetch  
MemoryAccess  
Stretch = 1  
PAGE MODE, EXTERNAL MEMORY CYCLE  
Page mode retains the basic circuitry requirement for original 8051 external memory interface, but alters  
the configuration of P0 and P2 for the purposes of address output and data I/O during external memory  
cycles. Additionally, the functions of ALE and  
are altered to support this mode of operation.  
PSEN  
Page mode is enabled by setting the PAGEE (ACON.7) bit to a logic 1. Clearing the PAGEE bit to a  
logic 0 disables the page mode and the external bus structure defaults to the original 8051 expanded bus  
configuration (non-page mode). The DS89C420 supports page mode in two external bus structures. The  
logic value of the page mode select bits in the ACON register determines the external bus structure and  
the basic memory cycle in the number of system clocks. Table 7 summarizes this option. The first three  
selections use the same bus structure but with a different memory cycle time. Setting the select bits to 11b  
selects another bus structure. Write access to the ACON register requires a timed access.  
24 of 58  
DS89C420  
Table 7. PAGE MODE SELECT  
CLOCKS PER MEMORY CYCLE  
PAGES1:PAGES0  
EXTERNAL BUS STRUCTURE  
P0: Primary data bus.  
PAGE HIT  
PAGE MISS  
00  
1
2
P2: Primary address bus, multiplexing both  
the upper byte and lower byte of the address.  
P0: Primary data bus.  
01  
10  
2
4
4
8
P2: Primary address bus, multiplexing both  
the upper byte and lower byte of the address.  
P0: Primary data bus.  
P2: Primary address bus, multiplexing both  
the upper byte and lower byte of the address.  
P0: Lower address byte.  
P2: The upper address byte is multiplexed  
with the data byte.  
Note: This setting affects external code  
fetches only; accessing the external data  
memory requires 4 clock cycles, regardless  
of page hit or miss.  
11  
2
4
The first page mode (page mode 1) external bus structure uses P2 as the primary address bus,  
(multiplexing both the most significant byte (MSB) and least significant byte (LSB) of the address for  
each external memory cycle) and P0 is used as the primary data bus. During external code fetches, P0 is  
held in a high-impedance state by the processor. Op codes are driven by the external memory onto P0 and  
latched at the end of the external fetch cycle at the rising edge of PSEN . During external data read/write  
operations, P0 functions as the data I/O bus. It is held in a high-impedance state for external reads from  
data memory, and driven with data during external writes to data memory.  
§ A page miss occurs when the MSB of the subsequent address is different from the last address.  
The external memory machine cycle can be 2, 4, or 8 system clocks in length for a page miss.  
§ A page hit occurs when the MSB of the subsequent address does not change from the last address.  
The external memory machine cycle can be 1, 2, or 4 system clocks in length for a page hit.  
During a page hit, P2 drives Addr0–7 of the 16-bit address while the most significant address byte is held  
in the external address latches. PSEN , RD , and WR strobe accordingly for the appropriate operation on  
the P0 data bus. There is no ALE assertion for page hits.  
During a page miss, P2 drives the Addr [8:15] of the 16-bit address and holds it for the duration of the  
first half of the memory cycle to allow the external address latches to latch the new most significant  
address byte. ALE is asserted to strobe the external address latches. During this operation, PSEN , RD ,  
and WR are all held in inactive states and P0 is in a high-impedance state. The second half of the  
memory cycle is executed as a page-hit cycle and the appropriate operation takes place.  
25 of 58  
DS89C420  
A page miss can occur at set intervals or during external operations that require a memory access into a  
page of memory that has not been accessed during the last external cycle. Generally, the first external  
memory access causes a page miss. The new page address is stored internally, and is used to detect a page  
miss for the current external memory cycle.  
Note that there are a few exceptions for this mode of operation when PAGES1 and PAGES2 are set to  
00b:  
§
PSEN is asserted for both page hit and page miss for a full clock cycle.  
§ The execution of external MOVX instruction causes a page miss.  
§ A page miss occurs when fetching the next external instruction following the execution of an external  
MOVX instruction.  
Figure 6 shows the external memory cycle for this bus structure. The first case illustrates a back-to-back  
execution sequence for 1-cycle page mode (PAGES1 = PAGES0 = 0b). PSEN remains active during  
page hit cycles, and page misses are forced during and after MOVX executions, independent of the most  
significant byte of the subsequent addresses. The second case illustrates a MOVX execution sequence for  
2-cycle page mode (PAGES1 = 0 and PAGES0 = 1). PSEN is active for a full clock cycle in code  
fetches. Note that the page misses in this sequence are caused by changing the MSB of the data address.  
The third case illustrates a MOVX execution sequence for 4-cycle page mode (PAGES1 = 1 and  
PAGES0 = 0). There is no page miss in this execution cycle because the most significant byte of the data  
address is assumed to match the last program address.  
The second page mode (page mode 2) external bus structure multiplexes the most significant address byte  
with data on P2, and uses P0 for the least significant address byte. This bus structure is used to speed up  
external code fetches only. External data-memory access cycles are identical to the non-page mode except  
for the different signals on P0 and P2. Figure 7 illustrates the memory cycle for external code fetches.  
26 of 58  
DS89C420  
Figure 6. PAGE MODE 1, EXTERNAL MEMORY CYCLE (CD1:CD0 = 10)  
Internal Memory Cycles  
External Memory Cycles  
XTAL1  
ALE  
PSEN  
RD / WR  
Port 0  
PAGES=00  
MOVX MOVX  
Data  
Data  
Inst  
Inst  
Inst  
Port 2  
MSB  
LSB  
LSB  
LSB  
LSB  
MSB  
LSB  
MSB  
LSB  
MSB  
LSB  
MSB  
Page Miss  
Page Hit  
Data Access  
MOVX executed  
Page Miss  
Data Access  
MOVX executed  
ALE  
PSEN  
RD / WR  
PAGES=01  
Port 0  
Port 2  
MOVX  
Inst  
Data  
MSBAdd  
Page Miss  
LSB Add  
LSB Add  
MSBAdd  
LSB Add  
MSBAdd  
Page Hit  
Data Access  
Page Miss  
MOVX executed  
next instruction  
ALE  
PSEN  
RD / WR  
Port 0  
PAGES=10  
Data  
Inst  
Port 2  
MSBAdd  
LSB Add  
LSB Add  
Data Access  
Page Miss  
27 of 58  
DS89C420  
Figure 7. PAGE MODE 2, EXTERNAL CODE FETCH CYCLE (CD1:CD0 = 10)  
Ext Code Fetches  
Page Hit  
Internal Memory Cycles  
Page Miss  
Page Hit  
C1  
C2  
C3 C4  
C1  
C2  
C1 C2  
XTAL1  
ALE  
PSEN  
Port 0  
LSB Add  
LSB Add  
Data  
LSB Add  
MSB Add  
Data  
Data  
Port 2  
STRETCH EXTERNAL DATA MEMORY CYCLE IN PAGE MODE  
The DS89C420 allows software to adjust the speed of external data memory access by stretching the  
memory bus cycle in page mode operation just like non-page mode operation. The following tables  
summarize the stretch values and their effects on the external MOVX-memory bus cycle and the control  
signals’ pulse width in terms of the number of oscillator clocks. A stretch machine cycle always contains  
four system clocks, independent of the logic value of the page mode select bits.  
Table 8. PAGE MODE 1, DATA MEMORY CYCLE STRETCH VALUES  
(PAGES1:PAGES0 = 00)  
RD WR  
/
PULSE WIDTH (IN NUMBER OF OSCILLATOR CLOCKS)  
STRETCH  
CYCLES  
MD2:MD0  
4X/2X, CD1,  
CD0 = 100  
4X/2X, CD1,  
CD0 = 000  
4X/2X, CD1,  
CD0 = X10  
4X/2X, CD1,  
CD0 = X11  
000  
001  
010  
011  
100  
101  
110  
111  
0
1
0.25  
0.75  
1.75  
2.75  
3.75  
4.75  
5.75  
6.75  
0.5  
1.5  
1
1024  
3072  
3
2
3.5  
7
7168  
3
5.5  
11  
15  
19  
23  
27  
11,264  
15,360  
19,456  
23,552  
27,648  
7
7.5  
8
9.5  
9
11.5  
13.5  
10  
28 of 58  
DS89C420  
Table 9. PAGE MODE 1, DATA MEMORY CYCLE STRETCH VALUES  
(PAGES1:PAGES0 = 01)  
RD WR  
/
PULSE WIDTH (IN NUMBER OF OSCILLATOR CLOCKS)  
STRETCH  
CYCLES  
MD2:MD0  
4X/2X, CD1,  
CD0 = 100  
4X/2X, CD1,  
CD0 = 000  
4X/2X, CD1,  
CD0 = X10  
4X/2X, CD1,  
CD0 = X11  
000  
001  
010  
011  
100  
101  
110  
111  
0
1
0.25  
0.75  
1.75  
2.75  
3.75  
4.75  
5.75  
6.75  
0.5  
1.5  
1
3
1024  
3072  
2
3.5  
7
7168  
3
5.5  
11  
15  
19  
23  
27  
11,264  
15,360  
19,456  
23,552  
27,648  
7
7.5  
8
9.5  
9
11.5  
13.5  
10  
Table 10. PAGE MODE 1, DATA MEMORY CYCLE STRETCH VALUES  
(PAGES1:PAGES0 = 10)  
RD WR  
/
PULSE WIDTH (IN NUMBER OF OSCILLATOR CLOCKS)  
STRETCH  
CYCLES  
MD2:MD0  
4X/2X, CD1,  
CD0 = 100  
4X/2X, CD1,  
CD0 = 000  
4X/2X, CD1,  
CD0 = X10  
4X/2X, CD1,  
CD0 = X11  
000  
001  
010  
011  
100  
101  
110  
111  
0
1
0.5  
1
1
2
2
4
2048  
4096  
2
2
4
8
8192  
3
3
6
12  
16  
20  
24  
28  
12,288  
16,384  
20,480  
24,576  
28,672  
7
4
8
8
5
10  
12  
14  
9
6
10  
7
Table 11. PAGE MODE 2, DATA MEMORY CYCLE STRETCH VALUES  
(PAGES1:PAGES0 = 11)  
RD WR  
/
PULSE WIDTH (IN NUMBER OF OSCILLATOR CLOCKS)  
STRETCH  
CYCLES  
MD2:MD0  
4X/2X, CD1,  
CD0 = 100  
4X/2X, CD1,  
CD0 = 000  
4X/2X, CD1,  
CD0 = X10  
4X/2X, CD1,  
CD0 = X11  
000  
001  
010  
011  
100  
101  
110  
111  
0
1
0.5  
1
1
2
2
4
2048  
4096  
2
2
4
8
8192  
3
3
6
12  
16  
20  
24  
28  
12,288  
16,384  
20,480  
24,576  
28,672  
7
4
8
8
5
10  
12  
14  
9
6
10  
7
29 of 58  
DS89C420  
As shown in the previous tables, the stretch feature supports eight stretched external data-memory access  
cycles that can be categorized into three timing groups. When the stretch value is cleared to 000b, there is  
no stretch on external data-memory access and a MOVX instruction is completed in two basic memory  
cycles. When the stretch value is set to 1, 2, or 3, the external data memory access is extended by 1, 2, or  
3 stretch memory cycles, respectively. Note that the first stretch value does not result in adding four  
system clocks to the control signals. This is because the first stretch uses one system clock to create  
additional address setup and data bus float time, and one system clock to create additional address and  
data hold time. When using very slow RAM and peripherals, a larger stretch value (4–7) can be selected.  
In this stretch category, two stretch cycles are used to create additional setup (the ALE pulse width is also  
stretched by one stretch cycle for page miss) and one stretch cycle is used to create additional hold time.  
The following timing diagrams illustrate the external data-memory access at divide by 1 system clock  
mode (CD1:CD0 = 10b).  
30 of 58  
DS89C420  
Figure 8. PAGE MODE 1, EXTERNAL DATA MEMORY ACCESS  
(PAGES = 01, STRETCH = 1, CD = 10)  
XTAL1  
MOVX Instruction  
ALE  
PSEN  
RD / WR  
Inst  
Inst  
MOVX  
Inst  
Data  
Inst  
Inst  
Port 0  
Port 2  
LSB Addr LSB Addr MSB Addr LSB Addr LSB Addr  
LSB Addr  
LSB Addr LSB Addr  
Memory Access (Stretch =1)  
MOVX Instruction  
ALE  
PSEN  
RD / WR  
Inst  
MOVX  
Inst  
Data  
Inst  
Inst  
Inst  
Port 0  
Port 2  
LSB Addr LSB Addr  
LSB Addr  
LSB Addr  
LSB Addr LSB Addr LSB Addr  
MSB Addr  
MOVX Inst  
Fetch  
Memory Access (Stretch =1)  
MOVX Instruction  
ALE  
PSEN  
RD / WR  
Inst  
MOVX  
Inst  
Data  
Inst  
Inst  
Inst  
Port 0  
Port 2  
LSB Addr LSB Addr LSB Addr MSB Addr  
LSB Addr  
LSB Addr LSB Addr LSB Addr  
MOVX Inst  
Fetch  
Memory Access (Stretch =1)  
Figure 8 illustrates the external data-memory stretch cycle timing relationship when PAGEE = 1 and  
PAGES1:PAGES0 = 01. The stretch cycle shown is for a stretch value of 1 and is coincident with a page  
miss. Note that the first stretch value does not result in adding four system clocks to the RD / WR control  
signals. This is because the first stretch uses one system clock to create additional setup and one system  
clock to create additional hold time.  
31 of 58  
DS89C420  
Figure 9. PAGE MODE 1, EXTERNAL DATA MEMORY ACCESS  
(PAGES = 01, STRETCH = 4, CD = 10)  
MOVX Instruction (Page miss)  
1st  
2nd  
3rd  
4th  
9th  
Cycle  
Cycle  
Cycle  
Cycle  
Cycle  
XTAL1  
ALE  
PSEN  
RD / WR  
Inst Inst Inst Inst  
Inst Inst  
Data  
Port 0  
Port 2  
LSB LSB LSB LSB  
MSB  
LSB  
LSB LSB  
MOVX  
Instruction  
Fetch  
Memory Access (Stretch = 4)  
MOVX Instruction (Page hit)  
1st  
2nd  
3rd  
4th  
5th  
9th  
Cycle Cycle  
Cycle  
Cycle  
Cycle  
Cycle  
ALE  
PSEN  
RD / WR  
Port 0  
Inst Inst Inst Inst  
Inst Inst Inst  
LSB LSB LSB  
Data  
LSB  
Port 2  
LSB LSB LSB LSB  
MOVX  
Instruction  
Fetch  
Memory Access (Stretch = 4)  
Figure 9 shows the timing relationship for a slow peripheral interface (stretch value = 4). Note that a page  
hit data-memory cycle is shorter than a page miss data-memory cycle. The ALE pulse width is also  
stretched by a stretch cycle in the case of page miss.  
The stretched data-memory bus-cycle timing relationship for PAGES = 11 is identical to non-page mode  
operation since the basic data-memory cycle always contains four system clocks in this page mode  
operation.  
32 of 58  
DS89C420  
INTERRUPTS  
The DS89C420 provides 13 interrupt vector sources. All interrupts, with the exception of the power-fail,  
are controlled by a series combination of individual enable bits and a global enable (EA) in the interrupt  
enable register (IE.7). Setting EA to a logic 1 allows individual interrupts to be enabled. Setting EA to a  
logic 0 disables all interrupts regardless of the individual interrupt enable settings. The power-fail  
interrupt is controlled by its individual enable only.  
The interrupt enables and priorities are functionally identical to those of the 80C52, except that the  
DS89C420 supports five levels of interrupt priorities instead of the original two.  
INTERRUPT PRIORITY  
There are five levels of interrupt priority: level 4 to 0. The highest interrupt priority is level 4, which is  
reserved for the power-fail interrupt. All other interrupts have individual priority bits in the interrupt  
priority registers to allow each interrupt to be assigned a priority level from 3 to 0. The power-fail  
interrupt always has the highest priority if it is enabled. All interrupts also have a natural hierarchy. In  
this manner, when a set of interrupts has been assigned the same priority, a second hierarchy determines  
which interrupt is allowed to take precedence. The natural hierarchy is determined by analyzing potential  
interrupts in a sequential manner with the order listed in Table 12.  
33 of 58  
DS89C420  
Table 12. INTERRUPT SUMMARY  
NATURAL  
ORDER  
PRIORITY  
CONTROL  
INTERRUPT  
Power-Fail  
VECTOR  
33h  
FLAG  
ENABLE  
0
PFI (WDCON.4)  
IE0 (TCON.1)**  
TF0 (TCON.5)*  
IE1 (TCON.3)**  
TF1 (TCON.7)*  
EPFI(WDCON.5) N/A  
LPX0 (IP0.0)  
(Highest)  
External Interrupt 0  
Timer 0 Overflow  
External Interrupt 1  
Timer 1 Overflow  
Serial Port 0  
03h  
1
2
EX0 (IE.0)  
ET0 (IE.1)  
EX1 (IE.2)  
ET1 (IE.3)  
ES0 (IE.4)  
ET2 (IE.5)  
ES1 (IE.6)  
EX2 (EIE.0)  
EX3 (EIE.1)  
EX4 (EIE.2)  
EX5 (EIE.3)  
MPX0 (IP1.0)  
LPT0 (IP0.1)  
MPT0 (IP1.1)  
LPX1 (IP0.2)  
MPX1 (IP1.2)  
LPT1 (IP0.3)  
0Bh  
13h  
3
1Bh  
23h  
4
MPT1 (IP1.3)  
LPS0 (IP0.4)  
RI_0 (SCON0.0)  
TI_0 (SCON0.1)  
TF2 (T2CON.7)  
EXF2 (T2CON.6)  
RI_1 (SCON1.0)  
TI_1 (SCON1.1)  
5
MPS0 (IP1.4)  
LPT2 (IP0.5)  
MPT2 (IP1.5)  
LPS1 (IP0.6)  
Timer 2 Overflow  
Serial Port 1  
2Bh  
3Bh  
43h  
6
7
MPS1 (IP1.6)  
LPX2 (EIP0.0)  
MPX2 (EIP1.0)  
LPX3 (EIP0.1)  
MPX3 (EIP1.1)  
LPX4 (EIP0.2)  
MPX4 (EIP1.2)  
LPX5 (EIP0.3)  
MPX5 (EIP1.3)  
LPWDI (EIP0.4)  
MPWDI (EIP1.4)  
External Interrupt 2  
External Interrupt 3  
External Interrupt 4  
External Interrupt 5  
Watchdog  
8
IE2 (EXIF.4)  
IE3 (EXIF.5)  
IE4 (EXIF.6)  
IE5 (EXIF.7)  
4Bh  
53h  
9
10  
11  
5Bh  
12  
(Lowest)  
63h  
WDIF (WDCON.3) EWDI (EIE.4)  
*Cleared automatically by hardware when the service routine is vectored to.  
**If the interrupt is edge triggered, cleared automatically by hardware when the service routine is vectored to. If  
the interrupt is level triggered, the flag follows the state of the pin.  
The processor indicates that an interrupt condition occurred by setting the respective flag bit. This bit is  
set regardless of whether the interrupt is enabled or disabled. Unless marked in Table 12, all of these flags  
must be cleared by software.  
TIMER/COUNTERS  
Three 16-bit timers are incorporated in the DS89C420. All three timers can be used as either counters of  
external events, where 1-to-0 transitions on a port pin are monitored and counted, or timers that count  
oscillator cycles. Table 13 summarizes the timer functions.  
Timers 0 and 1 both have three modes of operations. They can each be used as a 13-bit timer/counter, a  
16-bit timer/counter, or an 8-bit timer/counter with auto-reload. Timer 0 has a fourth operating mode as  
two 8-bit timer/counters without auto-reload. Each timer can also be used as a counter of external pulses  
34 of 58  
DS89C420  
on the corresponding T0/T1 pin for 1-to-0 transitions. The mode of operation is controlled by the timer  
mode (TMOD) register. Each timer consists of a 16-bit register in 2 bytes, which can be found in the SFR  
map as TL0, TH0, TL1, and TH1. Timers 0 and 1 are enabled by the timer control (TCON) register.  
Table 13. TIMER FUNCTIONS  
FUNCTIONS  
TIMER 0  
TIMER 1  
TIMER 2  
Timer/Counter  
Timer with Capture  
External Control-Pulse Counter  
Up/Down Auto-Reload Timer/Counter  
Baud Rate Generator  
13/16/8*/2 x 8 bit  
13/16/8* bit  
16 bit  
Yes  
No  
Yes  
Yes  
Yes  
No  
Yes  
No  
No  
No  
No  
Yes  
No  
Yes  
Timer-Output Clock Generator  
* 8-bit timer/counter includes auto-reload feature; 2 x 8-bit mode does not.  
No  
Timer 2 is a true 16-bit timer/counter that, with a 16-bit capture (RCAP2L and RCAP2H) register, is able  
to provide some unique functions like up/down auto-reload timer/counter and timer-output clock  
generation. Timer 2 (registers TL2 and TH2) is enabled by the T2CON register, and its mode of operation  
is selected by the T2MOD register.  
Each timer has a selectable time base (Table 15). Following a reset, the timers default to divide by 12 to  
maintain drop-in compatible with the 8051. If Timer 2 is used as a baud rate generator or clock output, its  
time base is fixed at divide by 2, regardless of the setting of its timer mode bits.  
For details of operation, refer to “Programmable Timers” in the DS89C420 User’s Guide.  
35 of 58  
DS89C420  
TIMED ACCESS  
The timed access function provides control verification to system functions. The timed access function  
prevents an errant CPU from making accidental changes to certain SFR bits that are considered vital to  
proper system operation. This is achieved by using software control when accessing the following SFR  
control bits:  
WDCON.0  
WDCON.1  
WDCON.3  
WDCON.6  
EXIF.0  
RWT  
EWT  
Reset Watchdog Timer  
Watchdog Reset Enable  
Watchdog Interrupt Flag  
Power-On Reset Flag  
WDIF  
POR  
BGS  
Bandgap Select  
ACON.5  
PAGES0  
PAGES1  
PAGEE  
RMS0  
RMS1  
RMS2  
PRAME  
FC0  
Page Mode Select Bit 0  
Page Mode Select Bit 1  
Page Mode Enable  
ACON.6  
ACON.7  
ROMSIZE.0  
ROMSIZE.1  
ROMSIZE.2  
ROMSIZE.3  
FCNTL.0  
FCNTL.1  
FCNTL.2  
FCNTL.3  
Program Memory Size Select Bit 0  
Program Memory Size Select Bit 1  
Program Memory Size Select Bit 2  
Program RAM Enable  
Flash Command Bit 0  
FC1  
Flash Command Bit 1  
FC2  
Flash Command Bit 2  
FC3  
Flash Command Bit 3  
Before these bits can be altered, the processor must execute the timed access sequence. This sequence  
consists of writing an AAh to the timed access (TA, C7h) register, followed by writing a 55h to the same  
register within three machine cycles. This timed sequence of steps then allows any of the timed access-  
protected SFR bits to be altered during the three machine cycles, following the writing of the 55h.  
Writing to a timed access-protected bit outside of these three machine cycles has no effect on the bit.  
The timed access process is address-, data-, and time-dependent. A processor running out of control and  
not executing system software cannot statistically perform this timed sequence of steps, and as such, will  
not accidentally alter the protected bits. It should be noted that this method should be used in the main  
body of the system software and never used in an interrupt routine in conjunction with the watchdog  
reset. Interrupt routines using the timed-access watchdog-reset bit (RWT) can recover a lost system and  
allow the resetting of the watchdog, but the system returns to a lost condition once the RETI is executed,  
unless the stack is modified. It is advisable that interrupts be disabled (EA = 0) when executing the timed  
access sequence, since an interrupt during the sequence adds time, making the timed access attempt fail.  
36 of 58  
DS89C420  
POWER MANAGEMENT AND CLOCK-DIVIDE CONTROL  
The DS89C420 incorporates power management features that monitor the power-supply voltage levels  
and support low-power operation with three power-saving modes. Such features include a bandgap  
voltage monitor, watchdog timer, selectable internal ring oscillator, and programmable system clock  
speed. The SFRs that provide control and application software access are the watchdog control  
(WDCON, D8h), extended interrupt enable (EIE, E8h), extended interrupt flag (EXIF, 91h), and power  
control (PCON, 87h) registers.  
SYSTEM CLOCK-DIVIDE CONTROL  
The programmable clock-divide control bits (CD1 and CD0) provide the processor with the ability to  
adapt to different crystals and also to slow the system clocks providing lower power operation when  
required. An on-chip crystal multiplier allows the DS89C420 to operate at two or four times the crystal  
frequency by setting the 4X/2X bit and is enabled by setting the CTM bit to a logic 1. An additional  
circuit provides a clock source at divide-by-1024. When used with a 7.372MHz crystal, for example, the  
processor executes machine cycle in times ranging from 33.9ns (divide-by-0.25) to 138.9µs (multiply by  
1024), and maintains a highly accurate serial port baud rate while allowing the use of more cost-effective,  
lower-frequency crystals. Although the clock-divide control bits can be written at any time, certain  
hardware features have been provided to enhance the use of these clock controls to guarantee proper  
serial port operation, and also to allow for a high-speed response to an external interrupt. The 01b setting  
of CD1 and CD0 is reserved, and has the same effect as the 10b setting, which forces the system clock  
into a divide by 1 mode. The DS89C420 defaults to divide-by-1 clock mode on all forms of reset.  
When programmed to the divide-by-1024 mode, and the switchback bit (PMR.5:SWB) is also set, the  
system forces the clock-divide control bits to reset automatically to the divide-by-1 mode whenever the  
system has detected externally enabled interrupts.  
The oscillator divide ratios of 0.25, 0.5, and 1 are also used to provide standard baud-rate generation for  
the serial ports through a forced divide-by-12 input clock (TxMH, TxM = 00b, x = 1, 2, or 3) to the  
timers.  
When in divide-by-1024 mode, in order to allow a quick response to incoming data on a serial port, the  
system uses the switchback mode to automatically revert to divide-by-1 mode whenever a start bit is  
detected. This automatic switchback is only enabled during divide-by-1024 mode, and all other clock  
modes are unaffected by interrupts and serial port activity. See Power Management Mode for more  
details.  
Use of the divide-by-0.25 or 0.5 options through the clock-divide control bits requires that the crystal  
multiplier be enabled and the specific system-clock-multiply value be established by the 4X/2X bit in the  
PMR register. The multiplier is enabled through the CTM (PMR.4) bit but cannot be automatically  
selected until a startup delay has been established through the CKRY bit in the status register. The  
4X/ 2X bit can only be altered when the CTM bit is cleared to a logic 0. This prevents the system from  
changing the multiplier until the system has moved back to the divide by 1 mode and the multiplier has  
been disabled through the CTM bit. The CTM bit can only be altered when the CD1 and CD0 bits are set  
to divide-by-1 mode and the RGMD bit is cleared to 0. Setting the CTM to a logic 1 from a previous  
logic 0 automatically clears the CKRY bit in the status register and starts the multiplier startup timeout in  
37 of 58  
DS89C420  
the multiplier startup counter. During the multiplier startup period the CKRY bit remains cleared and the  
CD1 and CD0 clock controls cannot be set to 00b. The CTM bit is cleared to a logic 0 on all resets.  
Figure 10 gives a simplified diagram of the generation of the system clocks. Specifics of hardware  
restrictions associated with the use of the 4X/2X CTM, CKRY, CD1, and CD0 bits are outlined in the  
SFR description.  
Figure 10. SYSTEM CLOCK SOURCES  
4X/2X  
CTM  
Clock  
Multiplier  
Crystal  
Oscillator  
System  
Clock  
MUX  
Divide 1024  
Ring  
Oscillator  
Ring  
Enable  
Selector  
CD0  
CD1  
BANDGAP-MONITORED INTERRUPT AND RESET GENERATION  
The power monitor in the DS89C420 monitors the V pin in relation to the on-chip bandgap voltage  
CC  
reference. Whenever VCC falls below VPFW, an interrupt is generated if the corresponding power-fail  
interrupt-enable bit EPFI (WDCON.5) is set, causing the device to vector to address 33h. The power-fail  
interrupt-status bit PFI (WDCON.4) is set anytime V transitions below VPFW, and can only be cleared  
CC  
by software once set. Similarly, as V falls below VRST , a reset is issued internally to halt program  
CC  
execution. Following power-up, a power-on reset initiates a power-on reset timeout before starting  
program execution. When VCC is first applied to the DS89C420, the processor is held in reset until  
VCC > VRST and a delay of 65,536 oscillator cycles has elapsed, to ensure that power is within tolerance  
and the clock source has had time to stabilize. Once the reset timeout period has elapsed, the reset  
condition is removed automatically and software execution begins at the reset vector location of 0000h.  
The power-on reset flag POR (WDCON.6) is set to logic 1 to indicate a power-on reset has occurred, and  
can only be cleared by software.  
38 of 58  
DS89C420  
When the DS89C420 enters stop mode, the bandgap, reset comparator, and power-fail interrupt  
comparator are automatically disabled to conserve power, if the BGS (EXIF.0) bit is set to a logic 0. This  
is the lowest power mode. If BGS is set to a logic 1, the bandgap reference, reset comparator, and the  
power-fail comparator are powered up, although in a reduced fashion, while in stop mode.  
WATCHDOG TIMER  
The watchdog timer functions as the source of both the watchdog interrupt and the watchdog reset. When  
17  
the clock divider is set to 10b, the interrupt timeout has a default divide ratio of 2 of the crystal oscillator  
clock, with the watchdog reset set to timeout 512 system clock cycles later. This results in a 33MHz  
crystal oscillator producing an interrupt timeout every 3.9718ms, followed 15.5µs later by a watchdog  
reset. The watchdog timer is reset to the default divide ratio following any reset. Using the WD0 and  
WD1 bits in the clock control (CKCON.6 and 7) register, other divide ratios can be selected for longer  
watchdog interrupt periods. Table 14 summarizes the watchdog bit settings and the timeout values.  
Note: All watchdog-timer reset timeouts follow the programmed interrupt timeouts by 512 system clock  
cycles, which equates to varying numbers of oscillator cycles depending on the clock-divide (CD1:0) and  
crystal multiplier settings.  
Table 14. WATCHDOG TIMEOUT VALUE (IN NUMBER OF OSCILLATOR  
CLOCKS)  
WATCHDOG INTERRUPT TIMEOUT  
WATCHDOG RESET TIMEOUT  
4X/ 2X CD1:0  
WD1:0 = 00 WD1:0 = 01 WD1:0 = 10 WD1:0 = 11  
WD1:0 = 00  
215 + 128  
216 + 256  
217 + 512  
217 + 512  
WD1:0 = 01  
218 + 128  
219 + 256  
220 + 512  
220 + 512  
WD1:0 = 10  
221 + 128  
222 + 256  
223 + 512  
223 + 512  
WD1:0 = 11  
224 + 128  
225 + 256  
226 + 512  
226 + 512  
1
0
x
x
00  
00  
01  
10  
215  
216  
217  
217  
218  
219  
220  
220  
221  
222  
223  
223  
224  
225  
226  
226  
x
11  
227  
230  
233  
236  
227 + 524,288  
230 + 524,288 233+ 524,288 236 + 524,288  
A watchdog control (WDCON) SFR is used for programming the functions. EWT (WDCON.1) is the  
enable for the watchdog-timer reset function and RWT (WDCON.0) is the bit used to restart the  
watchdog timer. Setting the RWT bit restarts the timer for another full interval. If the watchdog timer  
reset function is masked by the EWT bit and no resets are issued to the timer through the RWT bit, the  
watchdog timer generates interrupt timeouts at a rate determined by the programmed divide ratio. WDIF  
(WDCON.3) is the interrupt flag set at timer termination and WTRF (WDCON.2) is the reset flag set  
following a watchdog reset timeout. The watchdog interrupt is enabled by the EWDI bit (EIE.4) when it  
is set to 1. The watchdog timer reset and interrupt timeouts are measured by counting system clock  
cycles.  
An independent watchdog timer functions as the crystal startup counter to count 65,536 crystal clock  
cycles before allowing the crystal oscillator to function as the system clock. This warmup time is verified  
by the watchdog timer following each power-up as well as each time the crystal is restarted following a  
stop mode. The watchdog is also used to establish a startup time whenever the CTM in the PMR register  
is set to enable the crystal multiplier (4X/ 2X ).  
One of the applications of the watchdog timer is for the watchdog to wake up the system from idle mode.  
The watchdog interrupt can be programmed to allow a system to wake up periodically to sample the  
external world.  
39 of 58  
DS89C420  
EXTERNAL RESET  
If the RST input is taken to a logic 1, the device is forced into a reset state. An external reset is  
accomplished by holding the RST pin high for at least 3 clock cycles while the oscillator is running. Once  
the reset state is invoked, it is maintained as long as RST is pulled to logic 1. When the RST is removed,  
the processor exits the reset state within 4 clock cycles and begins execution at address 0000h. If a RST is  
applied while the processor is in stop mode, the RST causes the oscillator to begin running and forces the  
program counter to 0000h. There is a reset delay of 65,536 clock cycles to allow the oscillator to stabilize.  
The RST pin is a bidirectional I/O. If a reset is caused by a power-fail reset, a watchdog timer reset, or an  
internal system reset, an output-reset pulse is also generated at the RST pin. This reset pulse is asserted as  
long as an internal reset is asserted and may not be able to drive the reset signal out if the RST pin is  
connected to an RC circuit. Connecting the RST pin to a capacitor does not affect the internal reset  
condition.  
OSCILLATOR FAIL DETECT  
The DS89C420 incorporates an oscillator fail-detect circuit that, when enabled, causes a reset if the  
crystal oscillator frequency falls below 20kHz and holds the chip in reset with the ring oscillator  
operating. The circuit is enabled by setting the OFDE (PCON.4) bit to a logic 1. The OFDE bit is only  
cleared from a logic 1 to a logic 0 by a power-fail reset or by software. A reset caused by an oscillator  
failure also sets the OFDF (PCON.5) to a logic 1. This flag is cleared by software or power-on reset.  
Note that this circuit does not force a reset when the oscillator is stopped by the software-enabled stop  
mode.  
POWER MANAGEMENT MODE  
Power management mode offers a software-controllable power-saving scheme by providing a reduced  
instruction cycle speed, which allows the DS89C420 to continue to operate while using an internally  
divided version of the clock source to save power. Power management mode is invoked by software  
setting the clock-divide control bits CD1 and CD0 (PMR.7-6) bits to 11b, which sets an operating rate of  
1024 oscillator cycles for 1 machine cycle. On all forms of reset, the clock-divide control bits default to  
10b, which selects 1 oscillator cycle per machine cycle.  
Since the clock speed choice affects all functional logic including timers, the DS89C420 implements  
several hardware switchback features that allow the clock speed to automatically return to the divide-by-1  
mode from a reduced cycle rate. This switchback function is enabled by setting the SWB (PMR.5) bit to a  
1 in software.  
When CD1 and CD0 are programmed to the divide-by-1024 mode and the SWB bit is also enabled, the  
system forces the clock-divide control bits to automatically reset to the divide-by-1 mode whenever the  
system detects an externally enabled (and allowed through nesting priorities) interrupt. The switchback  
occurs whenever one of the two conditions occur. The first switchback condition is initiated by the  
detection of a low on either INT0 , INT1, INT3, or INT5, or a high on INT2 or INT4 when the respective  
pin has been programmed and allowed (through nesting priorities) to issue an interrupt. The second  
switchback condition occurs when either serial port is enabled to receive data and is found to have an  
active-low transition on the respective receive input pin. Serial port transmit activity also forces a  
40 of 58  
DS89C420  
switchback if the SWB is set. Note that the serial port activity, as related to the switchback, is  
independent of the serial port interrupt relationship. Any attempt to change the clock divider to the  
divide-by-1024 mode while the serial port is either transmitting or receiving has no effect, leaving the  
clock control in the divide-by-1 mode. Note also that the switchback interrupt relationship requires that  
the respective external interrupt source is allowed to actually generate an interrupt as defined by the  
priority of the interrupt and the state of the nested interrupts, before the switchback can actually occur. An  
interrupt by the serial port is not required, nor is the setting of serial port enable. Disabling external  
interrupts and serial port receive/transmission mode disable the automatic switchback mode. Clearing the  
SWB bit also disables the switchback, and all interrupt and serial port controls of the clock divider are  
disabled. All other clock modes ignore the switchback relationship and are unaffected by interrupts and  
serial port activity.  
The basic divide-by-12 mode for the timers (TxMH, TxM = 00b), as well as the divide-by-32 and 64 for  
mode 2 on the serial ports, are maintained when running the processor with the oscillator divide ratio of  
0.25, 0.5, and 1. Serial ports and timers track the oscillator cycles per machine cycle when the higher  
divide ratio of 1024 is selected, and require the switchback function to automatically return to the  
divide-by-1 mode for proper operation when a qualified event occurs. Table 15 summarizes the effect of  
clock mode on timer operation.  
It is possible to enable a receive function on a serial port when incoming data is not present and then  
change to the higher divide ratio. An inactive serial port receive/transmit mode requires the receive input  
pin to remain high and all outgoing transmissions to be completed. During this inactive receive mode it is  
possible to change the clock-divide control bits from a divide-by-1 to a 1024 divide ratio. In the case  
when the serial port is being used to receive or transmit data it is very important to validate an attempted  
change in the clock-divide control bits (read CD1 and CD0 to verify write was allowed) before  
proceeding with low-power program functions.  
41 of 58  
DS89C420  
Table 15. EFFECT OF CLOCK MODE ON TIMER OPERATION (IN NUMBER  
OF OSCILLATOR CLOCKS)  
OSC. CYCLES  
PER SERIAL  
PORT CLOCK  
MODE 0  
OSC. CYCLES PER  
OSC. CYCLES  
PER TIMER 2  
CLOCK  
OSC. CYCLES PER  
SERIAL PORT  
CLOCK MODE 2  
TIMERS (0, 1, 2)  
CLOCK  
OSC.  
CYCLES  
PER  
4X/2X, CD1, CD0  
TxMH, TxM  
=
BAUD RATE  
MACHINE  
CYCLE  
GENERATOR  
SM2 = 0 SM2 = 1 SMOD = 0 SMOD = 1  
T2MH, T2M = xx  
00  
01  
1x  
100  
000  
x01  
0.25  
0.5  
12  
12  
1
2
0.25  
0.5  
2
2
3
6
1
2
64  
64  
32  
32  
1 (reserved)  
x10  
x11  
1 (default)  
1,024  
12  
4
1
2
12  
4
64  
32  
12,288 4,096 1,024  
2,048  
12,288  
4,096  
65,536  
32,768  
x = don’t care  
RING OSCILLATOR  
A ring oscillator, which typically runs at 10MHz, allows the processor to recover instantly from the stop  
mode.  
When the system is in stop mode the crystal is disabled. When stop mode is removed, the crystal requires  
a period of time to start up and stabilize. To allow the system to begin immediate execution of software  
following the removal of the stop mode, the ring oscillator is used to supply a system clock until the  
crystal startup time is satisfied. Once this time has passed, the ring oscillator is switched off and the  
system clock is switched over to the crystal oscillator. This function is programmable and is enabled by  
setting the RGSL bit (EXIF.1) to logic 1. When it is logic 0, the processor delays software execution until  
after the 65,536 crystal clock periods. To allow the processor to know whether it is being clocked by the  
ring or the crystal oscillator, an additional bit, termed the RGMD bit, indicates which clock source is  
being used. When the processor is running from the ring, the clock-divide control bits (CD1 and CD0 in  
the PMR register) are locked into the divide-by-1 mode (CD1:CD0 = 10b). The clock-divide control bits  
cannot be changed from this state until after the system clock transitions to the crystal oscillator  
(RGMD = 0).  
Note: The watchdog is permanently connected to the crystal oscillator and continues to run at the  
external clock rate. It is not driven by the ring oscillator.  
IDLE MODE  
Idle mode suspends the processor by holding the program counter in a static state. No instructions are  
fetched and no processing occurs. Setting the IDLE bit (PCON.0) to logic 1 invokes idle mode. The  
instruction that executes this step is the last instruction prior to freezing the program counter. Once in Idle  
mode, all resources are preserved but all peripheral clocks remain active, and the timers, watchdog, serial  
ports, and power monitor functions continue to operate, so that the processor can exit the idle mode using  
any interrupt sources that are enabled. The oscillator-detect circuit also continues to function when  
42 of 58  
DS89C420  
enabled. The IDLE bit is cleared automatically once idle mode is exited. On returning from the interrupt  
vector using the RETI instruction, the next address is the one that immediately follows the instruction that  
invoked the idle mode. Any processor resets also remove the idle mode.  
STOP MODE  
The stop mode disables all circuits within the processor. All on-chip clocks, timers, and serial port  
communication are stopped, and no processing is possible.  
Stop mode is invoked by setting the STOP bit (PCON.1) to logic 1. The processor enters the stop mode  
on the instruction that sets the bit. The processor can exit stop mode by using any of the six external  
interrupts that are enabled.  
An external reset by the RST pin unconditionally exits the processor from stop mode. If the BGS bit is set  
to logic 1, the bandgap provides a reset while in stop mode if V should drop below the VRST level. If  
CC  
BGS is 0, no reset is generated if VCC drops below VRST  
.
When the stop mode is removed, the processor waits for 65,536 clock cycles for the internal flash  
memory to warm up before starting normal execution. Also, the processor waits for the crystal warmup  
period if not using the ring oscillator.  
SERIAL I/O  
The DS89C420 provides a serial port (UART) that is identical to the 80C52. In addition, it includes a  
second hardware serial port that is a full duplicate of the standard one. This port optionally uses pins P1.2  
(RXD1) and P1.3 (TXD1) and has duplicate control functions included in new SFR locations.  
Both ports can operate simultaneously but can be at different baud rates or even in different modes. The  
second serial port has similar control registers (SCON1 at C0h, SBUF1 at C1h) as the original. The new  
serial port can only use timer 1 for timer-generated baud rates.  
Control for serial port 0 is provided by the SCON0 register while its I/O buffer is SBUF0. Registers  
SCON1 and SBUF1 provide the same functions for the second serial port. A full description of the use  
and operation of both serial ports is in the DS89C420 User’s Guide.  
INSTRUCTION SET  
The DS89C420 instructions are 100% binary compatible with the industry standard 8051, and are only  
different in the number of machine cycles used for the instructions. Some special conditions and features  
should be considered when analyzing the DS89C420 instruction set. Full details are given in the  
DS89C420 User’s Guide.  
43 of 58  
DS89C420  
ABSOLUTE MAXIMUM RATINGS*  
Voltage Range on Any Pin Relative to Ground  
Voltage Range on VCC Relative to Ground  
Operating Temperature Range  
-0.3V to (VCC + 0.5V)  
-0.3V to +6.0V  
-40°C to +85°C  
Storage Temperature Range  
-55°C to +125°C  
Soldering Temperature  
See IPC/JEDEC J-STD-020A  
* This is a stress rating only and functional operation of the device at these or other conditions beyond  
those indicated in the operations sections of this specification is not implied. Exposure to absolute  
maximum rating conditions for extended periods of time can affect reliability.  
Table 16. DC ELECTRICAL CHARACTERISTICS  
(VCC = 4.5V to 5.5V; TA = -40°C to +85°C) (Note 1)  
PARAMETER  
SYMBOL MIN TYP  
MAX UNITS NOTES  
Supply Voltage  
VCC  
VPFW  
VRST  
ICC  
4.5  
4.2  
5.0  
4.375  
4.125  
100  
5.5  
4.6  
V
V
2, 13  
Power-Fail Warning  
2, 12  
Reset Trip Point (Min. Operating Voltage)  
Supply Current Active Mode  
3.95  
4.35  
150  
V
2, 12, 13  
mA  
mA  
mA  
mA  
V
3
4
5
5
2
2
Supply Current Idle Mode at 33MHz  
Supply Current Stop Mode, Bandgap Disabled  
Supply Current Stop Mode, Bandgap Enabled  
Input Low Level  
IIDLE  
ISTOP  
ISPBG  
VIL  
40  
50  
40  
40  
-0.3  
2.0  
3.5  
+0.8  
VCC + 0.3  
Input High Level  
VIH  
V
Input High Level XTAL and RST  
Output Low Voltage; Port 1 and 3 at IOL = 1.6mA  
VIH2  
VOL1  
VCC + 0.3  
0.45  
V
V
2
2
0.15  
0.15  
Output Low Voltage; Port 0 and 2, ALE, PSEN  
at IOL = 3.2mA  
VOL2  
0.45  
V
2
Output High Voltage; Port 1, 2, and 3, ALE, PSEN at  
IOH = -50µA  
VOH1  
VOH2  
2.4  
2.4  
V
V
2, 7  
2, 8  
Output High Voltage; Port 1, 2, and 3 at IOH = -1.5mA  
Output High Voltage; Port 0 and 2 in Bus Mode at  
IOH = -8mA  
VOH3  
2.4  
2.4  
V
V
2, 6  
Output High Voltage, RST at IOL = -0.4mA  
VOH4  
2, 14  
Input Low Current; Port 1, 2, and 3 at 0.4V  
Transition Current from 1 to 0; Port 1, 2, and 3 at 2V  
Input Leakage Current, Port 0 in I/O Mode and EA  
Input Leakage Current, Port 0 in Bus Mode  
RST Pulldown Resistance  
IIL  
ITL  
IL  
-55  
-650  
-10  
µA  
µA  
µA  
µA  
kW  
9
+10  
+300  
170  
11  
10  
11  
IL  
-300  
50  
RRST  
44 of 58  
DS89C420  
NOTES:  
1) Specifications to -40°C are guaranteed by design and not production tested.  
2) All voltages are referenced to ground.  
3) Active current is measured with a 33MHz clock source driving XTAL1, VCC = RST = 5.5V. All other  
pins disconnected.  
4) Idle mode current measured with a 33MHz clock source driving XTAL1, VCC = 5.5V, RST at ground.  
All other pins disconnected.  
5) Stop mode measured with XTAL and RST grounded, VCC = 5.5V. All other pins disconnected.  
6) When addressing external memory.  
7) RST = 5.5V. This condition mimics the operation of pins in I/O mode.  
8) During a 0-to-1 transition, a one-shot drives the ports hard for two clock cycles. This measurement  
reflects a port pin in transition mode.  
9) Ports 1, 2, and 3 source transition current when being pulled down externally. The current reaches its  
maximum at approximately 2V.  
10) This port is a weak address holding latch in bus mode. Peak current occurs near the input transition  
point of the holding latch at approximately 2V.  
11) RST = 5.5V. Port 0 floating during reset and when in the logic-high state during I/O mode.  
12) While the specifications for V  
and VRST overlap, the design of the hardware makes it such that this  
PFW  
is not possible. Within the ranges given, there is a guaranteed separation between these two voltages.  
13) The user should note that this part is tested and guaranteed to operate down to 4.5V (10%) and that  
VRST (min) is specified below that point. This indicates that there is a range of voltages [VMIN to VRST  
(min)] where the processor’s operation is not guaranteed, but the reset trip point has not been reached.  
This should not be an issue in most applications, but should be considered when proper operation  
must be maintained at all times. For these applications, it may be desirable to use a more accurate  
external reset.  
14) Guaranteed by design.  
45 of 58  
DS89C420  
Table 17. AC CHARACTERISTICS  
(VCC = 4.5V to 5.5V; TA = -40°C to +85°C)*  
1 CYCLE  
2 CYCLE  
4 CYCLE  
PAGE MODE 2  
NON-PAGE MODE  
PARAMETER  
SYMBOL  
PAGE MODE 1  
MIN MAX  
PAGE MODE 1  
PAGE MODE 1  
UNITS  
NOTES  
MIN  
MAX  
33  
MIN  
MAX  
33  
MIN MAX  
MIN  
MAX  
System Clock  
1 / tCLCL  
1 / tCLCL  
0
33  
0
0
0
1
33  
33  
0
33  
MHz  
1
2
External Oscillator  
External Crystal  
1
33  
1
33  
1
33  
1
33  
0.5tCLCL - 2  
+ tSTC3  
tCLCL - 2 +  
tSTC3  
2tCLCL - 4 +  
tSTC3  
1.5tCLCL - 5 +  
tSTC3  
1.5tCLCL - 5 +  
tSTC3  
ALE Pulse Width  
tLHLL  
tAVLL  
tAVLL2  
tAVLL3  
tLLAX  
tLLAX2  
tLLAX3  
tLLIV  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
Port 0 Instruction Address  
Valid to ALE Low  
tCLCL - 2  
0.5tCLCL - 2  
Port 2 Instruction Address  
Valid to ALE Low  
0.5tCLCL - 4  
0.5tCLCL - 4  
1.5tCLCL - 5  
0.5tCLCL - 2  
tCLCL - 2  
Port 0 Data AddressValid  
to ALE Low  
tCLCL - 2 +  
tSTC3  
0.5tCLCL - 2 +  
tSTC3  
Program Address Hold  
After ALE Low  
0.5tCLCL - 8  
1.5tCLCL - 8  
2.5tCLCL - 8  
0.5tCLCL - 8  
0.5tCLCL - 8  
Address Hold After ALE  
Low MOVX Write  
0.5tCLCL - 8  
+ tSTC4  
1.5tCLCL - 8  
+ tSTC4  
2.5tCLCL - 8  
+ tSTC4  
0.5tCLCL - 8 +  
tSTC4  
0.5tCLCL - 8 +  
tSTC4  
Address Hold After ALE  
Low MOVX Read  
0.5tCLCL - 8  
+ tSTC4  
1.5tCLCL - 8  
+ tSTC4  
2.5tCLCL - 8  
+ tSTC4  
0.5tCLCL - 8 +  
tSTC4  
0.5tCLCL - 8 +  
tSTC4  
ALE Low to Valid  
Instruction In  
2.5tCLCL - 20  
2.5tCLCL - 20  
ALE Low to PSEN Low  
tLLPL  
tPLPH  
tPLIV  
1.5tCLCL - 6  
0.5tCLCL - 6  
PSEN Pulse Width for  
Program Fetch  
tCLCL - 5  
tCLCL - 5  
2tCLCL - 5  
tCLCL - 5  
2tCLCL - 5  
PSEN Low to Valid  
Instruction In  
tCLCL - 18  
tCLCL - 18  
2tCLCL - 18  
tCLCL - 18  
2tCLCL - 18  
46 of 58  
DS89C420  
1 CYCLE  
2 CYCLE  
4 CYCLE  
PAGE MODE 2  
MIN MAX  
NON-PAGE MODE  
PARAMETER  
SYMBOL  
PAGE MODE 1  
PAGE MODE 1  
PAGE MODE 1  
UNITS  
NOTES  
MIN  
MAX  
MIN  
MAX  
MIN  
MAX  
MIN  
MAX  
Input Instruction Hold  
After PSEN  
tPXIX  
0
0
0
0
0
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
ns  
Input Instruction Float  
After PSEN  
tPXIZ  
tCLCL - 5  
1.5tCLCL - 20  
3tCLCL - 20  
0
tCLCL - 5  
3tCLCL - 20  
3.5tCLCL - 20  
0
Port 0 Address to Valid  
Instruction In  
tAVIV0  
tAVIV2  
tPLAZ  
tRLRH  
tWLWH  
tRLDV  
tRHDX  
tRHDZ  
tLLDV  
tAVDV0  
tAVDV2  
Port 2 Address to Valid  
Instruction In  
tCLCL - 18  
1.5tCLCL - 18  
2.5tCLCL - 18  
PSEN Low to Port 0  
Address Float  
tCLCL - 5 +  
tSTC1  
tCLCL - 5 +  
tSTC1  
2tCLCL - 5 +  
tSTC1  
2tCLCL - 5 +  
tSTC1  
2tCLCL - 5 +  
tSTC1  
RD Pulse Width (P3.7)  
WR Pulse Width (P3.6)  
2
2
2
tCLCL - 5 +  
tSTC1  
tCLCL - 5 +  
tSTC1  
2tCLCL - 5 +  
tSTC1  
2tCLCL - 5 +  
tSTC1  
2tCLCL - 5 +  
tSTC1  
RD (P3.7) Low to Valid  
Data In  
tCLCL - 15 +  
tSTC1  
tCLCL - 15 +  
tSTC1  
2tCLCL - 15 +  
tSTC1  
2tCLCL - 15 +  
tSTC1  
2tCLCL - 15 +  
tSTC1  
Data Hold After RD (P3.7)  
Data Float After RD (P3.7)  
0
0
0
0
0
tCLCL - 5  
tCLCL - 5  
MOVX ALE Low to Input  
Data Valid  
2.5tCLCL - 20  
+ tSTC1  
2.5tCLCL - 20  
+ tSTC1  
2
2
2
Port 0 Address to Valid  
Data In  
3tCLCL - 20 +  
tSTC1  
3tCLCL - 20 +  
tSTC1  
Port 2 Address to Valid  
Data In  
tCLCL - 16 +  
tSTC1  
1.5tCLCL - 16  
+ tSTC1  
3.5tCLCL - 16  
+ tSTC1  
3.0tCLCL - 16  
+ tSTC1  
3.5tCLCL - 20  
+ tSTC1  
47 of 58  
DS89C420  
1 CYCLE  
2 CYCLE  
4 CYCLE  
PAGE MODE 2  
MIN MAX  
0.5tCLCL - 8 0.5tCLCL + 1 2tCLCL - 8 + 2tCLCL + 8 + 4tCLCL - 8 + 4tCLCL + 8 + 0.5tCLC L - 8 + 0.5tCLCL + 4 0.5tCLCL - 8 + 0.5tCLCL + 4  
NON-PAGE MODE  
PARAMETER  
SYMBOL  
PAGE MODE 1  
PAGE MODE 1  
PAGE MODE 1  
UNITS  
NOTES  
MIN  
MAX  
MIN  
MAX  
MIN  
MAX  
MIN MAX  
tLLRL  
ALE Low to RD or WR  
Low  
ns  
ns  
ns  
ns  
ns  
ns  
2
2
2
1
1
1
+ tSTC2  
+ tSTC2  
tSTC2  
tSTC2  
tSTC2  
tSTC2  
tSTC2  
+ tSTC2  
tSTC2  
+ tSTC2  
(tLLWL)  
tAVRL0  
Port 0 Address Valid to  
RD or WR Low  
1.5tCLCL - 5 +  
tSTC2  
tCLCL - 5 +  
tSTC2  
(tAVWL0)  
tAVRL2  
Port 2 Address Valid to  
RD or WR Low  
0.5tCLCL - 5  
+ tSTC5  
1.5tCLCL - 5  
+ tSTC5  
tCLCL - 5 +  
tSTC5  
1.5tCLCL - 5 +  
tSTC5  
0 + tSTC5 - 5  
(tAVWL2)  
Data Out Valid to WR  
Transition  
tQVWX  
-5  
-5  
20  
-5  
20  
-5  
20  
-5  
20  
Data Hold After WR  
tWHQX  
20  
tRHLH  
RD or WR High to ALE  
High  
tSTC2 - 2  
tSTC2 + 6  
tSTC2 - 2  
tSTC2 + 6  
tSTC2 - 2  
tSTC2 + 6  
tSTC2 - 2  
tSTC2 + 6  
tSTC2 - 2  
tSTC2 + 6  
(tWHLH)  
*Specifications to -40°C are guaranteed by design and not production tested.  
48 of 58  
DS89C420  
NOTES:  
1) The system clock frequency is dependent on the oscillator frequency and the setting of the clock-  
divide control bits (CD1 and CD0) and the crystal multiplier control bits (4X/ 2X and CTM) in the  
PMR register. The term “1 / tCLCL” used in the variable timing table is calculated through the use of  
the table given below.  
NUMBER OF OSCILLATOR CYCLE PER  
CD1  
CD0  
4X/ 2X  
SYSTEM CLOCK (1 / tCLCL  
)
1
0
X
X
X
0
0
0
1
1
0
0
1
0
1
4 Oscillator Cycles  
2 Oscillator Cycles  
Reserved  
1 Oscillator Cycle  
1 / 1024 Oscillator Cycle  
2) External MOVX instruction times are dependent on the setting of the MD2, MD1, and MD0 bits in  
the clock control register. The terms “tSTC1, tSTC2 , tSTC3 ” used in the variable timing table are calculated  
through the use of the table given below.  
MOVX  
INSTRUCTION  
tSTC1  
(tCLCL  
tSTC2  
(tCLCL  
tSTC3  
(tCLCL  
tSTC4  
(tCLCL  
tSTC5  
(tCLCL)  
MD2 MD1 MD0  
TIME  
(MACHINE  
)
)
)
)
CYCLES)  
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
2
3
4
5
9
0
2
6
10  
14  
18  
22  
0
1
1
1
5
5
5
0
0
0
0
4
4
4
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
10  
11  
1
1
1
12  
26  
5
4
1
1
3) Maximum load capacitance (to meet the above timing) for Port 0, ALE, PSEN , WR , and RD is  
limited to 60pF. Port 1, 2, 3, and 4 (except for P3.6, WR and P3.7, RD ) are tested with a capacitance  
of 50pF. XTAL1 and XTAL2 load capacitance is dependent on the frequency of the selected crystal.  
49 of 58  
DS89C420  
Figure 11. NON-PAGE MODE TIMING  
XTAL1  
tCLCL  
tLHLL  
ALE  
t
AVLL2  
tLLAX2  
tAVLL3  
tLLAX3  
tAVLL  
PSEN  
RD  
tLLPL  
tPLPH  
tRLRH  
tPLAZ  
tWHLH  
tPXIX  
tPLIV  
tLLWL  
tWLWH  
tLLDV  
WR  
tAVDV0  
tRLDV  
tAVWL0  
tLLIV  
tRHDX  
tRHDZ  
tWHQX  
tLLAX  
tAVIV0  
t
QVWX  
DATA  
OPCODE  
Port 0  
LSB  
MOVX  
LSB  
MOVX  
LSB  
DATA  
LSB  
LSB  
tPXIZ  
tAVWL2  
tAVDV2  
tAVIV2  
Port 2  
MSB  
MSB  
MSB  
MSB  
MSB  
50 of 58  
DS89C420  
Figure 12. PAGE-MODE 1 TIMING  
XTAL1  
tCLCL  
tLHLL  
ALE  
tPLPH  
tLLAX  
tWHLH  
tAVLL2  
tLLAX2  
tLLAX3  
PSEN  
RD  
t
LLWL  
tRLRH  
tWHQX  
tQVWX  
WR  
tPXIX  
tRHDX  
tWLWH  
tAVIV2  
tAVWL2  
t
PLIV  
tRLDV  
Port 0  
MOVX  
MOVX  
DATA  
DATA  
OPCODE  
OPCODE  
tAVDV2  
LSB  
LSB  
LSB  
MSB  
LSB  
MSB  
LSB  
MSB  
LSB  
MSB  
Port 2  
Figure 13. PAGE-MODE 2 TIMING  
XTAL1  
tCLCL  
tLHLL  
ALE  
tLLAX2  
tAVLL  
tAVLL2  
tAVLL3  
t
PLPH  
PSEN  
RD  
t
LLAX3  
tLLPL  
t
WHLH  
tPLAZ  
t
PLIV  
t
RLRH  
t
LLWL  
t
LLDV  
tWLWH  
tRLDV  
WR  
tAVIV0  
tAVWL0  
tAVWL2  
tAVDV0  
tPXIX  
tLLIV  
t
WHQX  
tRHDX  
Port 0  
LSB  
LSB  
LSB  
LSB  
LSB  
LSB  
tPXIZ  
tRHDZ  
t
AVDV2  
tQVWX  
t
LLAX  
tAVIV2  
Port 2  
MSB  
OPCODE  
MOVX  
MOVX  
MSB  
DATA  
MSB  
OPCODE  
MSB  
DATA  
51 of 58  
DS89C420  
Table 18. EXTERNAL CLOCK CHARACTERISTICS  
(VCC = 4.5V to 5.5V; TA = -40°C to +85°C)*  
PARAMETER  
Clock High Time  
Clock Low Time  
Clock Rise Time  
Clock Fall Time  
SYMBOL  
MIN  
MAX  
UNITS  
tCHCX  
tCLCX  
tCLCH  
tCHCL  
10  
10  
ns  
ns  
ns  
ns  
5
5
*Specifications to -40°C are guaranteed by design and not production tested.  
Table 19. SERIAL PORT MODE 0 TIMING CHARACTERISTICS  
(VCC = 4.5V to 5.5V; TA = -40°C to +85°C)*  
33MHz  
VARIABLE  
PARAMETER  
SYMBOL  
MAX  
MIN MAX  
MIN  
MAX  
Clock Cycle Time  
360  
12tCLCL  
SM2 = 0  
SM2 = 1  
tXLXL  
ns  
120  
4tCLCL  
Output Data Setup to Clock Rising  
SM2 = 0  
200  
40  
10tCLCL - 100  
ns  
ns  
ns  
ns  
tQVXH  
tXHQX  
tXHDX  
tXHDV  
3tCLCL - 10  
SM2 = 1  
Output Data Hold to Clock Rising  
SM2 = 0  
50  
20  
2tCLCL - 10  
tCLCL - 100  
SM2 = 1  
Input Data Hold after Clock Rising  
SM2 = 0  
0
0
0
0
SM2 = 1  
Clock Rising Edge to Input Data Valid  
SM2 = 0  
200  
40  
10tCLCL - 100  
3tCLCL - 50  
SM2 = 1  
*Specifications to -40°C are guaranteed by design and not production tested.  
Note: SM2 is the serial port 0, mode bit 2. When serial port 0 is operating in mode 0 (SM0 = SM1 = 0),  
SM2 determines the number of crystal clocks in a serial-port clock cycle.  
52 of 58  
DS89C420  
Figure 14. SERIAL PORT TIMING  
SERIAL PORT (SYNCHRONOUS MODE)  
SM2 = 1 TDX CLOCK = XTAL FREQ/4  
ALE  
PSEN  
tQVXH  
tXHQX  
WRITE TO SBUF  
D0  
DI  
D2  
D3  
D4  
D5  
D6  
D7  
RXD DATA OUT  
TXD CLOCK  
TI  
TRANSMIT  
t
XLXL  
WRITE TO SCON  
TO CLEAR RI  
RXD DATA IN  
TXD CLOCK  
R1  
D0  
DI  
D2  
D3  
D4  
D5  
D6  
D7  
RECEIVE  
tXHDV  
tXHDX  
SERIAL PORT (SYNCHRONOUS MODE)  
SM2 = 0 TDX CLOCK = XTAL FREQ/12  
ALE  
PSEN  
1/(XTAL FREQ/12)  
DI  
WRITE TO SBUF  
RXD DATA OUT  
D0  
D6  
D7  
TXD CLOCK  
TI  
WRITE TO SCON  
TO CLEAR RI  
RXD DATA IN  
TXD CLOCK  
D0  
DI  
D6  
D7  
R1  
53 of 58  
DS89C420  
Table 20. POWER CYCLE TIMING CHARACTERISTICS  
(VCC = 4.5V to 5.5V; TA = -40°C to +85°C) (Note 1)  
PARAMETER  
SYMBOL  
MIN  
TYP  
MAX  
UNITS  
NOTES  
Crystal Startup Time  
tCSU  
8
ms  
2
Power-On Reset Delay  
tPOR  
65,536  
tCLCL  
3
NOTES:  
1) Specifications to -40°C are guaranteed by design and not production tested.  
2) Startup time for a crystal varies with load capacitance and manufacturer. Time shown is for a  
11.0592MHz crystal manufactured by Fox Electronics.  
3) Reset delay is a synchronous counter of crystal oscillations after crystal startup. Counting begins  
when the level on the XTAL1 pin meets the VIH2 criteria. At 33MHz, this time is 1.99ms.  
Table 21. FLASH MEMORY PROGRAMMING CHARACTERISTICS  
(VCC = 4.5V to 5.5V; TA = +21°C to +27°C)  
PARAMETER  
SYMBOL  
MIN  
TYP  
MAX  
UNITS  
Oscillator Frequency  
1 / tCLCL  
4
6
MHz  
Address Setup to PROG Low  
tAVGL  
tGHAX  
tDVGL  
48tCLCL  
48tCLCL  
48tCLCL  
Address Hold After PROG  
Data Setup to PROG Low  
Data Hold After PROG  
tGHDX  
tGLGH  
tAVQV  
tELQV  
48tCLCL  
85  
PROG Pulse Width  
100  
ms  
ms  
Address to Data Valid  
Enable Low to Data Valid  
48tCLCL  
48tCLCL  
Data Float After Enable  
tEHQZ  
tGHGL  
0
48tCLCL  
PROG High to PROG Low  
10  
54 of 58  
DS89C420  
40-PIN PDIP (600MIL)  
PKG  
DIM  
A
40-PIN  
MIN  
MAX  
0.200  
A1  
A2  
b
0.015  
0.140  
0.014  
0.008  
1.980  
0.600  
0.530  
0.090  
0.115  
0.600  
0.160  
0.022  
0.012  
2.085  
0.625  
0.555  
0.110  
0.145  
0.700  
c
D
E
E1  
e
L
eB  
56–G5000–000  
Dimensions are in inches (in).  
55 of 58  
DS89C420  
44-PIN PLCC  
NOTES:  
1) Pin 1 identifier to be located in zone indicated.  
2) Controlling dimensions are in inches (in).  
56 of 58  
DS89C420  
44-PIN TQFP  
57 of 58  
DS89C420  
REVISION HISTORY  
1) Original issue, 092200.  
2) Added errata, 122601. (See http://www.maxim-ic.com/errata for more details.)  
3) Official product introduction release, 042702.  
58 of 58  

相关型号:

DS89C420-QNL

Ultra-High-Speed Microcontroller
MAXIM

DS89C420_02

Ultra-High-Speed Microcontroller
MAXIM

DS89C420_05

Ultra-High-Speed Microcontroller
MAXIM

DS89C430

Ultra-High-Speed Flash Microcontrollers
DALLAS

DS89C430

Ultra-High-Speed Flash Microcontrollers
MAXIM

DS89C430-DS89C450

Ultra-High-Speed Flash Microcontrollers
DALLAS

DS89C430-ENG

Ultra-High-Speed Flash Microcontrollers
DALLAS

DS89C430-ENL

Ultra-High-Speed Flash Microcontrollers
DALLAS

DS89C430-ENL

Ultra-High-Speed Flash Microcontrollers
MAXIM

DS89C430-ENL+

Ultra-High-Speed Flash Microcontrollers
DALLAS

DS89C430-ENL+

Ultra-High-Speed Flash Microcontrollers
MAXIM

DS89C430-MNG

Ultra-High-Speed Flash Microcontrollers
DALLAS