MG87FEL52 Data Sheet: 8051-Based MCU
MG87FEL52 Data Sheet: 8051-Based MCU
MG87FEL52 Data Sheet: 8051-Based MCU
MG87FEL52
Data Sheet
Version: A1.0
This document contains information on a new product under development by Megawin. Megawin reserves the right to change or
discontinue this product without notice.
Megawin Technology Co., Ltd. 2012 All rights reserved. 2014/03 version A1.0
2 MG87FEL52A Data Sheet MEGAWIN
Features
80C51 Central Processing Unit
8KB On-Chip program memory for program ROM, ISP ROM & IAP zone.
ISP capability; optional 0.5K/1KB/1.5K~3.5KB ISP memory shared with 8KB flash memory.
IAP capability; program controlled IAP memory size shared with 8KB flash memory.
On-Chip 256 bytes scratch-pad RAM. Also, the MCU can address up to 64K bytes external memory.
MOVC-disabling, encrypting, and locking flash memory realize security mechanism.
Three 16-bits timer/counter, Timer2 is an up/down counter with programmable clock output on P1.0
Eight sources, four-level-priority interrupt capability
Enhanced UART, provides frame-error detection and hardware address-recognition
Dual DPTR for fast-accessing of data memory
15 bits Watch-Dog-Timer with 8-bits pre-scaler, one-time enabled
Low EMI: inhibits ALE emission
Power control: Idle mode and Power-Down mode; Power-Down can be woken-up by
P3.2/P3.3/P4.2/P4.3, Idle mode could be woken up by all interrupt sources.
I/O port: 32+4 I/O ports :
PDIP-40 (MG87FE/L52AE ) has 32 I/O ports;
PLCC-44 & PQFP-44(MG87FE/L52AP, MG87FE/L52AF) will have 36 I/O ports
On-Chip flash program/data memory:
- The data endurance of the embedded flash gets over 20,000 times
- Greater than 100 years data rentention under room temperature. (at 25℃)
Operating Voltage: - 4.5V~5.5V for MG87FE52,
- 2.4V~3.6V for MG87FL52, minimum 2.7V requirement in flash write operation
Built-in Low-Voltage-Reset circuit
Operating Temperature range from -40°C to +85°C.
Maximum Operating Frequency: - Up to 48MHz at 12T mode or 24MHz at 6T mode, Industrial
range.
Built-in internal oscillator frequency selection with +/- 4% deviation:
Internal oscillator frequency
1 6MHz
2 11.059MHz
3 12MHz
4 22.118MHz
5 24MHz
6 24.576MHz
(T2EX) P1.1
(INT3) P4.2
(AD0) P0.0
(AD1) P0.1
(AD2) P0.2
(AD3) P0.3
(T2) P1.0
VDD
P1.4
P1.3
P1.2
(T2) P1.0 1 40 VDD
(T2EX) P1.1 2 39 P0.0 (AD0)
P1.2 3 38 P0.1 (AD1)
P1.3 4 37 P0.2 (AD2)
P1.4 5 36 P0.3 (AD3) 6 5 4 3 2 1 44 43 42 41 40
P1.5 6 35 P0.4 (AD4) P1.5 7 39 P0.4 (AD4)
MG87Fx52AE
(INT3) P4.2
(AD0) P0.0
(AD1) P0.1
(AD2) P0.2
(AD3) P0.3
(T2) P1.0
VDD
P1.4
P1.3
P1.2
44 43 42 41 40 39 38 37 36 35 34
P1.5 1 33 P0.4 (AD4)
P1.6 2 32 P0.5 (AD5)
P1.7 3 31 P0.6 (AD6)
RESET 4 30 P0.7 (AD7)
(RXD) P3.0 5 29 /EA
(/INT2) P4.3 6 MG87Fx52AF 28 P4.1
(TXD) P3.1 7 27 ALE
(INT0) P3.2 8
(PQFP-44) 26 /PSEN
(INT1) P3.3 9 25 P2.7 (A15)
(T0) P3.4 10 24 P2.6 (A14)
(T1) P3.5 11 23 P2.5 (A13)
12 13 14 15 1617 18 19 20 2122
P3.6 (/WR)
P3.7 (/RD)
XTAL2
XTAL1
VSS
P4.0
P2.0 (A8)
P2.1 (A9)
P2.2 (A10)
P2.3 (A11)
P2.4 (A12)
Order information
P3.2 (INT0) 12 14 8 the strong output driving PMOS only turn-on two
clock periods and then the weak pull-up
P3.3 (INT1) 13 15 9
resistance keep the port high. Port3 also serves
P3.4 (T0) 14 16 10
other special functions of this device.
P3.5 (T1) 15 17 11
P3.0 and P3.1 act as receiver and transceiver of
P3.6 (/WR) 16 18 12 the data for UART function block,
P3.7 (/RD) 17 19 13 Alias RXD and TXD.
P3.2 and P3.3 also act as external interrupt
sources, alias INT0 and INT1.
P4.3 (/INT2) 12 6
RESET 9 10 4 IS A high on this pin for at least two machine cycles
will reset the device.
ALE 30 33 27 O Output pulse for latching the low byte of address
during accesses to external memory.
/PSEN 29 32 26 O The read strobe to external program memory, low
active.
/EA 31 35 29 I EA must be kept at low to enable the device to
fetch program code from external flash memory.
An internal pull-up resistance has been
embedded in this pin.
XTAL1 19 21 15 I Input to the inverting oscillator amplifier.
XTAL2 18 20 14 O Output from the inverting amplifier.
VDD 40 44 38 P Power Supply
VSS 20 22 16 G Ground
Flash ROM
B Register ACC Stack Pointer
ISP
TMP2 TMP1
Timer0/1
Address
ALU Timer2 Generator
UAR
WD T
PSW Program
T
Counter
DPT
R
XTAL1 XTAL2
Memory
FFFF
00
7F
80
FF
7FH
FFH
Upper128 SFRs
accessed by
Accessed by
30H direct
2FH indirect
addressing
Bit addressing
addressable
20H 1FH 7FH
Bank3
1FH 17H
Bank2 Lower128
10H 0FH
Bank1
08H 07H
Bank0 00H
00H
MG87FE/L52 has internal data RAM that is mapped to three separated segments. The lower 128 bytes of RAM,
upper 128 bytes of RAM and 128 bytes Special Function Register(SFR).
Lower 128 bytes of RAM: (addresses 0x00 to 0x7F) are accessed by either direct or indirect addressing. Upper
128 bytes of RAM: (addresses 0x80 to 0xFF) are accessed only by indirect addressing (using R0 or R1). The
Special Function Registers: (addresses 0x80 to 0xFF) are accessed only by direct addressing.
While the program counter is spanning over 1FFFh, the device will fetch its program code from the external
memory at once ignoring the /EA pin status. In that case, it will never fetch the program code from the following
embedded flash.
SFR: AUXR1
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
P10FD - - - GF2 - - DPS
Bit 7: OSCDR, OSC Driving control Register. Default value is load from OR1.b4 inverted value. And it could be
read/written by CPU.
0: The driving of crystal oscillator is enough for oscillation up to 48MHz.
1: The driving of crystal oscillator is reduced. It will helpful in EMI reduction. Regarding application not needing high
frequency clock, it is recommended to do so.
Bit 5~0: This is set the crystal frequency value to define the time base of ISP/IAP programming. Fill with a proper
value according to OSCin, as listed below.
The default value of XCKS= 6’b001010 for OSCin= 11MHz at 12T mode.
Bit 0: EN6TR, Enable 6T mode control register. Default value is load from OR1.b0 inverted value. And it could be
read/written by CPU. The access on this bit will affect CKCON2.EN6TR to corresponding operation and get
same control function.
0: MG87FE/L2051/4051/6051 will run in 12T mode.
1: MG87FE/L2051/4051/6051 will run in 6T mode.
INT_OSC 1
CKCON2.EN6TR
Enable INT_OSC
While T0/T1/T2 is used as “timer” function, the time unit that used to measure the timer is machine cycle. A
machine cycle equals 12 or 6 oscillator periods, and it depends on 12T mode or 6T mode that the user
configured this device.
While T0/T1/T2 is used as “1-0 event counter” function, the counting event is the “high-to-low transition” of
primitive pin T0/T1/T2. In this mode, the device periodically samples the status of pin T0/T1/T2 once for each
machine cycle. Whenever the sampled result turns from 1 to 0, the device will count once on the counter.
Becarefully, this kind of implementation for the counter requires the high-duty or low-duty from pin T0/T1/T2
and must not too short compared to a machine cycle.
There are two SFR designed to configure timers T0 and T1. They are TMOD, and TCON.
There are extra two SFR designed to configure timer T2. They are T2MOD, and T2CON.
SFR: TMOD
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
GATE: Gating control when set. If GATE=1, Timer/Counter x is enabled only while “/INTx” pin is high and
“TRx” control bit is set. When cleared Timer x is enabled whenever “TRx” control bit is set.
{1, 0}: = 8-bit timer/counter with automatic reload for Timer0 and Timer1
{1, 1}: = for Timer0: = TL0 is 8-bit timer/counter, TH0 is locked into 8-bit timer
TF1: = Timer1 overflow flag. Set by hardware on Timer/Counter overflow. Cleared by hardware when the processor vectors
to the interrupt routine, or clearing the bit in software.
TF0: = Timer0 overflow flag. Set by hardware on Timer/Counter overflow. Cleared by hardware when the processor vectors
to the interrupt routine, or clearing the bit in software.
IE1: = Interrupt 1 Edge flag. Set by hardware when external interrupt edge detected. Cleared when interrupt processed.
IT1: = Interrupt 1 type control bit. Set/Cleared by software to specified falling edge/low level triggered interrupt.
IE0: = Interrupt 0 Edge flag. Set by hardware when external interrupt edge detected. Cleared when interrupt processed.
IT0: = Interrupt 0 type control bit. Set/Cleared by software to specified falling edge/low level triggered interrupt.
SFR: T2MOD
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
T2OE DCEN
T2OE: Timer 2 Output Enable bit. It enables Timer2 overflow rate to toggle P1.0.
DCEN: Down Count Enable bit. When set, this allows Timer2 to be configured as a down counter.
SFR: T2CON
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
TF2 EXF2 RCLK TCLK EXEN2 TR2 C//T2 CP/RL2
TF2: Timer2 overflow flag. It will be set by a Timer2 overflow and must be cleared by software.
TF2 will not be set when either TCLK or RCLK =1.
EXF2: Timer2 external flag. It will be set when either a capture or reload is caused by a negative transition on pin T2EX and
EXEN2=1. When Timer2 interrupt is enabled, EXF2=1 will cause the CPU to vector to he timer2 interrupt routine.
EXF2 must be cleared by software. EXF2 does not cause an interrupt in Auto-Reload Up-Down mode (ARUD).
RCLK: When set causes the serial port to use Timer2 overflow pulse for it’s receive clock in mode and mode 3. RCLK=0
causes Timer1 overflow pulse to be used.
TCLK: When set causes the serial port to use Timer2 overflow pulse for it’s transmit clock in mode 1 and mode 3. RCLK=0
causes Timer1 overflow pulse to be used.
EXEN2: Timer-2 external enable flag. When set, allows a capture or reload to occur. As a result of a negative transition on
T2EX if Timer2 is not being used to clock the serial port.
EXEN2=0 causes Timer2 to ignore events at T2EX.
CP/RL2: Capture/Reload flag. When set, captures will occurs on a negative transition at T2EX if EXEN2=1. When cleared,
auto-reloads will occur either with Timer2 overflows or a negative transition at T2EX when EXEN2=1. When
whether TCLK or RCLK is 1, this bit is ignored and the timer is forced to auto-reload on Timer2 overflow.
Mode 0
The timer register is configured as a 13-bit register. As when the count rolls over from all 1s to all 0s,
it sets the timer interrupt flag TFx. The counted input is enabled to the timer when TRx = 1 and
either GATE=0 or INTx = 1. Mode 0 operation is the same for Timer0 and Timer1.
0 TFx Interrupt
OSC/12 0 TLx[4:0] THx[7:0]
1
T0 or T1 pin 1
(sampled)
C//T
TRx
GATE
/INTx
Mode 0
Mode 1
Mode1 is the same as Mode0, except that the timer register is being run with all 16 bits.
0 TFx Interrupt
OSC/12 0 TLx[7:0] THx[7:0]
1
T0 or T1 pin 1
(sampled)
C//T
TRx
GATE
Mode 1
/INTx
Mode 2
Mode 2 configures the timer register as an 8-bit counter (TLx) with automatic reload. Overflow from TLx does
not only set TFx, but also reloads TLx with the content of THx, which is determined by user’s program. The
reload leaves THx unchanged. Mode 2 operation is the same for Timer0 and Timer1.
Mode 3
Timer1 in Mode3 simply holds its count, the effect is the same as setting TR1 = 1. Timer0 in Mode 3 enables
TL0 and TH0 as two separate 8-bit counters. TL0 uses the Timer0 control bits such like C/T, GATE, TR0, INT0
and TF0. TH0 is locked into a timer function (can not be external event counter) and take over the use of TR1,
TF1 from Timer1. TH0 now controls the Timer1 interrupt.
C//T
TR0
GATE
/INT0
Mode 3
PSEN
TR1
P0
P2
TIMER2 ADD
Timer2 is a 16-bit timer/counter which can operate as either an event timer or an event counter as selected by
RL
C//T2 in the special function register T2CON. Timer2 has four operation modes: Capture Mode (CP),
ADD
Auto-Reload Up/Down Mode (ARUD), Auto-Reload Up-Only mode (ARUO) and Baud-Rate Generator Mode
RH
(BRG).
ADD
Logical OR CP/RL2 TR2 DCEN Mode
RH
(RCLK, TCLK)
x x 0 x OFF
1
ALE x 1 0 Baud-Rate Generation
0 OSC/12 1 1 0 Capture
0 0 1 0 Auto-Reload Up-only
0 0 1 1 Auto-Reload Up/Down
Timer2 Mode Table
Oscillator frequency
0
OSC/12 0 TL2 [7:0] TH2[7:0] TF2
1
T2 pin 1
C//T2
TR2
0
OSC/12 0 TL2 [7:0] TH2[7:0] TF2
1
T2 pin 1
C//T2
TR2
Interrupt
EXF2
T2EX pin
EXEN2
FFH FFH
EXF2
0
OSC/12 0 TL2 [7:0] TH2[7:0] TF2
1
T2 pin 1 Interrupt
C//T2
In BRG mode, Timers is operated very like auto-reload up-only mode except that the T2EX pin
cannot control reload. An overflow on Timer2 will load RCAP2H, RCAP2L contents onto Timer2,
but TF2 will not be set. A 1-to-0 transition on P2EX pin can set EXF2 to request interrupt service if
EXEN2=1.
The baud rate in UART Mode1 and Mode3 are determined by Timer2’s overflow rate given below:
Oscillator Frequency
Baud Rate = (as a timer)
[32 x [65536 – (RCAP2H, RCAP2L) ] ]
Timer1 overflow
2
“0” “1”
SMOD
0 “1” “0”
OSC/12 0 TL2[7:0] TH2[7:0]
1 RCLK
T2 pin 1
16
C//T2
TR2
“1” “0”
TCLK RX Clock
RCAP2L[7:0] RCAP2H[7:0]
16
TX Clock
EXEN2
(1). Required Function: IDLE mode with T0 wake-up frequency 10KHz, SYSCLK = 12MHz Crystal
Assembly Code Example:
T0M0 EQU 01h
T0M1 EQU 02h
IDL EQU 01h
ORG 0000h
JMP main
ORG 0000Bh
time0_isr:
to do…
RETI
C Code Example:
#define T0M0 0x01
#define T0M1 0x02
#define IDL 0x01
void main(void)
{
TH0 = TL0 = (256-100); // Set Timer 0 overflow rate = SYSCLK x 100
TMOD &= 0xF0; // Set Timer 0 to Mode 2
TMOD |= T0M1;
TF0 = 0; // Clear Timer 0 Flag
ORG 0000h
JMP main
ORG 0000Bh
time0_isr:
to do…
RETI
main:
CLR TF0 ; Clear Timer 0 Flag
C Code Example:
#define T0M0 0x01
#define T0M1 0x02
TF0 = 0;
Mode 0
Generally, this mode purely is used to extend the I/O features of this device.
Operating under this mode, the device receives the serial data or transmits the serial data via pin RXD, while
there is a clock stream shifted via pin TXD which makes convenient for external synchronization. An 8-bit data
is serially transmitted/received with LSB first. The baud rate is fixed at 1/12 the oscillator frequency.
Mode1
A 10-bits data is serially transmitted through TXD or received through RXD. The frame data includes a start bit
(0), 8 data bits and a stop bit (1). After the receiving, the device will keep the stop bit in RB8 which from SRF
SCON.
2 SMOD
Baud Rate (for Mode 1) = X (Timer-1 overflow rate)
32
(Timer-2 overflow rate)
or =
16
Mode2
An 11-bit data is serially transmitted through TXD or received through RXD. The frame data includes a start bit
(0), 8 data bits, a programmable 9th bit and a stop bit (1). On transmit, the 9th data bit comes from TB8 in SFR
SCON. On receive, the 9th data bit goes into RB8 in SCON. The baud rate is programmable, and permitted to
be set either 1/32 or 1/64 the oscillator frequency.
2 SMOD
Baud Rate (for Mode 2) = X Fosc
64
2 SMOD
Baud Rate (for Mode 3) = X (Timer-1 overflow rate)
32
(Timer-2 overflow rate)
or =
16
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 with 1-to-0 transition if REN=1.
There are several SFR related to serial port configuration described as following.
SFR: SCON (Serial Port Control):
Bit-7 Bit-6 Bit-5 Bit-4 Bit-3 Bit-2 Bit-1 Bit-0
SM0/FE SM1 SM2 REN TB8 RB8 TI RI
FE: Frame Error bit. This bit is set by the receiver when an invalid stop bit is detected. The FE bit is not cleared by valid
frames, but should be cleared by software. The SMOD0 (PCON.6) bit must be set to enable access to the FE bit.
{ SM0, SM1 }: Used to set operating mode of the serial port. It is enabled to access by clearing SMOD0.
{ 0, 0 } := set the serial port operate under Mode 0
{ 0, 1 } := set the serial port operate under Mode 1
{ 1, 0 } := set the serial port operate under Mode 2
{ 1, 1 } := set the serial port operate under Mode 3
SM2: Enable the automatic address recognition feature in mode 2 and 3. If SM2=1, RI will not be set unless the received 9th
data bit is 1, indicating an address, and the received byte is a Given or Broadcast address. In mode1, if SM2=1 then RI
will not be set unless a valid stop Bit was received, and the received byte is a Given or Broadcast address.
TB8: The 9th data bit, which will be transmitted in Mode 2 and Mode 3.
RB8: In mode 2 and 3, the received 9th data bit will go into this bit.
TI: Transmit interrupt flag. After a transmit has been finished, the hardware will set this bit.
RI: Receive interrupt flag. After reception has been finished, the hardware will set this bit.
There are two SFR SADDR and SADEN implemented in the device. The user can read or write both of them.
Finally, the hardware will make use of these two SFR to “generate” a “compared byte”. The formula specifies as
following.
For example:
Set SADDR = 11000000b
Set SADEN = 11111101b
The achieved “Compared Byte” will be “110000x0” (x means don’t care)
After the generic “Compared Byte” has been worked out, the MG87FEL52A will make use of this byte to determine
how to set the bit RI in SFR SCON.
Normally, an UART will set bit RI whenever it has done a byte reception; but for the UART in the MG87FEL52A, if the
bit SM2 is set, it will set RI according to the following formula.
In other words, not all data reception will respond to RI, while specific data does.
By setting the SADDR and the SADEN, the user can filter out those data byte that doesn’t like to care. This
feature brings great help to reduce software overhead.
The above feature adapts to the serial port when operated in Mode1, Mode2, and Mode3.
Dealing with Mode 0, the user can ignore it.
RI_ISR:
; Process
CLR RI ;
RETI ;
TI_ISR:
; Process
CLR TI ;
RETI ;
main:
CLR TI ;
CLR RI ;
SETB SM1 ;
SETB REN ; 8bit Mode2, Receive Enable
CALL UART_Baud_Rate_Setting ;
C Code Example:
void uart_ri_idle_isr(void) interrupt 4
{ if(RI)
{
RI=0;
// to do ...
}
if(TI)
{
TI=0;
// to do ...
}
}
void main(void)
{
TI = RI = 0;
SM1 = REN = 1; // 8bit Mode2, Receive Enable
UART_Baud_Rate_Setting() //
ES = 1; // Enable S0 interrupt
EA = 1; // Enable global interrupt
Any positive pulse from RESET pin must be kept at least two-machine cycle, or the device cannot be
reset.
There are two ways to terminate the idle. Activation of any enabled interrupt will cause PCON.0 to
be cleared by hardware to terminating the idle mode. The interrupt will be serviced, and following
RETI, the next instruction to be executed will be performed right after the instruction that causes the
device entering to the idle mode. Another way to wake-up from idle is to pull RESET pin high to
generate internal hardware reset.
2. POWER-DOWN mode
The user can set the bit PCON.1 to drive this chip entering POWER-DOWN mode.
In the POWER-DOWN mode, the on-chip oscillator is stopped. The contents of on-chip RAM and SFRs are
maintained.
The power-down mode can be woken-up by either hardware reset or /INT0, /INT1, /INT2 and /INT3 external
interrupts. When it is woken-up by RESET pin, the program will execute from the address 0x0000, and be
carefully to keep RESET pin active for at least 10ms in order to get a stable clock while waking up this chip from
POWER-DOWN mode. If it is woken-up from I/O, the program will jump to related interrupt service routine. To
use I/O wake-up, interrupt-related registers have to be programmed accurately before power-down is entered.
Pay attention to add at least one “NOP” instruction subsequent to the power-down instruction if I/O
waken-up is used.
Mode Program Memory ALE PSEN Port0 Port1 Port2 Port3
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
Pin Status in IDLE Mode and POWER-DOWN Mode
Each interrupt source has two corresponding bits to represent its priority. One is located in SFR named IPH and
the other in IP/XICON register. Higher-priority interrupt will be not interrupted by lower-priority interrupt request.
If two interrupt requests of different priority levels are received simultaneously, the request of higher priority is
serviced. If interrupt requests of the same priority level are received simultaneously, an internal polling
sequence determines which request is serviced. The following table shows the internal polling sequence in the
same priority level and the interrupt vector address.
The external interrupt /INT0, /INT1, /INT2 and /INT3 each can be either level-activated or transition-activated,
depending on bits IT0 and IT1 in SFR TCON, IT2 and IT3 and XICON. The flags that actually generate these
interrupts are bits IE0 and IE1 in TCON, IE2 and IE3 in XICON. When an external interrupt is generated, the
flag that generated it is cleared by the hardware. When the service routine is vectored to only if the interrupt
was transition –activated, and then the external requesting source controls the request flag, rather than the
on-chip hardware.
The Timer0 and Timer1 interrupts are generated by TF0 and TF1, which are set by a rollover in their
respective Timer/Counter registers in most cases. When a timer interrupt is generated, the flag, which
generated it, is cleared by the on-chip hardware as soon as the service routine is vectored to.
The serial port interrupt is generated by the logical OR of RI and TI. Neither of these flags is cleared by
hardware when the service routine is vectored to. The service routine should poll RI and TI to determine which
one to request service and it will be cleared by software.
The timer2 interrupt is generated by the logical OR of TF2 and EXF2. Just the same as serial port, neither of
these flags is cleared by hardware when the service routine is vectored to.
All of the bits that generate interrupts can be set or cleared by software, and it has the same impact as done
through it by hardware. In other words, interrupts or pending interrupts can be generated or canceled in
software.
IE3 : Interrupt 3 Edge flag. Sets by hardware when external interrupt edge detected. Cleared when
interrupt processed.
IT3 : Interrupt 3 type control bit. Set/Cleared by software to specified falling edge/low level triggered
interrupt.
IE2 : Interrupt 2 Edge flag. Sets by hardware when external interrupt edge detected. Cleared when
interrupt processed.
IT2 : Interrupt 2 types control bit. Set/Cleared by software to specify falling edge/low level triggered
interrupt.
CLK/12 8
ENW 8-bit pre-scalar timer 15-bit WDT
RESET
PS0
IDLE
WIDL PS1
PS2
CLRW
CLRW: Clear WDT to recount while it is set. Hardware will automatically clear this bit.
WIDL: Set this bit to disable WDT generating reset even though the μC is in idle mode.
(1) Required function: Enable WDT and select WDT prescalar to 1/32
Assembly Code Example:
PS0 EQU 01h
PS1 EQU 02h
PS2 EQU 04h
WIDL EQU 08h
CLRW EQU 10h
ENW EQU 20h
WRF EQU 80h
C Code Example:
#define PS0 0x01
#define PS1 0x02
#define PS2 0x04
#define WIDL 0x08
#define CLRW 0x10
#define ENW 0x20
#define WRF 0x80
The embedded flash consists of 30 pages. Each page contains 512 bytes.
Dealing with flash, the user must erase it in page unit before writing (programming) data into it.
Erasing flash means setting the content of that flash as FFh. Two erase modes are available in this chip. One is
mass mode and the other is page mode. The mass mode gets more performance, but it erases the entire flash.
The page mode is something performance less, but it is flexible since it erases flash in page unit.
Unlike RAM’s real-time operation, to erase flash or to write (program) flash often takes longer time to finish.
Furthermore, it is a quite complex timing procedure to erase/program flash. Fortunately, the MG87FEL52A
carried with convenient mechanism to help the user read/change the flash content. Just filling the target
address and data into several SFR, and triggering the built-in ISP automation, the user can easily erase, read,
and program the embedded flash and option registers OR1.
There are several SFR designed to help the user implement the ISP functionality.
IFD is the data port register for ISP operation. The data in IFD will be written into the desired address in operating ISP write and it
is the data window of readout in operating ISP read.
Note: OR0 cannot be changed by ISP operation. It can be accessed only by Writer. Only OR1 can be changed by ISP
program.
SCMD is the command port for triggering ISP activity. If SCMD is filled with sequential 46h, B9h and if ISPCR.7 = 1, ISP
activity will be triggered.
When this register is read, the device ID of MG87FEL52A will be returned (2 bytes). The MSB byte of DID is F1h and LSB
byte 10h. IFADRL[0] is used to select HIGH/LOW byte of DID.
Notice: Software reset actions could reset other SFR, but it never influences bits ISPEN and SWBS. The ISPEN and
SWBS only will be reset by power-up action, not software reset.
else
Above rule is adaptive only for power-up procedure, not software reset.
ISPCR ← 001xxxxxb
which disables flash-writing authority, set SWBS 0, and trigger a software reset. After that, the system will be
reset (not powered-up), and the system will refer to SWBS to startup from AP program entrance. For power-up
procedure, the HWBS will be referred to decide the program entrance, but for software reset, SWBS will be
referred to.
ISPCR ← x11xxxxxb
which sets SWBS 1 to direct the device boot from AP program, and trigger a software reset. After that, the
system will be reset (not powered-up), and the system will refer to SWBS to startup from ISP program entrance.
DC Characteristics (MG87FE52A)
VSS = 0V, TA = 25 ℃ and 12 clocks per machine cycle ,unless otherwise specified
DC Characteristics (MG87FL52A)
VSS = 0V, TA = 25 ℃ and 12 clocks per machine cycle ,unless otherwise specified
A3 2004/10 - reorganized
A5 2005/01 - Re-Format
- Mark the reset pin resistance
- Remove the read-only limitation on SFR AUXR
- Document on option register OR1.7
- Fix the Baud-Rate-Computing formula for Timer-1
A6 2005/01 - Fix ISP start address incorrect
A8 2005/6/14 P5, 8, 33 - Modify pin /EA location for PDIP and PLCC package
- Modify bits definition for SFR PCON
- Absolute Maximum Rating