The W78E58 is an 8-bit microcontroller that is functionally compatible with the W78C58, except that
the mask ROM is replaced by a flash EEPROM with a size of 32 KB. To facilitate programming and
verification, the flash EEPROM inside the W78E58 allows the program memory to be programmed
and read electronically. Once the code is confirmed, the user can protect the code for security.
The W78E58 microcontroller supplies a wider frequency range than most 8-bit microcontrollers on the
market. It is functionally compatible with the industry-standard 80C52 microcontroller series, except
that one extra 4-bit bit-addressable I/O port(Port 4) and two additional external interrupts (
INT3 ).
The W78E58 contains four 8-bit bi-directional and bit-addressable I/O ports, three 16-bit
timer/counters, and a serial port. These peripherals are supported by a eight-source, two-level
interrupt capability. There are 256 bytes of RAM and an 32 KB flash EEPROM for application
programs.
The W78E58 microcontroller has two power reduction modes, idle mode and power-down mode, both
of which are software selectable. The idle mode turns off the processor clock but allows for continued
peripheral operation. The power-down mode stops the crystal oscillator for minimum power
consumption. The external clock can be stopped at any time and in any state without affecting the
processor.
,
FEATURES
• 8-bit CMOS microcontroller
• Fully static design
• Low standby current at full supply voltage
• DC-40 MHz operation
• 256 bytes of on-chip scratchpad RAM
• 32 KB electrically erasable/programmable EPROM
• 64 KB program memory address space
• 64 KB data memory address space
• Four 8-bit bidirectional ports
• One extra 4-bit bit-addressable I/O port, additional
The W78E58 has two operating modes, normal and flash. In normal mode, the W78E58 corresponds
to the W78C58. In flash mode, the user (the maker of the flash EEPROM writer) can access the flash
EEPROM.
P0.7−P0.0 Port 0, Bits 7−0
MODEDESCRIPTION
NormalPort 0, Bits 0 through 7. Port 0 is a bidirectional I/O port. This port also provides a
multiplexed low order address/data bus during accesses to external memory.
FlashThis port provides the data bus during access to the flash EEPROM.
P1.7−P1.0 Port 1, Bits 7−0
MODEDESCRIPTION
NormalPort 1, Bits 0 through 7. Port 1 is a bidirectional I/O port with internal pull-ups. Pins
P1.0 and P1.1 also serve as T2 (Timer 2 external input) and T2EX (Timer 2
capture/reload trigger), respectively.
FlashThis port provides the low-order address bus during access to the flash EEPROM.
P2.7−P2.0 Port 2, Bits 7−0
MODEDESCRIPTION
NormalPort 2, Bits 0 through 7. Port 2 is a bidirectional I/O port with internal pull-ups. This port
also provides the upper address bits for accesses to external memory..
FlashThis port provides the high-order address bus during access to the flash EEPROM.
P3.7−P3.0 Port 3, Bits 7−0
MODEDESCRIPTION
NormalPort 3, Bits 0 through 7. Port 3 is a bidirectional I/O port with internal pull-ups. All bits
have alternate functions.
Flash
P3.3−P3.0 and P3.7−P3.6 are the flash mode configuration pins, Input.
P3.3−P3.0 and P3.7−P3.6 are configured to select or execute the flash operations. For
details, see Flash Operations.
P4.3−P4.0 Port 4, Bits 3−0 (available on 44-pin PLCC/QFP package)
MODEDESCRIPTION
NormalAnother bit-addressable bidirectional I/O port P4. P4.3 and P4.2 are alternative
function pins. It can be used as general I/O pins or external interrupt input sources
(
/ INT3 ).
Publication Release Date: November 1997
- 3 -Revision A2
Page 4
FlashNo function in this mode.
EA
PSEN
This pin
PSEN
PSEN
EA/VPP
MODEDESCRIPTION
W78E58
Normal
FlashVPP, Program Power supply pin, Input.
External Access, Input, active low.
,
This pin forces the processor to execute a program from the external ROM. When the
internal flash EEPROM is accessed as in the W78C58, this pin should be kept high.
This pin accepts the high voltage (12V) needed for programming the flash EEPROM.
RST
MODEDESCRIPTION
NormalRST, Reset, Input, active high.
This pin resets the processor. It must be kept high for at least two machine cycles in
order to be recognized by the processor.
FlashFlash mode configuration pin, Input, active high.
RST is used to configure the flash operations. For details, see Flash Operations.
ALE
MODEDESCRIPTION
Normal
FlashFlash mode configuration pin, Input, active low.
Address Latch Enable, Output, active high.
ALE,
ALE is used to enable the address latch that separates the address from the data on
Port 0. ALE runs at 1/6th of the oscillator frequency. A single ALE pulse is skipped
during external data memory accesses. ALE goes to a high impedance state with a
weak pull-up during reset state.
ALE is used to configure the flash operations. For details, see Flash Operations.
PSEN
MODEDESCRIPTION
Normal
MOVC operations.
reset state
FlashFlash mode configuration pin, Input, active high.
Program Store Enable, Output, active low.
,
enables the external ROM onto the Port 0 address/data bus during fetch and
goes to a high impedance state with a weak pull-up during
is used to configure the flash operations. For details, see Flash Operations.
XTAL1
MODEDESCRIPTION
- 4 -
Page 5
W78E58
NormalCrystal 1. This is the crystal oscillator input. This pin may be driven by an external
clock.
FlashConnect to VSS.
XTAL2
MODEDESCRIPTION
NormalCrystal 2. This is the crystal oscillator output. It is the inversion of XTAL1.
FlashNo function in this mode.
VSS, VCC
Power Supplies. These are the chip ground and positive supplies.
Publication Release Date: November 1997
- 5 -Revision A2
Page 6
BLOCK DIAGRAM
P1.0
~
P1.7
Port
1
W78E58
Port 1
Latch
P3.0
~
P3.7
P4.0
~
P4.3
INT2
INT3
Port
Port
T2
SFR RAM
Address
256 bytes
RAM & SFR
B
Stack
Pointer
Power Control
Port 0
Latch
DPTR
Temp Reg.
PC
Incrementor
Addr. Reg.
Port 2
Latch
Port
0
Port
2
P0.0
~
P0.7
P2.0
~
P2.7
ACC
Interrupt
PSW
Instruction
Decoder
&
Sequencer
Bus & Clock
Controller
T1
ALU
Reset Block
Timer
2
Timer
0
Timer
1
UART
3
4
Port 3
Latch
Port 4
Latch
Oscillator
XTAL1
XTAL2
ALE
PSEN
RST
- 6 -
VssVcc
Page 7
W78E58
FUNCTIONAL DESCRIPTION
The W78E58 architecture consists of a core controller surrounded by various registers, five general
purpose I/O ports, 256 bytes of RAM, three timer/counters, and a serial port. The processor supports
111 different opcodes and references both a 64K program address space and a 64K data storage
space.
Timers 0, 1, and 2
Timers 0, 1, and 2 each consist of two 8-bit data registers. These are called TL0 and TH0 for Timer 0,
TL1 and TH1 for Timer 1, and TL2 and TH2 for Timer 2. The TCON and TMOD registers provide
control functions for timers 0 and 1. The T2CON register provides control functions for Timer 2.
RCAP2H and RCAP2L are used as reload/capture registers for Timer 2.
The operations of Timer 0 and Timer 1 are the same as in the W78C51. Timer 2 is a special feature
of the W78E58: it is a 16-bit timer/counter that is configured and controlled by the T2CON register.
Like Timers 0 and 1, Timer 2 can operate as either an external event counter or as an internal timer,
depending on the setting of bit C/T2 in T2CON. Timer 2 has three operating modes: capture, autoreload, and baud rate generator. The clock speed at capture or auto-reload mode is the same as that
of Timers 0 and 1.
Clock
The W78E58 is designed to be used with either a crystal oscillator or an external clock. Internally, the
clock is divided by two before it is used. This makes the W78E58 relatively insensitive to duty cycle
variations in the clock.
Crystal Oscillator
The W78E58 incorporates a built-in crystal oscillator. To make the oscillator work, a crystal must be
connected across pins XTAL1 and XTAL2. In addition, a load capacitor must be connected from each
pin to ground, and a resistor must also be connected from XTAL1 to XTAL2 to provide a DC bias
when the crystal frequency is above 24 MHz.
External Clock
An external clock should be connected to pin XTAL1. Pin XTAL2 should be left unconnected. The
XTAL1 input is a CMOS-type input, as required by the crystal oscillator. As a result, the external clock
signal should have an input one level of greater than 3.5 volts.
Power Management
Idle Mode
The idle mode is entered by setting the IDL bit in the PCON register. In the idle mode, the internal
clock to the processor is stopped. The peripherals and the interrupt logic continue to be clocked. The
processor will exit idle mode when either an interrupt or a reset occurs.
Power-down Mode
When the PD bit of the PCON register is set, the processor enters the power-down mode. In this
mode all of the clocks are stopped, including the oscillator. The only way to exit power-down mode is
by a reset.
Publication Release Date: November 1997
- 7 -Revision A2
Page 8
W78E58
INT2
INT2
Reset
The external RESET signal is sampled at S5P2. To take effect, it must be held high for at least two
machine cycles while the oscillator is running.
An internal trigger circuit in the reset line is used to deglitch the reset line when the W78E58 is used
with an external RC network. The reset logic also has a special glitch removal circuit that ignores
glitches on the reset line.
During reset, the ports are initialized to FFH, the stack pointer to 07H, PCON (with the exception of
bit 4) to 00H, and all of the other SFR registers except SBUF to 00H. SBUF is not reset.
Option Setting
Users write programs into the W78E58 by using the Winbond proprietary writer. The writer programs
the data into an internal 32 KB region and reads the data back for verification. After confirming that
the program is correct, the user can lock the data so that they can no longer be read.
Lock Bit
This bit is used to protect the customer data in the W78E58. It may be turned on after the
programmer finishes the programming and verify sequence. Once this bit is set to logic 0, no flash
data can be accessed again.
MOVC Execute
This bit is used to restrict the region accessible to the MOVC instruction. It can prevent the program
from being downloaded using this instruction if the program needs to jump outside to get data. When
this bit is set to logic 0, a MOVC instruction in external program memory space will be able to
access code in the external memory, but it will not be able to access code in the internal memory. A
MOVC instruction in internal program memory space will always be able to access code in both
internal and external memory. If this bit is logic 1, there are no restrictions on the MOVC instruction.
New Defined Peripheral
In order to be more suitable for I/O, an extra 4-bit bit-addressable port P4 and two external interrupt
, INT3 has been added to either the PLCC or QFP 44 pin package. And description follows:
1.INT2/INT3
Two additional external interrupts,
interrupt 0 and 1 in the standard 80C52. The functions/status of these interrupts are
determined/shown by the bits in the XICON (External Interrupt Control) register. The XICON register
is bit-addressable but is not a standard register in the standard 80C52. Its address is at 0C0H. To
set/clear bits in the XICON register, one can use the "SETB (/CLR) bit" instruction. For example,
"SETB 0C2H" sets the EX2 bit of XICON.
***XICON - external interrupt control (C0H)
PX3EX3IE3IT3PX2EX2IE2IT2
and INT3 , whose functions are similar to those of external
PX3: External interrupt 3 priority high if set
- 8 -
Page 9
W78E58
INT2
EX3: External interrupt 3 enable if set
IE3: If IT3 = 1, IE3 is set/cleared automatically by hardware when interrupt is detected/serviced
IT3: External interrupt 3 is falling-edge/low-level triggered when this bit is set/cleared by software
PX2: External interrupt 2 priority high if set
EX2: External interrupt 2 enable if set
IE2: If IT2 = 1, IE2 is set/cleared automatically by hardware when interrupt is detected/serviced
IT2: External interrupt 2 is falling-edge/low-level triggered when this bit is set/cleared by software
Another bit-addressable port P4 is also available and only 4 bits (P4<3:0>) can be used. This port
address is located at 0D8H with the same function as that of port P1, except the P4.3 and P4.2 are
alternative function pins. It can be used as general I/O pins or external interrupt input sources (
INT3 ).
Example:
P4REG0D8H
VECTOR
ADDRESS
POLLING
SEQUENCE WITHIN
PRIORITY LEVEL
ENABLE
REQUIRED
SETTINGS
INTERRUPT
TYPE
EDGE/LEVEL
/
MOVP4, #0AH ; Output data "A" through P4.0−P4.3.
MOVA, P4; Read P4 status to Accumulator.
SETBP4.0; Set bit P4.0
CLRP4.1; Clear bit P4.1
3. Reduce EMI Emission
Because of the large on-chip flash EEPROM, when a program is running in internal ROM space, the
ALE will be unused. The transition of ALE will cause noise, so it can be turned off to reduce the EMI
Publication Release Date: November 1997
- 9 -Revision A2
Page 10
W78E58
PSEN
emission if it is useless. Turning off the ALE signal transition only requires setting the bit 0 of the
AUXR SFR, which is located at 08Eh. When ALE is turned off, it will be reactivated when the program
accesses external ROM/RAM data or jumps to execute an external ROM code. The ALE signal will
turn off again after it has been completely accessed or the program returns to internal ROM code
space..
The AO bit in the AUXR register, when set, disables the ALE output.
***AUXR - Auxiliary register (8EH)
-------AO
AO: Turn off ALE output.
4. Power-off Flag
***PCON - Power control (87H)
SMOD--POFGF1GF0PDIDL
SMOD: Double baud rate bit. When set to a 1, the baud rate is doubled when the serial port is
being used in either modes 1, 2, 3.
POF: Power off flag. Bit is set by hardware when power on reset. It can be cleared by software
to determine chip reset is a warm boot or cold boot.
GF1, GF0: These two bits are general-purpose flag bits for the user.
PD: Power down mode bit. Set it to enter power down mode.
IDL: Idle mode bit. Set it to enter idle mode.
The power-off flag is located at PCON.4. This bit is set when VDD has been applied to the part. It can
be used to determine if a reset is a warm boot or a cold boot if it is subsequently reset by software.
Flash Operations
In normal operation, the W78E58 is functionally compatible with the W78C58. In the flash operating
mode, the flash EEPROM can be programmed and verified repeatedly. Once the code inside the
flash EEPROM is confirmed, the code can be protected. The flash EEPROM and the operations on it
are described below.
All of the operations are configured by the pins RST, ALE,
A14CTRL (P3.2), OECTRL (P3.3), CE (P3.6), OE (P3.7), A0 (P1.0) and VPP (EA). In these
operations, A15 to A0 (P2.7 to P2.0, P1.7 to P1.0) and D7 to D0 (P0.7 to P0.0) serve as the address
and data bus, respectively.
Read Operation
This operation enables customers to read their codes and the option bits. The data will not be valid if
the lock bit is programmed to low.
- 10 -
, A9CTRL (P3.0), A13CTRL (P3.1),
Page 11
W78E58
PSEN
Program Operation
This operation is used to program data to the flash EEPROM and the option bits. Programming is
initiated when VPP reaches VCP (12.5V) level, CE is set to low, and OE is set to high.
Program Verify Operation
All data must be checked after programming. This operation should be performed after each byte is
programmed, and it will ensure a substantial program margin.
OPERATIONP3.0
(A9
CTRL)
ReadVILVILVILVILVILVILVIH
ProgramVILVILVILVILVILVIHVCP
Program VerifyVILVILVILVILVIHVILVCP
Notes:
1. During all of these operations, RST = VIH, ALE = VIL, and
2. VCP = 12V, VIH = VDD, VIL = Vss.
3. The program verify operation should follow the programming operaion.
P0, P1, P2, P3, P4,
Input Low Voltage
RST
Input Low Voltage
XTAL1[*4]
Input High Voltage
P0, P1, P2, P3, P4,
Input High Voltage
RST
Input High Voltage
XTAL1 [*4]
Output Low Voltage
P1, P2, P3, P4
VIL200.8VVDD = 4.5V
VIL300.8VVDD = 4.5V
VIH12.4VDD +0.2VVDD = 5.5V
VIH23.5VDD +0.2VVDD = 5.5V
VIH33.5VDD +0.2VVDD = 5.5V
VOL1-0.45VVDD = 4.5V
IOL = +2 mA
- 12 -
Page 13
DC Characteristics, continued
PARAMETERSYM. SPECIFICATIONUNITTEST CONDITIONS
Output Low Voltage
P0, ALE, PSEN [*3]
W78E58
MIN.MAX.
VOL2-0.45VVDD = 4.5V
IOL = +4mA
Sink Current
P1, P2, P3, P4
Sink Current
P0, ALE, PSEN
Output High Voltage
P1, P2, P3, P4
Output High Voltage
P0, ALE, PSEN [*3]
Source Current
P1, P2, P3, P4
Source Current
P0, ALE, PSEN
Notes:
*1. RST pin is a Schmitt trigger input. RST has internal pull-low resistors of about 30 KΩ.
*3. P0, ALE and /PSEN are tested in the external access mode.
*4. XTAL1 is a CMOS input.
*5. Pins of P1, P2, P3, P4 can source a transition current when they are being externally driven from 1 to 0. The transition
current reaches its maximum value when VIN approximates to 2V.
ISK1412mAVDD = 4.5V
Vs = 0.45V
ISK21020mAVDD = 4.5V
Vs = 0.45V
VOH12.4-VVDD = 4.5V
IOH = -100 µA
VOH22.4-VVDD = 4.5V
IOH = -400 µA
ISR1-120-250
µA
VDD = 4.5V
Vs = 2.4V
ISR2-8-14mAVDD = 4.5V
Vs = 2.4V
AC CHARACTERISTICS
The AC specifications are a function of the particular process used to manufacture the part, the
ratings of the I/O buffers, the capacitive load, and the internal routing capacitance. Most of the
specifications can be expressed in terms of multiple input clock periods (TCP), and actual parts will
usually experience less than a ±20 nS variation. The numbers below represent the performance
expected from a 0.8 micron CMOS process when using 2 and 4 mA output buffers.