INTEGRATED CIRCUITS 89C536/89C538 80C51 8-bit microcontroller family 16K/64K/512 FLASH Preliminary specification Supersedes data of 1997 Dec 02 IC20 Data Handbook 1998 Apr 24 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 DESCRIPTION FEATURES • 80C51 Central Processing Unit • 16k × 8 (89C536) or 64k × 8 (89C538), FLASH EPROM Program The 89C536/89C538 are Single-Chip 8-Bit Microcontrollers manufactured in advanced CMOS process and are derivatives of the 80C51 microcontroller family. All the devices have the same instruction set as the 80C51. Memory • 512 × 8 RAM, externally expandable to 64k × 8 Data Memory • Three 16-bit counter/timers • Up to 3 external interrupt request inputs • 6 interrupt sources with 2 priority levels • Four 8-bit I/O ports • Full-duplex UART • Power control modes The devices also have four 8-bit I/O ports, three 16-bit timer/event counters, a multi-source, two-priority-level, nested interrupt structure, UART and on-chip oscillator and timing circuits. For systems that require extra data memory capability up to 64k bytes, each can be expanded using standard TTL-compatible memories and logic. The 89C536/89C538 contain a non-volatile FLASH program memory (16k bytes in the 89C536, and 64k bytes in the 89C538). The devices have 512 bytes of RAM data memory. – Idle mode – Power down mode, with wakeup from power down using external interrupt • 44-pin PLCC and QFP packages ORDERING INFORMATION PART NUMBER MEMORY SIZE TEMPERATURE RANGE (°C) AND PACKAGE FREQ. (MHz) DRAWING NUMBER P89C536NBA A 16k bytes 0 to +70, 44-pin Plastic Leaded Chip Carrier 33 SOT187-2 P89C536NBB B 16k bytes 0 to +70, 44-pin Plastic Quad Flat Package 33 SOT307-2 P89C538NBA A 64k bytes 0 to +70, 44-pin Plastic Leaded Chip Carrier 33 SOT187-2 P89C538NBB B 64k bytes 0 to +70, 44-pin Plastic Quad Flat Package 33 SOT307-2 1998 Apr 24 2 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 BLOCK DIAGRAM P0.0–P0.7 P2.0–P2.7 PORT 2 DRIVERS PORT 0 DRIVERS VCC VSS RAM ADDR REGISTER PORT 0 LATCH RAM ROF/ EPROM PORT 2 LATCH 8 B REGISTER STACK POINTER ACC PROGRAM ADDRESS REGISTER TMP1 TMP2 BUFFER ALU SFRs PSW PC INCREMENTER TIMERS 8 16 PSEN ALE/PROG EAVPP RST TIMING AND CONTROL INSTRUCTION REGISTER PROGRAM COUNTER DPTR’S MULTIPLE PD PORT 1 LATCH PORT 3 LATCH PORT 1 DRIVERS PORT 3 DRIVERS P1.0–P1.7 P3.0–P3.7 OSCILLATOR XTAL1 XTAL2 SU00854 LOGIC SYMBOL PROGRAMMING INFORMATION: Programmers are provided by: VCC VSS Company Advin BP Microsystem Data I/O HiLo PORT 0 XTAL1 ADDRESS AND DATA BUS XTAL2 RST EA/VPP RxD TxD INT0 INT1 T0 T1 WR RD PORT 2 ALE/PROG PORT 3 SECONDARY FUNCTIONS PSEN PORT 1 T2 T2EX ADDRESS BUS SU00830 1998 Apr 24 3 Phone Number Internet Address 1–800–627–2456 1–800–225–2102 http://www.bpmicro.com 1–206–881–6444 http://www.data–io.com Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 PLASTIC LEADED CHIP CARRIER PIN FUNCTIONS 6 1 PLASTIC QUAD FLAT PACK PIN FUNCTIONS 40 7 44 34 39 1 33 LCC PQFP 17 29 18 11 23 28 12 Pin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Function NIC* P1.0/T2 P1.1/T2EX P1.2/ECI P1.3/CEX0 P1.4/CEX1 P1.5/CEX2 P1.6/CEX3 P1.7/CEX4 RST P3.0/RxD NIC* P3.1/TxD P3.2/INT0 P3.3/INT1 Pin 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 * NO INTERNAL CONNECTION 1998 Apr 24 Function P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD XTAL2 XTAL1 VSS NIC* P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 Pin 31 32 33 34 35 36 37 38 39 40 41 42 43 44 Function P2.7/A15 PSEN ALE/PROG NIC* EA/VPP P0.7/AD7 P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 VCC Pin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 SU00023 Function P1.5/CEX2 P1.6/CEX3 P1.7/CEX4 RST P3.0/RxD NIC* P3.1/TxD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD XTAL2 XTAL1 * NO INTERNAL CONNECTION 4 Pin 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 22 Function VSS NIC* P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 PSEN ALE/PROG NIC* EA/VPP P0.7/AD7 Pin 31 32 33 34 35 36 37 38 39 40 41 42 43 44 Function P0.6/AD6 P0.5/AD5 P0.4/AD4 P0.3/AD3 P0.2/AD2 P0.1/AD1 P0.0/AD0 VCC NIC* P1.0/T2 P1.1/T2EX P1.2/ECI P1.3/CEX0 P1.4/CEX1 SU00024 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 PIN DESCRIPTIONS PIN NUMBER MNEMONIC LCC QFP TYPE VSS 1, 22 16, 39 I Ground: 0V reference. VCC 23, 44 17, 38 I Power Supply: This is the power supply voltage for normal, idle, and power-down operation. P0.0–0.7 43–36 37–30 I/O Port 0: Port 0 is an open-drain, bidirectional I/O port. Port 0 pins that have 1s written to them float and can be used as high-impedance inputs. Port 0 is also the multiplexed low-order address and data bus during accesses to external program and data memory. In this application, it uses strong internal pull-ups when emitting 1s. Port 0 also outputs the code bytes during program verification and received code bytes during EEPROM programming. External pull-ups are required during program verification. 2–9 40–44, 1–3 I/O Port 1: Port 1 is an 8-bit bidirectional I/O port with internal pull-ups. Port 1 pins that have 1s written to them are pulled high by the internal pull-ups and can be used as inputs. As inputs, port 1 pins that are externally pulled low will source current because of the internal pull-ups. (See DC Electrical Characteristics: IIL). Port 1 also receives the low-order address byte during program memory verification. 2 3 40 41 I/O I P2.0–P2.7 24–31 18–25 I/O Port 2: Port 2 is an 8-bit bidirectional I/O port with internal pull-ups. Port 2 pins that have 1s written to them are pulled high by the internal pull-ups and can be used as inputs. As inputs, port 2 pins that are externally being pulled low will source current because of the internal pull-ups. (See DC Electrical Characteristics: IIL). Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @DPTR). In this application, it uses strong internal pull-ups when emitting 1s. Some Port 2 pins receive the high order address bits during EEPROM programming and verification. P3.0–P3.7 11, 13–19 5, 7–13 I/O 11 13 14 15 16 17 18 19 5 7 8 9 10 11 12 13 I O I I I I O O Port 3: Port 3 is an 8-bit bidirectional I/O port with internal pull-ups. Port 3 pins that have 1s written to them are pulled high by the internal pull-ups and can be used as inputs. As inputs, port 3 pins that are externally being pulled low will source current because of the pull-ups. (See DC Electrical Characteristics: IIL). Port 3 also serves the special features of the 80C51 family, as listed below: RxD (P3.0): Serial input port TxD (P3.1): Serial output port INT0 (P3.2): External interrupt INT1 (P3.3): External interrupt T0 (P3.4): Timer 0 external input T1 (P3.5): Timer 1 external input WR (P3.6): External data memory write strobe RD (P3.7): External data memory read strobe RST 10 4 I Reset: A high on this pin for two machine cycles while the oscillator is running, resets the device. An internal diffused resistor to VSS permits a power-on reset using only an external capacitor to VCC. ALE/PROG 33 27 O Address Latch Enable/Program Pulse: Output pulse for latching the low byte of the address during an access to external memory. In normal operation, ALE is emitted at a constant rate of 1/6 the oscillator frequency, and can be used for external timing or clocking. Note that one ALE pulse is skipped during each access to external data memory. This pin is also the program pulse input (PROG) during EEPROM programming. PSEN 32 26 O Program Store Enable: The read strobe to external program memory. When the processor is executing code from the external program memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory. PSEN is not activated during fetches from internal program memory. EA/VPP 35 29 I External Access Enable/Programming Supply Voltage: EA must be externally held low to enable the device to fetch code from external program memory. If EA is held high, the device executes from internal program memory. This pin also receives the 12V programming supply voltage (VPP) during EPROM programming. EA is internally latched on Reset. XTAL1 21 15 I Crystal 1: Input to the inverting oscillator amplifier and input to the internal clock generator circuits. XTAL2 20 14 O Crystal 2: Output from the inverting oscillator amplifier. P1.0–P1.7 NAME AND FUNCTION Alternate functions for Port 1 include: T2 (P1.0): Timer/Counter 2 external count input T2EX (P1.1): Timer/Counter 2 Reload/Capture NOTE: To avoid “latch-up” effect at power-on, the voltage on any pin at any time must not be higher than VCC + 0.5V or VSS – 0.5V, respectively. 1998 Apr 24 5 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 Table 1. Special Function Registers SYMBOL DESCRIPTION DIRECT ADDRESS BIT ADDRESS, SYMBOL, OR ALTERNATIVE PORT FUNCTION MSB LSB RESET VALUE ACC* Accumulator E0H E7 E6 E5 E4 E3 E2 E1 E0 00H B* B register F0H F7 F6 F5 F4 F3 F2 F1 F0 00H DPTR: DPH DPL Data Pointer (2 bytes) Data Pointer High Data Pointer Low 83H 82H 00H 00H AF IE* IP* P0* P1* P2* Interrupt Enable Interrupt Priority Port 0 Port 1 Port 2 A8H B8H 80H 90H A0H AE AD AC AB AA A9 A8 EA – BF BE ET2 ES ET1 EX1 ET0 EX0 BD BC BB BA B9 B8 – – PT2 PS PT1 PX1 PT0 PX0 87 86 85 84 83 82 81 80 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 97 96 95 94 93 92 91 90 – – – – – – T2EX T2 A7 A6 A5 A4 A3 A2 A1 A0 AD15 AD14 AD13 AD12 AD11 AD10 AD9 AD8 B7 B6 B5 B4 B3 B2 B1 B0 00H x0000000B FFH FFH FFH P3* Port 3 B0H RD WR T1 T0 INT1 INT0 TxD RxD FFH PCON# Power Control 87H SMOD EXTRAM – – GF1 GF0 PD IDL 00xx0000B D7 D6 D5 D4 D3 D2 D1 D0 PSW* Program Status Word D0H CY AC F0 RS1 RS0 OV – P RACAP2H# RACAP2L# Timer 2 Capture High Timer 2 Capture Low CBH CAH SBUF Serial Data Buffer 99H SCON* Serial Control 98H SP Stack Pointer 81H TCON* Timer Control 88H 00H 00H 00H xxxxxxxxB 9F 9E 9D 9C 9B 9A 99 98 SM0 SM1 SM2 REN TB8 RB8 TI RI 00H 07H 8F 8E 8D 8C 8B 8A 89 88 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 CF CE CD CC CB CA C9 C8 00H T2CON* TH0 TH1 TH2# TL0 TL1 TL2# Timer 2 Control Timer High 0 Timer High 1 Timer High 2 Timer Low 0 Timer Low 1 Timer Low 2 C8H 8CH 8DH CDH 8AH 8BH CCH TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 00H 00H 00H 00H 00H 00H 00H TMOD Timer Mode 89H GATE C/T M1 M0 GATE C/T M1 M0 00H * SFRs are bit addressable. # SFRs are modified from or added to the 80C51 SFRs. – Reserved bits. 1998 Apr 24 6 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 interrupt service routine and continued), or by a hardware reset which starts the processor in the same manner as a power-on reset. OSCILLATOR CHARACTERISTICS XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier. The pins can be configured for use as an on-chip oscillator. Power-Down Mode To save even more power, a Power Down mode (see Table 2) can be invoked by software. In this mode, the oscillator is stopped and the instruction that invoked Power Down is the last instruction executed. The on-chip RAM and Special Function Registers retain their values down to 2.0V and care must be taken to return VCC to the minimum specified operating voltages before the Power Down Mode is terminated. To drive the device from an external clock source, XTAL1 should be driven while XTAL2 is left unconnected. There are no requirements on the duty cycle of the external clock signal, because the input to the internal clock circuitry is through a divide-by-two flip-flop. However, minimum and maximum high and low times specified in the data sheet must be observed. Either a hardware reset or external interrupt can be used to exit from Power Down. Reset redefines all the SFRs but does not change the on-chip RAM. An external interrupt allows both the SFRs and the on-chip RAM to retain their values. RESET A reset is accomplished by holding the RST pin high for at least two machine cycles (24 oscillator periods), while the oscillator is running. To insure a good power-on reset, the RST pin must be high long enough to allow the oscillator time to start up (normally a few milliseconds) plus two machine cycles. At power-on, the voltage on VCC and RST must come up at the same time for a proper start-up. Ports 1, 2, and 3 will asynchronously be driven to their reset condition when a voltage above VIH1 (min.) is applied to RESET. To properly terminate Power Down the reset or external interrupt should not be executed before VCC is restored to its normal operating level and must be held active long enough for the oscillator to restart and stabilize (normally less than 10ms). With an external interrupt, INT0 and INT1 must be enabled and configured as level-sensitive. Holding the pin low restarts the oscillator but bringing the pin back high completes the exit. Once the interrupt is serviced, the next instruction to be executed after RETI will be the one following the instruction that put the device into Power Down. LOW POWER MODES Idle Mode In the idle mode (see Table 2), the CPU puts itself to sleep while all of the on-chip peripherals stay active. The instruction to invoke the idle mode is the last instruction executed in the normal operating mode before the idle mode is activated. The CPU contents, the on-chip RAM, and all of the special function registers remain intact during this mode. The idle mode can be terminated either by any enabled interrupt (at which time the process is picked up at the Design Consideration • To eliminate the possibility of an unexpected write when Idle is terminated by reset, the instruction following the one that invokes Idle should not be one that writes to a port pin or to memory. Table 2. External Pin Status During Idle and Power-Down Mode MODE PROGRAM MEMORY ALE PSEN PORT 0 PORT 1 PORT 2 PORT 3 Idle Internal 1 1 Data Data Data Data Idle External 1 1 Float Data Address Data Power-down Internal 0 0 Data Data Data Data Power-down External 0 0 Float Data Data Data 1998 Apr 24 7 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 illustrated in Figure 2 (There is no reload value for TL2 and TH2 in this mode. Even when a capture event occurs from T2EX, the counter keeps on counting T2EX pin transitions or osc/12 pulses.). TIMER 2 OPERATION Timer 2 Timer 2 is a 16-bit Timer/Counter which can operate as either an event timer or an event counter, as selected by C/T2* in the special function register T2CON (see Figure 1). Timer 2 has three operating modes:Capture, Auto-reload, and Baud Rate Generator, which are selected by bits in the T2CON as shown in Table 3. Auto-Reload Mode In the 16-bit auto-reload mode, Timer 2 can be configured as either a timer or counter (C/T2* in T2CON). Figure 3 shows the auto–reload mode of Timer 2. In this mode there are two options selected by bit EXEN2 in T2CON register. If EXEN2=0, then Timer 2 counts up to 0FFFFH and sets the TF2 (Overflow Flag) bit upon overflow. This causes the Timer 2 registers to be reloaded with the 16-bit value in RCAP2L and RCAP2H. Capture Mode In the capture mode there are two options which are selected by bit EXEN2 in T2CON. If EXEN2=0, then timer 2 is a 16-bit timer or counter (as selected by C/T2* in T2CON) which, upon overflowing sets bit TF2, the timer 2 overflow bit. This bit can be used to generate an interrupt (by enabling the Timer 2 interrupt bit in the IE register/SFR table). If EXEN2= 1, Timer 2 operates as described above, but with the added feature that a 1- to -0 transition at external input T2EX causes the current value in the Timer 2 registers, TL2 and TH2, to be captured into registers RCAP2L and RCAP2H, respectively. In addition, the transition at T2EX causes bit EXF2 in T2CON to be set, and EXF2 like TF2 can generate an interrupt (which vectors to the same location as Timer 2 overflow interrupt. The Timer 2 interrupt service routine can interrogate TF2 and EXF2 to determine which event caused the interrupt). The capture mode is The values in RCAP2L and RCAP2H are preset by software. If EXEN2=1, then a 16-bit reload can be triggered either by an overflow or by a 1-to-0 transition at input T2EX. This transition also sets the EXF2 bit. The Timer 2 interrupt, if enabled, can be generated when either TF2 or EXF2 are 1. The external flag EXF2 toggles when Timer 2 underflows or overflows. This EXF2 bit can be used as a 17th bit of resolution if needed. The EXF2 flag does not generate an interrupt in this mode of operation. (MSB) TF2 (LSB) EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2 Symbol Position Name and Significance TF2 T2CON.7 EXF2 T2CON.6 RCLK T2CON.5 TCLK T2CON.4 EXEN2 T2CON.3 TR2 C/T2 T2CON.2 T2CON.1 CP/RL2 T2CON.0 Timer 2 overflow flag set by a Timer 2 overflow and must be cleared by software. TF2 will not be set when either RCLK or TCLK = 1. Timer 2 external flag set when either a capture or reload is caused by a negative transition on T2EX and EXEN2 = 1. When Timer 2 interrupt is enabled, EXF2 = 1 will cause the CPU to vector to the Timer 2 interrupt routine. EXF2 must be cleared by software. Receive clock flag. When set, causes the serial port to use Timer 2 overflow pulses for its receive clock in modes 1 and 3. RCLK = 0 causes Timer 1 overflow to be used for the receive clock. Transmit clock flag. When set, causes the serial port to use Timer 2 overflow pulses for its transmit clock in modes 1 and 3. TCLK = 0 causes Timer 1 overflows to be used for the transmit clock. Timer 2 external enable flag. When set, allows a capture or reload to occur as a result of a negative transition on T2EX if Timer 2 is not being used to clock the serial port. EXEN2 = 0 causes Timer 2 to ignore events at T2EX. Start/stop control for Timer 2. A logic 1 starts the timer. Timer or counter select. (Timer 2) 0 = Internal timer (OSC/12) 1 = External event counter (falling edge triggered). Capture/Reload flag. When set, captures will occur on negative transitions at T2EX if EXEN2 = 1. When cleared, auto-reloads will occur either with Timer 2 overflows or negative transitions at T2EX when EXEN2 = 1. When either RCLK = 1 or TCLK = 1, this bit is ignored and the timer is forced to auto-reload on Timer 2 overflow. SU00866 Figure 1. Timer/Counter 2 (T2CON) Control Register Table 3. Timer 2 Operating Modes RCLK + TCLK CP/RL2 TR2 0 0 1 16-bit Auto-reload 0 1 1 16-bit Capture 1 X 1 Baud rate generator X X 0 (off) 1998 Apr 24 MODE 8 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH OSC 89C536/89C538 ÷ 12 C/T2 = 0 TL2 (8-bits) TH2 (8-bits) TF2 C/T2 = 1 T2 Pin Control TR2 Capture Transition Detector Timer 2 Interrupt RCAP2L RCAP2H T2EX Pin EXF2 Control EXEN2 SU00066 Figure 2. OSC Timer 2 in Capture Mode ÷ 12 C/T2 = 0 TL2 (8-BITS) TH2 (8-BITS) C/T2 = 1 T2 PIN CONTROL TR2 RELOAD TRANSITION DETECTOR RCAP2L RCAP2H TF2 TIMER 2 INTERRUPT T2EX PIN EXF2 CONTROL SU00067 EXEN2 Figure 3. 1998 Apr 24 Timer 2 in Auto-Reload Mode 9 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 Timer 1 Overflow ÷2 NOTE: OSC. Freq. is divided by 2, not 12. “0” ÷2 OSC “1” C/T2 = 0 SMOD TL2 (8-bits) “1” TH2 (8-bits) “0” RCLK C/T2 = 1 T2 Pin Control ÷ 16 “1” TR2 Reload Transition Detector RCAP2L T2EX Pin EXF2 RCAP2H RX Clock “0” TCLK ÷ 16 TX Clock Timer 2 Interrupt Control EXEN2 Note availability of additional external interrupt. Figure 4. Table 4. Timer 2 in Baud Rate Generator Mode The baud rates in modes 1 and 3 are determined by Timer 2’s overflow rate given below: Timer 2 Generated Commonly Used Baud Rates Modes 1 and 3 Baud Rates Timer 2 Overflow Rate 16 Timer 2 Ba d Rate Baud Osc Freq 375K 9.6K 2.8K 2.4K 1.2K 300 110 300 110 12MHz 12MHz 12MHz 12MHz 12MHz 12MHz 12MHz 6MHz 6MHz RCAP2H RCAP2L FF FF FF FF FE FB F2 FD F9 FF D9 B2 64 C8 1E AF 8F 57 The timer can be configured for either “timer” or “counter” operation. In many applications, it is configured for “timer” operation (C/T2*=0). Timer operation is different for Timer 2 when it is being used as a baud rate generator. Usually, as a timer it would increment every machine cycle (i.e., 1/12 the oscillator frequency). As a baud rate generator, it increments every state time (i.e., 1/2 the oscillator frequency). Thus the baud rate formula is as follows: Modes 1 and 3 Baud Rates = Oscillator Frequency [32 [65536 (RCAP2H, RCAP2L)]] Baud Rate Generator Mode Where: (RCAP2H, RCAP2L)= The content of RCAP2H and RCAP2L taken as a 16-bit unsigned integer. Bits TCLK and/or RCLK in T2CON (Table 3) allow the serial port transmit and receive baud rates to be derived from either Timer 1 or Timer 2. When TCLK= 0, Timer 1 is used as the serial port transmit baud rate generator. When TCLK= 1, Timer 2 is used as the serial port transmit baud rate generator. RCLK has the same effect for the serial port receive baud rate. With these two bits, the serial port can have different receive and transmit baud rates – one generated by Timer 1, the other by Timer 2. The Timer 2 as a baud rate generator mode shown in Figure 4, is valid only if RCLK and/or TCLK = 1 in T2CON register. Note that a rollover in TH2 does not set TF2, and will not generate an interrupt. Thus, the Timer 2 interrupt does not have to be disabled when Timer 2 is in the baud rate generator mode. Also if the EXEN2 (T2 external enable flag) is set, a 1-to-0 transition in T2EX (Timer/counter 2 trigger input) will set EXF2 (T2 external flag) but will not cause a reload from (RCAP2H, RCAP2L) to (TH2,TL2). Therefore when Timer 2 is in use as a baud rate generator, T2EX can be used as an additional external interrupt, if needed. Figure 4 shows the Timer 2 in baud rate generation mode. The baud rate generation mode is like the auto-reload mode,in that a rollover in TH2 causes the Timer 2 registers to be reloaded with the 16-bit value in registers RCAP2H and RCAP2L, which are preset by software. 1998 Apr 24 SU00068 10 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 If Timer 2 is being clocked internally , the baud rate is: When Timer 2 is in the baud rate generator mode, one should not try to read or write TH2 and TL2. As a baud rate generator, Timer 2 is incremented every state time (osc/2) or asynchronously from pin T2; under these conditions, a read or write of TH2 or TL2 may not be accurate. The RCAP2 registers may be read, but should not be written to, because a write might overlap a reload and cause write and/or reload errors. The timer should be turned off (clear TR2) before accessing the Timer 2 or RCAP2 registers. Baud Rate + [32 f OSC [65536 * (RCAP2H, RCAP2L)]] Where fOSC= Oscillator Frequency To obtain the reload value for RCAP2H and RCAP2L, the above equation can be rewritten as: Table 4 shows commonly used baud rates and how they can be obtained from Timer 2. RCAP2H, RCAP2L + 65536 * ǒ 32 Ǔ f OSC Baud Rate Summary Of Baud Rate Equations Timer/Counter 2 Set-up Timer 2 is in baud rate generating mode. If Timer 2 is being clocked through pin T2(P1.0) the baud rate is: Except for the baud rate generator mode, the values given for T2CON do not include the setting of the TR2 bit. Therefore, bit TR2 must be set, separately, to turn the timer on. see Table 5 for set-up of Timer 2 as a timer. Also see Table 6 for set-up of Timer 2 as a counter. Baud Rate + Timer 2 Overflow Rate 16 Table 5. Timer 2 as a Timer T2CON MODE INTERNAL CONTROL (Note 1) EXTERNAL CONTROL (Note 2) 16-bit Auto-Reload 00H 08H 16-bit Capture 01H 09H Baud rate generator receive and transmit same baud rate 34H 36H Receive only 24H 26H Transmit only 14H 16H Table 6. Timer 2 as a Counter TMOD MODE INTERNAL CONTROL (Note 1) EXTERNAL CONTROL (Note 2) 16-bit 02H 0AH Auto-Reload 03H 0BH NOTES: 1. Capture/reload occurs only on timer/counter overflow. 2. Capture/reload occurs on timer/counter overflow and a 1-to-0 transition on T2EX (P1.1) pin except when Timer 2 is used in the baud rate generator mode. 1998 Apr 24 11 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 Mode 3: 11 bits are transmitted (through TxD) or received (through jRxD): a start bit (0), 8 data bits (LSB first), a programmable 9th data bit, and a stop bit (1). In fact, Mode 3 is the same as Mode 2 in all respects except baud rate. The baud rate in Mode 3 is variable. Serial Interface The 89C538/536 has a standard 80C51 serial port. This serial port can operate in 4 modes: Mode 0: Serial data enters and exits through RxD. TxD outputs the shift clock. 8 bits are transmitted/received (LSB first). The baud rate is fixed at 1/12 the oscillator frequency. In all four modes, transmission is initiated by any instruction that uses SBUF as a destination register. Reception is initiated in Mode 0 by the condition RI = 0 and REN = 1. Reception is initiated in the other modes by the incoming start bit if REN = 1. Mode 1: 10 bits are transmitted (through TxD) or received (through RxD): a start bit (0), 8 data bits (LSB first), and a stop bit (1). On receive, the stop bit goes into RB8 in Special Function Register SCON. The baud rate is variable. Serial Port Control Register The serial port control and status register is the Special Function Register SCON, shown in Figure 5. This register contains not only the mode selection bits, but also the 9th data bit for transmit and receive (TB8 and RB8), and the serial port interrupt bits (TI and RI). Mode 2: 11 bits are transmitted (through TxD) or received (through RxD): start bit (0), 8 data bits (LSB first), a programmable 9th data bit, and a stop bit (1). On Transmit, the 9th data bit (TB8 in SCON) can be assigned the value of 0 or 1, Or, for example, the parity bit (P, in the PSW) could be moved into TB8. On receive, the 9th data bit goes into RB8 in Special Function Register SCON, while the stop bit is ignored. The baud rate is programmable to either 1/32 or 1/64 the oscillator frequency. Additional details of serial port operation may be found in the 80C51 Family Hardware Description found in the Philips 80C51–Based 8–Bit Microcontroller Data Handbook, IC20. SCON Address = 98H Reset Value = 0000 0000B Bit Addressable Bit: SM0 SM1 SM2 REN TB8 RB8 Tl Rl 7 6 5 4 3 2 1 0 Symbol Function SM0 Serial Port Mode Bit 0 SM1 Serial Port Mode Bit 1 SM0 SM1 Mode 0 0 1 1 0 1 0 1 0 1 2 3 Description Baud Rate** shift register 8-bit UART 9-bit UART 9-bit UART fOSC/12 variable fOSC/64 or fOSC/32 variable SM2 Enables the Automatic Address Recognition feature in Modes 2 or 3. If SM2 = 1 then Rl will not be set unless the received 9th data bit (RB8) is 1, indicating an address, and the received byte is a Given or Broadcast Address. In Mode 1, if SM2 = 1 then Rl will not be activated unless a valid stop bit was received, and the received byte is a Given or Broadcast Address. In Mode 0, SM2 should be 0. REN Enables serial reception. Set by software to enable reception. Clear by software to disable reception. TB8 The 9th data bit that will be transmitted in Modes 2 and 3. Set or clear by software as desired. RB8 In modes 2 and 3, the 9th data bit that was received. In Mode 1, if SM2 = 0, RB8 is the stop bit that was received. In Mode 0, RB8 is not used. Tl Transmit interrupt flag. Set by hardware at the end of the 8th bit time in Mode 0, or at the beginning of the stop bit in the other modes, in any serial transmission. Must be cleared by software. Rl Receive interrupt flag. Set by hardware at the end of the 8th bit time in Mode 0, or halfway through the stop bit time in the other modes, in any serial reception (except see SM2). Must be cleared by software. NOTE: **fOSC = oscillator frequency SU00867 Figure 5. 1998 Apr 24 SCON: Serial Port Control Register 12 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 An interrupt will be serviced as long as an interrupt of equal or higher priority is not already being serviced. If an interrupt of equal or higher level priority is being serviced, the new interrupt will wait until it is finished before being serviced. If a lower priority level interrupt is being serviced, it will be stopped and the new interrupt serviced. When the new interrupt is finished, the lower priority level interrupt that was stopped will be completed. Interrupt Priority Structure The 89C536/538 has a 6-source two-level interrupt structure (see Table 7). There are 2 SFRs associated with the interrupts on the 89C536/538. They are the IE and IP. (See Figures 6 and 7.) The function of the IPH SFR is simple and when combined with the IP SFR determines the priority of each interrupt. The priority of each interrupt is determined as shown in the following table: PRIORITY BITS INTERRUPT PRIORITY LEVEL IP.x 0 Level 0 (lowest priority) 1 Level 1 (highest priority) Table 7. Interrupt Table SOURCE POLLING PRIORITY REQUEST BITS X0 1 IE0 HARDWARE CLEAR? T0 2 TP0 Y 0BH X1 3 IE1 N (L) Y (T) 13H 1BH N (L)1 Y (T)2 VECTOR ADDRESS 03H T1 4 TF1 Y SP 5 R1, TI N 23H T2 6 TF2, EXF2 N 2BH NOTES: 1. L = Level activated 2. T = Transition activated IE (0A8H) 7 6 5 4 3 2 1 0 EA — ET2 ES ET1 EX1 ET0 EX0 Enable Bit = 1 enables the interrupt. Enable Bit = 0 disables it. BIT IE.7 SYMBOL EA IE.6 IE.5 IE.4 IE.3 IE.2 IE.1 IE.0 — ET2 ES ET1 EX1 ET0 EX0 FUNCTION Global disable bit. If EA = 0, all interrupts are disabled. If EA = 1, each interrupt can be individually enabled or disabled by setting or clearing its enable bit. Not implemented. Timer 2 interrupt enable bit. Serial Port interrupt enable bit. Timer 1 interrupt enable bit. External interrupt 1 enable bit. Timer 0 interrupt enable bit. External interrupt 0 enable bit. SU00571 Figure 6. IP (0B8H) IE Registers 7 6 5 4 3 2 1 0 — — PT2 PS PT1 PX1 PT0 PX0 Priority Bit = 1 assigns higher priority Priority Bit = 0 assigns lower priority BIT IP.7 IP.6 IP.5 IP.4 IP.3 IP.2 IP.1 IP.0 SYMBOL — — PT2 PS PT1 PX1 PT0 PX0 FUNCTION Not implemented, reserved for future use. Not implemented, reserved for future use. Timer 2 interrupt priority bit. Serial Port interrupt priority bit. Timer 1 interrupt priority bit. External interrupt 1 priority bit. Timer 0 interrupt priority bit. External interrupt 0 priority bit. Figure 7. 1998 Apr 24 IP Registers 13 SU00572 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 For example: Expanded Data RAM Addressing The 89C536/538 has internal data memory that is mapped into four separate segments: the lower 128 bytes of RAM, upper 128 bytes of RAM, 128 bytes Special Function Register (SFR), and 256 bytes expanded RAM (ERAM). MOV @R0,#data where R0 contains 0A0H, accesses the data byte at address 0A0H, rather than P2 (whose address is 0A0H). The ERAM can be accessed by indirect addressing and MOVX instructions. This part of memory is physically located on-chip, logically occupies the first 256-bytes of external data memory. The four segments are: 1. The Lower 128 bytes of RAM (addresses 00H to 7FH) are directly and indirectly addressable. The ERAM is indirectly addressed, using the MOVX instruction in combination with any of the registers R0, R1 of the selected bank or DPTR. An access to ERAM will not affect ports P0, P3.6 (WR#) and P3.7 (RD#). P2 SFR is output during external addressing. For example, 2. The Upper 128 bytes of RAM (addresses 80H to FFH) are indirectly addressable only. 3. The Special Function Registers, SFRs, (addresses 80H to FFH) are directly addressable only. MOVX @R0,#data 4. The 256-bytes expanded RAM (ERAM, 00H – FFH) are indirectly accessed by move external instruction, MOVX. where R0 contains 0A0H, accesses the ERAM at address 0A0H rather than external memory. An access to external data memory locations higher than FFH (i.e., 0100H to FFFFH) will be performed with the MOVX DPTR instructions in the same way as in the standard 80C51, so with P0 and P2 as data/address bus, and P3.6 and P3.7 as write and read timing signals. Refer to Figure 8. The Lower 128 bytes can be accessed by either direct or indirect addressing. The Upper 128 bytes can be accessed by indirect addressing only. The Upper 128 bytes occupy the same address space as the SFRs. That means they have the same address, but are physically separate from SFR space. External data memory cannot be accessed using the MOVX with R0 or R1. This will always access the ERAM. When an instruction accesses an internal location above address 7FH, the CPU knows whether the access is to the upper 128 bytes of data RAM or to SFR space by the addressing mode used in the instruction. Instructions that use direct addressing access SFR space. For example: The stack pointer (SP) may be located anywhere in the 256 bytes RAM (lower and upper RAM) internal data memory. The stack may not be located in the ERAM. MOV 0A0H,#data accesses the SFR at location 0A0H (which is P2). Instructions that use indirect addressing access the Upper 128 bytes of data RAM. FF FF FF UPPER 128 BYTES INTERNAL RAM ERAM 256 BYTES 80 FFFF SPECIAL FUNCTION REGISTER EXTERNAL DATA MEMORY 80 LOWER 128 BYTES INTERNAL RAM 00 00 Figure 8. 1998 Apr 24 00 0100 0000 Internal and External Data Memory Address Space 14 SU00868 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 ABSOLUTE MAXIMUM RATINGS1, 2, 3 PARAMETER Operating temperature under bias Storage temperature range Voltage on EA/VPP pin to VSS Voltage on any other pin to VSS Maximum IOL per I/O pin RATING UNIT 0 to +70 °C –65 to +150 °C 0 to +13.0 V –0.5 to +6.5 V 15 mA Power dissipation (based on package heat transfer limitations, not device power consumption) 1 W NOTES: 1. Stresses above those listed under Absolute Maximum Ratings may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or any conditions other than those described in the AC and DC Electrical Characteristics section of this specification is not implied. 2. This product includes circuitry specifically designed for the protection of its internal devices from the damaging effects of excessive static charge. Nonetheless, it is suggested that conventional precautions be taken to avoid applying greater than the rated maxima. 3. Parameters are valid over operating temperature range unless otherwise specified. All voltages are with respect to VSS unless otherwise noted. 1998 Apr 24 15 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 DC ELECTRICAL CHARACTERISTICS Tamb = 0°C to +70°C; 5V ±10%; VSS = 0V SYMBOL PARAMETER LIMITS TEST CONDITIONS MIN MAX 4.5V < VCC < 5.5V –0.5 0.2VCC–0.1 V 0.2VCC+0.9 VCC+0.5 V 0.7VCC VCC+0.5 V UNIT VIL Input low voltage VIH Input high voltage (ports 0, 1, 2, 3, EA) VIH1 Input high voltage, XTAL1, RST VOL Output low voltage, ports 1, 2, 3 6 VCC = 4.5V IOL = 1.6mA1 0.4 V VOL1 Output low voltage, port 0, ALE, PSEN 5, 6 VCC = 4.5V IOL = 3.2mA1 0.4 V VOH Output high voltage, ports 1, 2, 3 2 VCC = 4.5V IOH = –30µA VCC – 0.7 V VOH1 Output high voltage (port 0 in external bus mode), ALE7, PSEN2 VCC = 4.5V IOH = –800µA VCC – 0.7 V IIL Logical 0 input current, ports 1, 2, 3 VIN = 0.4V –1 –50 µA ITL Logical 1-to-0 transition current, ports 1, 2, 3 VIN = 2.0V See note 3 –650 µA ILI Input leakage current, port 0 0.45 < VIN < VCC – 0.3 ±10 µA ICC Power supply current (see Figure 16): Active mode Idle mode Power-down mode or clock stopped (see Figure 20 for conditions) See note 4 VCC = 5.5V FREQ = 24 MHz Tamb = 0°C to 70°C 60 25 100 mA mA µA RRST Internal reset pull-down resistor 40 225 kΩ NOTES: 1. Capacitive loading on ports 0 and 2 may cause spurious noise to be superimposed on the VOLs of ALE and ports 1 and 3. The noise is due to external bus capacitance discharging into the port 0 and port 2 pins when these pins make 1-to-0 transitions during bus operations. In the worst cases (capacitive loading > 100pF), the noise pulse on the ALE pin may exceed 0.8V. In such cases, it may be desirable to qualify ALE with a Schmitt Trigger, or use an address latch with a Schmitt Trigger STROBE input. IOL can exceed these conditions provided that no single output sinks more than 5mA and no more than two outputs exceed the test conditions. 2. Capacitive loading on ports 0 and 2 may cause the VOH on ALE and PSEN to momentarily fall below the VCC–0.7 specification when the address bits are stabilizing. 3. Pins of ports 1, 2 and 3 source a transition current when they are being externally driven from 1 to 0. The transition current reaches its maximum value when VIN is approximately 2V. 4. See Figures 17 through 20 for ICC test conditions and Figure 15 for limits.. 5. Load capacitance for port 0, ALE, and PSEN = 100pF, load capacitance for all other outputs = 80pF. 6. Under steady state (non-transient) conditions, IOL must be externally limited as follows: 15mA Maximum IOL per port pin: 26mA Maximum IOL per 8-bit port: Maximum total IOL for all outputs: 71mA If IOL exceeds the test condition, VOL may exceed the related specification. Pins are not guaranteed to sink current greater than the listed test conditions. 7. ALE is tested to VOH1, except when ALE is off then VOH is the voltage specification. 8. Pin capacitance is characterized but not tested. Pin capacitance is less than 25pF. Pin capacitance of ceramic package is less than 15pF (except EA is 25pF). 1998 Apr 24 16 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 AC ELECTRICAL CHARACTERISTICS Tamb = 0°C to +70°C, VCC = 5V ±10%, VSS = 0V1, 2, 3 VARIABLE CLOCK SYMBOL FIGURE PARAMETER 33MHz CLOCK MIN MAX MIN MAX 3.5 33 3.5 33 UNIT 1/tCLCL 9 Oscillator frequency Speed versions : N (33MHz) tLHLL 9 ALE pulse width 2tCLCL–40 21 ns tAVLL 9 Address valid to ALE low tCLCL–25 5 ns tLLAX 9 Address hold after ALE low tCLCL–25 5 tLLIV 9 ALE low to valid instruction in tLLPL 9 ALE low to PSEN low tCLCL–25 5 tPLPH 9 PSEN pulse width 3tCLCL–45 45 tPLIV 9 PSEN low to valid instruction in tPXIX 9 Input instruction hold after PSEN tPXIZ 9 Input instruction float after PSEN tCLCL–25 5 ns tAVIV 9 Address to valid instruction in 5tCLCL–80 70 ns tPLAZ 9 PSEN low to address float 10 10 ns 4tCLCL–65 0 ns 55 3tCLCL–60 MHz ns ns ns 30 0 ns ns Data Memory tRLRH 10, 11 RD pulse width 6tCLCL–100 82 ns tWLWH 10, 11 WR pulse width 6tCLCL–100 82 ns tRLDV 10, 11 RD low to valid data in tRHDX 10, 11 Data hold after RD tRHDZ 10, 11 Data float after RD 2tCLCL–28 32 ns tLLDV 10, 11 ALE low to valid data in 8tCLCL–150 90 ns tAVDV 10, 11 Address to valid data in 105 ns tLLWL 10, 11 ALE low to RD or WR low 3tCLCL–50 140 ns tAVWL 10, 11 Address valid to WR low or RD low 4tCLCL–75 45 ns tQVWX 10, 11 Data valid to WR transition tCLCL–30 0 ns tWHQX 10, 11 Data hold after WR tCLCL–25 5 ns tQVWH 11 7tCLCL–130 80 ns tRLAZ 10, 11 RD low to address float tWHLH 10, 11 RD or WR high to ALE high 5tCLCL–90 0 60 0 9tCLCL–165 Data valid to WR high 3tCLCL+50 40 0 tCLCL–25 tCLCL+25 5 ns ns 0 ns 55 ns External Clock tCHCX 13 High time 17 tCLCL–tCLCX ns tCLCX 13 Low time 17 tCLCL–tCHCX ns tCLCH 13 Rise time 5 ns tCHCL 13 Fall time 5 ns tXLXL 12 Serial port clock cycle time 12tCLCL 360 ns tQVXH 12 Output data setup to clock rising edge 10tCLCL–133 167 ns tXHQX 12 Output data hold after clock rising edge 2tCLCL–80 50 ns tXHDX 12 Input data hold after clock rising edge 0 0 ns Shift Register tXHDV 12 Clock rising edge to input data valid 10tCLCL–133 167 ns NOTES: 1. Parameters are valid over operating temperature range unless otherwise specified. 2. Load capacitance for port 0, ALE, and PSEN = 100pF, load capacitance for all other outputs = 80pF. 3. Interfacing the microcontroller to devices with float times up to 45ns is permitted. This limited bus contention will not cause damage to Port 0 drivers. 1998 Apr 24 17 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 EXPLANATION OF THE AC SYMBOLS P – PSEN Q – Output data R – RD signal t – Time V – Valid W – WR signal X – No longer a valid logic level Z – Float Examples: tAVLL = Time for address valid to ALE low. tLLPL = Time for ALE low to PSEN low. Each timing symbol has five characters. The first character is always ‘t’ (= time). The other characters, depending on their positions, indicate the name of a signal or the logical status of that signal. The designations are: A – Address C – Clock D – Input data H – Logic level high I – Instruction (program memory contents) L – Logic level low, or ALE tLHLL ALE tAVLL tLLPL tPLPH tLLIV tPLIV PSEN tLLAX A0–A7 PORT 0 tPXIZ tPLAZ tPXIX A0–A7 INSTR IN tAVIV PORT 2 A0–A15 A8–A15 SU00006 Figure 9. External Program Memory Read Cycle ALE tWHLH PSEN tLLDV tLLWL tRLRH RD tAVLL tLLAX tRLAZ PORT 0 tRHDZ tRLDV tRHDX A0–A7 FROM RI OR DPL DATA IN A0–A7 FROM PCL INSTR IN tAVWL tAVDV PORT 2 P2.0–P2.7 OR A8–A15 FROM DPF A0–A15 FROM PCH SU00025 Figure 10. 1998 Apr 24 External Data Memory Read Cycle 18 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 ALE tWHLH PSEN tWLWH tLLWL WR tLLAX tAVLL tWHQX tQVWX tQVWH A0–A7 FROM RI OR DPL PORT 0 DATA OUT A0–A7 FROM PCL INSTR IN tAVWL PORT 2 P2.0–P2.7 OR A8–A15 FROM DPF A0–A15 FROM PCH SU00026 Figure 11. INSTRUCTION 0 1 External Data Memory Write Cycle 2 3 4 5 6 7 8 ALE tXLXL CLOCK tXHQX tQVXH OUTPUT DATA 0 1 2 WRITE TO SBUF 3 4 5 6 7 tXHDX tXHDV SET TI INPUT DATA VALID VALID VALID VALID VALID VALID VALID VALID CLEAR RI SET RI SU00027 Figure 12. VCC–0.5 0.45V Shift Register Mode Timing 0.7VCC 0.2VCC–0.1 tCHCL tCHCX tCLCH tCLCX tCLCL SU00009 Figure 13. 1998 Apr 24 External Clock Drive 19 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH VCC–0.5 89C536/89C538 VLOAD+0.1V 0.2VCC+0.9 TIMING REFERENCE POINTS VLOAD 0.2VCC–0.1 0.45V VLOAD–0.1V SU00717 SU00718 AC Testing Input/Output Figure 15. Float Waveform 90.00 80.00 MAX ACTIVE MODE 70.00 ICC(mA) 60.00 50.00 TYP ACTIVE MODE 40.00 30.00 20.00 MAX IDLE MODE 10.00 TYP IDLE MODE 0.00 0 4 8 12 16 20 24 28 32 36 FREQ AT XTAL1 (MHz) SU00886 Figure 16. 1998 Apr 24 VOL+0.1V NOTE: For timing purposes, a port is no longer floating when a 100mV change from load voltage occurs, and begins to float when a 100mV change from the loaded VOH/VOL level occurs. IOH/IOL ≥ ±20mA. NOTE: AC inputs during testing are driven at VCC –0.5 for a logic ‘1’ and 0.45V for a logic ‘0’. Timing measurements are made at VIH min for a logic ‘1’ and VIL max for a logic ‘0’. Figure 14. VOH–0.1V ICC vs. FREQ Valid only within frequency specifications of the device under test 20 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 VCC VCC ICC ICC VCC VCC VCC VCC RST RST P0 P0 EA EA (NC) XTAL2 (NC) XTAL2 CLOCK SIGNAL XTAL1 CLOCK SIGNAL XTAL1 VSS VSS SU00719 SU00720 Figure 17. ICC Test Condition, Active Mode All other pins are disconnected VCC–0.5 Figure 18. ICC Test Condition, Idle Mode All other pins are disconnected 0.7VCC 0.2VCC–0.1 0.45V tCHCL tCHCX tCLCH tCLCX tCLCL SU00009 Figure 19. Clock Signal Waveform for ICC Tests in Active and Idle Modes tCLCH = tCHCL = 5ns VCC ICC VCC VCC RST P0 EA (NC) XTAL2 XTAL1 VSS SU00016 Figure 20. ICC Test Condition, Power Down Mode All other pins are disconnected. VCC = 2V to 5.5V 1998 Apr 24 VCC 21 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 FLASH EPROM PROGRAM MEMORY Automatic Chip Erase The device may be erased using the automatic Erase algorithm. The automatic Erase algorithm automatically programs the entire array prior to electrical erase. The timing and verification of electrical erase are controlled internal to the device. FEATURES • 16K (89C536) or 64K (89C538) or electrically erasable internal program. • Up to 64 Kilobyte external program memory if the internal program Automatic Programming Algorithm The 89C536/538 automatic Programming algorithm requires the user to only write a program set–up command and a program command (program data and address). The device automatically times the programming pulse width, provides the program verify, and counts the number of sequences. A status bit similar to DATA polling and a status bit toggling between consecutive read cycles, provide feedback to the user as to the status of the programming operation. memory is switched off (EA = 0). • Programming and erasing voltage 12V 5% • Command register architecture – Byte Programming (10 µs typical) – Auto chip erase 5 seconds typical (including preprogramming time) • Auto Erase and auto program – DATA polling – Toggle bit AUTOMATIC ERASE ALGORITHM • 100 minimum erase/program cycles • Advanced CMOS FLASH EPROM memory technology The 89C536/538 Automatic Erase algorithm requires the user to only write an erase set–up command and erase command. The device will automatically pre–program and verify the entire array. Then the device automatically times the erase pulse width, provides the erase verify, and counts the number of sequences. A status bit similar to DATA polling and a status bit toggling between consecutive read cycles, provide feedback to the user as to the status of the erase operation. GENERAL DESCRIPTION The 89C536/538 FLASH EPROM memory augments EPROM functionality with In–circuit electrical erasure and programming. The 89C536/538 uses a command register to manage this functionality. Commands are written to the command register. Register contents serve as inputs to an internal state–machine which controls the erase and programming circuitry. During write cycles, the command register internally latches address and data needed for the programming and erase operations. For system design simplification, the 89C536/538 is designed to support either WE or CE controlled writes. During a system write cycle, addresses are latched on the falling edge of WE or CE, whichever occurs last. Data is latched on the rising edge of WE or CE, whichever occurs first. To simplify the following discussion, the WE pin is used as the write cycle control pin through the rest of this text. All setup and hold times are with respect to the WE signal. The FLASH EPROM reliably stores memory contents even after 100 erase and program cycles. The cell is designed to optimize the erase and programming mechanisms. In addition, the combination of advanced tunnel oxide processing and low internal electric fields for erase and programming operations produces reliable cycling. The 89C536/538 uses a 12.0V 5%VPP supply to perform the Auto Program/Erase algorithms. Automatic Programming The 89C536/538 is byte programmable using the Automatic Programming algorithm. The Automatic Programming algorithm does not require the system to time out or verify the data programmed. The typical room temperature chip programming time of the 89C536/538 is less than 5 seconds. +5V VDD A0–A7 1 P1 RST P0 PGM COMMAND/DATA EA VPP ALE/WE CE P3.3 PSEN 89C536/538 LOW PULSE 0 P2.7 OE P3.5 A15 XTAL2 4–6 MHz P2.0–P2.5 XTAL1 VSS P3.4 P2.6, P3.7, P3.1, P3.0 A8–A13 A14 0000b SU00876 Figure 21. 1998 Apr 24 Erase/Programming/Verification 22 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 Table 8. Pin Description PIN NAME SYMBOL FUNCTION P1.0–P1.7 A0–A7 Input Low Order Address Bits P2.0–P2.5, P3.4, P3.5 A8–A13, A14–A15 Input High Order Address Bits P0.0–P0.7 Q0–Q7 Data Input/Output P3.3 CE Chip Enable Input P2.7 OE Output Enable Input ALE/WE WE Write Enable Pin EA VPP Program Supply Voltage P2.6, P3.7, P3.1, P3.0 FTEST3–FTEST0 Flash Test Mode Selection VCC VCC Power Supply Voltage (+5V) GND GND Ground Pin Table 9. Command Definitions FIRST BUS CYCLE COMMAND BUS CYCLES SECOND BUS CYCLE OPERATION ADDRESS DATA OPERATION ADDRESS DATA Setup auto erase/auto erase (chip) 2 Write X 30H Write X 30H Setup auto program/program 2 Write X 40H Write PA PD Reset 2 Write X FFH Write X FFH NOTES: PA = Address of memory location to be programmed PD = Data to be programmed at location Command Definitions When low voltage is applied to the VPP pin, the contents of the command register default to 00H. Placing high voltage on the VPP pin enables read/write operations. Device operations are selected by writing specific data patterns into the command register. Table 9 defines these 89C536/538 register commands. Table 10 defines the bus operations of 89C536/538. Table 10. OPERATION VPP(1) CE OE WE D00–D07 READ/WRITE Read(2) VPPH VIL VIL VIH DATA OUT(3) Standby(4) VPPH VIH X X Tri–State Write VPPH VIL VIH VIL Data In(5) NOTES: 1. VPPH is the programming voltage specified for the device. 2. Read operation with VPP = VPPH may access array data (if write command is preceded) or silicon ID codes. 3. With VPP at high voltage, the standby current equals ICC+IPP (standby). 4. Refer to Table 38 for valid Data–In during a write operation. 5. X can be VIL or VIH. 1998 Apr 24 23 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 will safely abort the operation. Memory contents will not be altered. Should program–fail or erase–fail happen, two consecutive writes of FFH will reset the device to abort the operation. A valid command must then be written to place the device in the desired state. Set-Up Automatic Chip Erase/Erase Commands The automatic chip erase does not require the device to be entirely pre–programmed prior to executing the Automatic set–up erase command and automatic chip erase command. Upon executing the Automatic chip erase command, the device automatically will program and verify the entire memory for an all–zero data pattern. When the device is automatically verified to contain an all–zero pattern, a self–timed chip erase and verify begins. The erase and verify operations are complete when the data on DQ7 is”1” at which time the device returns to the standby mode. The system is not required to provide any control or timing during these operations. Write Operation Status Toggle Bit–DQ6 The 89C536/538 features a “Toggle Bit” as a method to indicate to the host system that the Auto Program/Erase algorithms are either in progress or completed. When using the Automatic Chip Erase algorithm, note that the erase automatically terminates when adequate erase margin has been achieved for the memory array (no erase verify command is required). The margin voltages are internally generated in the same manner as when the standard erase verify command is used. While the Automatic Program or Erase algorithm is in progress, successive attempts to read data from the device will result in DQ6 toggling between one and zero. Once the Automatic Program or Erase algorithm is completed, DQ6 will stop toggling and valid data will be read. The toggle bit is valid after the rising edge of the second WE pulse of the two write pulse sequences. The Automatic set–up erase command is a command only operation that stages the device for automatic electrical erasure of all bytes in the array. Automatic set–up erase is performed by writing 30H to the command register. Data Polling–D07 The 89C536/538 also features DATA Polling as a method to indicate to the host system that the Automatic Program or Erase algorithms are either in progress or completed. To command automatic chip erase, the command 30H must be written again to the command register. The automatic chip erase begins on the rising edge of the WE and terminates when the data on DQ7 is ”1 “ and the data on DQ6 stops toggling for two consecutive read cycles, at which time the device returns to the standby mode. While the Automatic Programming algorithm is in operation an attempt to read the device will produce the complement data of the data last written to DQ7. Upon completion of the Automatic Program algorithm an attempt to read the device will produce the true data last written to DQ7. The Data Polling feature is valid after the rising edge of the second WE pulse of the two write pulse sequences. Set–Up Automatic Program/Program Commands The Automatic Set–up Program is a command–only operation that stages the devices for automatic programming. Automatic Set–up Program is performed by writing 40H to the command register. While the Automatic Erase algorithm is in operation, DQ7 will read “0” until the erase operation is completed. Upon completion of the erase operation, the data on DQ7 will read “1”. The DATA Polling feature is valid after the rising edge of the second WE pulse of two writes pulse sequences. Once the Automatic Set–up Program operation is performed, the next WE pulse causes a transition to an active programming operation. Addresses are internally latched on the falling edge of the WE pulse. Data is internally latched on the rising edge of the WE pulse. The rising edge of WE also begins the programming operation. The system is not required to provide further controls or timings. The device will automatically provide an adequate internally generated program pulse and verify margin. The automatic programming operation is completed when the data read on DQ6 stops toggling for two consecutive read cycles and the data on DQ7 and DQ6 are equivalent to data written to these two bits at which time the device returns to the Read mode (no program verify command is required; but data can be read out if OE is active low). The DATA Polling feature is active during Automatic Program/Erase algorithms. Write Operation The data to be programmed into Flash should be inverted when programming. In other words to program the value ‘00’, ‘FF’ should be applied to port P0. System Considerations During the switch between active and standby conditions, transient current peaks are produced on the rising and falling edges of Chip Enable. The magnitude of these transient current peaks is dependent on the output capacitance loading of the device. At a minimum, a 0.1µF ceramic capacitor (high frequency, low inherent inductance) should be used on each device between VCC and GND, and between VPP and GND to minimize transient effects. Reset Command A reset command is provided as a means to safely abort the erase– or program–command sequences. Following either set–up command (erase or program) with two consecutive writes of FFH SYMBOL PARAMETER CIN COUT 1998 Apr 24 MIN TYP MAX UNIT VPPH 14 pF VIN = 0V VPPH 16 pF VOUT = 0V 24 CONDITION Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 Command programming/Data programming/Erase Operation DC CHARACTERISTICS Tamb = 0°C to 70°C, VCC = 5V ± 10%, VPP = 12.0V ± 5% SYMBOL PARAMETER CONDITION MIN TYP MAX UNIT ILI Input Leakage Current VIN = GND to VCC 10 µA ILO Output Leakage Current VOUT = GND to VCC 10 µA ISB1 Standby VCC Current CE = VIH 1 mA 100 µA CE = VCC ± 0.3 V ISB2 1 ICC1 (Read) ICC2 ICC3 (Program) ICC4 (Erase) ICC5 (Program Verify) ICC6 (Erase Verify) Operating VCC Current IOUT = 0 mA, f=1 MHz IOUT = 0 mA, F=11MHz In Programming In Erase In Program Verify In erase Verify 30 50 50 50 50 50 mA mA mA mA mA mA IPP1 (Read) IPP2 (Program) IPP3 (Erase) IPP4 (Program Verify) VPP Current VPP=12.6 V In Programming In Erase In Program Verify 100 50 50 50 µA mA mA mA In Erase Verify 50 mA –0.5 (Note 5) 0.2VPP – 0.3 V 2.4 VCC+0.3V (Note 6) V 0.45 V IPP5 (Erase Verify) VIL Input Voltage VIH VOL Output Voltage Low IOL=2.1mA VOH Output Voltage High IOH=400uA 2.4 NOTES: 1. VCC must be applied before VPP and removed after VPP. 2. VPP must not exceed 14V including overshoot. 3. An influence may be had upon device reliability if the device is installed or removed while VPP=12V. 4. Do not alter VPP from VIL to 12V or 12V to VIL when CE=VIL 5. VIL min. = –0.5V for pulse width ≤ 20ns. 6. If VIH is over the specified maximum value, programming operation cannot be guaranteed. 7. All currents are in RMS unless otherwise noted. (Sampled, not 100% tested.). 1998 Apr 24 25 V Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 AC CHARACTERISTICS Tamb = 0°C to 70°C, VCC = 5V 10%, VPP = 12V 5% SYMBOL PARAMETER τVPS VPP setup time CONDITION MIN 100 ns τOES OE setup time 100 ns τCWC Command programming cycles 150 ns τCEP WE programming pulse width 60 ns τEPH1 WE programming pulse width High 20 ns τCEPH2 WE programming pulse width High 100 ns τAS Address setup time 0 ns τAH1 Address hold time for DATA Polling 0 ns τDS DATA setup time 50 ns τDH DATA hold time 10 ns τCESP CE setup time before DATA polling/toggle bit 100 ns τCES CE setup time 0 ns τCESC CE setup time before command write 100 ns τVPH VPP hold time 100 ns τDF Output disable time (Note 2) 35 ns τDPA DATA polling/toggle bit access time 150 ns τAETC Total erase time in auto chip erase 5(TYP) s τAVT Total programming time in auto verify 300 s 15 NOTES: 1. CE and OE must be fixed high during VPP transition from 5V to 12V or from 12V to 5V. 2. τDF is defined as the time at which the output achieves the open circuit condition and data is no longer driven. 1998 Apr 24 26 MAX UNIT Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 Timing Waveform Automatic Programming One byte of data is programmed. Verifying in fast algorithm and additional programming by external control are not required because these operations are executed automatically by an internal control circuit. Programming completion can be verified by DATA polling and toggle bit checking after automatic verify starts. Device outputs DATA during programming and DATA after programming on Q7. Q0 to Q5(Q6 is for toggle bit; see toggle bit, DATA polling, timing waveform) are in high impedance. SETUP AUTO PROGRAM/ AUTO PROGRAM & DATA POLLING PROGRAM COMMAND VCC 5V 12V VPP OV τVPH τVPS ADDRESS VALID A0–A15 τAS WE τAH1 τAVT τcwc CE τQES τCEP τCEPH1 τDS τDH τCEP τCESP τCESC τCES OE Q7 COMMAND IN Q0–Q5 COMMAND IN τDS τDH DATA IN τDPA tDF DATA DATA DATA POLLING DATA IN COMMAD #40H Figure 22. 1998 Apr 24 DATA SU00877 Automatic Programming Timing Waveform 27 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 AUTOMATIC CHIP ERASE All data in the FLASH memory is erased. External erase verification is not required. Erasure completion can be verified by DATA polling and toggle bit checking after automatic erase starts. Device outputs 0 during erasure and 1 after erasure on Q7, Q0 to Q5 (Q6 is for toggle bit; see toggle bit, DATA polling, timing waveform) are in high impedance. SETUP AUTO CHIP ERASE/ ERASE COMMAND AUTO CHIP ERASE & DATA POLLING VCC 5V 12V τVPH VPP OV τVPS A0–A15 WE τAETC τCWC CE τQES τCEP τCEPH τCEP τCESP τDS τDH τCESC τCES 1 OE τDS τDH Q7 COMMAND IN COMMAND IN Q0–Q5 COMMAND IN COMMAND IN τDPA τDF DATA POLLING SU00878 Figure 23. Automatic Chip Erase Timing Waveform RESET VCC 5V 12V VPP 0V τVPS A0–A15 tCWC WE CE τQES τCEP τCEPH1 τCEP OE τDS Q0–Q7 τDH COMMAND IN τDS τDH COMMAND IN FFH FFH SU00879 Figure 24. 1998 Apr 24 Reset Timing Waveform 28 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 Toggle Bit, Data Polling Toggle bit appears in Q6, when program/erase is operating. DATA polling appears in Q7 during programming or erase. HIGH WE VPP 12V CE OE TOGGLE BIT OE HIGH–Z DATA DURING P/E DATA POLLING O7 HIGH–Z DATA DATA DATA DATA DURING P O7 DURING P PROGRAM/ERASE COMPLETE HIGH–Z DATA POLLING HIGH–Z O0–O5 DATA SU00880 Figure 25. 1998 Apr 24 Toggle Bit, Data Polling Timing Waveform 29 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 PLCC44: plastic leaded chip carrier; 44 leads 1998 Apr 24 SOT187-2 30 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 QFP44: plastic quad flat package; 44 leads (lead length 1.3 mm); body 10 x 10 x 1.75 mm 1998 Apr 24 31 SOT307-2 Philips Semiconductors Preliminary specification 80C51 8-bit microcontroller family 16K/64K/512 FLASH 89C536/89C538 Data sheet status Data sheet status Product status Definition [1] Objective specification Development This data sheet contains the design target or goal specifications for product development. Specification may change in any manner without notice. Preliminary specification Qualification This data sheet contains preliminary data, and supplementary data will be published at a later date. Philips Semiconductors reserves the right to make chages at any time without notice in order to improve design and supply the best possible product. Product specification Production This data sheet contains final specifications. Philips Semiconductors reserves the right to make changes at any time without notice in order to improve design and supply the best possible product. [1] Please consult the most recently issued datasheet before initiating or completing a design. Definitions Short-form specification — The data in a short-form specification is extracted from a full data sheet with the same type number and title. For detailed information see the relevant data sheet or data handbook. Limiting values definition — Limiting values given are in accordance with the Absolute Maximum Rating System (IEC 134). Stress above one or more of the limiting values may cause permanent damage to the device. These are stress ratings only and operation of the device at these or at any other conditions above those given in the Characteristics sections of the specification is not implied. Exposure to limiting values for extended periods may affect device reliability. Application information — Applications that are described herein for any of these products are for illustrative purposes only. Philips Semiconductors make no representation or warranty that such applications will be suitable for the specified use without further testing or modification. Disclaimers Life support — These products are not designed for use in life support appliances, devices or systems where malfunction of these products can reasonably be expected to result in personal injury. Philips Semiconductors customers using or selling these products for use in such applications do so at their own risk and agree to fully indemnify Philips Semiconductors for any damages resulting from such application. Right to make changes — Philips Semiconductors reserves the right to make changes, without notice, in the products, including circuits, standard cells, and/or software, described or contained herein in order to improve design and/or performance. Philips Semiconductors assumes no responsibility or liability for the use of any of these products, conveys no license or title under any patent, copyright, or mask work right to these products, and makes no representations or warranties that these products are free from patent, copyright, or mask work right infringement, unless otherwise specified. Copyright Philips Electronics North America Corporation 1998 All rights reserved. Printed in U.S.A. Philips Semiconductors 811 East Arques Avenue P.O. Box 3409 Sunnyvale, California 94088–3409 Telephone 800-234-7381 Date of release: 05-98 Document order number: 1998 Apr 24 32 9397 750 03876