ETC2 N79E875 8-bit microcontroller Datasheet

Preliminary N79E875 DATA SHEET
8-BIT MICROCONTROLLER
Table of Contents1
2
3
GENERAL DESCRIPTION ......................................................................................................... 5
FEATURES ................................................................................................................................. 6
PARTS INFORMATION LIST ..................................................................................................... 8
3.1
Lead Free (RoHS) Parts information list ......................................................................... 8
4
5
6
PIN CONFIGURATION ............................................................................................................... 9
PIN DESCRIPTION................................................................................................................... 10
MEMORY ORGANIZATION...................................................................................................... 12
6.1
Program Flash Memory ................................................................................................ 12
7
6.2
Data Flash Memory ...................................................................................................... 12
6.3
Data Memory (accessed by MOVX) ............................................................................. 12
6.4
Scratch-pad RAM and Register Map ............................................................................ 12
6.5
Working Registers ........................................................................................................ 15
6.6
Bit addressable Locations ............................................................................................. 15
6.7
Stack ............................................................................................................................. 15
SPECIAL FUNCTION REGISTERS ......................................................................................... 16
7.1
SFR Location Table ...................................................................................................... 16
7.2
8
9
INSTRUCTION .......................................................................................................................... 70
POWER MANAGEMENT .......................................................................................................... 80
9.1
Idle Mode ...................................................................................................................... 80
9.2
10
11
12
13
SFR Detail Bit Descriptions .......................................................................................... 20
Power Down Mode ....................................................................................................... 80
RESET CONDITIONS............................................................................................................... 81
10.1 External Reset .............................................................................................................. 81
10.2
Power-On Reset (POR) ................................................................................................ 81
10.3
Watchdog Timer Reset ................................................................................................. 81
10.4
Software Reset ............................................................................................................. 81
10.5
Brownout Reset ............................................................................................................ 81
10.6
Reset State ................................................................................................................... 81
INTERRUPTS ........................................................................................................................... 83
11.1 Interrupt Sources .......................................................................................................... 83
11.2
Priority Level Structure ................................................................................................. 85
11.3
Interrupt Response Time .............................................................................................. 87
NVM MEMORY ......................................................................................................................... 89
PROGRAMMABLE TIMERS/COUNTERS ............................................................................... 90
-1-
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
14
13.1
TIMER/COUNTERS 0 & 1 ............................................................................................ 90
13.2
Time-Base Selection ..................................................................................................... 90
13.3
MODE 0 ........................................................................................................................ 90
13.4
MODE 1 ........................................................................................................................ 91
13.5
MODE 2 ........................................................................................................................ 92
13.6
MODE 3 ........................................................................................................................ 93
WATCHDOG TIMER ................................................................................................................. 95
14.1 WATCHDOG CONTROL .............................................................................................. 96
14.2
15
16
17
18
CLOCK CONTROL of Watchdog.................................................................................. 96
TIMER2/INPUT CAPTURE MODULES .................................................................................... 98
15.1 Capture Mode ............................................................................................................... 98
15.2
Compare Mode ........................................................................................................... 106
15.3
Reload Mode............................................................................................................... 106
TIMER3 ................................................................................................................................... 107
16.1 Timer/Counter Mode ................................................................................................... 108
16.2
Capture Mode ............................................................................................................. 108
16.3
Compare Mode ........................................................................................................... 109
16.4
Auto-reload Mode ....................................................................................................... 110
SERIAL PORT (UART) ........................................................................................................... 111
17.1 MODE 0 ...................................................................................................................... 111
17.2
MODE 1 ...................................................................................................................... 112
17.3
MODE 2 ...................................................................................................................... 114
17.4
MODE 3 ...................................................................................................................... 115
17.5
Framing Error Detection ............................................................................................. 116
17.6
Multiprocessor Communications................................................................................. 116
I2C SERIAL CONTROL .......................................................................................................... 118
18.1 I2C Port ....................................................................................................................... 118
18.2
SFR for I2C Function .................................................................................................. 119
18.2.1
18.2.2
18.2.3
18.2.4
18.2.5
18.2.6
18.3
I2C Address Registers, I2ADDR................................................................................. 119
I2C Data Register, I2DAT ........................................................................................... 119
I2C Control Register, I2CON ...................................................................................... 120
I2C Status Register, I2STATUS ................................................................................. 120
I2C Clock Baud Rate Bits, I2CLK ............................................................................... 121
I2C Time-out Counter Register, I2TOC ...................................................................... 121
Modes of Operation .................................................................................................... 121
18.3.1
18.3.2
18.3.3
Master Transmitter Mode ........................................................................................... 122
Master Receiver Mode ............................................................................................... 122
Slave Receiver Mode ................................................................................................. 122
-2-
Preliminary N79E875 Data Sheet
18.3.4
18.4
19
SERIAL PHERIPHERAL INTERFACE (SPI) .......................................................................... 129
19.1 General descriptions ................................................................................................... 129
19.2
Block descriptions ....................................................................................................... 129
19.3
Functional descriptions ............................................................................................... 131
19.3.1
19.3.2
19.3.3
19.3.4
19.3.5
19.3.6
19.3.7
19.3.8
19.3.9
19.3.10
19.3.11
20
21
22
23
25
Master mode .............................................................................................................. 131
Slave Mode ................................................................................................................ 134
Slave select ................................................................................................................ 138
Slave Select output enable ......................................................................................... 138
SPI I/O pins mode ...................................................................................................... 139
Programmable serial clock’s phase and polarity......................................................... 140
Receive double buffered data register ........................................................................ 140
LSB first enable .......................................................................................................... 140
Write Collision detection ............................................................................................. 141
Transfer complete interrupt ...................................................................................... 141
Mode Fault ............................................................................................................... 141
TIMED ACCESS PROTECTION ............................................................................................ 144
KEYBOARD INTERRUPT (KBI) ............................................................................................. 146
I/O PORT CONFIGURATION ................................................................................................. 147
22.1 Quasi-Bidirectional Output Configuration ................................................................... 147
22.2
Open Drain Output Configuration ............................................................................... 148
22.3
Push-Pull Output Configuration .................................................................................. 148
22.4
Input Only Configuration ............................................................................................. 149
22.5
SFR of I/O Port Configuration ..................................................................................... 149
OSCILLATOR ......................................................................................................................... 150
23.1 On-Chip RC Oscillator Option..................................................................................... 150
23.2
24
Slave Transmitter Mode ............................................................................................. 122
Data Transfer Flow in Five Operating Modes ............................................................. 122
External Clock Input Option ........................................................................................ 150
POWER MONITORING FUNCTION ...................................................................................... 151
24.1 Power On Detect ........................................................................................................ 151
24.2
Brownout Detect ......................................................................................................... 151
24.3
SFR of Brown-out Detection ....................................................................................... 152
PULSE-WIDTH-MODULATED (PWM) OUTPUTS ................................................................. 153
25.1 PWM Features ............................................................................................................ 153
25.2
PWM Operation .......................................................................................................... 155
25.2.1
25.2.2
25.2.3
PWM Operation Mode ................................................................................................ 156
Edge aligned PWM (up-counter) ................................................................................ 156
Center Aligned PWM (up/down counter) .................................................................... 159
25.3
PWM Brake Function .................................................................................................. 162
25.4
PWM Output Driving Control ...................................................................................... 164
-3-
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
25.5
PWM modes ............................................................................................................... 164
25.5.1
25.5.2
25.5.3
25.5.4
26
25.6
Polarity Control ........................................................................................................... 166
25.7
PWM Mask Output ...................................................................................................... 166
25.8
SFR of PWM Unit ....................................................................................................... 170
ANALOG-TO-DIGITAL CONVERTER (ADC) ......................................................................... 171
26.1 Operation of ADC ....................................................................................................... 171
26.1.1
26.1.2
26.1.3
27
28
29
30
Normal Operation of ADC........................................................................................... 171
ADC Start Synchronous with PWM ............................................................................ 173
ADC Converting in Power-dwon and Idle Mode ......................................................... 173
26.2
ADC Resolution and Analog Supply: .......................................................................... 173
26.3
ADC Continuous Mode ............................................................................................... 174
26.4
ADC Compare Function .............................................................................................. 174
OP AMPLIFIER ....................................................................................................................... 176
ANALOG COMPARATORS .................................................................................................... 177
ICP (IN-CIRCUIT PROGRAM) FLASH PROGRAM ............................................................... 178
CONFIG BITS ......................................................................................................................... 179
30.1 CONFIG0 .................................................................................................................... 179
30.2
31
Independent mode...................................................................................................... 164
Complementary mode ................................................................................................ 165
Synchronous mode..................................................................................................... 165
Group mode ............................................................................................................... 165
CONFIG1 .................................................................................................................... 181
ELECTRICAL CHARACTERISTICS ....................................................................................... 183
31.1 Absolute Maximum Ratings ........................................................................................ 183
31.2
DC Electrical Characteristics ...................................................................................... 184
31.3
ADC Converter DC Electrical Characteristics ............................................................. 186
31.4
OP Amplifier Electrical Characteristics ....................................................................... 187
31.5
Comparator Electrical Characteristics ........................................................................ 188
31.6
AC Electrical Characteristics ...................................................................................... 189
31.6.1
31.6.2
31.6.3
31.6.4
External Clock Characteristics .................................................................................... 189
Supplied Voltage-Frequency ...................................................................................... 189
Internal RC Oscillator Characteristics ......................................................................... 189
Typical Crystal Application Circuits............................................................................. 190
32
PACKAGE DIMENSIONS ....................................................................................................... 191
32.1 48L LQFP (7x7x1.4mm footprint 2.0mm) ................................................................... 191
33
REVISION HISTORY .............................................................................................................. 192
-4-
Preliminary N79E875 Data Sheet
1
GENERAL DESCRIPTION
N79E875 series are 8-bit Turbo 51 microcontrollers which have embedded Flash that can be
programmed by ICP (In Circuit Program) or by writer. The instruction sets of the N79E875 series are
fully compatible with the standard 8052. N79E875 series contain a 16K bytes of main Flash EPROM;
a 256 bytes of RAM; 256 bytes AUX-RAM; 128 bytes NVM Data Flash EPROM support; two 16-bit
timer/counters; one 16-bit timer with 3 capture inputs; one 12-bit capture/compare/auto-reload timer;
8-channel multiplexed 10-bit A/D converter; 8-channel 12-bit PWM that includes 6-channel for 3 pairs
complementary PWM; three serial ports that includes a SPI, an I2C and an enhanced full duplex serial
port; one OP amplifier; two analog comparators; 3-level selectable Brownout detector. These
peripherals are supported by 17 sources of four-level interrupt capability. To facilitate programming
and verification, the Flash EPROM inside N79E875 series allow the program memory to be
programmed and read electronically. Once the code is confirmed, the user can protect the code for
security.
N79E875 series, built-in efficient PWM generator and Input capture/timer, are designed for motor
control applications such as E-bike, inverters of DC/BLDC/AC induction/Stepping motor and home
appliance, etc. The built-in rich functions and peripheral also suit to general application.
-5-
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
2
•
•
FEATURES
Fully static design 8-bit Turbo 51 CMOS microcontroller;

VDD = 4.5V to 5.5V @40MHz

VDD = 3.0V to 5.5V @24MHz

VDD = 2.4V to 5.5V @8MHz
Operating temperature range

•
•
•
N79E875A/N79E875RA series: -40°C ~85°C
Flexible CPU clock source configurable by config-bit and software:

High speed external oscillator: Up to 40MHz Crystal and resonator (enabled by config-bit).

Internal oscillator: Nominal 22MHz/11MHz (selected by config-bit)
N79E875A series: 22MHz/11MHz with ±25% accuracy
N79E875RA series: 22.1184MHz/11.0592MHz with ±2% accuracy, at 3.3V/25°C
On-chip Memory

16K bytes of Application Program Flash memory, with ICP and External Writer
programmable mode.

128 bytes (8 pages x 16 bytes) Data Flash for customer data storage used and 10K writer
cycles; Data Flash program/erase VDD=3.0V to 5.5V

256 bytes of on-chip scratch-pad RAM.

256 bytes of auxiliary RAM, software-selectable, accessed by MOVX instruction.
Maximum 36 I/O pins.

Four outputs mode and TTL/Schmitt trigger selectable Port.
•
17 interrupts source with four levels of priority.
•
Four timer/counters.
•
•

Two 16-bit timer/counters

One 16-bit timer supports 3 capture inputs capability for hall sensor feedback.

One 12-bit timer supports 12-bit auto reload timer, capture and compare mode.
Three serial ports

One enhanced full duplex UART port with framing error detection and automatic address
recognition.

One SPI with master/slave capability.

One I2C with master/slave capability.
Four independent 12-bit PWM duty control units with maximum 8 port pins:

Six PWM output channels with mask control for BLDC application.

Three pairs complementary PWM with programmable dead-time insertion

Independent polarity setting for each channel

Two brake/fault input pins
-6-
Preliminary N79E875 Data Sheet

Up to two channels PWM independent from paired PWM channels.
•
One build-in OP amplifier.
•
Eight-channel multiplexed with 10-bits A/D converter.

Support synchronized trigger with PWM period.

Support OP amplifier output conversion.

Support digital compare function.
•
Two analog comparators with optional internal reference voltage input at negative end.
•
Eight-keypad interrupt inputs.
•
Built-in power management.

Idle mode

Power down mode
•
LED drive capability (20mA) on all port pins.
•
Config-bits selectable 3 levels( 4.5V/3.8V/2.6V) Brown-Out voltage detect interrupt and reset.
•
Independent Programmable Watchdog Timer.
•
Program and Data Flash security protection.
•
Development Tools:
•

JTAG ICE(In Circuit Emulation) tool

ICP(In Circuit Programming) writer
Packages:

Lead Free (RoHS) LQFP 48: N79E875ALG series (-40°C ~85°C)

Lead Free (RoHS) LQFP 48: N79E875RALG series (-40°C ~85°C)
-7-
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
3
PARTS INFORMATION LIST
3.1
Lead Free (RoHS) Parts information list
Table 3-1 Lead Free (RoHS) Parts information list
PART NO.
PROGRAM
FLASH
EPROM
RAM
DATA
FLASH
EPROM
TEMP
°C
N79E875ALG
16KB
256B+256B
128B
-40~85°C
N79E875RALG
16KB
256B+256B
128B
-40~85°C
Note:
1. Factory calibration condition: VDD=3.3V, TA = 25°C
-8-
INTERNAL
1
RC OSC
22MHz ±
25%
22.1184MHz
± 2%
PACKAGE
LQFP-48
LQFP-48
Preliminary N79E875 Data Sheet
PIN CONFIGURATION
7
CLKOUT, XT2, P1.0
XT1, P1.1
8
AVDD
P3.2, PWM5
P3.0, PWM1
P3.1, PWM3
P4.3
P4.2
P2.1, PWM2, CP1O
P2.0, PWM0, CP2O
P2.3, T3, SCLK
P2.2, PWM4
P3.3, PWM7
37
NC
2
38
6
40
39
NC
42
41
4
44
43
NC
NC
45
1
46
MISO, IC1, P2.5
MOSI, IC2, P2.6
T1/P2.7
48
47
P2.4, IC0, SS
N79E875ALG/N79E875RALG
36
35
34
3
33
32
5
LQFP 48-pin
31
30
VDD
P3.4
P3.5
P3.6, OPP
P3.7, OPN
P0.0, ADC0, OPO, KB0
P0.1, ADC1, CP2P, KB1
P4.1, CP2PB
P4.0, CP2NB
23
24
17
KB5, ADC5, P0.5
KB4, CP1N, ADC4, P0.4
SCL, T0, BKP1, P1.5
21
22
NC
KB7, PWM6, ADC7, P0.7
KB6, INT1, ADC6, P0.6
25
19
20
12
18
TXD, P1.2
AVSS
VSS
P0.2, ADC2, CP2N, KB2
P0.3, ADC3, CP1P, KB3
SDA, INT0, P1.6
STADC, BKP0, P1.7
27
26
15
16
10
11
RST, P1.4
AVSS
VSS
13
14
9
29
28
NC
RXD, P1.3
4
-9-
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
5
PIN DESCRIPTION
SYMBOL
Alternate
Function 1
Alternate
function 2
Alternate
function 3
Type
DESCRIPTIONS
VDD
P
POWER
SUPPLY:
voltage for operation.
Supply
VSS
P
GROUND: Ground potential.
AVDD
P
ANALOG Power Supply
AVSS
P
ANALOG GROUND.
P0.0
ADC0
OPO
KB0
I/O
Port0:
P0.1
ADC1
CP2PA
KB1
I/O
Support 4 mode output and 2
mode input.
P0.2
ADC2
CP2NA
KB2
I/O
P0.3
ADC3
CP1P
KB3
I/O
P0.4
ADC4
CP1N
KB4
I/O
P0.5
ADC5
KB5
I/O
P0.6
ADC6
/INT1
KB6
I/O
P0.7
ADC7
PWM6
KB7
I/O
P1.0
XT2
CLKOUT
P1.1
Multifunction pins.
I/O
Port1:
XT1
I/O
Support 4 mode output and 2
mode input.
P1.2
TXD
I/O
P1.3
RXD
I/O
P1.4
/RST
I, H(rst)
P1.5
T0
SCL
P1.6
/INT0
SDA
P1.7
STADC
BKP1
Multifunction pins.
P1.5 and P1.6 are permanently in
Open-Drain type.
D
D
BKP0
I/O
P2.0
PWM0
CP2O
I/O
Port2:
P2.1
PWM2
CP1O
I/O
Support 4 mode output and 2
mode input.
P2.2
PWM4
P2.3
T3
SCLK
I/O
P2.4
IC0
/SS
I/O
I/O
- 10 -
Multifunction pins.
Preliminary N79E875 Data Sheet
SYMBOL
Alternate
Function 1
Alternate
function 2
Alternate
function 3
Type
DESCRIPTIONS
P2.5
IC1
MISO
I/O
P2.6
IC2
MOSI
I/O
P2.7
T1
I/O
P3.0
PWM1
I/O
Port3:
P3.1
PWM3
I/O
Support 4 modes output and 2
modes input.
P3.2
PWM5
I/O
P3.3
PWM7
I/O
P3.4
I/O
P3.5
I/O
P3.6
OPP
I/O
P3.7
OPN
I/O
P4.0
CP2NB
I/O
P4.1
CP2PB
I/O
P4.2
I/O
P4.3
I/O
Multifunction pins.
Support 4 modes output and 2
modes input.
TYPE: P: P: power, I: input, O: output, I/O: bi-directional with 4-type I/O modes,, H: Internal pull-up, L: Internal pull low, D: Open Drain
Notes:

During Power-on-reset, all port pins are in tri-stated.

After power-on-reset, all port pins state will follow CONFIG0.PRHI bit definition.

All digital input pins support software enabled schmitt trigger buffer which is selected by SFR
PORTS (ECH)
In application if MCU pins need external pull-up, it is recommended to add a pull-up resistor
(10KΩ) between pin and power(VDD) instead of directly wiring pin to VDD for enhancing EMC.
- 11 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
6
MEMORY ORGANIZATION
N79E875 series separate the memory into two separate sections, the Program Memory and the Data
Memory. The Program Memory is used to store the instruction op-codes, while the Data Memory is
used to store data or for memory mapped devices.
128 bytes NVM
16 bytes/page
FFFFh
Page 7
Unused
Code Memory
FC7Fh
FC00h
Page 6
Page 5
128 Bytes
NVM
Data Memory
Page 4
Page 3
Page 2
Unused
Code Memory
Page 1
Page 0
3FFFh
FC7Fh
FC70h
FC6Fh
FC60h
FC5Fh
FC50h
FC4Fh
FC40h
FC3Fh
FC30h
FC2Fh
FC20h
FC1Fh
FC10h
FC0Fh
FC00h
Data Flash Memory Area
16K Bytes
On-Chip
Code Memory
CONFIG1
CONFIG0
Configure bits
0000h
256 Bytes
on-chip AUX-RAM
AUX-RAM
Program Flash Memory Area
Figure 6-1 N79E875 series Memory Map
6.1
Program Flash Memory
The Program Memory on N79E875 series can be up to 16K bytes long. All instructions are fetched for
execution from this memory area. The MOVC instruction can also access this memory region.
6.2
Data Flash Memory
The NVM Data Memory of Flash EPROM on the N79E875 series is 128 bytes long, with page size of
16 bytes. The N79E875 series read the content of data memory by using “MOVC A, @A+DPTR”. To
write data is by NVMADDRL, NVMDAT and NVMCON SFR’s registers.
6.3
Data Memory (accessed by MOVX)
N79E875 provides 256 bytes AUX RAM accessed by the MOVX instruction. The data memory region
is from 0000H to 00FFH. Figure 6-1 shows the memory map for this product series.
6.4
Scratch-pad RAM and Register Map
As mentioned before, N79E875 series have separate Program and Data Memory areas. The on-chip
256 bytes scratch pad RAM is in addition to the external memory. There are also several Special
Function Registers (SFRs) which can be accessed by software. The SFRs can be accessed only by
direct addressing, while the on-chip RAM can be accessed by either direct or indirect addressing.
- 12 -
Preliminary N79E875 Data Sheet
FFH
Indirect
RAM
Addressing
80H
7FH
00H
SFR
Direct
Addressing
Only
Direct
&
Indirect
RAM
Addressing
Figure 6-2 N79E875 series RAM and SFR Memory Map
Since the scratch-pad RAM is only 256 bytes it can be used only when data contents are small. There
are several other special purpose areas within the scratch-pad RAM. These are illustrated in next
figure.
- 13 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
FFH
Indirect RAM
80H
7FH
Direct RAM
30H
2FH
7F
7E
7D
7C
7B
7A
79
78
2EH
77
76
75
74
73
72
71
70
2DH
6F
6E
6D
6C
6B
6A
69
68
2CH
67
66
65
64
63
62
61
60
2BH
5F
5E
5D
5C
5B
5A
59
58
2AH
57
56
55
54
53
52
51
50
29H
4F
4E
4D
4C
4B
4A
49
48
28H
47
46
45
44
43
42
41
40
27H
3F
3E
3D
3C
3B
3A
39
38
26H
37
36
35
34
33
32
31
30
25H
2F
2E
2D
2C
2B
2A
29
28
24H
27
26
25
24
23
22
21
20
23H
1F
1E
1D
1C
1B
1A
19
18
22H
17
16
15
14
13
12
11
10
21H
0F
0E
0D
0C
0B
0A
09
08
20H
1FH
07
06
05
04
03
02
01
00
Bank 3
18H
17H
Bank 2
10H
0FH
Bank 1
08H
07H
Bank 0
00H
Figure 6-3 Scratch-pad RAM
- 14 -
Preliminary N79E875 Data Sheet
6.5
Working Registers
There are four sets of working registers, each consisting of eight 8-bit registers. These are termed ads
Banks 0, 1, 2, and 3. Individual registers within these banks can be directly accessed by separate
instructions. These individual registers are named as R0, R1, R2, R3, R4, R5, R6 and R7. However, at
any one time N79E875 series can work with only one particular bank. The bank selection is done by
setting RS1-RS0 bits in the PSW. The R0 and R1 registers are used to store the address for indirect
accessing.
6.6
Bit addressable Locations
The Scratch-pad RAM area from location 20h to 2Fh is byte as well as bit addressable. This means
that a bit in this area can be individually addressed. In addition some of the SFRs are also bit
addressable. The instruction decoder is able to distinguish a bit access from a byte access by the type
of the instruction itself. In the SFR area, any existing SFR whose address ends in a 0 or 8 is bit
addressable.
6.7
Stack
The scratch-pad RAM can be used for the stack. This area is selected by the Stack Pointer (SP),
which stores the address of the top of the stack. Whenever a jump, call or interrupt is invoked the
return address is placed on the stack. There is no restriction as to where the stack can begin in the
RAM. By default however, the Stack Pointer contains 07h at reset. The user can then change this to
any value desired. The SP will point to the last used value. Therefore, the SP will be incremented and
then address saved onto the stack. Conversely, while popping from the stack the contents will be read
first, and then the SP is decreased.
- 15 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
7
SPECIAL FUNCTION REGISTERS
N79E875 series use Special Function Registers (SFRs) to control and monitor peripherals and their
Modes. The SFRs reside in the register locations 80-FFh and are accessed by direct addressing only.
Some of the SFRs are bit addressable. This is very useful in cases where we wish to modify a
particular bit without changing the others. The SFRs that are bit addressable are those whose
addresses end in 0 or 8. N79E875 series contain all the SFRs present in the standard 8052. However
some additional SFRs are added. In some cases the unused bits in the original 8052, have been given
new functions. The list of the SFRs is as follows.
7.1
SFR Location Table
P4M1
P4M2
PWMCON4
PWM6L
PWM6H
AUXR2
SPCR
SPSR
SPDR
PADIDS
IP1H
PORTS
PME
PMD
IP2H
CCL0
CCH0
CCL1
CCH1
PWM0L
PWMCON1
PWM2L
PWMB
PWMPH
PWM0H
EIE2
PWM2H
PWMCON3
T2CON
T2MOD
RCAP2L
RCAP2H
TL2
TH2
C0
I2CON
I2ADDR
T3CON
PNP
B8
IP0
SADEN
B0
P3
P0M1
A8
IE
SADDR
A0
P2
KBI
98
SCON
90
F8
IP1
F0
B
E8
EIE1
E0
ACC
ADCCON
ADCH
D8
WDCON(3)
PWMPL
D0
PSW
C8
ADCCON1
NVMCON
NVMDAT
NVMADDRL
TA
I2DATA
I2STATUS
I2CLK
I2TIMER
P1M1
P1M2
P2M1
P2M2
IP0H
DTCNT(3)
CMP1
CMP2
PDTC0(3)
ADCDLY
AUXR1
CAPCON0
CAPCON1
P4
CCL2
CCH2
SBUF
IP2
PIO
ADCRL
ADCRH
P3M1
P3M2
P1
T3L
RCAP3L
RCAP3HT3H
PWM4L
PWM4H
88
TCON
TMOD
TL0
TL1
80
P0
SP
DPL
DPH
P0M2
TH0
TH1
CKCON
DIV
Table 7- 1 Special Function Register Location Table
Note:
1. The SFRs in the column with dark borders are bit-addressable
2. The table is condensed with eight locations per row. Empty locations indicate that these are no registers at these addresses.
3. With Timed Access Protection on write operation.
- 16 -
PCON
Preliminary N79E875 Data Sheet
SYMBOL
DEFINITION
ADDRESS MSB
AUXR2
AUXR2 CONTROL REGISTER
FFH
PWM6H
PWM 6 HIGH BITS REGISTER
FEH
PWM6L
PWM 6 LOW BITS REGISTER
FDH
PWM6.7
PWMCON4
PWM CONTROL REGISTER 4
FCH
BK1FILT.1 BK1FILT.0
P4M2
PORT 4 OUTPUT MODE 2
FBH
-
P4M1
PORT 4 OUTPUT MODE 1
FAH
-
IP1
INTERRUPT PRIORITY 1
F8H
IP1H
PADIDS
BIT ADDRESS, SYMBOL
PCMP2DID PCMP2DI
S.1
DS.0
RESET
ADC1SEL ENOP
0000 0000b
PWM6.11 WM6.10
PWM6.9
PWM6.8
XXXX 0000b
PWM6.3
PWM6.1
PWM6.0
0000 0000b
BK0FILT.1 BK0FILT.0 AUTOBK 1
BKEN1
BKEN0
0000 0X00b
-
-
-
P4M2.3
P4M2.2
P4M2.1
P4M2.0
XXXX 0000b
-
-
-
P4M1.3
P4M1.2
P4M1.1
P4M1.0
XXXX 0000b
(FF)
PCAP
(FE)
PPWM
(FD)
PBRK
(FC)
PWDI
(FB)
-
(FA)
PCI
(F9)
PKB
(F8)
PI2
0000 X000b
INTERRUPT HIGH PRIORITY 1 F7H
PCAPH
PPWMH
PBRKH
PWDIH
-
PCIH
PKBH
PI2H
0000 X000b
PORT ADC DIGITAL INPUTS
DISABLE
F6H
PADIDS.7 PADIDS.6
PADIDS.5
PADIDS.4 PADIDS.3 PADIDS.2 PADIDS.1 PADIDS.0 0000 0000b
SPDR
SERIAL PERIPHERAL DATA
REGISTER
F5H
SPD.7
SPD.6
SPD.5
SPD.4
SPD.3
SPD.2
SPD.1
SPD.0
XXXX XXXXb
SPSR
SERIAL PERIPHERAL STATUS F4H
REGISTER
SPIF
WCOL
SPIOVF
MODF
DRSS
-
-
-
0000 0XXXb
SPCR
SERIAL PERIPHERAL
CONTROL REGISTER
SSOE
SPE
LSBFE
MSTR
CPOL
CPHA
SPR1
SPR0
0000 0100b
PCH
PC COUNTER HIGH REGISTER F2H
PCL
PC COUNTER LOW REGISTER F1H
B
B REGISTER
IP2H
F0H
T0OE
LSB
POPDIDS ENCLK
F3H
T1OE
PWM6.6
PWM6.5
PWM6.4
PWM6.2
0000 0000b
0000 0000b
(F7)
(F6)
(F5)
(F4)
(F3)
(F2)
(F1)
(F0)
INTERRUPT HIGH PRIORITY 2 EFH
-
PT2H
-
-
PSPIH
-
-
PET3H
X0XX 0XX0b
PMD
PWM MASK DATA REGISTER
EEH
-
-
PMD.5
PMD.4
PMD.3
PMD.2
PMD.1
PMD.0
XX00 0000b
PME
PWM MASK ENABLE
REGISTER
EDH
-
-
PME.5
PME.4
PME.3
PME.2
PME.1
PME.0
XX00 0000b
PORTS
PORT SHMITT REGISTER
ECH
-
-
-
P4S
P3S
P2S
P1S
P0S
XXX0 0000b
EIE1
INTERRUPT ENABLE 1
E8H
(EF)
ECPTF
(EE)
EPWM
(ED)
EBRK
(EC)
EWDI
(EB)
-
(EA)
ECI
(E9)
EKB
(E8)
EI2C
0000 X000b
CCH1
INPUT CAPTURE 1 HIGH
E7H
CCH1.7
CCH1.6
CCH1.5
CCH1.4
CCH1.3
CCH1.2
CCH1.1
CCH1.0
0000 0000b
CCL1
INPUT CAPTURE 1 LOW
E6H
CCL1.7
CCL1.6
CCL1.5
CCL1.4
CCL1.3
CCL1.2
CCL1.1
CCL1.0
0000 0000b
CCH0
INPUT CAPTURE 0 HIGH
E5H
CCH0.7
CCH0.6
CCH0.5
CCH0.4
CCH0.3
CCH0.2
CCH0.1
CCH0.0
0000 0000b
CCL0
INPUT CAPTURE 0 LOW
E4H
CCL0.7
CCL0.6
CCL0.5
CCL0.4
CCL0.3
CCL0.2
CCL0.1
CCL0.0
0000 0000b
ADCCON1
ADC CONTROL REGISTER 1
E3H
ADCLK.1
ADCLK.0
STADCT.1 STADCT.0 DLYDIV
ADCCM
PWMSRC PWMSRC 0000 0000b
.1
.0
ADCH
ADC CONVERTER RESULT
E2H
ADC.9
ADC.8
ADC.7
ADC.6
ADC.5
ADC.4
ADC.3
ADC.2
XXXX XXXXb
ADCCON
ADC CONTROL REGISTER
E1H
ADC.1
ADC.0
ADCEX
ADCI
ADCS
AADR2
AADR1
AADR0
XX00 0000b
ACC
ACCUMULATOR
E0H
(E7)
(E6)
(E5)
(E4)
(E3)
(E2)
(E1)
(E0)
0000 0000b
PWMB
PWM BRAKE OUTPUT
DFH
-
-
PWM5B
PWM4B
PWM3B
PWM2B
PWM1B
PWM0B
XX00 0000b
PWM2L
PWM 2 LOW BITS REGISTER
DDH
PWM2.7
PWM2.6
PWM2.5
PWM2.4
PWM2.3
PWM2.2
PWM2.1
PWM2.0
0000 0000b
PWMCON1
PWM CONTROL REGISTER 1
DCH
PWMRUN LOAD
PWMF
CLRPWM
FBK1
FBK0
PMOD.1
PMOD.0
0000 0000b
PWM0L
PWM 0 LOW BITS REGISTER
DAH
PWM0.7
PWM0.5
PWM0.4
PWM0.3
PWM0.2
PWM0.1
PWM0.0
0000 0000b
PWMPL
PWM COUNTER LOW
REGISTER
D9H
PWMP0.7 PWMP0.6
PWMP0.5
PWMP0.4
PWMP0.3 PWMP0.2 PWMP0.1 PWMP0.0 0000 0000b
WDCON
WATCH-DOG CONTROL
D8H
(DF)
WDRUN
(DE)
-
(DD)
WD1
(DC)
WD0
(DB)
WDIF
PWMCON3
PWM CONTROL REGISTER 3
D7H
HZ_Even
HZ_Odd
GRP
PWMTYPE -
PWM2H
PWM 2 HIGH BITS REGISTER
D5H
-
-
-
-
PWM0.6
- 17 -
0000 0000b
(DA)
WTRF
(D9)
EWRST
(D8)
WDCLR
-
P6CTRL
INT_TYP XX00 XX00b
E
PWM2.11 PWM2.10 PWM2.9
PWM2.8
EXTERNAL
RESET:
0X00 0X00b
WATCHDOG
RESET:
0X000100b
POWER ON
RESET
0X00 0000b
XXXX 0000b
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
SYMBOL
DEFINITION
ADDRESS MSB
EIE2
INTERRUPT ENABLE 2
D4H
-
ET2
-
-
BIT ADDRESS, SYMBOL
ESPI
PWM0H
PWM 0 HIGH BITS REGISTER
D2H
-
-
-
-
PWMPH
PWM COUNTER HIGH
REGISTER
D1H
-
-
-
PSW
PROGRAM STATUS WORD
D0H
(D7)
CY
(D6)
AC
(D5)
F0
NVMDATA
NVM DATA
CFH
NVMDATA NVMDATA. NVMDATA. NVMDATA NVMDAT NVMDAT NVMDAT NVMDAT 0000 0000b
.7
6
5
.4
A.3
A.2
A.1
A.0
NVMCON
NVM CONTROL
CEH
EER
EWR
-
-
-
-
-
-
00XX XXXXb
TH2
TIMER 2 MSB
CDH
TH2.7
TH2.6
TH2.5
TH2.4
TH2.3
TH2.2
TH2.1
TH2.0
0000 0000b
TL2
TIMER 2 LSB
CCH
TL2.7
TL2.6
TL2.5
TL2.4
TL2.3
TL2.2
TL2.1
TL2.0
0000 0000b
RCAP2H
TIMER 2 RELOAD MSB
CBH
RCAP2H.7 RCAP2H.6 RCAP2H.5 RCAP2H.4 RCAP2H. RCAP2H. RCAP2H. RCAP2H. 0000 0000b
3
2
1
0
RCAP2L
TIMER 2 RELOAD LSB
CAH
RCAP2L.7 RCAP2L.6
RCAP2L.5 RCAP2L.4 RCAP2L. RCAP2L. RCAP2L. RCAP2L. 0000 0000b
3
2
1
0
T2MOD
TIMER 2 MODE
C9H
ENLD
ICEN2
ICEN1
ICEN0
T2CR
CMPCR
-
-
T2CON
TIMER 2 CONTROL
C8H
TF2
-
-
-
-
TR2
-
CMP/RL2 0XXX X0X0b
TA
TIMED ACCESS PROTECTION C7H
TA.7
TA.6
TA.5
TA.4
TA.3
TA.2
TA.1
TA.0
NVMADDRL
NVM LOW BYTE ADDRESS
C6H
NVMADDR NVMADDR. NVMADDR NVMADDR NVMADD NVMADD NVMADD NVMADD 0000 0000b
.7
6
.5
.4
R.3
R.2
R.1
R.0
NVMADDRH
NVM HIGH BYTE ADDRESS
C5H
-
-
PNP
PWM NEGATIVE POLRARITY
C3H
-
-
PNP.5
PNP.4
T3CON
TIMER 3 CONTOL
C2H
TF3
EXF3
T3CNTE
T3OE
I2ADDR
I2C ADDRESS1
C1H
ADDR.7
ADDR.6
ADDR.5
ADDR.4
C0H
(C7)
-
(C6)
ENSI
(C5)
STA
(C4)
STO
-
LSB
X0XX 0X00b
PWM0.11 PWM0.10 PWM0.9
PWM0.8
XXXX 0000b
-
PWMP.11 PWMP.10 PWMP.9
PWMP.8
XXXX 0000b
(D4)
RS1
(D3)
RS0
(D0)
P
0000 0000b
-
(D2)
OV
EADCP
RESET
ET3
-
-
(D1)
F1
0000 00XXb
0000 0000b
-
-
NVMADD XXXX XXX0b
R.8
PNP.3
PNP.2
PNP.1
PNP.0
T3RST
TR3
T3MOD.1 T3MOD.0 0000 0000b
ADDR.3
ADDR.2
ADDR.1
GC
XXXX XXX0b
(C3)
SI
(C2)
AA
(C1)
-
(C0)
-
X00000XXb
XX00 0000b
I2CON
I2C CONTROL REGISTER
I2TOC
I2C TIMER-OUT COUNTER
REGISTER
BFH
-
-
-
-
-
ENTI
DIV4
TIF
XXXX X000b
I2CLK
I2C CLOCK RATE
BEH
I2CLK.7
I2CLK.6
I2CLK.5
I2CLK.4
I2CLK.3
I2CLK.2
I2CLK.1
I2CLK.0
00000000b
I2STATUS
I2C STATUS REGISTER
BDH
B7
B6
B5
B4
B3
B2
B1
B0
1111 1000b
I2DAT
I2C DATA REGISTER
BCH
I2DAT.7
I2DAT.6
I2DAT.5
I2DAT.4
I2DAT.3
I2DAT.2
I2DAT.1
I2DAT.0
XXXX XXXXb
SADEN
SLAVE ADDRESS MASK
B9H
SADEN.7
SADEN.6
SADEN.5
SADEN.4
SADEN.3 SADEN.2 SADEN.1 SADEN.0 0000 0000b
IP0
INTERRUPT PRIORITY
B8H
(BF)
-
(BE)
PADC
(BD)
PBO
(BC)
PS
(BB)
PT1
(BA)
PX1
IP0H
INTERRUPT HIGH PRIORITY
B7H
-
PADCH
PBOH
PSH
PT1H
PX1H
PT0H
PX0H
X000 0000b
P2M2
PORT 2 OUTPUT MODE 2
B6H
P2M2.7
P2M2.6
P2M2.5
P2M2.4
P2M2.3
P2M2.2
P2M2.1
P2M2.0
0000 0000b
P2M1
PORT 2 OUTPUT MODE 1
B5H
P2M1.7
P2M1.6
P2M1.5
P2M1.4
P2M1.3
P2M1.2
P2M1.1
P2M1.0
0000 0000b
P1M2
PORT 1 OUTPUT MODE 2
B4H
P1M2.7
-
-
-
P1M2.3
P1M2.2
P1M2.1
P1M2.0
000X 0000b
P1M1
PORT 1 OUTPUT MODE 1
B3H
P1M1.7
-
-
-
P1M1.3
P1M1.2
P1M1.1
P1M1.0
000X 0000b
P0M2
PORT 0 OUTPUT MODE 2
B2H
P0M2.7
P0M2.6
P0M2.5
P0M2.4
P0M2.3
P0M2.2
P0M2.1
P0M2.0
0000 0000b
P0M1
PORT 0 OUTPUT MODE 1
B1H
P0M1.7
P0M1.6
P0M1.5
P0M1.4
P0M1.3
P0M1.2
P0M1.1
P0M1.0
0000 0000b
P3
PORT 3
B0H
(B7)
P3.7
OPN
(B6)
P3.6
OPP
(B5)
P3.5
(B4)
P3.4
(B3)
P3.3
PWM7
(B2)
P3.2
PWM5
(B1)
P3.1
PWM3
(B0)
P3.0
PWM1
1111 1111b(1)
0000 0000b
ADCDLY
ADC DELAY START REGISTER AFH
ADCDLY.7 ADCDLY.6 ADCDLY.5 ADCDLY.4 ADCDLY. ADCDLY. ADCDLY. ADCDLY. 0000 0000b
3
2
1
0
PDTC0
PWM DEAD TIME CONTROL 0
REGISTER
AEH
-
-
-
-
-
DTENB4
DTENB2
DTENB0
XXXX X000b
ADH
-
HYSEN2
CMPEN2
CP2
CN2
COE2
CO2
CMF2
XX0X 0000b
COE1
CO1
CMF1
XX0X 0000b
CMP2
COMPARATOR 1 CONTROL
REGISTER
CMP1
COMPARATOR 1 CONTROL
REGISTER
(B9)
PT0
(B8)
PX0
X000 0000b
ACH
-
HYSEN1
CMPEN1
-
CN1
DTCNT
PWM DEAD TIME COUNTER
REGISTER
ABH
DTCNT.7
DTCNT.6
DTCNT.5
DTCNT.4
DTCNT.3 DTCNT.2 DTCNT.1 DTCNT.0 0000 0000b
SADDR
SLAVE ADDRESS
A9H
SADDR.7
SADDR.6
SADDR.5
SADDR.4
SADDR.3 SADDR.2 SADDR.1 SADDR.0 0000 0000b
IE
INTERRUPT ENABLE
A8H
(AF)
EA
(AE)
EADC
(AD)
EBO
(AC)
ES
(AB)
ET1
(AA)
EX1
(A9)
ET0
(A8)
EX0
0000 0000b
CCH2
INPUT CAPTURE 2 HIGH
A7H
CCH2.7
CCH2.6
CCH2.5
CCH2.4
CCH2.3
CCH2.2
CCH2.1
CCH2.0
0000 0000b
- 18 -
Preliminary N79E875 Data Sheet
SYMBOL
DEFINITION
ADDRESS MSB
CCL2
INPUT CAPTURE 2 LOW
A6H
CCL2.7
CCL2.6
CCL2.5
CCL2.4
BIT ADDRESS, SYMBOL
CCL2.3
CCL2.2
CCL2.1
CCL2.0
LSB
RESET
0000 0000b
P4
PORT 4
A5H
-
-
-
-
P4.3
P4.2
P4.1
CP2PB
P4.0
CP2NB
XXXX 1111b
XXXX 0000b
CAPCON1
CAPTURE CONTROL 1
A4H
-
IC0SS
ENF2
ENF1
ENF0
CPTF2
CPTF1
CPTF0
X000 0000b
CAPCON0
CAPTURE CONTROL 0
A3H
CCT2.1
CCT2.0
CCT1.1
CCT1.0
CCT0.1
CCT0.0
CCLD.1
CCLD.0
0000 0000b
AUXR1
AUX FUNCTION REGISTER 1
A2H
KBF
BOD
BOI
LPBOD
SRST
ADCEN
RCCLK
BOS
0X00 0000b
KBI
KEYBOARD INTERRUPT
A1H
KBI.7
KBI.6
KBI.5
KBI.4
KBI.3
KBI.2
KBI.1
KBI.0
0000 0000b
P2
PORT 2
A0H
(A7)
P2.7
T1
(A6)
P2.6
IC2
MOSI
(A5)
P2.5
IC1
MISO
(A4)
P2.4
IC0
/SS
(A3)
P2.3
T3
SCLK
(A2)
P2.2
PWM4
(A1)
P2.1
PWM2
CP1O
(A0)
P2.0
PWM0
CP2O
1111 1111b(1)
0000 0000b
P3M2
PORT 3 OUTPUT MODE 2
9FH
P3M2.7
P3M2.6
P3M2.5
P3M2.4
P3M2.3
P3M2.2
P3M2.1
P3M2.0
0000 0000b
P3M1
PORT 3 OUTPUT MODE 1
9EH
P3M1.7
P3M1.6
P3M1.5
P3M1.4
P3M1.3
P3M1.2
P3M1.1
P3M1.0
0000 0000b
ADCRH
ADC COMPARE REFERENCE
HIGH DATA REGISTER
9DH
ADCR.9
ADCR.8
ADCR.7
ADCR.6
ADCR.5
ADCR.4
ADCR.3
ADCR.2
XXXX XXXXb
ADCRL
ADC COMPARE REFERENCE
LOW DATA/COMPARE
REGISTER
9CH
ADCR.1
ADCR.0
ADCPO
ADCPI
-
-
T3CSS
ENADCP XX10 XX00b
PIO
PWM IO REGISTER
9BH
PIO.7
PIO.6
PIO.5
PIO.4
PIO.3
PIO.2
PIO.1
PIO.0
IP2
INTERRUPT PRIORITY 2
9AH
-
PT2
-
-
PSPI
-
-
PET3
X0XX 0XX0b
SBUF
SERIAL BUFFER
99H
SBUF.7
SBUF.6
SBUF.5
SBUF.4
SBUF.3
SBUF.2
SBUF.1
SBUF.0
XXXX XXXXb
SCON
SERIAL CONTROL
98H
(9F)
SM0/FE
(9E)
SM1
(9D)
SM2
(9C)
REN
(9B)
TB8
(9A)
RB8
(99)
TI
(98)
RI
0000 0000b
PWM4H
PWM 4 HIGH BITS REGISTER
97H
-
-
-
-
PWM4.11 PWM4.10 PWM4.9
PWM4.8
XXXX 0000b
PWM4L
PWM 4 LOW BITS REGISTER
96H
PWM4.7
PWM4.6
PWM4.5
PWM4.4
PWM4.3
PWM4.2
PWM4.1
PWM4.0
0000 0000b
RCAP3HT3H
TIMER 3 RELOAD MSB
93H
RCAP3.11 RCAP3.10
RCAP3.9
RCAP3.8
T3.11
T3.10
T3.9
T3.8
0000 0000b
RCAP3L
TIMER 3 RELOAD LSB
92H
RCAP3.7
RCAP3.6
RCAP3.5
RCAP3.4
RCAP3.3 RCAP3.2 RCAP3.1 RCAP3.0 0000 0000b
TL3
TIMER 3 LSB
91H
T3.7
T3.6
T3.5
T3.4
T3.3
T3.2
T3.1
T3.0
0000 0000b
P1
PORT 1
90H
(97)
P1.7
STADC
BKP0
(96)
P1.6
/INT0
SDA
(95)
P1.5
T0
SCL
BKP1
(94)
P1.4
/RST
(93)
P1.3
RXD
(92)
P1.2
TXD
(91)
P1.1
XT1
(90)
P1.0
XT2
CLKOUT
1111 1111b(1)
0000 0000b
CKCON
CLOCK CONTROL
8EH
-
-
-
T1M
T0M
-
-
-
XXX0 0XXXb
TH1
TIMER HIGH 1
8DH
TH1.7
TH1.6
TH1.5
TH1.4
TH1.3
TH1.2
TH1.1
TH1.0
0000 0000b
(1)
0000 0000b
TH0
TIMER HIGH 0
8CH
TH0.7
TH0.6
TH0.5
TH0.4
TH0.3
TH0.2
TH0.1
TH0.0
0000 0000b
TL1
TIMER LOW 1
8BH
TL1.7
TL1.6
TL1.5
TL1.4
TL1.3
TL1.2
TL1.1
TL1.0
0000 0000b
TL0
TIMER LOW 0
8AH
TL0.7
TL0.6
TL0.5
TL0.4
TL0.3
TL0.2
TL0.1
TL0.0
0000 0000b
TMOD
TIMER MODE
89H
GATE
C/T
M1
M0
GATE
C/T
M1
M0
0000 0000b
TCON
TIMER CONTROL
88H
(8F)
TF1
(8E)
TR1
(8D)
TF0
(8C)
TR0
(8B)
IE1
(8A)
IT1
(89)
IE0
(88)
IT0
0000 0000b
PCON
POWER CONTROL
87H
SMOD
SMOD0
BOF
POR
GF1
GF0
PD
IDL
00XX 0000b
DIV
DIVIDER
86H
CCDIV.1
CCDIV.0
PWMDIV.1 PWMDIV.0 T3DIV.1
T3DIV.0
T0DIV.1
T0DIV.0
0000 0000b
DPH
DATA POINTER HIGH
83H
DPH.7
DPH.6
DPH.5
DPH.4
DPH.3
DPH.2
DPH.1
DPH.0
0000 0000b
DPL
DATA POINTER LOW
82H
DPL.7
DPL.6
DPL.5
DPL.4
DPL.3
DPL.2
DPL.1
DPL.0
0000 0000b
SP
STACK POINTER
81H
SP.7
SP.6
SP.5
SP.4
SP.3
SP.2
SP.1
SP.0
0000 0111b
P0
PORT 0
80H
(87)
P0.7
ADC7
PWM6
KB7
(86)
P0.6
ADC6
/INT1
KB6
(85)
P0.5
ADC5
KB5
(84)
P0.4
ADC4
CP1N
KB4
(83)
P0.3
ADC3
CP1P
KB3
(82)
P0.2
ADC2
CP2NA
KB2
(81)
P0.1
ADC1
CP2PA
KB1
(80)
P0.0
ADC0
OPO
KB0
1111 1111b(1)
0000 0000b
Note: 1. If config0.PRHI=1, the initial value is FFh at reset. If config0.PRHI=0, the initial value is 00h at reset
- 19 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
7.2
SFR Detail Bit Descriptions
PORT 0
Bit:
Initial=1111_1111b/0000_0000b
7
6
5
4
3
2
1
0
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
Mnemonic: P0
Address: 80h
P0.7-0: General purpose Input/Output port. Most instructions will read the port pins in case of a port
read access, however in case of read-modify-write instructions, the port latch is read. If
config0.PRHI=1, the initial value is FFh at reset. If config0.PRHI=0, the initial value is 00h at reset.
These alternate functions are described below.
BIT
NAME
FUNCTION
7
P0.7
ADC7 or PWM6 or KB7 pin or I/O pin by alternative.
6
P0.6
ADC6 or /INT1 or KB6 or I/O pin by alternative.
5
P0.5
ADC5 or KB5 or Clock (ICP function) pin or I/O pin by alternative.
4
P0.4
ADC4 or CP1N or KB4 or Data (ICP function) pin or I/O pin by alternative.
3
P0.3
ADC3 or CP1P or KB3 pin or I/O pin by alternative.
2
P0.2
ADC2 or CP2NA or KB2 pin or I/O pin by alternative.
1
P0.1
ADC1 or CP2PA or KB1 pin or I/O pin by alternative.
0
P0.0
ADC0 or OPO or KB0 pin or I/O pin by alternative.
Note: The initial value of the port is set by CONFIG0.PRHI bit. The default setting for CONFIG0.PRHI
=1 which the alternative function output is turned on upon reset. If CONFIG0.PRHI is set to 0, the user
has to write a 1 to port SFR to turn on the alternative function output.
STACK POINTER
Bit:
Initial=0000 0111b
7
6
5
4
3
2
1
0
SP.7
SP.6
SP.5
SP.4
SP.3
SP.2
SP.1
SP.0
Mnemonic: SP
BIT
NAME
7-0
SP.[7:0]
Address: 81h
FUNCTION
The Stack Pointer stores the Scratch-pad RAM address where the stack
begins. In other words it always points to the top of the stack.
DATA POINTER LOW
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
DPL.7
DPL.6
DPL.5
DPL.4
DPL.3
DPL.2
DPL.1
DPL.0
Mnemonic: DPL
BIT
Address: 82h
NAME
FUNCTION
- 20 -
Preliminary N79E875 Data Sheet
7-0
DPL.[7:0]
This is the low byte of the standard 8052 16-bit data pointer.
DATA POINTER HIGH
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
DPH.7
DPH.6
DPH.5
DPH.4
DPH.3
DPH.2
DPH.1
DPH.0
Mnemonic: DPH
BIT
NAME
7-0
DPH.[7:0]
Address: 83h
FUNCTION
This is the high byte of the standard 8052 16-bit data pointer.
This is the high byte of the DPTR 16-bit data pointer.
DIVIDER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
CCDIV.1
CCDIV.0
PWMDIV.
1
PWMDIV.
0
T3DIV.1
T3DIV.0
T0DIV.1
T0DIV.0
Mnemonic: DIV
BIT
Address: 86h
NAME
FUNCTION
Timer 2 clock select:
7~6
CCDIV.1~
0
CCDIV.1
CCDIV.0
0
0
Timer 2 clock = Fcpu
0
1
Timer 2 clock = Fcpu/4
1
0
Timer 2 clock = Fcpu/16
1
1
Timer 2 clock = Fcpu/32
PWM clock select:
5~4
PWMDIV.
1~0
PWMDIV.1
PWMDIV.0
0
0
PWM clock = Fcpu
0
1
PWM clock = Fcpu/2
1
0
PWM clock = Fcpu/4
1
1
PWM clock = Fcpu/16
Timer 3 clock select:
3~2
T3DIV.1~
0
T3DIV.1
T3DIV.0
0
0
Timer 3 clock = Fcpu/4
0
1
Timer 3 clock = Fcpu/16
1
0
Timer 3 clock = Fcpu/32
- 21 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
1
1
Timer 3 clock = Fcpu/128
Timer 2 clock select:
1~0
T0DIV.1~
0
T0DIV.1
T0DIV.0
0
0
Timer 0 clock = Fcpu/4
0
1
Timer 0 clock = Fcpu/16
1
0
Timer 0 clock = Fcpu/32
1
1
Timer 0 clock = Fcpu/128
POWER CONTROL
Bit:
Initial=00xx 0000b
7
6
5
4
3
2
1
0
SMOD
SMOD0
BOF
POR
GF1
GF0
PD
IDL
Mnemonic: PCON
BIT
7
Address: 87h
NAME
FUNCTION
SMOD
1: This bit doubles the serial port baud rate in mode 1, 2, and 3.
6
SMOD0
0: Framing Error Detection Disable. SCON.7 (SM0/FE) bit is used as SM0
(standard 8052 function).
1: Framing Error Detection Enable. SCON.7 (SM0/FE) bit is used to reflect as
Frame Error (FE) status flag.
5
BOF
0: Cleared by software.
1: Set automatically when a brownout reset or interrupt has occurred. Also set
at power on.
4
POR
0: Cleared by software.
1: Set automatically when a power-on reset has occurred.
3
GF1
General purpose user flags.
2
GF0
General purpose user flags.
1
PD
1: The CPU goes into the POWER DOWN mode. In this mode, all the clocks
are stopped and program execution is frozen.
0
IDL
1: The CPU goes into the IDLE mode. In this mode, the clocks CPU clock
stopped, so program execution is frozen. But the clock to the serial, timer and
interrupt blocks is not stopped, and these blocks continue operating.
TIMER CONTROL
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
Mnemonic: TCON
BIT
7
NAME
TF1
Address: 88h
FUNCTION
Timer 1 Overflow Flag. This bit is set when Timer 1 overflows. It is cleared
- 22 -
Preliminary N79E875 Data Sheet
automatically when the program does a timer 1 interrupt service routine.
Software can also set or clear this bit.
6
TR1
Timer 1 Run Control. This bit is set or cleared by software to turn
timer/counter on or off.
5
TF0
Timer 0 Overflow Flag. This bit is set when Timer 0 overflows. It is cleared
automatically when the program does a timer 0 interrupt service routine.
Software can also set or clear this bit.
4
TR0
Timer 0 Run Control. This bit is set or cleared by software to turn
timer/counter on or off.
3
IE1
Interrupt 1 Edge Detect Flag: Set by hardware when an edge/level is detected
on INT1 . This bit is cleared by hardware when the service routine is vectored
to only if the interrupt was edge triggered. Otherwise it follows the inverse of
the pin.
2
IT1
Interrupt 1 Type Control. Set/cleared by software to specify falling edge/ low
level triggered external inputs.
1
IE0
Interrupt 0 Edge Detect Flag. Set by hardware when an edge/level is detected
on INT0 . This bit is cleared by hardware when the service routine is vectored
to only if the interrupt was edge triggered. Otherwise it follows the inverse of
the pin.
0
IT0
Interrupt 0 Type Control: Set/cleared by software to specify falling edge/ low
level triggered external inputs.
TIMER MODE CONTROL
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
GATE
C/ T
M1
M0
GATE
C/ T
M1
M0
TIMER1
TIMER0
Mnemonic: TMOD
BIT
NAME
Address: 89h
FUNCTION
7
Gating control: When this bit is set, Timer/counter 1 is enabled only while the INT1 pin
GATE is high and the TR1 control bit is set. When cleared, the INT1 pin has no effect, and
Timer 1 is enabled whenever TR1 control bit is set.
6
C/ T
Timer or Counter Select: When clear, Timer 1 is incremented by the internal clock.
When set, the timer counts falling edges on the T1 pin.
5
M1
Timer 1 mode select bit 1. See table below.
4
M0
Timer 1 mode select bit 0. See table below.
Gating control: When this bit is set, Timer/counter 0 is enabled only while the INT0
3
GATE pin is high and the TR0 control bit is set. When cleared, the INT0 pin has no effect,
and Timer 0 is enabled whenever TR0 control bit is set.
- 23 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
2
C/ T
Timer or Counter Select: When clear, Timer 0 is incremented by the internal clock.
When set, the timer counts falling edges on the T0 pin.
1
M1
Timer 0 mode select bit 1. See table below.
0
M0
Timer 0 mode select bit 0. See table below.
M1, M0: Mode Select bits:
M1
M0
MODE
0
0
Mode 0: 8-bit timer/counter TLx serves as 5-bit pre-scale.
0
1
Mode 1: 16-bit timer/counter, no pre-scale.
1
0
Mode 2: 8-bit timer/counter with auto-reload from THx.
1
1
Mode 3: (Timer 0) TL0 is an 8-bit timer/counter controlled by the standard Timer0
control bits. TH0 is an 8-bit timer only controlled by Timer1 control bits. (Timer 1)
Timer/Counter 1 is stopped.
TIMER 0 LSB
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
TL0.7
TL0.6
TL0.5
TL0.4
TL0.3
TL0.2
TL0.1
TL0.0
Mnemonic: TL0
BIT
NAME
7-0
TL0.[7:0]
Address: 8Ah
FUNCTION
Timer 0 LSB.
TIMER 1 LSB
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
TL1.7
TL1.6
TL1.5
TL1.4
TL1.3
TL1.2
TL1.1
TL1.0
Mnemonic: TL1
BIT
NAME
7-0
TL1.[7:0]
Address: 8Bh
FUNCTION
Timer 1 LSB.
TIMER 0 MSB
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
TH0.7
TH0.6
TH0.5
TH0.4
TH0.3
TH0.2
TH0.1
TH0.0
Mnemonic: TH0
BIT
7-0
Address: 8Ch
NAME
TH0.[7:0]
FUNCTION
Timer 0 MSB.
TIMER 1 MSB
Initial=0000 0000b
- 24 -
Preliminary N79E875 Data Sheet
Bit:
7
6
5
4
3
2
1
0
TH1.7
TH1.6
TH1.5
TH1.4
TH1.3
TH1.2
TH1.1
TH1.0
Mnemonic: TH1
BIT
NAME
7-0
TH1.[7:0]
Address: 8Dh
FUNCTION
Timer 1 MSB.
CLOCK CONTROL
Bit:
Initial=xxx0 0xxxb
7
6
5
4
3
2
1
0
-
-
-
T1M
T0M
-
-
-
Mnemonic: CKCON
BIT
NAME
7-5
-
4
T1M
Address: 8Eh
FUNCTION
Reserved.
Timer 1 clock select:
0: Timer 1 uses a divide by 12 clocks.
1: Timer 1 uses a divide by 4clocks.
Timer 0 clock select:
3
T0M
2~0
-
0: Timer 0 uses a divide by 12 clocks.
1: Timer 0 uses a divide by 4 clocks. 4/16/32/128 clocks. The divider selection
bits are located in SFR DIV.T0DIV[1:0].
Reserved.
PORT 1
Bit:
Initial=1111_1111b/0000_0000b
7
6
5
4
3
2
1
0
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
Mnemonic: P1
Address: 90h
P1.7-0: General purpose Input/Output port. Most instructions will read the port pins in case of a port
read access, however in case of read-modify-write instructions, the port latch is read. If
config0.PRHI=1, the initial value is FFh at reset. If config0.PRHI=0, the initial value is 00h at reset.
These alternate functions are described below.
BIT
NAME
7
P1.7
6
5
4
(1)
P1.6
(1)
P1.5
P1.4
FUNCTION
BKP1 or STADC or I/O pin by alternative.
INT0 interrupt or SDA or I/O pin by alternative.
BKP0 or T0 or SCL or Input Pin by alternative.
RST pin or digital input pin by alternative.
- 25 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
3
P1.3
RXD or I/O pin by alternative.
2
P1.2
TXD or I/O pin by alternative.
1
P1.1
XTAL1 or I/O pin by alternative.
0
P1.0
XTAL2 or CLKOUT or I/O pin by alternative.
Note: (1) P1.5 and P1.6 are permanently in open-drain type.
TIMER 3 LSB
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
T3.7
T3.6
T3.5
T3.4
T3.3
T3.2
T3.1
T3.0
Mnemonic: T3L
BIT
NAME
7-0
T3.[7:0]
Address: 91h
FUNCTION
Timer 3 LSB Bits Register.
TIMER 3 RELOAD/COMPARE LSB
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
RCAP3.7
RCAP3.6
RCAP3.5
RCAP3.4
RCAP3.3
RCAP3.2
RCAP3.1
RCAP3.0
Mnemonic: RCAP3L
BIT
7-0
Address: 92h
NAME
RCAP3L
FUNCTION
Timer 3 Reload/Compare LSB:
This register is LSB of a 12-bit reload value when timer 3 is configured in
reload/compare mode. During compare mode, this register is a compare
register. See SFR T3CON for reload/compare mode.
TIMER 3 RELOAD/COMPARE MSB
Bit:
Initial=0000 0000b
7
6
5
4
3
RCAP3.1
1
RCAP3.1
0
RCAP3.9
RCAP3.8
2
T3.11
1
T3.10
T3.9
Mnemonic: RCAP3HT3H
BIT
0
T3.8
Address: 93h
NAME
FUNCTION
7-4
RCAP3.11~8
Timer 3 Reload/Compare MSB:
This register is MSB of a 12-bit reload value when timer 3 is configured in
reload/compare mode. During compare mode, this register is a compare
register. See SFR T3CON for reload/compare mode.
3-0
T3.11~8
Timer 3 MSB Bits Register.
PWM 4 LOW BITS REGISTER
Bit:
7
6
Initial=0000 0000b
5
4
3
- 26 -
2
1
0
Preliminary N79E875 Data Sheet
PWM4.7
PWM4.6
PWM4.5
PWM4.4
PWM4.3
PWM4.2
PWM4.1
Mnemonic: PWM4L
BIT
NAME
7:0
PWM4
Address: 96h
FUNCTION
PWM 4 LSB Bits Register.
PWM 4 HIGH BITS REGISTER
Bit:
Initial=xxxx 0000b
7
6
5
4
3
2
1
0
-
-
-
-
PWM4.11
PWM4.10
PWM4.9
PWM4.8
Mnemonic: PWM4H
BIT
NAME
7:4
-
3:0
PWM4
Address: 97h
FUNCTION
Reserved.
PWM 4 MSB Bits Register.
SERIAL PORT CONTROL
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
SM0/FE
SM1
SM2
REN
TB8
RB8
TI
RI
Mnemonic: SCON
BIT
PWM4.0
NAME
Address: 98h
FUNCTION
7
Serial port mode select bit 0 or Framing Error Flag: The SMOD0 bit in PCON SFR
determines whether this bit acts as SM0 or as FE. The operation of SM0 is
SM0/FE
described below. When used as FE, this bit will be set to indicate an invalid stop bit.
This bit must be manually cleared in software to clear the FE condition.
6
SM1
Serial Port mode select bit 1. See table below.
SM2
Multiple processors communication. Setting this bit to 1 enables the multiprocessor
communication feature in mode 2 and 3. In mode 2 or 3, if SM2 is set to 1, then RI
will not be activated if the received 9th data bit (RB8) is 0. In mode 1, if SM2 = 1,
then RI will not be activated if a valid stop bit was not received. In mode 0, the SM2
bit controls the serial port clock. If set to 0, then the serial port runs at a divide by 12
clock of the oscillator. This gives compatibility with the standard 8052. When set to
1, the serial clock become divide by 4 of the oscillator clock. This results in faster
synchronous serial communication.
4
REN
Receive enable:
0: Disable serial reception.
1: Enable serial reception.
3
TB8
This is the 9th bit to be transmitted in modes 2 and 3. This bit is set and cleared by
software as desired.
2
RB8
In modes 2 and 3 this is the received 9th data bit. In mode 1, if SM2 = 0, RB8 is the
stop bit that was received. In mode 0 it has no function.
5
- 27 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
1
0
TI
Transmit interrupt flag: This flag is set by hardware at the end of the 8th bit time in
mode 0, or at the beginning of the stop bit in all other modes during serial
transmission. This bit must be cleared by software.
RI
Receive interrupt flag: This flag is set by hardware at the end of the 8th bit time in
mode 0, or halfway through the stop bits time in the other modes during serial
reception. However the restrictions of SM2 apply to this bit. This bit can be cleared
only by software.
SM1, SM0: Mode Select bits:
MODE
SM0
SM1
DESCRIPTION
LENGTH
BAUD RATE
0
0
0
Synchronous
8
Tclk divided by 4 or 12
1
0
1
Asynchronous
10
Variable
2
1
0
Asynchronous
11
Tclk divided by 32 or 64
3
1
1
Asynchronous
11
Variable
SERIAL DATA BUFFER
Bit:
Initial=xxxx xxxxb
7
6
5
4
3
2
1
0
SBUF.7
SBUF.6
SBUF.5
SBUF.4
SBUF.3
SBUF.2
SBUF.1
SBUF.0
Mnemonic: SBUF
BIT
7-0
Address: 99h
NAME
FUNCTION
Serial data on the serial port is read from or written to this location. It actually
consists of two separate internal 8-bit registers. One is the receive resister,
and the other is the transmit buffer. Any read access gets data from the
receive data buffer, while write access is to the transmit data buffer.
SBUF.[7:0
]
INTERRUPT PRIORITY 2
Bit:
7
6
-
Initial=x0xx 0xx0b
5
PT2
4
-
3
-
2
PSPI
1
-
Mnemonic: IP2
BIT
NAME
7
-
6
PT2
5-4
-
3
PSPI
2~1
-
0
PET3
0
-
PET3
Address: 9Ah
FUNCTION
Reserved.
1: To set interrupt priority of Timer 2 is higher priority level.
Reserved.
1: To set interrupt priority of SPI is higher priority level.
Reserved.
1: To set interrupt priority of Timer 3 is higher priority level.
- 28 -
Preliminary N79E875 Data Sheet
PWM IO REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
PIO7
PIO6
PIO5
PIO4
PIO3
PIO2
PIO1
PIO0
Mnemonic: PIO
BIT
Address: 9Bh
NAME
7~0
PIOn
FUNCTION
PWM or IO Function Select bit:
Select pin output source from PWM or I/O register.
0: Port pin output from port I/O bit register.
1: Port pin output from PWM generator.
(Note: n = 0~7).
ADC COMPARE REFERENCE LOW DATA/COMPARE REGISTER
Bit:
Initial=0010 xx00b
7
6
5
4
3
2
1
0
ADCR.1
ADCR.0
ADCPO
ADCPI
-
-
T3CSS
ENADCP
Mnemonic: ADCRL
Address: 9Ch
BIT
NAME
FUNCTION
7-6
ADCR.1-0
5
ADCPO
ADC Compare output (Read Only).
0: The conversion result is less than reference value.
1: The conversion result is equal or larger than reference value.
4
ADCPI
ADC Compare Change Flag
If the ADC compare output status is changed, this bit will be set by hardware. This
flag is cleared by software only.
3-2
-
1
T3CSS
0
ENADCP
The 2 MSB bits of ADC compare reference data.
Note: These 2 bits are writable only when they are written with ENADCP = 0.
Reserved.
Timer 3 external trigger source:
0: T3EX pin is the timer 3 trigger source.
1: ADC compare result, ADCPO, is timer 3 trigger source.
ADC Compare Function Enable bit:
0: Disable ADC compare function.
1: Enable ADC compare function.
ADC COMPARE REFERENCE HIGH DATA REGISTER
Bit:
Initial=xxxx xxxxb
7
6
5
4
3
2
1
0
ADCR.9
ADCR.8
ADCR.7
ADCR.6
ADCR.5
ADCR.4
ADCR.3
ADCR.2
Mnemonic: ADCRH
Address: 9Dh
- 29 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
BIT
NAME
7-0
ADCR.9-2
FUNCTION
The 8 MSB bits of ADC compare reference data.
Note: These bits are writable only when ADC compare function is disabled
(ENADCP=0)
PORT 3 OUTPUT MODE 1
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
P3M1.7
P3M1.6
P3M1.5
P3M1.4
P3M1.3
P3M1.2
P3M1.1
P3M1.0
Mnemonic: P3M1
Address: 9Eh
BIT
NAME
FUNCTION
7-0
P3M1
To control the output configuration of P3 [7:0].
PORT 3 OUTPUT MODE 2
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
P3M2.7
P3M2.6
P3M2.5
P3M2.4
P3M2.3
P3M1.2
0
P3M2.1
Mnemonic: P3M2
BIT
NAME
7-0
P3M2
P3M2.0
Address: 9Fh
FUNCTION
See as below table.
Port Output Configuration Settings:
PXM1.Y
PXM2.Y
PORT INPUT/OUTPUT MODE
0
0
Quasi-bidirectional
0
1
Push-Pull
1
0
Input Only (High Impedance)
PORTS.PxS=0, TTL input
PORTS.PxS=1, Schmitt input
1
1
Open Drain
Note: X = 0-4. Y = 0-7 (for port0-3), Y = 0-3 (for port4).
PORT 2
Bit:
Initial=1111 111b/0000 0000b
7
6
P2.7
5
P2.6
4
P2.5
3
P2.4
2
P2.3
1
P2.2
0
P2.1
P2.0
Mnemonic: P2
Address: A0h
P2.7-0: General purpose Input/Output port. Most instructions will read the port pins in case of a port
read access, however in case of read-modify-write instructions, the port latch is read. If
config0.PRHI=1, the initial value is FFh at reset. If config0.PRHI=0, the initial value is 00h at reset.
- 30 -
Preliminary N79E875 Data Sheet
These alternate functions are described below.
BIT
NAME
FUNCTION
7
P2.7
T1 or I/O pin by alternative.
6
P2.6
IC2 or MOSI or I/O pin by alternative.
5
P2.5
IC1 or MISO or I/O pin by alternative.
4
P2.4
IC0 or SS pin or I/O pin by alternative.
3
P2.3
T3 or SCLK or I/O pin by alternative.
2
P2.2
PWM4 or I/O pin by alternative.
1
P2.1
PWM2 or CP1O or I/O pin by alternative.
0
P2.0
PWM0 or CP2O or I/O pin by alternative.
KEYBOARD INTERRUPT
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
KBI.7
KBI.6
KBI.5
KBI.4
KBI.3
KBI.2
KBI.1
KBI.0
Mnemonic: KBI
Address: A1h
BIT
NAME
FUNCTION
7
KBI.7
1: Enable P0.7 as a cause of a Keyboard interrupt.
6
KBI.6
1: Enable P0.6 as a cause of a Keyboard interrupt.
5
KBI.5
1: Enable P0.5 as a cause of a Keyboard interrupt.
4
KBI.4
1: Enable P0.4 as a cause of a Keyboard interrupt.
3
KBI.3
1: Enable P0.3 as a cause of a Keyboard interrupt.
2
KBI.2
1: Enable P0.2 as a cause of a Keyboard interrupt.
1
KBI.1
1: Enable P0.1 as a cause of a Keyboard interrupt.
0
KBI.0
1: Enable P0.0 as a cause of a Keyboard interrupt.
AUX FUNCTION REGISTER 1
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
KBF
BOD
BOI
LPBOD
SRST
ADCEN
RCCLK
BOS
Mnemonic: AUXR1
BIT
Address: A2h
NAME
FUNCTION
- 31 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
7
KBF
Keyboard Interrupt Flag:
1: When any pin of port 0 that is enabled for the Keyboard Interrupt function goes
low. Must be cleared by software.
6
BOD
Brown Out Disable:
0: Enable Brownout Detect function.
1: Disable Brownout Detect function and save power.
BOI
Brown Out Interrupt:
0: Brownout detection will cause chip brownout reset.
1: This prevents brownout detection from causing a chip reset and allows the
Brownout Detect function to be used as an interrupt.
5
4
LPBOD
3
SRST
Low Power Brown Out Detect control:
0: If bit BOD=0, the Brown Out detection is always active.
1: If bit BOD=0, the Brown Out detection repeats to senses the voltage for 64/fBRC
then turn off detector for 960/fBRC, therefore, it saves 15/16 of the Brownout
circuit power.
Software reset:
1: Reset the chip as if a hardware reset occurred.
(User must specially take care of setting SRST when a write access on AUXR1)
ADCEN
0: Disable ADC circuit.
1: Enable ADC circuit.
1
RCCLK
0: The CPU clock is used as ADC clock source.
1: The internal RC 22.1184MHz/11.0592MHz (selectable by CONFIG1.FS1 bit)
clock is used as ADC clock source.
Note:
This bit can only be set/cleared when ADCEN=0.
The ADC clock source will goes through pre-scalar of /1, /2, /4 or /8, selectable by
ADCLK bits (SFR ADCCON1.6-7).
0
BOS
2
Brownout Status bit(Read only)
0: VDD is above VBOR+
1: VDD is below VBOR-
CAPTURE CONTROL 0 REGISTER
Bit:
7
6
CCT2
Initial=0000 0000b
5
4
3
CCT1
2
CCT0
Mnemonic: CAPCON0
BIT
NAME
CCT2.1~0
0
CCLD
Address: A3h
FUNCTION
Capture 2 edge select:
7~6
1
00 : Rising edge trigger.
01 : Falling edge trigger.
10 : Both rising and falling edge trigger.
- 32 -
Preliminary N79E875 Data Sheet
11 : Reserved.
Capture 1 edge select:
00 : Rising edge trigger.
5~4
CCT1.1~0
01 : Falling edge trigger.
10 : Both rising and falling edge trigger.
11 : Reserved.
Capture 0 edge select:
00 : Rising edge trigger.
3~2
CCT0.1~0
01 : Falling edge trigger.
10 : Both rising and falling edge trigger.
11 : Reserved
Reload trigger select:
00 : Timer 2 overflow.
1~0
CCLD.1~0
01 : Reload by capture 0 block.
10 : Reload by capture 1 block.
11 : Reload by capture 2 block.
CAPTURE CONTROL 1 REGISTER
Bit:
7
6
-
5
IC0SS
Initial=x000 0000b
4
ENF2
3
ENF1
2
ENF0
1
CPTF2
0
CPTF1
Mnemonic: CAPCON1
BIT
CPTF0
Address: A4h
NAME
FUNCTION
7
-
Reserved.
6
IC0SS
Input capture 0 source select:
0: P2.4 pin as input capture 0 trigger source.
1: ADC compare result, ADCPO, as input capture 0 trigger source.
5
ENF2
Enable filter for capture input 2.
4
ENF1
Enable filter for capture input 1.
3
ENF0
Enable filter for capture input 0.
2
CPTF2
External capture/reload 2 interrupt flag.
1
CPTF1
External capture/reload 1 interrupt flag.
0
CPTF0
External/ADCPO capture/reload 0 interrupt flag.
- 33 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
PORT 4
Bit:
Initial=xxxx 1111b/xxxx 0000b
7
6
-
5
-
4
-
3
-
2
P4.3
1
P4.2
0
P4.1
P4.0
Mnemonic: P4
Address: A5h
P4.3-0: General purpose Input/Output port. Most instructions will read the port pins in case of a port
read access, however in case of read-modify-write instructions, the port latch is read. If
config0.PRHI=1, the initial value is xxxx_1111b at reset. If config0.PRHI=0, the initial value is
xxxx_0000b at reset. These alternate functions are described below.
BIT
NAME
FUNCTION
7-4
-
3
P4.3
Dedicated I/O pin.
2
P4.2
Dedicated I/O pin.
1
P4.1
CP2PB or I/O pin by alternative.
0
P4.0
CP2NB or I/O pin by alternative.
Reserved.
INPUT CAPTURE 2 LOW REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
CCL2.7
CCL2.6
CCL2.5
CCL2.4
CCL2.3
CCL2.2
CCL2.1
CCL2.0
Mnemonic: CCL2
BIT
NAME
7~0
CCL2.7~0
Address: A6h
FUNCTION
Capture 2 LSB bits.
INPUT CAPTURE 2 HIGH REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
CCH2.7
CCH2.6
CCH2.5
CCH2.4
CCH2.3
CCH2.2
CCH2.1
CCH2.0
Mnemonic: CCH2
BIT
NAME
7~0
CCH2.7~0
Address: A7h
FUNCTION
Capture 2 MSB bits.
INTERRUPT ENABLE
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
EA
EADC
EBO
ES
ET1
EX1
ET0
EX0
Mnemonic: IE
BIT
Address: A8h
NAME
FUNCTION
- 34 -
Preliminary N79E875 Data Sheet
7
EA
Global enable. Enable/Disable all interrupts.
6
EADC
5
EBO
4
ES
Enable Serial Port 0 interrupt.
3
ET1
Enable Timer 1 interrupt.
2
EX1
Enable external interrupt 1.
1
ET0
Enable Timer 0 interrupt.
0
EX0
Enable external interrupt 0.
Enable ADC interrupt.
Enable Brown Out interrupt.
SLAVE ADDRESS
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
SADDR.7
SADDR.6
SADDR.5
SADDR.4
SADDR.3
SADDR.2
SADDR.1
SADDR.0
Mnemonic: SADDR
Address: A9h
BIT
NAME
FUNCTION
7~0
SADDR
The SADDR should be programmed to the given or broadcast address for serial
port 0 to which the slave processor is designated.
PWM DEAD-TIME CONNTER REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
DTCNT.7
DTCNT.6
DTCNT.5
DTCNT.4
DTCNT.3
DTCNT.2
DTCNT.1
DTCNT.0
Mnemonic: DTCNT
BIT
7~0
Address: ABh
NAME
FUNCTION
Dead-time counter. Unsigned 8-bit dead time value bits for Dead Time Unit.
DTCNT.7~
0
Dead-time = FCPU * (DTCNT.[7:0]+1)
Note: This SFR is TA protected.
COMPARATOR 1 CONTROL REGISTER
Bit:
Initial=x00x 0000b
7
6
5
4
3
2
1
0
-
HYSEN1
CMPEN1
-
CN1
COE1
CO1
CMF1
Mnemonic: CMP1
BIT
7
Address: ACh
NAME
-
FUNCTION
Reserved.
- 35 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
HYSEN1
Hysterisis function enable (comparator 1):
0: Without Hysterisis at comparator 1 inputs. (Default).
1: Enable Hysterisis function at comparator 1 that the typical range is about
20mV.
5
CMPEN1
Comparator enable:
0: Disable Comparator.
1: Enabled Comparator. Comparator output need wait stable 10 us after CMPEN1
is first set.
4
-
6
3
Reserved.
Comparator negative input select:
0: The comparator reference pin CNG1 is selected as the negative comparator
input.
1: The internal comparator reference Vref is selected as the negative comparator
input.
CN1
Output enable:
2
COE1
1: The comparator output is connected to the CMP1 pin if the comparator is
enabled (CMPEN1 = 1).
This output is asynchronous to the CPU clock.
Comparator output:
1
0
CO1
Synchronized to the CPU clock to allow reading by software. Cleared when the
comparator is disabled (CMPEN1 = 0).
CMF1
Comparator interrupt flag:
This bit is set by hardware whenever the comparator output changes state. This bit
will cause a hardware interrupt if enabled and of sufficient priority. Cleared by
software and when the comparator is disabled (CMPEN1 = 0).
COMPARATOR 2 CONTROL REGISTER
Bit:
Initial=x000 0000b
7
6
5
4
3
2
1
0
-
HYSEN2
CMPEN2
CP2
CN2
COE2
CO2
CMF2
Mnemonic: CMP2
BIT
7
6
Address: ADh
NAME
-
HYSEN2
FUNCTION
Reserved.
Hysterisis function enable (comparator 2):
0: Without Hysterisis at comparator 2 inputs. (Default).
1: Enable Hysterisis function at comparator 2 that the typical range is about
20mV.
- 36 -
Preliminary N79E875 Data Sheet
5
CMPEN2
4
3
Comparator enable:
0: Disable Comparator.
1: Enabled Comparator. Comparator output need wait stable 10 us after CMPEN2
is first set.
CP2
Comparator 2 inputs select:
0: (CP2PA, CP2NA) pair comparator 2 input pair is selected.
1: (CP2PB, CP2NB) pair comparator 2 input pair is selected.
CN2
Comparator negative input select:
0: The comparator reference pin CNG2 is selected as the negative comparator
input.
1: The internal comparator reference Vref is selected as the negative comparator
input.
Output enable:
2
COE2
1: The comparator output is connected to the CMP2 pin if the comparator is
enabled (CMPEN2 = 1).
This output is asynchronous to the CPU clock.
Comparator output:
CO2
1
CMF2
0
Synchronized to the CPU clock to allow reading by software. Cleared when the
comparator is disabled (CMPEN2 = 0).
Comparator interrupt flag:
This bit is set by hardware whenever the comparator output changes state. This bit
will cause a hardware interrupt if enabled and of sufficient priority. Cleared by
software and when the comparator is disabled (CMPEN2 = 0).
PWM DEAD-TIME CONTROL 0 REGISTER
Bit:
Initial=xxxx x000b
7
6
5
4
3
2
1
0
-
-
-
-
-
DTENB4
DTENB2
DTENB0
Mnemonic: PDTC0
BIT
NAME
7-3
-
Address: AEh
FUNCTION
Reserved.
Enable dead-time insertion for PWM pair (PWM4, PWM5):
2
DTENB4
Dead-time insertion is only active when this pair of complementary PWM is
enabled. If dead-time insertion is inactive, the outputs of pin pair are
complementary without any delay.
0: Disable dead-time insertion on the pin pair (PWM4, PWM5).
1: Enable dead-time insertion on the pin pair (PWM4, PWM5).
- 37 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Enable dead-time insertion for PWM pair (PWM2, PWM3):
1
DTENB2
Dead-time insertion is only active when this pair of complementary PWM is
enabled. If dead-time insertion is inactive, the outputs of pin pair are
complementary without any delay.
0: Disable dead-time insertion on the pin pair (PWM2, PWM3).
1: Enable dead-time insertion on the pin pair (PWM2, PWM3).
Enable dead-time insertion for PWM pair (PWM0, PWM1):
0
DTENB0
Dead-time insertion is only active when this pair of complementary PWM is
enabled. If dead-time insertion is inactive, the outputs of pin pair are
complementary without any delay.
0: Disable dead-time insertion on the pin pair (PWM0, PWM1).
1: Enable dead-time insertion on the pin pair (PWM0, PWM1).
Note: This SFR is TA protected.
ADC DELAY START REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
ADCDLY
.7
ADCDLY
.6
ADCDLY
.5
ADCDLY
.4
ADCDLY
.3
ADCDLY
.2
ADCDLY
.1
ADCDLY
.0
Mnemonic: ADCDLY
BIT
Address: AFh
NAME
FUNCTION
These are 8 bits start register to delay start of ADC conversion after detection of
ADC start conversion edge by PWM trigger source (controllable through SFR
ADCCON1.PWMSRC.1~0) and trigger type (controllable through SFR
ADCCON1.STADCT.1~0).
7~0
ADCDLY An internal 8 bits delay counter will run on PWM clock. When the internal counter
matches ADCDLY value, ADC will start conversion.
PMU trigger delay time = (ADCDLY+1)/(Fcpu/(4*Divider)).
Divider is defined in SFR ADCCON1.3.
Note: User required to clear ADCEN (ADCEN = 0) when re-configure this SFR.
PORT 3
Bit:
Initial=1111 1111b/0000 0000b
7
6
5
4
3
2
1
0
P3.7
P3.6
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
Mnemonic: P3
Address: B0h
P3.7-0: General purpose Input/Output port. Most instructions will read the port pins in case of a port
read access, however in case of read-modify-write instructions, the port latch is read. If
config0.PRHI=1, the initial value is 1111_1111b at reset. If config0.PRHI=0, the initial value is
0000_0000b at reset. These alternate functions are described below.
BIT
NAME
FUNCTION
- 38 -
Preliminary N79E875 Data Sheet
7
P3.7
OPN or I/O pin by alternative.
6
P3.6
OPP or I/O pin by alternative.
5
P3.5
Dedicated I/O pin.
4
P3.4
Dedicated I/O pin.
3
P3.3
PWM7 or I/O pin by alternative.
2
P3.2
PWM5 or I/O pin by alternative.
1
P3.1
PWM3 or I/O pin by alternative.
0
P3.0
PWM1 or I/O pin by alternative.
PORT 0 OUTPUT MODE 1
Bit:
7
6
P0M1.7
Initial=0000 0000b
5
P0M1.6
4
P0M1.5
3
P0M1.4
2
P0M1.3
P0M1.2
1
0
P0M1.1
Mnemonic: P0M1
Address: B1h
BI
T
NAME
FUNCTION
7-0
P0M1
To control the output configuration of P0 bits [7:0]
PORT 0 OUTPUT MODE 2
Bit:
7
6
P0M2.7
Initial=0000 0000b
5
P0M2.6
4
P0M2.5
3
P0M2.4
2
P0M2.3
P0M2.2
1
0
P0M2.1
Mnemonic: P0M2
NAME
FUNCTION
7-0
P0M2
To control the output configuration of P0 bits [7:0]
PORT 1 OUTPUT MODE 1
7
6
P1M1.7
Initial=0xxx 0000b
5
-
4
-
3
-
2
P1M1.3
P1M1.2
Mnemonic: P1M1
BI
T
P0M2.0
Address: B2h
BI
T
Bit:
P0M1.0
1
0
P1M1.1
P1M1.0
Address: B3h
NAME
FUNCTION
7
P1M1.7
To control the output configuration of P1 bit [7].
6-4
-
Reserved.
3-0
P1M1.3-0
To control the output configuration of P1 bits [3:0].
PORT 1 OUTPUT MODE 2
Initial=0xxx 0000b
- 39 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Bit:
7
6
5
P1M2.7
-
4
-
3
-
P1M2.3
2
P1M2.2
1
0
P1M2.1
Mnemonic: P1M2
BI
T
Address: B4h
NAME
FUNCTION
7
P1M2
To control the output configuration of P1 bits [7].
6-4
-
Reserved.
3-0
P1M2.3-0
To control the output configuration of P1 bits [3:0].
PORT 2 OUTPUT MODE 1
Bit:
7
6
P2M1.7
Initial=0000 0000b
5
P2M1.6
P2M1.5
4
3
P2M1.4
P2M1.3
2
P2M1.2
1
0
P2M1.1
Mnemonic: P2M1
NAME
FUNCTION
7-0
P2M1
To control the output configuration of P2 bits [7:0]
PORT 2 OUTPUT MODE 2
7
6
P2M2.7
Initial=0000 0000b
5
P2M2.6
P2M2.5
4
3
P2M2.4
P2M2.3
2
P2M2.2
1
0
P2M2.1
Mnemonic: P2M2
NAME
FUNCTION
7-0
P2M2
To control the output configuration of P2 bits [7:0]
INTERRUPT HIGH PRIORITY
Initial=x000 0000b
7
6
5
4
3
2
1
0
-
PADCH
PBOH
PSH
PT1H
PX1H
PT0H
PX0H
Mnemonic: IP0H
BIT
P2M2.0
Address: B6h
BI
T
Bit:
P2M1.0
Address: B5h
BI
T
Bit:
P1M2.0
NAME
Address: B7h
FUNCTION
7
-
6
PADCH
5
PBOH
4
PSH
1: To set interrupt high priority of Serial port 0 is highest priority level.
3
PT1H
1: Ro set interrupt high priority of Timer 1 is highest priority level.
Reserved
1: To set interrupt high priority of ADC is highest priority level.
1: To set interrupt high priority of Brown Out Detector is highest priority level.
- 40 -
Preliminary N79E875 Data Sheet
2
PX1H
1: To set interrupt high priority of External interrupt 1 is highest priority level.
1
PT0H
1: To set interrupt high priority of Timer 0 is highest priority level.
0
PX0H
1: To set interrupt high priority of External interrupt 0 is highest priority level.
INTERRUPT PRIORITY 0
Bit:
Initial=x000 0000b
7
6
5
4
3
2
1
0
-
PADC
PBO
PS
PT1
PX1
PT0
PX0
Mnemonic: IP0
BIT
NAME
Address: B8h
FUNCTION
7
-
6
PADC
5
PBO
4
PS
1: To set interrupt priority of Serial port 0 is higher priority level.
3
PT1
1: To set interrupt priority of Timer 1 is higher priority level.
2
PX1
1: To set interrupt priority of External interrupt 1 is higher priority level.
1
PT0
1: To set interrupt priority of Timer 0 is higher priority level.
0
PX0
1: To set interrupt priority of External interrupt 0 is higher priority level.
Reserved
1: To set interrupt priority of ADC is higher priority level.
1: To set interrupt priority of Brown Out Detector is higher priority level.
SLAVE ADDRESS MASK ENABLE
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
SADEN.7
SADEN.6
SADEN.5
SADEN.4
SADEN.3
SADEN.2
SADEN.1
SADEN.0
Mnemonic: SADEN
BIT
7~0
NAME
SADEN
Address: B9h
FUNCTION
This register enables the Automatic Address Recognition feature of the Serial
port. When a bit in the SADEN is set to 1, the same bit location in SADDR will be
compared with the incoming serial data. When SADEN is 0, then the bit becomes
a "don't care" in the comparison. This register enables the Automatic Address
Recognition feature of the Serial port. When all the bits of SADEN are 0, interrupt
will occur for any incoming address.
I2C DATA REGISTER
Bit:
Initial=xxxx xxxxb
7
6
5
4
3
2
1
0
I2DAT.7
I2DAT.6
I2DAT.5
I2DAT.4
I2DAT.3
I2DAT.2
I2DAT.1
I2DAT.0
Mnemonic: I2DAT
BI
NAME
Address: BCh
FUNCTION
- 41 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
T
7-0
I2DAT.[7:0
]
The data register of I2C.
I2C STATUS REGISTER
Bit:
Initial=1111 1000b
7
6
5
4
3
2
1
0
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
Mnemonic: I2STATUS
BI
T
7-0
Address: BDh
NAME
FUNCTION
I2STATUS.[7:0
]
The status register of I2C:
The three least significant bits are always 0. The five most significant bits
contain the status code. There are 26 possible status codes. When
I2STATUS contains F8H, no serial interrupt is requested. All other
I2STATUS values correspond to defined I2C states. When each of these
states is entered, a status interrupt is requested (SI = 1). A valid status
code is present in I2STATUS one machine cycle after SI is set by
hardware and is still present one machine cycle after SI has been reset
by software. In addition, states 00H stands for a Bus Error. A Bus Error
occurs when a START or STOP condition is present at an illegal position
in the formation frame. Example of illegal position are during the serial
transfer of an address byte, a data byte or an acknowledge bit.
I2C BAUD RATE CONTROL REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
I2CLK.7
I2CLK.6
I2CLK.5
I2CLK.4
I2CLK.3
I2CLK.2
I2CLK.1
I2CLK.0
Mnemonic: I2CLK
BI
T
7-0
Address: BEh
NAME
FUNCTION
I2CLK.[7:0
]
The I2C clock rate bits.
I2C TIMER-OUT COUNTER REGISTER
Bit:
7
6
5
4
3
2
1
0
-
-
-
-
-
ENTI
DIV4
TIF
Mnemonic: I2TOC
BI
T
Initial=xxxx x000b
NAME
FUNCTION
7~3
-
Reserved.
2
ENTI
Address: BFh
Enable I2C 14-bits Timer Counter:
0: Disable 14-bits Timer Counter count.
1: Enable 14-bits Timer Counter count. After enable ENTI and ENSI, the 14-bit
- 42 -
Preliminary N79E875 Data Sheet
counter will be counted. When SI flag of I2C is set, the counter will stop to
count and 14-bits Timer Counter will be cleared.
1
0
DIV4
I2C Timer Counter clock source divide function:
0: The 14-bits Timer Counter source clock is Fcpu clock.
1: The 14-bits Timer Counter source clock is divided by 4.
TIF
The I2C Timer Counter count flag:
0: The 14-bits Timer Counter is not overflow.
1: The 14-bits Timer Counter is overflow and I2C interrupt is requested if the
I2C interrupt is enabled. Before enable I2C Timer (ENTI, ENSI = [1,1]) the SI
must be cleared. This bit is cleared by software.
I2C CONTROL REGISTER
Bit:
Initial=x000 00xxb
7
6
5
4
3
2
1
0
-
ENSI
STA
STO
SI
AA
-
-
Mnemonic: I2CON
BI
T
7
6
5
4
Address: C0h
NAM
E
FUNCTION
-
Reserved.
ENSI
0: Disable I2C Serial Function. The SDA and SCL output are in a high impedance
state. SDA and SCL input signals are ignored, I2C is not in the addressed slave
mode or it is not addressable, and STO bit in I2CON is forced to “0”. No other bits
are affected. Note that P1.5 (SCL) and P1.6 (SDA) are open drain I/O ports.
1: Enable I2C Serial Function. The P1.2 and P1.3 port latches must be to logic 1.
STA
The START flag.
0: The STA bit is reset, no START condition or repeated START condition will be
generated.
1: The STA bit is set to enter a master mode. The I2C hardware checks the status
of I2C bus and generates a START condition if the bus is free. If bus is not free,
then I2C waits for a STOP condition and generates a START condition after a
delay. If STA is set while I2C is already in a master mode and one or more bytes
are transmitted or received, I2C transmits a repeated START condition. STA may
be set any time. STA may also be set when I2C interface is an addressed slave
mode.
STO
In master mode, setting STO to transmit a STOP condition to bus then I2C
hardware will check the bus condition if a STOP condition is detected this flag will
be cleared by hardware automatically.
In a slave mode, setting STO resets I2C hardware to the defined “not addressed”
slave mode. This means it is NO LONGER in the slave receiver mode to receive
data from the master transmit device.
When I2C is in master mode and If the STA and STO bits are both set, a STOP
and a START condition will be transmitted to the I2C bus
When I2C is in slave mode and if the STA and STO bits are both set, I2C
generates an internal STOP condition which is not transmitted to the I2C bus.
- 43 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
3
SI
I2C Serial Port Interrupt Flag
0: When the SI flag is reset, no serial interrupt is requested, and there is no
stretching on the serial clock on the SCL line.
1: When a new SIO state is present in the I2STATUS register, the SI flag is set by
hardware, and, if the EA and EI2C(EIE1.0) bits are both set, an I2C interrupt is
requested when SI is set. Only one state that does not cause SI is set is
I2STATUS=F8H, which indicates that no relevant state information is available.
When SI is set, the low level cycle of the serial clock on the SCL line is stretched,
and the serial transfer is suspended. The high level cycle on the SCL line is
unaffected by the serial interrupt flag. SI must be cleared by software.
The Assert Acknowledge Flag
2
1~0
AA
-
0: A not acknowledge (high level to SDA) will be returned during the acknowledge
clock pulse on SCL when: 1) A data has been received while SIO is in the master
receiver mode. 2) A data byte has been received while SIO is in the addressed
slave receiver mode.
1: An acknowledge (low level to SDA) will be returned during the acknowledge
clock pulse on the SCL line when: 1) The own slave address has been received.
2) A data byte has been received while SIO is in the master receiver mode. 3) A
data byte has been received while SIO is in the addressed slave receiver mode. 4)
The General Call address has been received while the general call bit (GC) in
I2ADDR is set.
Reserved.
- 44 -
Preliminary N79E875 Data Sheet
I2C ADDRESS REGISTER
Bit:
Initial=xxxx xxx0b
7
6
5
4
3
2
1
0
I2ADDR.7
I2ADDR.6
I2ADDR.5
I2ADDR.4
I2ADDR.3
I2ADDR.2
I2ADDR.1
GC
Mnemonic: I2ADDR
BIT
7~1
0
Address: C1h
NAME
FUNCTION
I2ADDR.[7:1]
I2C Address register:
The content of this register is irrelevant when I2C is in master mode. In the
slave mode, the seven most significant bits must be loaded with the MCU’s
own address. The I2C hardware will react if either of the address is
matched.
GC
General Call Function.
0: Disable General Call Function.
1: Enable General Call Function.
TIMER 3 CONTROL REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
TF3
EXF3
T3CNTE
T3OE
T3RST
TR3
T3MOD.
1
T3MOD.
0
Mnemonic: T3CON
BI
T
7
Address: C2h
NAME
FUNCTION
TF3
Timer 3 overflow interrupt flag:
This bit is set when Timer 3 overflows. It is cleared only by software.
Software can also set this bit.
6
EXF3
Timer 3 capture and compare match interrupt flag:
It is set when there is a capture event in capture mode or the count is
equal to the capture register in compare mode. It is cleared only by
software. Software can also set this bit.
5
T3CNTE
Timer or counter select:
When clear, Timer 3 is incremented by the internal clock. When set, the
timer counts falling edges on the T3 pin.
4
T3OE
Timer 3 output enable:
1: The T3 pin is toggled whenever Timer 3 overflows. The output
frequency is therefore one half of the Timer 3 overflow rate.
3
T3RST
Timer 3 capture/compare match reset:
In the Timer 3 capture/compare modes, this bit enables/disables
hardware automatically reset timer 3 while the value in TL3 and TH3
have been transferred into the capture register, or compare matched
occur.
2
TR3
Timer 3 run control:
- 45 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
This bit enables/disables the operation of timer 3. Halting this will
preserve the current count in TH3 and TL3.
1~0
T3MOD.1~0
Timer 3 mode selection bits:
00: Timer mode
01: Capture mode
10: Auto-reload mode
11: Compare mode
PWM Negative Polarity
Bit:
Initial=xx00 0000b
7
6
5
4
3
2
1
0
-
-
PNP.5
PNP.4
PNP.3
PNP.2
PNP.1
PNP.0
Mnemonic: PNP
BI
T
Address: C3h
NAME
FUNCTION
7-6
-
Reserved.
5~0
PNP.n
PWM negative polarity bit:
The register bit control the initial state as well as polarity/active state of
PWM output.
0 = PWMx output is active high (initial state = 0).
1 = PWMx output is active low (initial state = 1).
NVM HIGH BYTE ADDRESS
Bit:
Initial=xxxx xxx0b
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
NVMADDR.8
Mnemonic: NVMADDRH
BI
T
Address: C5h
NAME
FUNCTION
7-1
-
Reserved.
0
NVMADDR.[8]
The NVM high address:
The register indicates NVM data memory of high byte address on OnChip code memory space.
NVM LOW BYTE ADDRESS
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
NVMADD
R.7
NVMADD
R.6
NVMADD
R.5
NVMADD
R.4
NVMADD
R.3
NVMADD
R.2
NVMADD
R.1
NVMADD
R.0
Mnemonic: NVMADDRL
BI
T
7~0
Address: C6h
NAME
FUNCTION
NVMADDR.[7:0
The NVM low byte address:
- 46 -
Preliminary N79E875 Data Sheet
]
The register indicates NVM data memory of low byte address on OnChip code memory space.
TIMED ACCESS
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
TA.7
TA.6
TA.5
TA.4
TA.3
TA.2
TA.1
TA.0
Mnemonic: TA
BI
T
7-0
Address: C7h
NAME
FUNCTION
TA.[7:0]
The Timed Access register:
The Timed Access register controls the access to protected bits. To access
protected bits, the user must first write AAH to the TA. This must be
immediately followed by a write of 55H to TA. Now a window is opened in the
protected bits for three machine cycles, during which the user can write to these
bits.
TIMER 2 CONTROL
Bit:
7
Initial=0xxx x0x0b
6
TF2
5
-
4
-
3
-
2
-
1
TR2
0
-
Mnemonic: T2CON
BIT
NAME
7
TF2
6~3
-
2
TR2
1
-
0
Address: C8h
FUNCTION
Timer 2 overflow flag:
This bit is set when Timer 2 overflows. It is also set when the count is equal to the
capture register in compare mode. It is cleared only by software. Software can
also set this bit.
Reserved.
Timer 2 Run Control:
This bit enables/disables the operation of timer 2. Halting this will preserve the
current count in TH2, TL2.
Reserved.
Compare/Reload Select. This bit determines whether the compare or reload
function
will be used for timer 2.
...
CMP/RL2 0: Auto reload will occur when timer 2 overflows. And reload will be from RCAP
register if ENLD = 1.
1: When timer 2 value matches RCAP value, timer 2 will reset to 0.
TIMER 2 MODE CONTROL
Bit:
...
CMP/ RL2
7
6
ENLD
Initial=0000 00xxb
5
ICEN2
4
ICEN1
3
ICEN0
Mnemonic: T2MOD
2
T2CR
CMPCR
1
0
-
Address: C9h
- 47 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
BIT
NAME
7
6
5
4
3
FUNCTION
ENLD
Enable reload from RCAP2 registers to timer 2 counters.
ICEN2
Capture 2 External Enable:
This bit enables the capture/reload function on the T2 pin. An edge trigger
(programmable by CAPCON0.CCT2[1:0] bits) detected on the T2 pin will result in
capture from free running timer 2 counters to input capture 2 registers, and reload
from RCAP2 registers to timer 2 counters if ENLD = 1 and CMP/RL2 = 0.
ICEN1
Capture 1 External Enable:
This bit enables the capture/reload function on the T1 pin. An edge trigger
(programmable by CAPCON0.CCT1[1:0] bits) detected on the T1 pin will result in
capture from free running timer 2 counters to input capture 1 registers, and reload
from RCAP2 registers to timer 2 counters if ENLD = 1 and CMP/RL2 = 0.
ICEN0
Capture 0 External Enable:
This bit enables the capture/reload function on the T0 pin. An edge trigger
(programmable by CAPCON0.CCT0[1:0] bits) detected on the T0 pin will result in
capture from free running timer 2 counters to input capture 0 registers, and reload
from RCAP2 registers to timer 2 counters if ENLD = 1 and CMP/RL2 = 0.
T2CR
Timer 2 Capture Reset:
In the Timer 2 Capture Mode this bit enables/disables hardware automatically
reset timer 2 while the value in TL2 and TH2 have been transferred into the
capture register.
2
CMPCR
1~0
-
Compare Counter Reset:
Enable counter reset when a match occurs.
0: Disable counter auto-reset in compare mode.
1: Enable counter auto-reset in compare mode.
Reserved.
TIMER 2 RELOAD LSB
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
RCAP2L.
7
RCAP2L.
6
RCAP2L.
5
RCAP2L.
4
RCAP2L.
3
RCAP2L.
2
RCAP2L.
1
RCAP2L.
0
Mnemonic: RCAP2L
BI
T
7-0
Address: CAh
NAME
FUNCTION
RCAP2L
Timer 2 Reload LSB:
This register is LSB of a 16-bit reload value when timer 2 is configured in reload
mode. During compare mode, this register is a compare register. See CMP/RL2
for reload/compare mode.
TIMER 2 RELOAD MSB
Bit:
7
6
Initial=0000 0000b
5
4
3
- 48 -
2
1
0
Preliminary N79E875 Data Sheet
RCAP2H
.7
RCAP2H
.6
RCAP2H
.5
RCAP2H
.4
RCAP2H
.3
RCAP2H
.2
RCAP2H
.1
Mnemonic: RCAP2H
BI
T
7-0
Address: CBh
NAME
FUNCTION
RCAP2H
Timer 2 Reload MSB: This register is MSB of a 16-bit reload value when timer 2
is configured in reload mode. During compare mode, this register is a compare
register. See CMP/RL2 for reload/compare mode.
TIMER 2 LSB
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
TL2.7
TL2.6
TL2.5
TL2.4
TL2.3
TL2.2
TL2.1
TL2.0
Mnemonic: TL2
BI
T
7-0
Address: CCh
NAME
FUNCTION
TL2
Timer 2 LSB.
TIMER 2 MSB
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
TH2.7
TH2.6
TH2.5
TH2.4
TH2.3
TH2.2
TH2.1
TH2.0
Mnemonic: TH2
BI
T
7-0
Address: CDh
NAME
FUNCTION
TL2
Timer 2 LSB.
NVM CONTROL
Bit:
RCAP2H
.0
Initial=00xx xxxxb
7
6
5
4
3
2
1
0
EER
EWR
-
-
-
-
-
-
Mnemonic: NVMCON
Address: CEh
BI
T
NAME
FUNCTION
7
EER
NVM page(n) erase bit:
0: Without erase NVM page(n).
1: Set this bit to erase page(n) of NVM. The NVM has 8 pages and each page
have 16 bytes data memory. Initiate page selected by writing NVMADDRH and
NVMADDL registers, which will automatically enable page area. When user set
this bit, the page erase process will begin and program counter will halt at this
instruction. After the erase process is completed, program counter will continue
executing next instruction.
6
EWR
NVM data write bit:
- 49 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
0: Without write NVM data.
1: Set this bit to write NVM bytes and program counter will halt at this instruction.
After write is finished, program counter will kept next instruction then executed.
5-0
-
Reserved
NVM DATA
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
NVMDAT.
7
NVMDAT.
6
NVMDAT.
5
NVMDAT.
4
NVMDAT
3
NVMDAT.
2
NVMDAT.
1
NVMDAT.
0
Mnemonic: NVMDATA
BI
T
7~0
Address: CFh
NAME
FUNCTION
NVMDAT.[7:0
]
The NVM data write register. The read NVM data is by MOVC instruction.
PROGRAM STATUS WORD
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
CY
AC
F0
RS1
RS0
OV
F1
P
Mnemonic: PSW
Address: D0h
BIT
NAME
FUNCTION
7
CY
Carry flag:
Set for an arithmetic operation which results in a carry being generated from
the ALU. It is also used as the accumulator for the bit operations.
AC
Auxiliary carry:
Set when the previous operation resulted in a carry from the high order nibble.
5
F0
User flag 0:
The General purpose flag that can be set or cleared by the user.
4~
3
RS1~RS
0
Register bank select bits.
2
OV
Overflow flag:
Set when a carry was generated from the seventh bit but not from the 8th bit
as a result of the previous operation, or vice-versa.
1
F1
User Flag 1:
The General purpose flag that can be set or cleared by the user software.
P
Parity flag:
Set/cleared by hardware to indicate odd/even number of 1's in the
accumulator.
6
0
- 50 -
Preliminary N79E875 Data Sheet
RS.1-0: Register Bank Selection Bits:
RS1
RS0
REGISTER BANK
ADDRESS
0
0
0
00-07h
0
1
1
08-0Fh
1
0
2
10-17h
1
1
3
18-1Fh
PWM COUNTER HIGH BITS REGISTER
Bit:
Initial=xxxx 0000b
7
6
5
4
3
2
1
0
-
-
-
-
PWMP.11
PWMP.10
PWMP.9
PWMP.8
Mnemonic: PWMPH
Address: D1h
BI
T
NAME
FUNCTION
7-4
-
Reserved.
3-0
PWMP.[11:8
]
The PWM Counter Register bits 11~8.
PWM 0 HIGH BITS REGISTER
Bit:
Initial=xxxx 0000b
7
6
5
4
3
2
1
0
-
-
-
-
PWM0.11
PWM0.10
PWM0.9
PWM0.8
Mnemonic: PWM0H
BIT
NAME
7~4
3~0
-
Address: D2h
FUNCTION
Reserved.
PWM0.11~ The PWM 0 Register bit 11~8.
8
EXTENDED INTERRUPT ENABLE 2 REGISTER
Bit:
7
6
5
4
3
2
1
0
-
ET2
-
-
ESPI
-
EADCP
ET3
Mnemonic: EIE2
BIT
NAME
7
6
Initial=x0xx 0x00b
-
ET2
Address: D4h
FUNCTION
Reserved.
Timer 2 interrupt enable:
0: Disable Timer 2 Interrupt.
1: Enable Timer 2 Interrupt.
- 51 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
5-4
-
3
ESPI
2
-
1
EADCP
0
ET3
Reserved.
SPI interrupt enable:
0: Disable SPI Interrupt.
1: Enable SPI Interrupt.
Reserved.
Enable ADC Compare Interrupt.
0: Disable ADC compare interrupt source.
1: Enable ADC compare interrupt source.
Timer 3 interrupt enable:
0: Disable Timer 3 Interrupt.
1: Enable Timer 3 Interrupt.
PWM 2 HIGH BITS REGISTER
Bit:
Initial=xxxx xx00b
7
6
5
4
3
2
1
0
-
-
-
-
-
-
PWM2.9
PWM2.8
Mnemonic: PWM2H
BIT
NAME
7~2
-
Address: D5h
FUNCTION
Reserved.
1~0 PWM2.9~8 The PWM2 Register bit 9~8.
PWM CONTROL REGISTER 3
Bit:
Initial=xx00 xx00b
7
6
5
4
3
2
1
0
HZ_Even
HZ_Odd
GRP
PWMTYP
E
-
-
P6CTRL
INT_TYP
E
Mnemonic: PWMCON3
BIT
7
6
Address: D7h
NAME
FUNCTION
HZ_Even
Control the even PWM ports driving mode:
0: The driving mode of even PWM pins is controlled by output mode registers
(PxMy).
1: The driving mode of even PWM pins is forced in Hi-Z mode all the time.
The initial value is loaded from config-bit PWM_Even after any reset.
HZ_Odd
Control the odd PWM ports driving mode.
0: The driving mode of odd PWM pins is controlled by output mode registers
(PxMy).
1: The driving mode of odd PWM pins is forced in Hi-Z mode all the time.
The initial value is loaded from config-bit PWM_Odd after any reset.
- 52 -
Preliminary N79E875 Data Sheet
5
4
GRP
Group bit
1: Unify the signals timing of PWM0, PWM2 and PWM4 in the same phase which
is controlled by PWM0.
0: The signals timing of PWM0, PWM2 and PWM4 are independent.
PWM mode select bit:
PWMTYPE 0: Edge-aligned mode.
1: Centre-aligned mode.
3~2
Reserved
PG6 output selection bit:
P6CTRL
1
0: PWM6 output comes from PWM6 frequency/duty generator (if PIO.6 = 1).
1: PWM6 output comes from PWM2 frequency/duty generator (if PIO.6 = 1).
PWM interrupt type select bit:
0: PWMF will be set if PWM counter underflow.
INT_TYPE
1: PWMF will be set if PWM counter overflow.
Note: This bit is effective when PWM in central align mode only.
0
WATCHDOG CONTROL
Bit:
Initial= Refer to the table below
7
6
5
4
3
2
1
0
WDRUN
-
WD1
WD0
WDIF
WTRF
EWRST
WDCLR
Mnemonic: WDCON
BIT
NAME
7
WDRUN
6
-
Address: D8h
FUNCTION
0: The Watchdog is stopped.
1: The Watchdog is running.
Reserved.
Watchdog Timer Time-out values selected.
5~4 WD1~WD0
3
WDIF
WATCHDOG
INTERVAL
WD1
WD0
0
0
2
0
1
2
1
0
2
1
1
2
12
16
18
20
Watchdog Timer Interrupt flag:
0: If the interrupt is not enabled, then this bit indicates that the time-out period has
elapsed. This bit must be cleared by software.
1: If the watchdog interrupt is enabled, hardware will set this bit to indicate that
the watchdog interrupt has occurred.
- 53 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Watchdog Timer Reset flag:
1: Hardware will set this bit when the watchdog timer causes a reset. Software
can read it but must clear it manually. A power-fail reset will also clear the bit.
This bit helps software in determining the cause of a reset. If EWRST = 0, the
watchdog timer will have no affect on this bit.
2
WTRF
1
EWRST
0: Disable Watchdog Timer Reset.
1: Enable Watchdog Timer Reset.
WDCLR
Reset Watchdog Timer:
This bit helps in putting the watchdog timer into a know state. It also helps in
resetting the watchdog timer before a time-out occurs. Failing to set the EWRST
before time-out will cause an interrupt (if EWDI (IE.4) is set), and 512 clocks after
that a watchdog timer reset will be generated (if EWRST is set). This bit is selfclearing by hardware.
0
The WDCON SFR is set to a 0x000000B on a power-on-reset. WTRF (WDCON.2) is set to a 1 on a
Watchdog timer reset, but to a 0 on power on/down resets. WTRF (WDCON.2) is not altered by an
external reset. EWRST (WDCON.1) is set to 0 on all resets.
Reset Type
By external reset
By Watchdog reset
By Power on reset
Value after the reset
0x00 0x00b
0x00 0100b
0x00 000b
All the bits in this SFR have unrestricted read access. WDRUN, WD0, WD1, EWRST, WDIF and
WDCLR require Timed Access procedure to write. The remaining bits have unrestricted write
accesses. Please refer TA register description.
TA
REG
C7H
WDCON
REG
D8H
MOV
TA, #AAH
MOV
TA, #55H
SETB
WDCON.0
; Reset watchdog timer
ORL
WDCON, #00110000B
; Select 20 bits watchdog timer
MOV
TA, #AAH
MOV
TA, #55H
ORL
WDCON, #00000010B
; To access protected bits
; Enable watchdog
PWM COUNTER LOW BITS REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
PWMP.7
PWMP.6
PWMP.5
PWP.4
PWMP.3
PWMP.2
PWMP.1
PWMP.1
Mnemonic: PWMPL
BIT
7~0
NAME
PWMP
Address: D9h
FUNCTION
PWM Counter Low Bits Register.
- 54 -
Preliminary N79E875 Data Sheet
PWM 0 LOW BITS REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
PWM0.7
PWM0.6
PWM0.5
PWM0.4
PWM0.3
PWM0.2
PWM0.1
PWM0.1
Mnemonic: PWM0L
BIT
NAME
7~0
PWM0
Address: DAh
FUNCTION
PWM 0 Low Bits Register.
PWM CONTROL REGISTER 1
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
PWMRUN
LOAD
PWMF
CLRPWM
FBK1
FBK0
PMOD.1
PMOD.0
Mnemonic: PWMCON1
BIT
7
6
Address: DCh
NAME
FUNCTION
PWMRUN
0: The PWM is not running.
1: The PWM counter is running.
LOAD
0: The registers value of PWMP and Comparators are never loaded to counter
and Comparator registers.
1: The PWMP register will be load value to counter register after counter
underflow, and hardware will clear by next clock cycle.
PWM underflow/match PWMP flag.
0: No underflow.
1: The flag is set depending on PWM edge or central align mode as follow;
5
PWMCON3.INT_TYP
E bit
PWM counter
X
Match PWMP.
0
Underflow
1
Match PWMP.
PWMF
Edge Align Mode
Central Align Mode
PWM interrupt is requested if PWM interrupt is enabled.
4
CLRPWM
1: Clear 12-bit PWM counter to 000H.
It is automatically cleared by hardware.
3
FBK1
The external brake BKP1 pin Flag.
0: The PWM is not brake by BKP1 pin.
1: The PWM is brake by external brake BKP1 pin. It will be cleared by software.
FBK0
The external brake BKP0 pin Flag.
0: The PWM is not brake by BKP0 pin.
1: The PWM is brake by external brake BKP0 pin. It will be cleared by software.
2
- 55 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
1-0
PWM mode selection bits:
00: Independent mode.
PMOD.1-0 01: Pair/Complementary mode.
10: Synchronized mode
11: Reserved.
PWM 2 LOW BITS REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
PWM2.7
PWM2.6
PWM2.5
PWM2.4
PWM2.3
PWM2.2
PWM2.1
PWM2.0
Mnemonic: PWM2L
BIT
NAME
7:0
PWM2
Address: DDh
FUNCTION
PWM 2 Low Bits Register.
PWM BRAKE OUTPUT
Bit:
Initial=xx00 0000b
7
6
5
4
3
2
1
0
-
-
PWM5B
PWM4B
PWM3B
PWM2B
PWM1B
PWM0B
Mnemonic: PWMB
Address: DFh
BI
T
NAME
FUNCTION
7-6
-
Reserved.
5~0
PWMnB
0 = The PWMn output is low, when Brake is asserted.
1 = The PWMn output is high, when Brake is asserted.
(Note: n = 0~5).
ACCUMULATOR
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
ACC.7
ACC.6
ACC.5
ACC.4
ACC.3
ACC.2
ACC.1
ACC.0
Mnemonic: ACC
BI
T
7-0
Address: E0h
NAME
FUNCTION
ACC
The A or ACC register is the standard 8052 accumulator.
ADC CONTROL REGISTER
Bit:
Initial=xx00 0000b
7
6
5
4
3
2
1
0
ADC.1
ADC.0
ADCEX
ADCI
ADCS
ADDR2
AADR1
AADR0
Mnemonic: ADCCON
BIT
NAME
Address: E1h
FUNCTION
- 56 -
Preliminary N79E875 Data Sheet
7~6 ADC.1~0
5
4
3
2 LSB bits of the 10-bit ADC conversion result.
ADCEX
Enable STADC and PWM-triggered conversion:
0: Conversion can only be started by software (i.e., by setting ADCS).
1: Conversion can be started by software or by a rising edge on STADC (pin
P1.7) or rising/falling edge on PWM.
Note: PWM trigger will be enabled if ADCCON1.STADCT.1 = 1 and ADCEX = 1.
This product supports 4 PWM channels for ADC start conversion triggers. User
may also select the trigger type of rising or falling edge. User may also control the
delay timing of PWM’s ADC start trigger. See ADC section for descriptions.
ADCI
ADC Interrupt flag:
This flag is set when the result of an A/D conversion is ready. This generates an
ADC interrupt, if it is enabled. While this flag is 1, the ADC cannot start a new
conversion. This bit will be cleared by software.
ADCS
ADC Start and Status: Set this bit to start an A/D conversion. It may also be set
by STADC if ADCEX is 1. This signal remains high while the ADC is busy and is
reset right after ADCI is set.
Notes:
1.
It is recommended to clear ADCI before ADCS is set. However, if ADCI is
cleared and ADCS is set at the same time, a new A/D conversion may start
on the same channel.
2.
Software clearing of ADCS will abort conversion in progress.
3.
If ADC is not in Continuous Mode, it cannot start a new conversion while
ADCS or ADCI is high.
2~0 AADR2~0
The ADC input select.
The ADCI and ADCS control the ADC conversion as below:
ADCI
ADCS
ADC STATUS
0
0
ADC not busy; A conversion can be started.
0
1
ADC busy; Start of a new conversion is blocked.
1
0
Conversion completed; Start of a new conversion requires ADCI = 0.
1
1
This is an internal temporary state that user can ignore it.
ADDR2, AADR1, AADR0: ADC Analog Input Channel select bits:
(Note : These bits should only be changed when ADCI and ADCS are both zero.)
AADR2
AADR1
AADR0
Selected Analog Channel
0
0
0
ADC0 (P0.0)
0
0
1
ADC1 (P0.1)
0
1
0
ADC2 (P0.2)
- 57 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
0
1
1
ADC3 (P0.3)
1
0
0
ADC4 (P0.4)
1
0
1
ADC5 (P0.5)
1
1
0
ADC6 (P0.6)
1
1
1
ADC7 (P0.7)
ADC CONVERTER RESULT REGISTER
Bit:
Initial=xxxx xxxxb
7
6
5
4
3
2
1
0
ADC.9
ADC.8
ADC.7
ADC.6
ADC.5
ADC.4
ADC.3
ADC.2
Mnemonic: ADCH
Address: E2h
BIT
NAME
FUNCTION
7~0
ADC.9~2
8 MSB bits of the 10-bit ADC conversion result.
ADC CONTROL REGISTER 1
Bit:
Initial=0100 0000b
7
6
5
4
3
2
1
0
ADCLK.1
ADCLK.0
STADCT.
1
STADCT.
0
DLYDIV
ADCCM
PWMSRC
.1
PWMSRC
.0
Mnemonic: ADCCON1
BIT
NAME
Address: E3h
FUNCTION
ADC Clock Prescaler:
The 10-bit ADC needs a clock to drive the converting and the clock frequency
need to be within 200KHz to 20MHz. ADCLK[1:0] controls the frequency of the
clock to ADC block as below table;
7~6
ADCLK.1~0
ADCLK.1
ADCLK.0
ADC Clock Frequency
0
0
ADCCLK/1
0
1
ADCCLK/2 (default)
1
0
ADCCLK/4
1
1
ADCCLK/8
STADC Trigger Type selection bits:
These bits select rising or falling edge for ADC start trigger type.
00: Triggered by P1.7 rising edge (default).
5~4 STADCT.1~0
01: Trigger by PWM rising edge.
10: Trigger by PWM falling edge.
11: Trigger by PWM centre-align (at centre point).
3
DLYDIV
ADC Delay Clock divider select bit:
0: Divider = 1.
- 58 -
Preliminary N79E875 Data Sheet
1: Divider = 2.
The internal counter for PMU trigger delay is clocked by machine clock, Fcpu/4.
This bit is meant for dividing the machine clock (Fcpu/4) clock source as per
PMU trigger delay time equation below;
PMU trigger delay time = (ADCDLY+1)/(Fcpu/(4*DLYDIV)).
2
ADC Continuous Mode
0: Disable ADC continuous mode.
1: Enable ADC continuous mode.
ADCCM
PWM Source selection bits:
These bits select PWM channel to cause ADC start conversion.
PWMSRC.1~ 00: PWM Channel 0.
1-0
0
01: PWM Channel 2.
10: PWM Channel 4.
11: PWM Channel 6.
Note:
User required to clear ADCEN (ADCEN = 0) when re-configure this SFR.
For PWM trigger ADC start conversion in centre align mode, ADC start conversion point will be at the
same, regardless of which pwm channel is selected.
INPUT CAPTURE 0 LOW REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
CCL0.7
CCL0.6
CCL0.5
CCL0.4
CCL0.3
CCL0.2
CCL0.1
CCL0.0
Mnemonic: CCL0
BIT
NAME
7~0
CCL0
Address: E4h
FUNCTION
Capture 0 low byte.
INPUT CAPTURE 0 HIGH REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
CCH0.7
CCH0.6
CCH0.5
CCH0.4
CCH0.3
CCH0.2
CCH0.1
CCH0.0
Mnemonic: CCH0
BIT
NAME
7~0
CCH0
Address: E5h
FUNCTION
Capture 0 high byte.
INPUT CAPTURE 1 LOW REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
CCL1.7
CCL1.6
CCL1.5
CCL1.4
CCL1.3
CCL1.2
CCL1.1
CCL1.0
Mnemonic: CCL1
BIT
NAME
Address: E6h
FUNCTION
- 59 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
7~0
CCL1
Capture 1 low byte.
INPUT CAPTURE 1 HIGH REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
CCH1.7
CCH1.6
CCH1.5
CCH1.4
CCH1.3
CCH1.2
CCH1.1
CCH1.0
Mnemonic: CCH1
BIT
NAME
7~0
CCH1
Address: E7h
FUNCTION
Capture 1 high byte.
INTERRUPT ENABLE REGISTER 1
Bit:
Initial=0000 x000b
7
6
5
4
3
2
1
0
ECPTF
EPWM
EBRK
EWDI
-
ECI
EKB
EI2C
Mnemonic: EIE1
BIT
NAME
Address: E8h
FUNCTION
7
ECPTF
0: Disable capture interrupts.
1: Enable capture interrupts.
6
EPWM
0: Disable PWM Interrupt when PWM counter match/underflow.
1: Enable PWM Interrupt when PWM counter match/underflow.
5
EBRK
0: Disable PWM brake interrupt.
1: Enable PWM brake interrupt.
4
EWDI
0: Disable Watchdog Timer Interrupt.
1: Enable Watchdog Timer Interrupt.
3
-
2
ECI
0: Disable Comparator 1 and 2 Interrupt.
1: Enable Comparator 1 and 2 Interrupt.
1
EKB
0: Disable Keypad Interrupt.
1: Enable Keypad Interrupt.
0
EI2C
0: Disable I2C Interrupt.
1: Enable I2C Interrupt.
Reserved.
PORTS SHMITT REGISTER
Bit:
Initial=xxx0 0000b
7
6
5
4
3
2
1
0
-
-
-
P4S
P3S
P2S
P1S
P0S
- 60 -
Preliminary N79E875 Data Sheet
Mnemonic: PORTS
BIT
NAME
Address: ECh
FUNCTION
7~5
-
4
P4S
1: Enables Schmitt trigger inputs on Port 4.
3
P3S
1: Enables Schmitt trigger inputs on Port 3.
2
P2S
1: Enables Schmitt trigger inputs on Port 2.
1
P1S
1: Enables Schmitt trigger inputs on Port 1.
0
P0S
1: Enables Schmitt trigger inputs on Port 0.
Reserved.
PWM MASK ENABLE REGISTER
Bit:
Initial=xx00 0000b
7
6
5
4
3
2
1
0
-
-
PME.5
PME.4
PME.3
PME.2
PME.1
PME.0
Mnemonic: PME
BIT
NAME
7~6
-
5~0
PME.n
Address: EDh
FUNCTION
Reserved.
PWM Mask Enable bit:
The PWM generator signal will be masked when this bit is enabled. The
corresponding PWMn channel will be output with PMD.n data.
0: PWM generator signal is output to next stage.
1: PWM generator signal is masked and PMD.n is output to next stage.
(Note: n = 0~5).
PWM MASK DATA REGISTER
Bit:
Initial=xx00 0000b
7
6
5
4
3
2
1
0
-
-
PMD.5
PMD.4
PMD.3
PMD.2
PMD.1
PMD.0
Mnemonic: PMD
BIT
NAME
7~6
-
5~0
PMD.n
Address: EEh
FUNCTION
Reserved.
PWM Mask Data bit:
This data bit control the state of PWMn output pin, if corresponding PME.n = 1.
0: Output logic low to PWMn.
1: Output logic high to PWMn.
(Note: n = 0~5).
INTERRUPT HIGH PRIORITY 2
Bit:
7
6
5
Initial=x0xx 0xx0b
4
3
- 61 -
2
1
0
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
-
PT2H
-
-
PSPIH
-
-
PET3H
Mnemonic: IP2H
BIT
NAME
7
-
6
PT2H
5~4
-
3
PSPIH
2~1
-
0
PET3H
Address: EFh
FUNCTION
Reserved.
1: To set interrupt high priority of Timer 2 is highest priority level.
Reserved.
1: To set interrupt high priority of SPI is highest priority level.
Reserved.
1: To set interrupt high priority of Timer 3 is highest priority level.
B REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
B.7
B.6
B.5
B.4
B.3
B.2
B.1
B.0
Mnemonic: B
BI
T
7-0
Address: F0h
NAME
FUNCTION
B
The B register is the standard 8052 register that serves as a second
accumulator.
SERIAL PERIPHERAL CONTROL REGISTER
Bit:
7
6
SSOE
5
SPE
Initial=0000 0100b
4
LSBFE
3
MSTR
2
CPOL
Mnemonic: SPCR
BIT
1
CPHA
0
SPR1
SPR0
Address: F3h
NAME
FUNCTION
- 62 -
Preliminary N79E875 Data Sheet
Slave Select Output Enable Bit.
The SS output feature is enabled only in master mode by asserting the SSOE bit.
SS
input not effected by SSOE when the device in slave mode.
0: SS input (with mode fault).
1: SS output (no mode fault).
7
6
5
4
3
SSOE
DRS
S
SSO
E
Master Mode
Slave Mode
0
0
SS
input ( With Mode
Fault )
SS
Input
SSOE )
(
Not
affected
by
0
1
Reserved
SS Input
SSOE )
(
Not
affected
by
1
0
SS General purpose I/O
( No Mode Fault )
SS Input
SSOE )
(
Not
affected
by
1
1
SS output ( No Mode
Fault )
SS Input
SSOE )
(
Not
affected
by
SPE
Serial Peripheral System Enable Bit:
When the SPE bit is set, SPI block functions is enable. When MODF is set, SPE
always reads 0.
0: SPI system disabled.
1: SPI system enabled.
LSBFE
LSB - First Enable:
This bit does not affect the position of the MSB and LSB in the data register.
Reads and writes of the data register always have the MSB in bit 7. In master
mode, a change of this bit will abort a transmission in progress and force the SPI
system into idle state.
0: Data is transferred most significant bit first.
1: Data is transferred least significant bit first.
MSTR
Master Mode Select Bit:
It is customary to have an external pull-up resistor on lines that are driven by
open-drain devices.
0: Slave mode.
1: Master mode
CPOL
Clock Polarity Bit:
When the clock polarity bit is cleared and data is not being transferred, the SCK
pin of the master device has a steady state low value. When CPOL is set, SCK
idles high.
- 63 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
2
CPHA
Clock Phase Bit:
The clock phase bit, in conjunction with the CPOL bit, controls the clock-data
relationship between master and slave. The CPHA bit selects one of two different
clocking protocols.
SPI Baud Rate Selection Bits:
These bits specify the SPI baud rates.
1~0
SPR1~0
SPR1
SPR0
Divider
0
0
16
0
1
32
1
0
64
1
1
128
Note: In master mode, a change of LSBFE, MSTR, CPOL, CPHA and SPR [1:0] will abort a
transmission in progress and force the SPI system into idle state.
SERIAL PERIPHERAL STATUS REGISTER
Bit:
7
6
SPIF
5
WCOL
SPOVF
Initial=0000 0xxxb
4
3
MODF
2
DRSS
1
-
Mnemonic: SPSR
BIT
7
6
5
4
NAME
0
-
Address: F4h
FUNCTION
SPIF
SPI Interrupt Complete Flag:
SPIF is set upon completion of data transfer between this device and external
device or when new data has been received and copied to the SPDR. If SPIF
goes high, and if ESPI (located at EIE2.3) is set, a serial peripheral interrupt is
generated. SPIF is clear by software, by writing a 0.
WCOL
Write Collision Bit:
Clearing the WCOL bit is accomplished by software writing a 0.
0: No write collision.
1: Write collision.
SPOVF
SPI overrun flag:
SPIOVF is set if a new character is received before a previously received
character is read from SPDR. Once this bit is set, it will prevent SPDR register
from accepting new data. It must be cleared before any new data can be written.
This flag is cleared by software, by writing a 0.
0: No overrun.
1: Overrun detected.
MODF
SPI Mode Error Interrupt Status Flag:
Clearing this bit is by software writing a 0.
0: No mode fault.
1: Mode fault.
- 64 -
Preliminary N79E875 Data Sheet
3
DRSS
2~0
-
Data Register Slave Select:
Refer to above table in SPCR register.
Reserved.
SERIAL PERIPHERAL DATA I/O REGISTER
Bit:
7
SPD.7
Initial=xxxx xxxxb
6
5
4
3
2
1
0
SPD.6
SPD.5
SPD.4
SPD.3
SPD.2
SPD.1
SPD.0
Mnemonic: SPDR
Address: F5h
BI
T
NAME
FUNCTION
7-0
SPDR
SPDR is used when transmitting or receiving data on serial bus.
PORT ADC DIGITAL INPUT DISABLE
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
PADIDS.
7
PADIDS.
6
PADIDS.
5
PADIDS.
4
PADIDS.
3
PADIDS.
2
PADIDS.
1
PADIDS.
0
Mnemonic: PADIDS
BIT
NAME
Address: F6h
FUNCTION
PADIDS.7
P0.7 digital input disable bit.
0: Default (With digital/analog input).
1: Disable Digital Input of ADC Input Channel 7.
6
PADIDS.6
P0.6 digital input disable bit.
0: Default (With digital/analog input).
1: Disable Digital Input of ADC Input Channel 6.
5
PADIDS.5
P0.5 digital input disable bit.
0: Default (With digital/analog input).
1: Disable Digital Input of ADC Input Channel 5.
PADIDS.4
P0.4 digital input disable bit.
0: Default (With digital/analog input).
1: Disable Digital Input of ADC Input Channel 4/Comparator 1 (CP1N) input.
3
PADIDS.3
P0.3 digital input disable bit.
0: Default (With digital/analog input).
1: Disable Digital Input of ADC Input Channel 3/Comparator 1 (CP1P) input.
2
PADIDS.2
P0.2 digital input disable bit.
0: Default (With digital/analog input).
1: Disable Digital Input of ADC Input Channel 2/Comparator 2 (CP2N) input.
7
4
- 65 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
1
0
PADIDS.1
P0.1 digital input disable bit.
0: Default (With digital/analog input).
1: Disable Digital Input of ADC Input Channel 1/Comparator 2 (CP2P) input.
PADIDS.0
P0.0 digital input disable bit.
0: Default (With digital/analog input).
1: Disable Digital Input of ADC Input Channel 0.
INTERRUPT HIGH PRIORITY 1
Bit:
7
6
PCAPH
Initial=0000 x000b
5
PPWMH
4
PBRKH
3
PWDIH
2
-
1
PCIH
0
PKBH
Mnemonic: IP1H
BIT
NAME
PI2H
Address: F7h
FUNCTION
7
PCAPH
1: To set interrupt high priority of Capture 0/1/2 as highest priority level.
6
PPWMH
1: To set interrupt high priority of PWM’s counter match/underflow is highest
priority level.
5
PBRKH
1: To set interrupt high priority of PWM’s brake is highest priority level.
4
PWDIH
1: To set interrupt high priority of Watchdog is highest priority level.
3
-
2
PCIH
1: To set interrupt high priority of Comparator 1 and 2, is highest priority level.
1
PKBH
1: To set interrupt high priority of Keypad is highest priority level.
0
PI2H
1: To set interrupt high priority of I2C is highest priority level.
Reserved.
INTERRUPT PRIORITY 1
Bit:
7
6
PCAP
Initial=0000 x000b
5
PPWM
4
PBRK
3
PWDI
2
-
1
PCI
0
PKB
Mnemonic: IP1
BIT
NAME
PI2
Address: F8h
FUNCTION
7
PCAP
1: To set interrupt priority of Capture 0/1/2 as higher priority level.
6
PPWM
1: To set interrupt priority of PWM’s counter match/underflow is higher priority
level.
5
PBRK
1: To set interrupt priority of PWM’s brake is higher priority level.
4
PWDI
1: To set interrupt priority of Watchdog is higher priority level.
3
-
2
PC1
Reserved.
1: To set interrupt priority of Comparator 1 and 2, is higher priority level.
- 66 -
Preliminary N79E875 Data Sheet
1
PKB
1: To set interrupt priority of Keypad is higher priority level.
0
PI2
1: To set interrupt priority of I2C is higher priority level.
PORT 4 OUTPUT MODE 1
Bit:
7
6
-
Initial=xxxx 0000b
5
-
4
-
3
-
2
P4M1.3
P4M1.2
1
0
P4M1.1
Mnemonic: P4M1
BI
T
NAME
3-0
P4M1
Address: FAh
FUNCTION
To control the output configuration of P4 bits [3:0]
PORT 4 OUTPUT MODE 2
Bit:
7
6
-
Initial=xxxx 0000b
5
-
4
-
3
-
2
P4M2.3
P4M2.2
1
0
P4M2.1
Mnemonic: P4M2
P4M2.0
Address: FBh
BI
T
NAME
FUNCTION
3-0
P4M2
To control the output configuration of P4 bits [3:0]
PWM CONTROL REGISTER 4
Bit:
P4M1.0
Initial=0000 0x00b
7
6
5
4
3
2
1
0
BK1FILT.
1
BK1FILT.
0
BK0FILT.
1
BK0FILT.
0
AUTOBK1
-
BKEN1
BKEN0
Mnemonic: PWMCON4
Address: FCh
BIT
NAME
FUNCTION
7-6
Brake 1 (BKP1 pin) edge detector filter type bits:
00: Filter clock = Fcpu.
BK1FILT.1
01: Filter clock = Fcpu/2.
-0
10: Filter clock = Fcpu/4.
11: Filter clock = Fcpu/8.
5-4
Brake 0 (BKP0 pin) edge detector filter type bits:
00: Filter clock = Fcpu.
BK0FILT.1
01: Filter clock = Fcpu/2.
-0
10: Filter clock = Fcpu/4.
11: Filter clock = Fcpu/8.
- 67 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
3
Auto-clear Brake condition:
0: No change in PWM0-5 output. PWM0-5 output will remain following PWM
generators, if brake is caused by BRK1 pin.
AUTOBK1 1: This will cause PWM0-5 output to follow PWMnB bits (see note), when low
level is detected at BKP1 pin.
Note: PNP bits are also able to control the polarity of PWMnB. If PNP.n=0, PWMn
output = PWMnB. If PNP.n=1, PWMn output = invert(PWMnB).
2
-
Reserved.
BKEN1
Enable brake 1 (BKP1 pin) falling edge detection:
0: Disable brake 1, BKP1 pin, falling edge detect function (default).
1: Enable brake 1, BKP1 pin, falling edge detection. FBK1 flag will set if this brake
occurs.
BKEN0
Enable brake 0 (BKP0 pin) falling edge detection:
0: Disable brake 0, BKP0 pin, edge detect function (default).
1: Enable brake 0, BKP0 pin, falling edge detection. FBK0 flag will set if this brake
occurs.
1
0
PWM 6 LOW BITS REGISTER
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
PWM6.7
PWM6.6
PWM6.5
PWM6.4
PWM6.3
PWM6.2
PWM6.1
PWM6.0
Mnemonic: PWM6L
BIT
NAME
7:0
PWM6
Address: FDh
FUNCTION
PWM 6 Low Bits Register.
PWM 6 HIGH BITS REGISTER
Bit:
Initial=xxxx 0000b
7
6
5
4
3
2
1
0
-
-
-
-
PWM6.11
PWM6.10
PWM6.9
PWM6.8
Mnemonic: PWM6H
BIT
NAME
7:4
-
3:0
PWM6
Address: FEh
FUNCTION
Reserved.
PWM 6 High Bits Register.
AUX FUNCTION REGISTER 2
Bit:
Initial=0000 0000b
7
6
5
4
3
2
1
0
T1OE
T0OE
PCMP2D
IDS.1
PCMP2D
IDS.0
POPDIDS
ENCLK
ADC1SEL
ENOP
Mnemonic: AUXR2
BIT
NAME
Address: FFh
FUNCTION
- 68 -
Preliminary N79E875 Data Sheet
7
T1OE
1: The P2.7 pin is toggled whenever Timer 1 overflows. The output frequency is
therefore one half of the Timer 1 overflow rate.
6
T0OE
1: The P1.5 pin is toggled whenever Timer 0 overflows. The output frequency is
therefore one half of the Timer 0 overflow rate.
5
P4.0 digital input disable bit.
PCMP2DID
0: Default (With digital/analog input).
S.1
1: Disable Digital Input of Comparator 2 (CP2NB) input.
4
P4.1 digital input disable bit.
PCMP2DID
0: Default (With digital/analog input).
S.0
1: Disable Digital Input of Comparator 2 (CP2PB) input.
3
POPDIDS
2
ENCLK
1
ADC1SEL
0
ENOP
P3.6 and P3.7 digital input disable bit.
0: Default (With digital/analog input).
1: Disable Digital Input of Opamp OPP and OPN inputs.
1: To use the on-chip RC oscillator, a clock output is enabled on the XTAL2 pin.
ADC 1 source select bit:
0: From P0.1 input.
1: From Brownout 1.2V output, VBF.
OP AMP enable:
0: OP Amp disabled.
1: OP Amp enabled.
- 69 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
8
INSTRUCTION
The N79E875 series execute all the instructions of the standard 8052 family. The operations of these
instructions, as well as their effects on flag and status bits, are exactly same. However, the timing of
these instructions is different in two ways. Firstly, the machine cycle is four clock periods, while the
standard-8051/52 machine cycle is twelve clock periods. Secondly, it can fetch only once per machine
cycle (i.e., four clocks per fetch), while the standard 8051/52 can fetch twice per machine cycle (i.e.,
six clocks per fetch).
The timing differences create an advantage for the N79E875 series. There is only one fetch per
machine cycle, so the number of machine cycles is usually equal to the number of operands in the
instruction. (Jumps and calls do require an additional cycle to calculate the new address.) As a result,
the N79E875 series reduces the number of dummy fetches and wasted cycles, and therefore
improves overall efficiency, compared to the standard 8051/52.
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
NOP
00
1
1
4
12
3
ADD A, R0
28
1
1
4
12
3
ADD A, R1
29
1
1
4
12
3
ADD A, R2
2A
1
1
4
12
3
ADD A, R3
2B
1
1
4
12
3
ADD A, R4
2C
1
1
4
12
3
ADD A, R5
2D
1
1
4
12
3
ADD A, R6
2E
1
1
4
12
3
ADD A, R7
2F
1
1
4
12
3
ADD A, @R0
26
1
1
4
12
3
ADD A, @R1
27
1
1
4
12
3
ADD A, direct
25
2
2
8
12
1.5
ADD A, #data
24
2
2
8
12
1.5
ADDC A, R0
38
1
1
4
12
3
ADDC A, R1
39
1
1
4
12
3
ADDC A, R2
3A
1
1
4
12
3
ADDC A, R3
3B
1
1
4
12
3
ADDC A, R4
3C
1
1
4
12
3
- 70 -
Preliminary N79E875 Data Sheet
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
ADDC A, R5
3D
1
1
4
12
3
ADDC A, R6
3E
1
1
4
12
3
ADDC A, R7
3F
1
1
4
12
3
ADDC A, @R0
36
1
1
4
12
3
ADDC A, @R1
37
1
1
4
12
3
ADDC A, direct
35
2
2
8
12
1.5
ADDC A, #data
34
2
2
8
12
1.5
SUBB A, R0
98
1
1
4
12
3
SUBB A, R1
99
1
1
4
12
3
SUBB A, R2
9A
1
1
4
12
3
SUBB A, R3
9B
1
1
4
12
3
SUBB A, R4
9C
1
1
4
12
3
SUBB A, R5
9D
1
1
4
12
3
SUBB A, R6
9E
1
1
4
12
3
SUBB A, R7
9F
1
1
4
12
3
SUBB A, @R0
96
1
1
4
12
3
SUBB A, @R1
97
1
1
4
12
3
SUBB A, direct
95
2
2
8
12
1.5
SUBB A, #data
94
2
2
8
12
1.5
INC A
04
1
1
4
12
3
INC R0
08
1
1
4
12
3
INC R1
09
1
1
4
12
3
INC R2
0A
1
1
4
12
3
INC R3
0B
1
1
4
12
3
INC R4
0C
1
1
4
12
3
INC R5
0D
1
1
4
12
3
INC R6
0E
1
1
4
12
3
- 71 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
INC R7
0F
1
1
4
12
3
INC @R0
06
1
1
4
12
3
INC @R1
07
1
1
4
12
3
INC direct
05
2
2
8
12
1.5
INC DPTR
A3
1
2
8
24
3
DEC A
14
1
1
4
12
3
DEC R0
18
1
1
4
12
3
DEC R1
19
1
1
4
12
3
DEC R2
1A
1
1
4
12
3
DEC R3
1B
1
1
4
12
3
DEC R4
1C
1
1
4
12
3
DEC R5
1D
1
1
4
12
3
DEC R6
1E
1
1
4
12
3
DEC R7
1F
1
1
4
12
3
DEC @R0
16
1
1
4
12
3
DEC @R1
17
1
1
4
12
3
DEC direct
15
2
2
8
12
1.5
MUL AB
A4
1
5
20
48
2.4
DIV AB
84
1
5
20
48
2.4
DA A
D4
1
1
4
12
3
ANL A, R0
58
1
1
4
12
3
ANL A, R1
59
1
1
4
12
3
ANL A, R2
5A
1
1
4
12
3
ANL A, R3
5B
1
1
4
12
3
ANL A, R4
5C
1
1
4
12
3
ANL A, R5
5D
1
1
4
12
3
ANL A, R6
5E
1
1
4
12
3
- 72 -
Preliminary N79E875 Data Sheet
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
ANL A, R7
5F
1
1
4
12
3
ANL A, @R0
56
1
1
4
12
3
ANL A, @R1
57
1
1
4
12
3
ANL A, direct
55
2
2
8
12
1.5
ANL A, #data
54
2
2
8
12
1.5
ANL direct, A
52
2
2
8
12
1.5
ANL direct, #data
53
3
3
12
24
2
ORL A, R0
48
1
1
4
12
3
ORL A, R1
49
1
1
4
12
3
ORL A, R2
4A
1
1
4
12
3
ORL A, R3
4B
1
1
4
12
3
ORL A, R4
4C
1
1
4
12
3
ORL A, R5
4D
1
1
4
12
3
ORL A, R6
4E
1
1
4
12
3
ORL A, R7
4F
1
1
4
12
3
ORL A, @R0
46
1
1
4
12
3
ORL A, @R1
47
1
1
4
12
3
ORL A, direct
45
2
2
8
12
1.5
ORL A, #data
44
2
2
8
12
1.5
ORL direct, A
42
2
2
8
12
1.5
ORL direct, #data
43
3
3
12
24
2
XRL A, R0
68
1
1
4
12
3
XRL A, R1
69
1
1
4
12
3
XRL A, R2
6A
1
1
4
12
3
XRL A, R3
6B
1
1
4
12
3
XRL A, R4
6C
1
1
4
12
3
XRL A, R5
6D
1
1
4
12
3
- 73 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
XRL A, R6
6E
1
1
4
12
3
XRL A, R7
6F
1
1
4
12
3
XRL A, @R0
66
1
1
4
12
3
XRL A, @R1
67
1
1
4
12
3
XRL A, direct
65
2
2
8
12
1.5
XRL A, #data
64
2
2
8
12
1.5
XRL direct, A
62
2
2
8
12
1.5
XRL direct, #data
63
3
3
12
24
2
CLR A
E4
1
1
4
12
3
CPL A
F4
1
1
4
12
3
RL A
23
1
1
4
12
3
RLC A
33
1
1
4
12
3
RR A
03
1
1
4
12
3
RRC A
13
1
1
4
12
3
SWAP A
C4
1
1
4
12
3
MOV A, R0
E8
1
1
4
12
3
MOV A, R1
E9
1
1
4
12
3
MOV A, R2
EA
1
1
4
12
3
MOV A, R3
EB
1
1
4
12
3
MOV A, R4
EC
1
1
4
12
3
MOV A, R5
ED
1
1
4
12
3
MOV A, R6
EE
1
1
4
12
3
MOV A, R7
EF
1
1
4
12
3
MOV A, @R0
E6
1
1
4
12
3
MOV A, @R1
E7
1
1
4
12
3
MOV A, direct
E5
2
2
8
12
1.5
MOV A, #data
74
2
2
8
12
1.5
- 74 -
Preliminary N79E875 Data Sheet
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
MOV R0, A
F8
1
1
4
12
3
MOV R1, A
F9
1
1
4
12
3
MOV R2, A
FA
1
1
4
12
3
MOV R3, A
FB
1
1
4
12
3
MOV R4, A
FC
1
1
4
12
3
MOV R5, A
FD
1
1
4
12
3
MOV R6, A
FE
1
1
4
12
3
MOV R7, A
FF
1
1
4
12
3
MOV R0, direct
A8
2
2
8
12
1.5
MOV R1, direct
A9
2
2
8
12
1.5
MOV R2, direct
AA
2
2
8
12
1.5
MOV R3, direct
AB
2
2
8
12
1.5
MOV R4, direct
AC
2
2
8
12
1.5
MOV R5, direct
AD
2
2
8
12
1.5
MOV R6, direct
AE
2
2
8
12
1.5
MOV R7, direct
AF
2
2
8
12
1.5
MOV R0, #data
78
2
2
8
12
1.5
MOV R1, #data
79
2
2
8
12
1.5
MOV R2, #data
7A
2
2
8
12
1.5
MOV R3, #data
7B
2
2
8
12
1.5
MOV R4, #data
7C
2
2
8
12
1.5
MOV R5, #data
7D
2
2
8
12
1.5
MOV R6, #data
7E
2
2
8
12
1.5
MOV R7, #data
7F
2
2
8
12
1.5
MOV @R0, A
F6
1
1
4
12
3
MOV @R1, A
F7
1
1
4
12
3
MOV @R0, direct
A6
2
2
8
12
1.5
- 75 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
MOV @R1, direct
A7
2
2
8
12
1.5
MOV @R0, #data
76
2
2
8
12
1.5
MOV @R1, #data
77
2
2
8
12
1.5
MOV direct, A
F5
2
2
8
12
1.5
MOV direct, R0
88
2
2
8
12
1.5
MOV direct, R1
89
2
2
8
12
1.5
MOV direct, R2
8A
2
2
8
12
1.5
MOV direct, R3
8B
2
2
8
12
1.5
MOV direct, R4
8C
2
2
8
12
1.5
MOV direct, R5
8D
2
2
8
12
1.5
MOV direct, R6
8E
2
2
8
12
1.5
MOV direct, R7
8F
2
2
8
12
1.5
MOV direct, @R0
86
2
2
8
12
1.5
MOV direct, @R1
87
2
2
8
12
1.5
MOV direct, direct
85
3
3
12
24
2
MOV direct, #data
75
3
3
12
24
2
MOV DPTR, #data 16
90
3
3
12
24
2
MOVC A, @A+DPTR
93
1
2
8
24
3
MOVC A, @A+PC
83
1
2
8
24
3
MOVX A, @R0
E2
1
2-9
8 - 36
24
3 - 0.66
MOVX A, @R1
E3
1
2-9
8 - 36
24
3 - 0.66
MOVX A, @DPTR
E0
1
2-9
8 - 36
24
3 - 0.66
MOVX @R0, A
F2
1
2-9
8 - 36
24
3 - 0.66
MOVX @R1, A
F3
1
2-9
8 - 36
24
3 - 0.66
MOVX @DPTR, A
F0
1
2-9
8 - 36
24
3 - 0.66
PUSH direct
C0
2
2
8
24
3
POP direct
D0
2
2
8
24
3
- 76 -
Preliminary N79E875 Data Sheet
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
XCH A, R0
C8
1
1
4
12
3
XCH A, R1
C9
1
1
4
12
3
XCH A, R2
CA
1
1
4
12
3
XCH A, R3
CB
1
1
4
12
3
XCH A, R4
CC
1
1
4
12
3
XCH A, R5
CD
1
1
4
12
3
XCH A, R6
CE
1
1
4
12
3
XCH A, R7
CF
1
1
4
12
3
XCH A, @R0
C6
1
1
4
12
3
XCH A, @R1
C7
1
1
4
12
3
XCHD A, @R0
D6
1
1
4
12
3
XCHD A, @R1
D7
1
1
4
12
3
XCH A, direct
C5
2
2
8
12
1.5
CLR C
C3
1
1
4
12
3
CLR bit
C2
2
2
8
12
1.5
SETB C
D3
1
1
4
12
3
SETB bit
D2
2
2
8
12
1.5
CPL C
B3
1
1
4
12
3
CPL bit
B2
2
2
8
12
1.5
ANL C, bit
82
2
2
8
24
3
ANL C, /bit
B0
2
2
6
24
3
ORL C, bit
72
2
2
8
24
3
ORL C, /bit
A0
2
2
6
24
3
MOV C, bit
A2
2
2
8
12
1.5
MOV bit, C
92
2
2
8
24
3
ACALL addr11
71, 91, B1,
11, 31, 51,
D1, F1
2
3
12
24
2
- 77 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
LCALL addr16
12
3
4
16
24
1.5
RET
22
1
2
8
24
3
RETI
32
1
2
8
24
3
AJMP ADDR11
01, 21, 41,
61, 81, A1,
C1, E1
2
3
12
24
2
LJMP addr16
02
3
4
16
24
1.5
JMP @A+DPTR
73
1
2
6
24
3
SJMP rel
80
2
3
12
24
2
JZ rel
60
2
3
12
24
2
JNZ rel
70
2
3
12
24
2
JC rel
40
2
3
12
24
2
JNC rel
50
2
3
12
24
2
JB bit, rel
20
3
4
16
24
1.5
JNB bit, rel
30
3
4
16
24
1.5
JBC bit, rel
10
3
4
16
24
1.5
CJNE A, direct, rel
B5
3
4
16
24
1.5
CJNE A, #data, rel
B4
3
4
16
24
1.5
CJNE @R0, #data, rel
B6
3
4
16
24
1.5
CJNE @R1, #data, rel
B7
3
4
16
24
1.5
CJNE R0, #data, rel
B8
3
4
16
24
1.5
CJNE R1, #data, rel
B9
3
4
16
24
1.5
CJNE R2, #data, rel
BA
3
4
16
24
1.5
CJNE R3, #data, rel
BB
3
4
16
24
1.5
CJNE R4, #data, rel
BC
3
4
16
24
1.5
CJNE R5, #data, rel
BD
3
4
16
24
1.5
CJNE R6, #data, rel
BE
3
4
16
24
1.5
CJNE R7, #data, rel
BF
3
4
16
24
1.5
- 78 -
Preliminary N79E875 Data Sheet
Op-code
HEX Code
Bytes
N79E875
series
Machine
Cycle
N79E875
series
Clock
cycles
8032
Clock
cycles
N79E875
series
vs.
8032 Speed
Ratio
DJNZ R0, rel
D8
2
3
12
24
2
DJNZ R1, rel
D9
2
3
12
24
2
DJNZ R5, rel
DD
2
3
12
24
2
DJNZ R2, rel
DA
2
3
12
24
2
DJNZ R3, rel
DB
2
3
12
24
2
DJNZ R4, rel
DC
2
3
12
24
2
DJNZ R6, rel
DE
2
3
12
24
2
DJNZ R7, rel
DF
2
3
12
24
2
DJNZ direct, rel
D5
3
4
16
24
1.5
Table 8-1: Instruction Set for N79E875
- 79 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
9
POWER MANAGEMENT
N79E875 series are provided with idle mode and power-down mode to control power consumption.
These modes are discussed in the next two sections, followed by a discussion of resets.
9.1
Idle Mode
The user can put the device into idle mode by writing 1 to the bit PCON.0. The instruction that sets the
idle bit is the last instruction that will be executed before the device goes into Idle Mode. In the Idle
mode, the clock to the CPU is halted, but not to the peripheral blocks. This forces the CPU state to be
frozen; the Program counter, the Stack Pointer, the Program Status Word, the Accumulator and the
other registers hold their contents. The port pins hold the logical states they had at the time Idle was
activated. The Idle mode can be terminated in two ways. Since the interrupt controller is still active, the
activation of any enabled interrupt can wake up the processor. This will automatically clear the Idle bit,
terminate the Idle mode, and the Interrupt Service Routine (ISR) will be executed. After the ISR is
completed, the program execution returns to the instruction after one which put the device into Idle
mode and continues from there.
The Idle mode can also be exited by activating the reset. The device can put into reset either by
applying a low on the external /RST pin, a Power on reset condition or a Watchdog timer reset. The
external reset pin has to be held low for at least two machine cycles i.e. 8 clock periods to be
recognized as a valid reset. In the reset condition the program counter is reset to 0000h and all the
SFRs are set to the reset condition. Since the clock is already running there is no delay and execution
starts immediately. In the Idle mode, the Watchdog timer continues to run, and if enabled, a time-out
will cause a watchdog timer interrupt which will wake up the device. The software must reset the
Watchdog timer in order to preempt the reset which will occur after 512 clock periods of the time-out.
When N79E875series are exiting from Idle Mode with a reset, the instruction following the one which
put the device into Idle Mode is not executed. So there is no danger of unexpected writes.
9.2
Power Down Mode
The device can be put into Power Down mode by writing 1 to bit PCON.1. The instruction that does
this will be the last instruction to be executed before the device goes into Power Down mode. In the
Power Down mode, all the clocks are stopped and the device comes to a halt. All activity, except the
functions of Brownout reset, KBI, INT1 , INT0 , watchdog timer(Config0.WDTCK=0), ADC(RCCLK=1)
and Analog Comparator(if enabled), is completely stopped and the power consumption is reduced to
the lowest possible value. The port pins hold at the states of the values held by their respective SFRs.
The interrupt sources that can wake up CPU from the power down mode are external interrupts,
keyboard interrupt (KBI), brownout reset (BOR), comparators interrupt(CMF1/CMF2), ADC
interrupt(if ADC clock is from internal RC) and watchdog timer interrupt (if WDTCK = 0). The
device will then execute the interrupt service routine for the corresponding external interrupt. After the
interrupt service routine is completed, the program execution returns to the instruction after one which
put the device into Power Down mode and continues from there.
Besides, the /RST pin trigger by a low pulse of at least two machine cycle terminates the Power Down
mode and restarts the clock. The program execution will restart from 0000h.
Note:
1. Either a low-level or a falling-edge at external interrupt pins /INT0 and INT1 will re-start the
oscillator if the global interrupt is enabled(EA=1) and the corresponding interrupt is enabled.
2. The /INT0 pin is permanently in open-drain type therefore it is recommended with an
external pull-up resistor on pin in application
- 80 -
Preliminary N79E875 Data Sheet
10 RESET CONDITIONS
The user has several hardware related options for placing N79E875 series into reset condition. In
general, most register bits go to their reset value irrespective of the reset condition, but there are a few
flags whose state depends on the source of reset. The user can use these flags to determine the
cause of reset using software. The sources of resets are external reset, power-on-reset, watchdog
timer reset and software reset (brownout is also able to reset the device if enabled).
10.1 External Reset
The device continuously samples the /RST pin at state C4 of every machine cycle. Therefore the /RST
pin must be held low for at least 2 machine cycles to ensure detection of a valid /RST low. The reset
circuitry then synchronously applies the internal reset signal. Thus the reset is a synchronous
operation and requires the clock to be running to cause an external reset.
Once the device is in reset condition, it will remain so as long as /RST is 0. Even after /RST is
deactivated, the device will continue to be in reset state for up to two machine cycles, and then begin
program execution from 0000h. There is no flag associated with the external reset condition. However
since the other two reset sources have flags, the external reset can be considered as the default reset
if those two flags are cleared.
10.2 Power-On Reset (POR)
When power up, the device performs a power-on reset and sets the POR flag. The software should
clear the POR flag, or it will be difficult to determine the source of future resets. During power-onreset, all port pins will be tri-stated. After power-on-reset, the port pins state will determined by PRHI
value.
10.3 Watchdog Timer Reset
The Watchdog timer is a free running timer with programmable time-out intervals. The user can clear
the watchdog timer at any time, causing it to restart the count. When the time-out interval is reached
an interrupt flag (WDIF at WDCON.3) will be set by hardware. If the Watchdog reset is enabled
(WDRUN at WDCON.7) and the watchdog timer is not cleared before the time-out of 512 clock period
since WINTF is set, the watchdog timer will set watchdog reset flag (WTRF at WDCON.2) and
generate a reset. This places the device into the reset condition. The reset condition is maintained by
hardware for two machine cycles. Once the reset is removed the device will begin execution from
0000h. The watchdog reset flag WTRF keeps high after watchdog reset, it must be cleared by
software.
10.4 Software Reset
User can software reset the device by setting SRST bit in SFR AUXR1. The reset condition is
maintained by hardware for two machine cycles. Once the reset is removed the device will begin
execution from 0000h. User must specially take care of setting SRST when a write access on
AUXR1.
10.5 Brownout Reset
When the power voltage(VDD) is lower than brownout voltage(VBOD), the brownout detector will set
brownout interrupt flag(BOF at PCON.5), if brownout reset function is enabled(BOD=1 and BOI=0 at
AUXR1) a hardware brownout reset will be triggered and the device keeps in reset state until the VDD
raises above brownout voltage. Note that BOF won’t be cleared by brownout reset, it must be cleared
by software
10.6 Reset State
- 81 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Most of the SFRs and registers on the device will go to the same condition in the reset state. The
Program Counter is forced to 0000h and is held there as long as the reset condition is applied.
However, the reset state does not affect the on-chip RAM. The data in the RAM will be preserved
during the reset. However, the stack pointer is reset to 07h, and therefore the stack contents will be
lost. The RAM contents will be lost if the VDD falls below approximately 2V, as this is the minimum
voltage level required for the RAM data retention. Therefore after a first time power on reset the RAM
contents will be indeterminate. During a power fail condition, if the power falls below 2V, the RAM
contents are lost.
The WDCON SFR bits are set/cleared in reset condition depending on the source of the reset. The
WDCON SFR is set to a 0x00 0000B on the reset. WTRF (WDCON.2) is set to a 1 on a Watchdog
timer reset, but to a 0 on power on/down resets. WTRF (WDCON.2) is not altered by external reset.
EWRST (WDCON.1) is cleared by any reset. Software or any reset will clear WDIF (WDCON.3) bit.
Some of the bits in the WDCON SFR (WDRUN, WDCLR, EWRST, WDIF, WD0 and WD1) have
unrestricted read access which required Timed Access procedure to write. The remaining bits have
unrestricted write accesses. Please refer TA register description.
The WDCON SFR bits are set or cleared in reset condition depending on the source of the reset.
WDCON
Watch-Dog control
D8H
(DF)
WDRUN
(DE)
-
(DD)
WD1
- 82 -
(DC)
WD0
(DB)
WDIF
(DA)
WTRF
(D9)
EWRST
(D8)
WDCLR
External
reset:
0x00 0x00b
Watchdog
reset:
0x00 0100b
Power
on
reset
0x00 0000b
Preliminary N79E875 Data Sheet
11 INTERRUPTS
N79E875 series have four priority level interrupts structure with 17 interrupt sources. Each of the
interrupt sources has an individual priority bit, flag, interrupt vector and enable bit. In addition, the
interrupts can be globally enabled or disabled.
11.1 Interrupt Sources
The External Interrupts INT0 and INT1 can be either edge triggered or level triggered, programmable
through bits IT0 and IT1 (SFR TCON). The bits IE0 and IE1 in TCON register are the flags which are
checked to generate the interrupt. In the edge triggered mode, the INTx inputs are sampled in every
machine cycle. If the sample is high in one cycle and low in the next, then a high to low transition is
detected and the interrupts request flag IEx in TCON is set. The flag bit requests the interrupt. Since
the external interrupts are sampled every machine cycle, they have to be held high or low for at least
one complete machine cycle. The IEx flag is automatically cleared when the service routine is called. If
the level triggered mode is selected, then the requesting source has to hold the pin low till the interrupt
is serviced. The IEx flag will not be cleared by the hardware on entering the service routine. If the
interrupt continues to be held low even after the service routine is completed, then the processor may
acknowledge another interrupt request from the same source.
The Timer 0 and 1 Interrupts are generated by the TF0 and TF1 flags. These flags are set by the
overflow in the Timer 0 and Timer 1. The TF0 and TF1 flags are automatically cleared by the hardware
when the timer interrupt is serviced. The Watchdog timer can be used as a system monitor or a simple
timer. In either case, when the time-out count is reached, the Watchdog Timer interrupt flag WDIF
(WDCON.3) is set. If the interrupt is enabled by the enable bit EIE14, then an interrupt will occur.
The timer 2 interrupt is generated through TF2 (due timer 2 overflows or compare match events). The
flag must be software cleared.
The timer 3 interrupt is generated through TF3 (due to timer 3 overflows, compare match or capture
events). The flag must be software cleared.
The Watchdog timer can be used as a system monitor or a simple timer. In either case, when the timeout count is reached, the Watchdog Timer interrupt flag WDIF (WDCON.3) is set. If the interrupt is
enabled by the enable bit EIE14, then an interrupt will occur.
The capture interrupt is generated through logical OR CPTF0-2 flags. CPTF0-2 flags are set by
capture/reload events. Software has to resolve the cause of the interrupt among CPTF0-2. The flags
must be software cleared.
The Serial block can generate interrupt on reception or transmission. There are two interrupt sources
from the Serial block, which are obtained by the RI and TI bits in the SCON SFR. The flag must be
software cleared.
I2C will generate an interrupt due to a new SIO state present in I2STATUS register, if both EA and ES
bits (in IE register) are both enabled.
SPI asserts interrupt flag, SPIF, upon completion of data transfer with an external device. If SPI
interrupt is enabled (ESPI at EIE2.3), a serial peripheral interrupt is generated. SPIF flag is software
clear, by writing a 0. MODF and SPIOVF also will generate interrupt if occur. They share the same
vector address as SPIF.
Keyboard interrupt is generated when any of the keypad connected to P0 pins is pressed. Each
keypad interrupt can be individually enabled or disabled. The flag must be cleared by software.
Comparators 1 and 2 can generate interrupts when detected change in any of the comparator output.
CMF1 or CMF2 flag will be asserted, accordingly. The flags must be cleared by software.
PWM period interrupt flag PWMF is set by hardware when its’ 12-bit counter underflows/match and is
- 83 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
only be cleared by software. The PWM brake interrupt flag0 FBK0 is set when the external brake
pin0(BKP0) detects a falling edge if BKEN0 is enabled. Alternatively, the brake interrupt flag1 FBK1 is
set by the external brake pin1(BKP1) detecting a falling change if BKEN1 is enabled.
The ADC can generate interrupt after finished ADC converter. There are two ADC interrupt sources;
one is obtained by the ADCI bit in the ADCCON SFR and another from ADCPI bit in ADCRL SFR. The
flags must be software cleared.
Brownout detect can cause brownout flag, BOF, to be asserted if power voltage drop below brownout
voltage level. Interrupt will occur if BOI (AUXR1.5), EBO (IE.5) and global interrupt enable are set.
IE0
EX0
IE1
EX1
BOF
EBO
KBF
EKB
WDIF
EWDI
Wakeup
(If in Power Down)
ADCI
EADC
TF0
ET0
CMF1
CMF2
ECI
EA
TF1
ET1
RI + TI
ES
SPIF
MODF
SPIOVF
ESPI
PWMF
EPWM
TF2
ET2
CPTF0
CPTF1
CPTF2
ECPTF
FBK0
FBK1
EBRK
TF3
ET3
SI
EI2
Figure 11-1 Interrupt Source
- 84 -
Interrupt
to CPU
Preliminary N79E875 Data Sheet
11.2 Priority Level Structure
There are four priority levels for the interrupts, highest, high, low and lowest. The interrupt sources can
be individually set to either high or low levels. Naturally, a higher priority interrupt cannot be
interrupted by a lower priority interrupt. However there exists a pre-defined hierarchy amongst the
interrupts themselves. This hierarchy comes into play when the interrupt controller has to resolve
simultaneous requests having the same priority level. This hierarchy is defined as shown on Table
11-1 Four-level interrupts priority.
The interrupt flags are sampled every machine cycle. In the same machine cycle, the sampled
interrupts are polled and their priority is resolved. If certain conditions are met then the hardware will
execute an internally generated LCALL instruction which will vector the process to the appropriate
interrupt vector address. The conditions for generating the LCALL are;
1. An interrupt of equal or higher priority is not currently being serviced.
2. The current polling cycle is the last machine cycle of the instruction currently being execute.
3. The current instruction does not involve a write to IE, EIE, EIE2, IP0, IP0H, IP1, IPH1, IP2 or IP2H
registers and is not a RETI.
If any of these conditions are not met, then the LCALL will not be generated. The polling cycle is
repeated every machine cycle, with the interrupts sampled in the same machine cycle. If an interrupt
flag is active in one cycle but not responded to, and is not active when the above conditions are met,
the denied interrupt will not be serviced. This means that active interrupts are not remembered; every
polling cycle is new.
The processor responds to a valid interrupt by executing an LCALL instruction to the appropriate
service routine. This may or may not clear the flag which caused the interrupt. In case of Timer
interrupts, the TF0 or TF1 flags are cleared by hardware whenever the processor vectors to the
appropriate timer service routine. In case of external interrupt, /INT0 and /INT1, the flags are cleared
only if they are edge triggered. In case of Serial interrupts, the flags are not cleared by hardware. In
the case of Timer 2 interrupt, the flags are not cleared by hardware. The Watchdog timer interrupt flag
WDIF has to be cleared by software. The hardware LCALL behaves exactly like the software LCALL
instruction. This instruction saves the Program Counter contents onto the Stack, but does not save the
Program Status Word PSW. The PC is reloaded with the vector address of that interrupt which caused
the LCALL. These address of vector for the different sources are as shown on Table 11-2 Summary of
interrupt sources. The vector table is not evenly spaced; this is to accommodate future expansions to
the device family.
Execution continues from the vectored address till an RETI instruction is executed. On execution of
the RETI instruction the processor pops the Stack and loads the PC with the contents at the top of the
stack. The user must take care that the status of the stack is restored to what it was after the hardware
LCALL, if the execution is to return to the interrupted program. The processor does not notice anything
if the stack contents are modified and will proceed with execution from the address put back into PC.
Note that a RET instruction would perform exactly the same process as a RETI instruction, but it
would not inform the Interrupt Controller that the interrupt service routine is completed, and would
leave the controller still thinking that the service routine is underway.
N79E875 series use a four priority level interrupt structure. This allows great flexibility in controlling the
handling of the interrupt sources.
PRIORITY BITS
IPxH
0
IPx
0
INTERRUPT PRIORITY LEVEL
Level 0 (lowest priority)
- 85 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
0
1
1
1
0
1
Level 1
Level 2
Level 3 (highest priority)
Table 11-1 Four-level interrupts priority
Each interrupt source can be individually enabled or disabled by setting or clearing a bit in registers IE,
EIE or EIE2. The IE register also contains a global disable bit, EA, which disables all interrupts at
once.
Each interrupt source can be individually programmed to one of four priority levels by setting or
clearing bits in the IP0, IP0H, IP1, IP1H, IP2 and IP2H registers. An interrupt service routine in
progress can be interrupted by a higher priority interrupt, but not by another interrupt of the same or
lower priority. The highest priority interrupt service cannot be interrupted by any other interrupt source.
So, if two requests of different priority levels are received simultaneously, the request of higher priority
level is serviced.
If requests of the same priority level are received simultaneously, an internal polling sequence
determines which request is serviced. This is called the arbitration ranking. Note that the arbitration
ranking is only used to resolve simultaneous requests of the same priority level.
Table below summarizes the interrupt sources, flag bits, vector address, enable bits, priority bits,
arbitration ranking, and whether each interrupt may wake up the CPU from Power Down mode.
Source
Flag
Vector
addres
s
Enable bit
Flag
cleared by
External
Interrupt 0
IE0
0003H
EX0
Hardware,
Software
Brownout
Detect
BOF
002BH
EBO
(IE.5)
Watchdog
Timer
WDIF
0053H
EWDI
(EIE14)
Timer 0
Overflow
TF0
000BH
ET0
SPI
SPIF
+
MODF +
SPIOVF
004BH
I2C
SI
0033H
Arbitration
ranking
Powerdown
wakeup
IP0H.0,
IP0.0
1(highest)
Yes
Hardware
IP0H.5,
IP0.5
2
Yes
Software
IP1H.4,
IP1.4
3
Yes
Hardware,
Software
IP0H.1,
IP0.1
4
No
ESPI
(EIE2.3)
Software
IP2H.3,
IP2.3
5
No
EI2C
Software
IP1H.0,
IP1.0
6
No
Software
IP0H.6,
IP0.6
7
Yes
Hardware,
IP0H.2,
8
Yes
(IE.0)
(IE.1)
(EIE1.0)
A/D
Converter
ADCI+
External
IE1
005BH
EADC
(IE.6) +
EADCP
(EIE2.1)
0013H
EX1
ADCPI
- 86 -
Priority
bit
[1]
[2]
Preliminary N79E875 Data Sheet
Interrupt 1
(IE.2)
Software
IP0.2
KBI
KBF
003BH
EKB
(EIE1.1)
Software
IP1H.1,
IP1.1
9
Yes
Comparator
1&2
CMF1+
0063H
ECI
Software
IP1H.2,
IP1.2
10
Yes
Hardware,
Software
IP0H.3,
IP0.3
11
No
Software
IP0H.4,
IP0.4
12
No
Timer
Overflow
CMF2
1
TF1
(EIE1.2)
001BH
ET1
(IE.3)
Serial Port
RI + TI
0023H
ES
(IE.4)
Timer
Overflow/
2
TF2
007BH
ET2
(EIE2.6)
Software
IP2H.6,
IP2.6
13
No
FBK0,
FBK1
0083H
EBRK
(EIE1.5)
Software
IP1H.2,
14
No
CPTF0-2
006BH
ECPTF
Software
15
No
16
No
17 (lowest)
No
Match
PWM brake
Capture
IP1.2
(EIE1.7)
Timer
Overflow/
3
TF3
008BH
ET3
IP1H.7,
IP1.7
Software
(EIE2.0)
IP2H.0,
IP2.0
Match/
Capture
PWM
PWMF
0073H
match/
EPWM
(EIE1.6)
Software
IP1H.5,
IP1.5
underflow
Table 11-2 Summary of interrupt sources
Note:
The Watchdog Timer can wake up Power Down Mode when its clock source is used internal RC.
ADC Converter interrupt source, ADCI, can wake up Power Down Mode when its clock source is used internal RC. However, ADC compare interrupt source, ADCPI, is not able to
wake up from Power Down Mode.
11.3 Interrupt Response Time
The response time for each interrupt source depends on several factors, such as the nature of the
interrupt and the instruction underway. In the case of external interrupts INT0 and INT1 , they are
sampled at C3 of every machine cycle and then their corresponding interrupt flags IEx will be set or
reset. The Timer 0 and 1 overflow flags are set at C3 of the machine cycle in which overflow has
occurred. These flag values are polled only in the next machine cycle. If a request is active and all
three conditions are met, then the hardware generated LCALL is executed. This LCALL itself takes
four machine cycles to be completed. Thus there is a minimum time of five machine cycles between
the interrupt flag being set and the interrupt service routine being executed.
- 87 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
A longer response time should be anticipated if any of the three conditions are not met. If a higher or
equal priority is being serviced, then the interrupt latency time obviously depends on the nature of the
service routine currently being executed. If the polling cycle is not the last machine cycle of the
instruction being executed, then an additional delay is introduced. The maximum response time (if no
other interrupt is in service) occurs if the device is performing a write to IE, EIE1, EIE2, IP0, IP0H, IP1,
IP1H, IP2 or IP2H and then executes a MUL or DIV instruction. From the time an interrupt source is
activated, the longest reaction time is 12 machine cycles. This includes 1 machine cycle to detect the
interrupt, 2 machine cycles to complete the IE, EIE1, EIE2, IP0, IP0H, IP1, IP1H, IP2 or IP2H access,
5 machine cycles to complete the MUL or DIV instruction and 4 machine cycles to complete the
hardware LCALL to the interrupt vector location.
Thus in a single-interrupt system the interrupt response time will always be more than 5 machine
cycles and not more than 12 machine cycles. The maximum latency of 12 machine cycle is 48 clock
cycles. Note that in the standard 8051 the maximum latency is 8 machine cycles which equals 96
machine cycles. This is a 50% reduction in terms of clock periods.
- 88 -
Preliminary N79E875 Data Sheet
12 NVM MEMORY
The N79E875 series have NVM data memory of 128 bytes for customer’s data store used. The NVM
data memory has 8 pages area and each page has 16 bytes. The page addresses are shown on
Figure 12-1.
The NVM memory can be read/write by customer program to access. Read NVM data is by MOVC
A,@A+DPTR instruction, and write data is by SFR of NVMADDRL, NVMDAT and NVMCON. Before
write data to NVM memory, the page must be erased by providing page address on NVMADDRL,
which high and low byte address of On-Chip Code Memory space will decode, then set EER of
NVMCON.7. This will automatically hold fetch program code and PC Counter, and execute page
erase. After finished, this bit will be cleared by hardware. The erase time is ~ 5ms.
For writing data to NVM memory, user must set address and data to NVMADDRL and NVMDAT, then
set EWR of NVMCON.6 to initiate NVM data write. The uC will hold program code and PC Counter,
and then write data to mapping address. Upon write completion, the EWR bit will be cleared by
hardware, the uC will continue execute next instruction. The program time is ~50us.
128 bytes NVM
16 bytes/page
FFFFh
Page 7
Unused
Code Memory
FC7Fh
FC00h
Page 6
Page 5
128 Bytes
NVM
Data Memory
Page 4
Page 3
Page 2
Unused
Code Memory
Page 1
Page 0
3FFFh
FC7Fh
FC70h
FC6Fh
FC60h
FC5Fh
FC50h
FC4Fh
FC40h
FC3Fh
FC30h
FC2Fh
FC20h
FC1Fh
FC10h
FC0Fh
FC00h
Data Flash Memory Area
16K Bytes
On-Chip
Code Memory
0000h
Program Flash Memory Area
Figure 12-1 N79E875 On-chip Flash Memory Space
- 89 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
13 PROGRAMMABLE TIMERS/COUNTERS
The N79E875 series have two 16-bit programmable timer/counters which have additional timer 0 or
timer 1 overflow toggle output enable feature as compare to conventional timer/counters. This timer
overflow toggle output can be configured to automatically toggle T0 or T1 pin output whenever a timer
overflow occurs.
13.1
TIMER/COUNTERS 0 & 1
N79E875 series have two 16-bit Timer/Counters. Each of these Timer/Counters has two 8 bit registers
which form the 16 bit counting register. For Timer/Counter 0 they are TH0, the upper 8 bits register,
and TL0, the lower 8 bit register. Similarly Timer/Counter 1 has two 8 bit registers, TH1 and TL1. The
two can be configured to operate either as timers, counting machine cycles or as counters counting
external inputs.
When configured as a "Timer", the timer counts clock cycles. For timer 0, the timer clock can be
programmed to be thought of as 1/12 of the system clock or 1/4, 1/16, 1/32, 1/128 (selectable through
SFR DIV.T0DIV bits) of the system clock. As for timer 1, the timer clock can be programmed to be
thought of as 1/12 of the system clock or 1/4 of the system clock. In the "Counter" mode, the register
is incremented on the falling edge of the external input pin, T0 in case of Timer 0, and T1 for Timer 1.
The T0 and T1 inputs are sampled in every machine cycle at C4. If the sampled value is high in one
machine cycle and low in the next, then a valid high to low transition on the pin is recognized and the
count register is incremented. Since it takes two machine cycles to recognize a negative transition on
the pin, the maximum rate at which counting will take place is 1/24 of the master clock frequency. In
either the "Timer" or "Counter" mode, the count register will be updated at C3. Therefore, in the
"Timer" mode, the recognized negative transition on pin T0 and T1 can cause the count register value
to be updated only in the machine cycle following the one in which the negative edge was detected.
The "Timer" or "Counter" function is selected by the " C/ T " bit in the TMOD Special Function Register.
Each Timer/Counter has one selection bit for its own; bit 2 of TMOD selects the function for
Timer/Counter 0 and bit 6 of TMOD selects the function for Timer/Counter 1. In addition each
Timer/Counter can be set to operate in any one of four possible modes. The mode selection is done
by bits M0 and M1 in the TMOD SFR.
13.2
Time-Base Selection
N79E875 series provide users with two modes of operation for the timer. The timers can be
programmed to operate like the standard 8051 family, counting at the rate of 1/12 of the clock speed.
This will ensure that timing loops on N79E875 series and the standard 8051 can be matched. This is
the default mode of operation of the N79E875 series timers. The user also has the option to count in
the turbo mode, where the timers will increment at the rate of 1/4 clock speed (timer 1) or rate of
1/4,1/16,1/32,1/128 clock speed (timer 0). This will straight-away increase the counting speed up to
three times. This selection is done by the T0M and T1M bit in CKCON SFR, and T0DIV bits in DIV
SFR. A reset sets these bits to 0, and the timers then operate in the standard 8051 mode. The user
should set these bits accordingly if the timers are to operate in turbo mode.
13.3 MODE 0
In Mode 0, the timer/counters act as an 8-bit counter with a 5-bit, divide by 32 pre-scale. In this mode
we have a 13-bit timer/counter. The 13-bit counter consists of 8 bits of THx and 5 lower bits of TLx.
The upper 3 bits of TLx are ignored.
The negative edge of the clock is increments count in the TLx register. When the fifth bit in TLx moves
from 1 to 0, then the count in the THx register is incremented. When count in THx moves from FFh to
00h, then the overflow flag TFx in TCON SFR is set. The counted input is enabled only if TRx is set
and either GATE = 0 or INTx = 1. When C/ T is set to 0, then it will count clock cycles, and if C/ T is
- 90 -
Preliminary N79E875 Data Sheet
set to 1, then it will count 1 to 0 transitions on T0 (P1.5) for timer 0 and T1 (P2.7) for timer 1. When the
13-bit count reaches 1FFFh the next count will cause it to roll-over to 0000h. The timer overflow flag
TFx of the relevant timer is set and if enabled an interrupts will occur.
T0DIV[1:0]
Fcpu/4
Fcpu/16
Fcpu/32
Fcpu/128
00
01
T0M=CKCON.3
10
1
11
C/T=TMOD.2
0
0
Fcpu/12
TL0
0
1
4
TF0
7
Interrupt
T0=(P1.5)
TR0=TCON.4
0
7
SFR
P1.5
TH0
GATE=TMOD.3
/INT0=(P1.6)
T0OE
1
En
Port
P1.5
(T0)
0
1
T0OE
Figure 13-1 Timer 0 Mode 0
1/4
Fcpu
1/12
T1M=CKCON.4
1
0
C/T=TMOD.6
0
TL1
0
1
4
TF1
7
Interrupt
T1=(P2.7)
0
TR1=TCON.6
GATE=TMOD.7
7
SFR
P2.7
TH1
T1OE
/INT1=(P0.6)
1
En
0
1
Port
P2.7
(T1)
T1OE
Figure 13-2 Timer 1 Mode 0
13.4 MODE 1
Mode 1 is similar to Mode 0 except that the counting register forms a 16-bit counter, rather than a 13bit counter. This means that all the bits of THx and TLx are used. Roll-over occurs when the timer
moves from a count of FFFFh to 0000h. The timer overflow flag TFx of the relevant timer is set and if
enabled an interrupt will occur. The selection of the time-base in the timer mode is similar to that in
Mode 0. The gate function operates similarly to that in Mode 0.
- 91 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
T0DIV[1:0]
Fcpu/4
Fcpu/16
Fcpu/32
Fcpu/128
00
T0M=CKCON.3
01
10
1
11
0
Fcpu/12
C/T=TMOD.2
0
TL0
0
1
4
TF0
7
Interrupt
T0=(P1.5)
0
TR0=TCON.4
7
SFR
P1.5
TH0
GATE=TMOD.3
1
T0OE
/INT0=(P1.6)
En
Port
P1.5
(T0)
0
1
T0OE
Figure 13-3 Timer 0 Mode 1
1/4
Fcpu
1/12
T1M=CKCON.4
1
0
C/T=TMOD.6
0
TL1
0
1
4
TF1
7
Interrupt
T1=(P2.7)
0
TR1=TCON.6
7
SFR
P2.7
TH1
GATE=TMOD.7
T1OE
/INT1=(P0.6)
1
En
0
1
Port
P2.7
(T1)
T1OE
Figure 13-4 Timer 1 Mode 1
13.5 MODE 2
In Mode 2, the timer/counter is in the Auto Reload Mode. In this mode, TLx acts as an 8-bit count
register, while THx holds the reload value. When the TLx register overflows from FFh to 00h, the TFx
bit in TCON is set and TLx is reloaded with the contents of THx, and the counting process continues
from here. The reload operation leaves the contents of the THx register unchanged. Counting is
enabled by the TRx bit and proper setting of GATE and INTx pins. As in the other two modes 0 and 1,
mode 2 allows counting of either clock cycles or pulses on pin Tn.
- 92 -
Preliminary N79E875 Data Sheet
T0DIV[1:0]
Fcpu/4
Fcpu/16
Fcpu/32
Fcpu/128
00
T0M=CKCON.3
01
10
C/T=TMOD.2
1
11
Fcpu/12
TL0
0
0
1
0
7
0
7
TF0
Interrupt
T0=(P1.5)
TR0=TCON.4
GATE=TMOD.3
TH0
/INT0=(P1.6)
T0OE
SFR
P1.5
1
En
Port
P1.5
(T0)
0
1
T0OE
Figure 13-5 Timer 0 Mode 2 (8-bit Auto-reload Mode)
1/4
Fcpu
1/12
T1M=CKCON.4
1
0
C/T=TMOD.6
0
1
TL1
0
7
0
7
TF1
Interrupt
T1=(P2.7)
TR1=TCON.6
GATE=TMOD.7
TH1
T1OE
/INT1=(P0.6)
1
En
SFR
P2.7
0
1
Port
P2.7
(T1)
T1OE
Figure 13-6 Timer 1 Mode 2 (8-bit Auto-reload Mode)
13.6 MODE 3
Mode 3 has different operating methods for the two timer/counters. For timer/counter 1, mode 3 simply
freezes the counter. Timer/Counter 0, however, configures TL0 and TH0 as two separate 8 bit count
registers in this mode. TL0 uses the Timer/Counter 0 control bits C/ T , GATE, TR0, INT0 and TF0.
When timer 0 configure to mode 3, the TL0 can be used to count clock cycles (clock/12 or
clock/4,16,32,128) or 1-to-0 transitions on pin T0 as determined by C/T (TMOD.2). TH0 is forced as a
clock cycle counter (clock/12 or clock/4,16,32,128) and takes over the use of TR1 and TF1 from
Timer/Counter 1. Mode 3 is used in cases where an extra 8 bit timer is needed. With Timer 0 in Mode
3, Timer 1 can still be used in Modes 0-2, but its flexibility is somewhat limited. While its basic
functionality is maintained, it no longer has control over its overflow flag TF1 and the enable bit TR1.
- 93 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Timer 1 can still be used as a timer/counter and retains the use of GATE and INT1 pin. In this
condition it can be turned on and off by switching it out of and into its own Mode 3. It can also be used
as a baud rate generator for the serial port.
T0DIV[1:0]
Fcpu/4
Fcpu/16
Fcpu/32
Fcpu/128
Fcpu/12
00
01
10
11
T0M=CKCON.3
1
0
C/T=TMOD.2
0
TL0
0
1
7
TF0
Interrupt
SFR
P1.5
T0 (P1.5)
Port
P1.5 (T0)
Toggle
TR0=TCON.4
(refer to mode 0)
GATE=TMOD.3
T0OE
/INT0 (P1.6)
TH0
0
TR1=TCON.6
7
TF1
Interrupt
SFR
P2.7
Toggle
(refer to mode 0)
T1OE
Figure 13-7 Timer 0 Mode 3 (Two 8-bit Counters)
- 94 -
Port
P2.7 (T1)
Preliminary N79E875 Data Sheet
14 WATCHDOG TIMER
The Watchdog Timer is a free-running Timer which can be programmed by the user to serve as a
system monitor, a time-base generator or an event timer. It is basically a set of dividers that divide the
system clock. The divider output is selectable and determines the time-out interval. When the time-out
occurs a flag is set and WDT interrupt is requested if WDT interrupt is enabled(EIE.EWDI=1) and
global interrupt is enabled(EA=1),and a system reset can also be caused if it is enabled. The interrupt
and reset functions are independent of each other and may be used separately or together depending
on the user’s software.
(Security Bit)
WDTCK
uC clock
Time-Out
Selector
20-bits Counter
500KHz RC
Oscillator
0
/Enable
00
11
WDRUN
(WDCON.7)
01
12
15
16
17
18
19
WDCLR
(Reset Watchdog)
(WDCON.0)
10
MUX
(WDCON.3)
WDIF
EWDI
(EIE.4)
(WDCON.2)
WTRF
11
WD1,WD0
(WDCON.5/4)
Interrupt
512 clock
delay
Reset
EWRST
(WDCON.1)
Figure 14-1 Watchdog Timer
The Watchdog Timer should first be restarted by using WDCLR. This ensures that the timer starts
from a known state. The WDCLR bit is used to restart the Watchdog Timer. This bit is self clearing, i.e.
after writing a 1 to this bit the hardware will automatically clear it. The Watchdog Timer will now count
clock cycles. The time-out interval is selected by the two bits WD1 and WD0 (WDCON.5 and
WDCON.4). When the selected time-out occurs, the Watchdog interrupt flag WDIF (WDCON.3) is set.
After the time-out has occurred, the Watchdog Timer waits for an additional 512 clock cycles. If the
Watchdog Reset EWRST (WDCON.1) is enabled, then 512 clocks after the time-out, if there is no
WDCLR, a system reset due to Watchdog Timer will occur. This will last for two machine cycles, and
the Watchdog Timer reset flag WTRF (WDCON.2) will be set. This indicates to the software that the
Watchdog was the cause of the reset.
When used as a simple timer, the reset and interrupt functions are disabled. The timer will set the
WDIF flag each time the timer completes the selected time interval. The WDIF flag is polled to detect a
time-out and the WDCLR allows software to restart the timer. The Watchdog Timer can also be used
as a very long timer. The interrupt feature is enabled in this case. Every time the time-out occurs an
interrupt will occur if the global interrupt enable EA is set.
The main use of the Watchdog Timer is as a system monitor. This is important in real-time control
applications. In case of some power glitches or electro-magnetic interference, the processor may
begin to execute errant code. If this is left unchecked the entire system may crash. Using the
watchdog timer interrupt during software development will allow the user to select ideal watchdog
reset locations. The code is first written without the watchdog interrupt or reset. Then the Watchdog
interrupt is enabled to identify code locations where interrupt occurs. The user can now insert
instructions to reset the Watchdog Timer, which will allow the code to run without any Watchdog Timer
interrupts. Now the Watchdog Timer reset is enabled and the Watchdog interrupt may be disabled. If
any errant code is executed now, then the reset Watchdog Timer instructions will not be executed at
the required instants and Watchdog reset will occur.
The Watchdog Timer time-out selection will result in different time-out values depending on the clock
- 95 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
speed. The reset will occur, when enabled, 512 clocks after the time-out has occurred.
WATCHDOG
INTERVAL
NUMBER OF
CLOCKS
TIME
@ 10 MHZ
12
4096
0.4096 mS
16
65536
6.5536 mS
18
262144
26.2144 mS
20
1048576
104.8576 mS
WD1
WD0
0
0
2
0
1
2
1
0
2
1
1
2
Table 14-1 Time-out values for the Watchdog timer.
The Watchdog Timer will be disabled by a power-on/fail reset. The Watchdog Timer reset does not
disable the Watchdog Timer, but will restart it. In general, software should restart the timer to put it into
a known state. The control bits that support the Watchdog Timer are discussed on the following
section.
14.1 WATCHDOG CONTROL
Bit:
7
6
5
4
3
2
1
0
WDRUN
-
WD1
WD0
WDIF
WTRF
EWRST
WDCLR
WDIF: WDCON.3 - Watchdog Timer Interrupt flag. This bit is set whenever the time-out occurs in the
Watchdog Timer. If the Watchdog interrupt is enabled (EIE14), then an interrupt will occur (if the global
interrupt enable is set and other interrupt requirements are met). Software or any reset can clear this
bit.
WTRF: WDCON.2 - Watchdog Timer Reset flag. This bit is set whenever a watchdog reset occurs.
This bit is useful for determined the cause of a reset. Software must read it, and clear it manually. A
Power-fail reset will clear this bit. If EWRST = 0, then this bit will not be affected by the Watchdog
Timer.
EWRST: WDCON.1 - Enable Watchdog Timer Reset. This bit when set to 1 will enable the Watchdog
Timer reset function. Setting this bit to 0 will disable the Watchdog Timer reset function, but will leave
the timer running.
WDCLR: WDCON.0 - Reset Watchdog Timer. This bit is used to clear the Watchdog Timer and to
restart it. This bit is self-clearing, so after the software writes 1 to it the hardware will automatically
clear it. If the Watchdog Timer reset is enabled, then the WDCLR has to be set by the user within 512
clocks of the time-out. If this is not done then a Watchdog Timer reset will occur.
The WDCON SFR is set to a 0x000000B on a power-on-reset. WTRF (WDCON.2) is set to a 1 on a
Watchdog timer reset, but to a 0 on power on/down resets. WTRF (WDCON.2) is not altered by an
external reset. EWRST (WDCON.1) is set to 0 on all resets.
Reset Type
By external reset
By Watchdog reset
By Power on reset
Value after the reset
0x00 0x00b
0x00 0100b
0x00 000b
14.2 CLOCK CONTROL of Watchdog
WD1, WD0: WDCON.5, WDCON.4 - Watchdog Timer Mode select bits. These two bits select the
time-out interval for the watchdog timer. The reset time is 512 clocks longer than the interrupt time-out
value.
- 96 -
Preliminary N79E875 Data Sheet
12
The default Watchdog time-out is 2 clocks, which is the shortest time-out period. The WDRUN, WD0,
WD1, EWRST, WDIF and WDCLR bits are protected by the Timed Access procedure. This prevents
software from accidentally enabling or disabling the watchdog timer. More importantly, it makes it
highly improbable that errant code can enable or disable the Watchdog Timer.
The security bit WDTCK is located at bit 7 of CONFIG0 register. This bit is for user to configure the
clock source of watchdog timer either from the internal RC or from the uC clock.
- 97 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
15 TIMER2/INPUT CAPTURE MODULES
Timer/Counter 2 is a 16 bit up counter which is configured by the T2MOD register and controlled by
the T2CON register. Timer/Counter 2 is also equipped with 3 input captures and reloads capability. As
with the Timer 0 and Timer 1 counters, there exists considerable flexibility in selecting and controlling
the clock, and in defining the operating mode. The clock source for Timer/Counter 2 crystal oscillator
is divided by 1,4,16 or 32 (selectable with CCDIV.1~0 in DIV SFR). The clock is then enabled when
TR2 is a 1, and disabled when TR2 is a 0.
15.1 Capture Mode
The capture modules are function to detect and measure pulse width and period of a square wave. It
supports 3 capture inputs and digital noise rejection filter. The modules are configured by CAPCON0
and CAPCON1 SFR registers. Input Capture 0, 1 & 2 have their own edge detector but share with one
timer i.e. Timer 2. If the Schmitt trigger enable bits at SFR PORTS are set, the Input Capture pins are
in the structure with Schmitt trigger. For this operation it basically consists of;

3 capture module function blocks

Timer 2 block
Each capture module block consists of 2 bytes capture registers, noise filter and programmable edge
triggers. Noise Filter is used to filter the unwanted glitch or pulse on the trigger input pin. The noise
filter can be enabled through CAPCON1.ENFx bit. If enabled, the capture logic required to sample 4
consecutive same capture input value in order to recognize an edge as a capture event. A possible
implementation of digital noise filter is as follow;
J
Tx
D
SET
CLR
Q
Q
D
SET
CLR
Q
Q
D
SET
CLR
Q
Q
D
SET
CLR
Q
K
SET
CLR
Q
Tx filtered
Q
Q
Clk
Figure 15-1 Noise filter
The interval between pulses requirement for input capture is 1 machine cycle width, which is the same
as the pulse width required to guarantee a trigger for all trigger edge mode. For less than 3 system
clocks, anything less than 3 clocks will not have any trigger and pulse width of 3 or more but less than
4 clocks will trigger but will not guarantee 100% because input sampling is at stage C3 of the machine
cycle.
The trigger option is programmable through CAPCON0.CCTx.1~0 bits. It supports positive edge,
negative edge and both edge triggers. Each capture module consists of an enable, ICEN0-2.
[Note: x=0/1/2, for capture 0/1/2 block].
Timer/Counter 2 serves as a 16 bit up counter. It supports reload and compared modes. More details
are described in next sections.
- 98 -
Preliminary N79E875 Data Sheet
Capture blocks can be triggered by the following pins/bit;

IC0 (P2.4) or ADC compare result bit, ADCPO.

IC1 (P2.5)

IC2 (P2.6)
If ICENx is enabled, each time the external pin trigger, the content of the free running 16 bits counter,
TL2 & TH2 (from Timer 2 block) will be captured/transferred into the capture registers, CCLx and
CCHx, depending which external pin trigger. This action also causes the CPTFx flag bit in CAPCON1
to be set, which will also generate an interrupt (if enabled by ECPTF bit in SFR EIE1.7). The CPTF0-2
flags are logical “OR” to the interrupt module. Flag is set by hardware and clear by software. Software
will have to resolve on the priority of the interrupt flags.
Setting the T2CR bit (T2MOD.3), will allow hardware to reset timer 2 automatically after the value of
TL2 and TH2 have been captured. Priority is given to T2CR to reset counter after capture the timer
value into the capture register.
- 99 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Input Capture 0 Block
CCL0
CCH0
Input Capture 1
Block
Input Capture 2
Block
IC1
IC2
CCT0[1:0]
CPTF0
[00]
ENF0
P2.4
(IC0)
PORTS.P2S
Noise
Filter
0
ADCPO
PORTS.
P2S
[01]
IC0
or
P2.6
(IC2)
P2.5
(IC1)
ICEN0
1
[10]
PORTS.
P2S
(SFR)
IC0SS
CPTF1
CPTF0
CMP/RL2
Fcpu
CPTF0
CPTF1
CPTF2
DIV by
CMPCR
TMF2
CMP/RL2
reset
pulse
T2CR
CPTF2
16-bit up counter
TL2
1,4,16,32
TH2
0
TF2
TR2
CCDIV[1:0]
TOVF2
00
CPTF0
01
CPTF1
10
CPTF2
11
1
TR2
=
ENLD
TMF2
CMP/RL2
CMP/RL2
RCAP2L
RCAP2H
CCLD[1:0]
Timer 2 Block
Note:
TOVF2 = Timer 2 overflow
TMF2 = Internal Timer 2 Flag signal.
Figure 15-2 Timer2/capture modules
- 100 -
Preliminary N79E875 Data Sheet
Ex1: Falling edge detection, reload mode
1 m/c
IC0
XX
00
01
10
0
02
Unknown
Capture 0 Register
RCAP2
00
01
02
Rel
Rel
TM2 Counter
oad
oad
CPTF0
0000H
100H
Read Capture
counter to get
period width
Keeps 0000H
Ex2: Rising edge detection, reload mode
1 m/c
IC0
XX
01
10
0
02
Unknown
Capture 0 Register
RCAP2
00
01
02
Rel
Rel
TM2 Counter
00
oad
oad
CPTF0
0000H
100H
Read Capture
counter to get
period width
Keeps 0000H
Ex3: Rising and Falling edge detection, reload
mode
1 m/c
IC0
02
00
01
02
FC
02H
Capture 0 Register
RCAP2
01
0000H
oad
Rel
00
00
01
02
Rel
XX
TM2 Counter
Rel
oad
oad
CPTF0
FCH
Keeps 0000H
Read Capture
counter to get
pulse width
Legend: m/c = machine cycle
Figure 15-3 Timing diagram for Input Capture, IC0
- 101 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Start
Initialize SFR/ACC
RCAP2L = RCAP2H = 0;
ACC = 0;
Configure SFR
DIV
= 0000 0000B; //<Default> Timer2 clk = Fcpu/1
CAPCON0 = 0000 0101B; // Falling edge and reload by capture 0 block
CAPCON1 = 0000 1000B; // Enable digital filter for input capture 0
T2MOD = 1001 0000B; // ICEN0 = ENLD = 1
IE
= 1000 0000B; // Enable EA
EIE1
= 1000 0000B; // Enable capture interrupt
Start timer 2
T2CON = 0000 0100B; // TR = 1
No
ACC = 2?
User read the capture register, and calculate the
period base on frequency selected.
END
Figure 15-4 Program flow for measurement with IC0 between pulses with falling edge detection
(ACC is incremented in interrupt service routine).
- 102 -
Preliminary N79E875 Data Sheet
Start
Initialize SFR/ACC
RCAP2L = RCAP2H = 0;
ACC = 0;
Configure SFR
DIV
= 0000 0000B; //<Default> Timer2 clk = Fcpu/1
CAPCON0 = 0000 0001B; // Rising edge reload by capture 0 block
CAPCON1 = 0000 1000B; // Enable digital filter for input capture 0
T2MOD = 1001 0000B; // ICEN0 = ENLD = 1
IE
= 1000 0000B; // Enable EA
EIE1
= 1000 0000B; // Enable capture interrupt
Start timer 2
T2CON = 0000 0100B; // TR = 1
No
ACC = 2?
User read the capture register and calculate the
period base on frequency selected
END
Figure 15-5 Program flow for measurement with IC0 between pulses with rising edge detection
(ACC is incremented in interrupt service routine).
- 103 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Start
Initialize SFR/ACC
RCAP2L = RCAP2H = 0;
ACC = 0;
Configure SFR
DIV
= 0000 0000B; //<Default> Timer2 clk = Fcpu/1
CAPCON0 = 0000 1001B; // Rising/ falling edge and reload by capture 0 block
CAPCON1 = 0000 1000B; // Enable digital filter for input capture 0
T2MOD = 1001 0000B; // ICEN0 = ENLD = 1
IE
= 1000 0000B; // Enable EA
EIE1
= 1000 0000B; // Enable capture interrupt
Start timer 2
T2CON = 0000 0100B; // TR = 1
No
ACC = 2?
User read the capture register and calculate the
period base on frequency selected
END
Figure 15-6 Program flow for measurement with IC0 pulse width with rising and falling edge detection
(ACC is incremented in interrupt service routine).
- 104 -
Preliminary N79E875 Data Sheet
16-bit up
counter value
Set
TF2
Set
TF2
Set
TF2
16
16-bit
RCAP2
-b
it
up
-c
o
un
t
in
g
co
un
te
r
16-bit
overflow
0000h
Reload Function, CMP/RL2=0, ENLD=1
16-bit up
counter value
CMPCR=0
CMPCR=1
Set
TMF2
Set
TMF2
co
un
te
r
16-bit
overflow
16
-b
it
up
-c
o
un
t
in
g
16-bit
RCAP2
Set
TMF2
0000h
Compare Function, CMP/RL2=1
Figure 15-7 Timer 2 - Compare/Reload Function
- 105 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
FFFFh
ICEN0 = 1
CPTR0 flag set
CCL/CCH 0 regs
TL2/TH2 value
Input capture 0 trigger
0000h
Timer 2
External Input Capture 0
Figure 15-8 Capture module - Input Capture 0 triggers
15.2 Compare Mode
Timer 2 can be configured for compare mode. The compare mode is enabled by setting the CMP/RL2
bit to 1 in the T2CON register. RCAP2 will serves as a compare register. As Timer 2 counting up,
upon matching with RCAP2 value, TF2 will be set (which will generate an interrupt request if enable
Timer 2 interrupt ET2 is enabled) and the timer reload from 0 and starts counting again.
Setting the CMPCR bit (T2MOD.2), will allow hardware to reset timer 2 automatically after a match
has occurred.
15.3 Reload Mode
Timer 2 can be also be configured for reload mode. The reload mode is enabled by clearing the
CMP/RL2 bit to 0 in the T2CON register. In this mode, RCAP serves as a reload register. When timer
2 overflows, a reload is generated that causes the contents of the RCAP2L and RCAP2H registers to
be reloaded into the TL2 and TH2 registers, if ENLD is set. TF2 flag is set, and interrupt request is
generated if enable Timer 2 interrupt ET2 is enabled. However, if ENLD = 0, timer 2 will be reload with
0, and count up again.
Alternatively, other reload source is also possible by the input capture pins by configuring the
CCLD.1~0 bits. If the ICENx bit is set, then a trigger of external IC0, IC1 or IC2 pin (respectively) will
also cause a reload. This action also sets the CPTF0, CPTF1 or CPTF2 flag bit in SFR CAPCON1,
respectively.
- 106 -
Preliminary N79E875 Data Sheet
16 TIMER3
This device consists of an additional timer; Timer 3. Timer 3 is a 12-bit up counter which supports
operation in any one of four possible modes: Timer/counter mode, capture mode, auto-reload mode
and compare mode.
SFR T3CON.1~0
T3 mode
T3RST = 0
00b
Timer/Counter mode
Timer 3 counts from 000h to FFFh.
01b
Capture mode
RCAP3L,
RCAP3HT3H.7-4
capture content of timer
3. Timer 3 counts from
000h to FFFh.
10b
Auto-reload mode
RCAP3L, RCAP3HT3H.7-4 serve as reload
registers. Timer 3 counts from reload registers
content to FFFh.
11b
Compare mode
RCAP3L,
RCAP3HT3H.7-4 serve
as compare registers.
Timer 3 counts from
000h to FFFh.
- 107 -
T3RST = 1
RCAP3L,
RCAP3HT3H.7-4 capture
content of timer 3. Timer
3 reset after capture
occurs.
RCAP3L,
RCAP3HT3H.7-4 serve
as compare registers.
Timer 3 counts from 000h
to compare value.
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
The following figure shows the timer 3 block diagram.
(SFR)
Set T3 to
000h
T3RST
(SFR)
A
T3DIV[1:0]
Fcpu/4
Fcpu/16
Fcpu/32
Fcpu/128
(SFR)
T3OE
(SFR)
(B) Compare matched event
T3OE (SFR)
Capture Mode
12-bit
T3CNTE (SFR)
Up Counter
00
01
0
10
T3H
1
11
(SFR)
T3L
Pin T3EX
Toggle
T3EX
(SFR)
Counter
Overflow
TF3
(SFR)
TR3
Pin T3EX
0
ADCPO
1
or
Auto-reload Mode
Capture Mode
(SFR)
T3CSS
+
(SFR)
RCAP3H
(SFR)
RCAP3L
(SFR)
ET3
-
(B) Compare matched event
Captured event
Note:
T3H (4 bits)
= SFR RCAP3HT3H.3-0 (lower nibble)
RCAP3H (4 bits) = SFR RCAP3HT3H.7-4 (upper nibble)
Timer3
Interrupt
Compare Mode
A
EXF3
(SFR)
Figure 16-1: Timer 3 block diagram
Note: Timer 3 counter is writable only when TR3 = 0.
The timer clock can be programmed to be of 1/4, 1/16, 1/32 and 1/128 of the Fcpu clock.
16.1
Timer/Counter Mode
Timer 3 has one 8 bits register and 4 bits register forming the 12 bits counting registers. There bits are
located at SFR T3L (LSB bits) and RCAP3HT3H.3-0 (MSB bits). The timer can be configured to
operate either as timer or as counter counting external input.
The "Timer" or "Counter" function is selected by the T3CNTE bit in the T3CON Special Function
Register.
When configured as a "Timer", the timer counts clock cycles. In the "Counter" mode, the register is
incremented on the falling edge of the external input pin, T3. The T3 input is sampled in every
machine cycle at C4. If the sampled value is high in one machine cycle and low in the next, then a
valid high to low transition on the pin is recognized and the count register is incremented.
When enable T3OE, T3 pin is toggled whenever timer 3 overflow (or compare matched occurs).
16.2 Capture Mode
In this mode, each time external pin T3 triggers (either rising or falling edge), the content of timer 3 will
be captured/transferred into capture registers, RCAP3L.7-0 and RCAP3HT3H.7-4. This event will
caused EXF3 flag bit in SFR T3CON.6 to be set, which will also generate an interrupt if enabled by
ET3 bit (EIE2.0). The flag is set by hardware and clear by software. Setting T3RST bit (T3CON.3), will
allow hardware to reset timer 3 automatically after the values of timer 3 has been captured. Otherwise,
the timer 3 continues counting.
ADC compare result, ADCPO, is another alternative source for capture mode. It is selected by T3CSS
bit.
- 108 -
Preliminary N79E875 Data Sheet
FFFh
T3RST=0
{RCAP3HT3H.7-4,
RCAP3L.7-0}
T3 trigger
TL3/TH3 value
T3RST=1
000h
Timer 3
Figure 16-2: Timer 3 – capture function
16.3 Compare Mode
In this mode, RCAP3L and RCAP3HT3H.7-4 serve as compare registers. As timer 3 counting up,
upon matching the compare registers, EXF3 flag will also be set. Similarly, an interrupt will be
generated if enabled by ET3 bit (EIE2.0). If T3RST = 0, the timer 3 will continue count up, until
overflow follow by count up again from zero. Setting T3RST bit, will allow hardware to reset timer 3
automatically after there is compare matched.
When enable T3OE, T3 pin is toggled whenever compare matched occurs (or timer 3 overflows).
FFFh
T3RST=0
{RCAP3HT3H.7-4,
RCAP3L.7-0}
Compare Value
T3RST=1
EXF3 set when compare
matched.
000h
Timer 3
Figure 16-3: Timer 3 – compare function
- 109 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
16.4
Auto-reload Mode
In this mode, RCAP3L and RCAP3HT3H.7-4 serve as reload registers. When timer 3 overflows, a
reload is generated that causes the content of RCAP3L and RCAP3HT3H.7-4 reloaded to T3L and
RCAP3HT3H.3-0. TF3 flag is set, and interrupt request is generated if ET3 bit is enabled.
- 110 -
Preliminary N79E875 Data Sheet
17 SERIAL PORT (UART)
Serial port in the N79E875 series is a full duplex port. It provides the user with additional features such
as the Frame Error Detection and the Automatic Address Recognition. The serial ports are capable of
synchronous as well as asynchronous communication. In Synchronous mode, N79E875 series
generate the clock and operates in a half duplex mode. In the asynchronous mode, full duplex
operation is available. This means that it can simultaneously transmit and receive data. The transmit
register and the receive buffer are both addressed as SBUF Special Function Register. However any
write to SBUF will be to the transmit register, while a read from SBUF will be from the receiver buffer
register. The serial port can operate in four different modes as described below.
17.1 MODE 0
This mode provides synchronous communication with external devices. In this mode serial data is
transmitted and received on the RXD line. TXD is used to transmit the shift clock. The TxD clock is
provided whether the device is transmitting or receiving. This mode is therefore a half duplex mode of
serial communication. In this mode, 8 bits are transmitted or received per frame. The LSB is
Transmitted/Received first. The baud rate is fixed at 1/12 or 1/4 of the oscillator frequency. This Baud
Rate is determined by the SM2 bit (SCON.5). When this bit is set to 0, then the serial port runs at 1/12
of the clock. When set to 1, the serial port runs at 1/4 of the clock. This additional facility of
programmable baud rate in mode 0 is the only difference between the standard 8051 and N79E875
series.
The functional block diagram is shown below. Data enters and leaves the Serial port on the RxD line.
The TxD line is used to output the shift clock. The shift clock is used to shift data into and out of the
device. Any instruction that causes a write to SBUF will start the transmission. The shift clock will be
activated and data will be shifted out on the RxD pin till all 8 bits are transmitted. If SM2 = 1, then the
data on RxD will appear 1 clock period before the falling edge of shift clock on TxD. The clock on TxD
then remains low for 2 clock periods, and then goes high again. If SM2 = 0, the data on RxD will
appear 3 clock periods before the falling edge of shift clock on TxD. The clock on TxD then remains
low for 6 clock periods, and then goes high again. This ensures that at the receiving end the data on
RxD line can either be clocked on the rising edge of the shift clock on TxD or latched when the TxD
clock is low.
- 111 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Transmit Shift Register
Write to
SBUF
Fcpu
Internal
Data Bus
PARIN
LOAD
SOUT
CLOCK
1/12
SM2 0
1/4
1
TX START
TX SHIFT
TX CLOCK
TI
RXD
P1.3 Alternate
Output Function
Serial Interrupt
RI
RX CLOCK
TXD
P1.2 Alternate
Output Function
SHIFT CLOCK
RI
REN
RX START
LOAD SBUF
RX SHIFT
Serial Controllor
RXD
P1.3 Alternate
Input Function
Read SBUF
CLOCK
SIN
PAROUT
SBUF
Internal
Data Bus
Figure 17-1: Serial Port Mode 0
The TI flag is set high in C1 following the end of transmission of the last bit. The serial port will receive
data when REN is 1 and RI is zero. The shift clock (TxD) will be activated and the serial port will latch
data on the rising edge of shift clock. The external device should therefore present data on the falling
edge on the shift clock. This process continues till all the 8 bits have been received. The RI flag is set
in C1 following the last rising edge of the shift clock on TxD. This will stop reception, till the RI is
cleared by software.
17.2 MODE 1
In Mode 1, the full duplex asynchronous mode is used. Serial communication frames are made up of
10 bits transmitted on TXD and received on RXD. The 10 bits consist of a start bit (0), 8 data bits (LSB
first), and a stop bit (1). On received, the stop bit goes into RB8 in the SFR SCON. The baud rate in
this mode is variable. The serial baud can be programmed to be 1/16 or 1/32 of the Timer 1 overflow.
Since the Timer 1 can be set to different reload values, a wide variation in baud rates is possible.
Transmission begins with a write to SBUF. The serial data is brought out on to TxD pin at C1 following
the first roll-over of divide by 16 counter. The next bit is placed on TxD pin at C1 following the next
rollover of the divide by 16 counter. Thus the transmission is synchronized to the divide by 16 counters
and not directly to the write to SBUF signal. After all 8 bits of data are transmitted, the stop bit is
transmitted. The TI flag is set in the C1 state after the stop bit has been put out on TxD pin. This will
be at the 10th rollover of the divide by 16 counters after a write to SBUF.
Reception is enabled only if REN is high. The serial port actually starts the receiving of serial data,
with the detection of a falling edge on the RxD pin. The 1-to-0 detector continuously monitors the RxD
line, sampling it at the rate of 16 times the selected baud rate. When a falling edge is detected, the
divide by 16 counters is immediately reset. This helps to align the bit boundaries with the rollovers of
the divide by 16 counters.
The 16 states of the counter effectively divide the bit time into 16 slices. The bit detection is done on a
- 112 -
Preliminary N79E875 Data Sheet
best of three bases. The bit detector samples the RxD pin, at the 8th, 9th and 10th counter states. By
using a majority 2 of 3 voting system, the bit value is selected. This is done to improve the noise
rejection feature of the serial port. If the first bit detected after the falling edge of RxD pin is not 0, then
this indicates an invalid start bit, and the reception is immediately aborted. The serial port again looks
for a falling edge in the RxD line. If a valid start bit is detected, then the rest of the bits are also
detected and shifted into the SBUF.
After shifting in 8 data bits, there is one more shift to do, after which the SBUF and RB8 are loaded
and RI is set. However certain conditions must be met before the loading and setting of RI can be
done.
1. RI must be 0 and
2. Either SM2 = 0, or the received stop bit = 1.
If these conditions are met, then the stop bit goes to RB8, the 8 data bits go into SBUF and RI is set.
Otherwise the received frame may be lost. After the middle of the stop bit, the receiver goes back to
looking for a 1-to-0 transition on the RxD pin.
Transmit Shift Register
Timer 1
Overflow
STOP
0
START
LOAD
Internal
Data Bus
Write to
SBUF
1/2
1
PARIN
SOUT
TXD
CLOCK
SMOD 0
TX START
1
1/16
1/16
TX SHIFT
TX CLOCK
Serial
Controllor
TI
Serial Interrupt
RX CLOCK
RI
SAMPLE
1-To-0
DETECTOR
LOAD SBUF
RX START
RX SHIFT
Read SBUF
CLOCK
RXD
BIT
DETECTOR
SIN
PAROUT
D8
SBUF
Internal
Data Bus
RB8
Receive Shift Register
Figure 17-2: Serial Port Mode 1
- 113 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
17.3 MODE 2
This mode uses a total of 11 bits in asynchronous full-duplex communication. The functional
description is shown in the figure below. The frame consists of one start bit (0), 8 data bits (LSB first),
a programmable 9th bit (TB8) and a stop bit (0). The 9th bit received is put into RB8. The baud rate is
programmable to 1/32 or 1/64 of the oscillator frequency, which is determined by the SMOD bit in
PCON SFR. Transmission begins with a write to SBUF. The serial data is brought out on to TxD pin at
C1 following the first roll-over of the divide by 16 counter. The next bit is placed on TxD pin at C1
following the next rollover of the divide by 16 counter. Thus the transmission is synchronized to the
divide by 16 counters, and not directly to the write to SBUF signal. After all 9 bits of data are
transmitted, the stop bit is transmitted. The TI flag is set in the C1 state after the stop bit has been put
out on TxD pin. This will be at the 11th rollover of the divide by 16 counters after a write to SBUF.
Reception is enabled only if REN is high. The serial port actually starts the receiving of serial data,
with the detection of a falling edge on the RxD pin. The 1-to-0 detector continuously monitors the RxD
line, sampling it at the rate of 16 times the selected baud rate. When a falling edge is detected, the
divide by 16 counters is immediately reset. This helps to align the bit boundaries with the rollovers of
the divide by 16 counters. The 16 states of the counter effectively divide the bit time into 16 slices. The
bit detection is done on a best of three bases. The bit detector samples the RxD pin, at the 8th, 9th
and 10th counter states. By using a majority 2 of 3 voting system, the bit value is selected. This is
done to improve the noise rejection feature of the serial port.
Transmit Shift Register
Clock/2
Write to
SBUF
1/2
STOP
D8
1
TB8
Internal
Data Bus
0
PARIN
SOUT
START
LOAD
TXD
CLOCK
SMOD 0
TX START
1
1/16
1/16
TX SHIFT
TX CLOCK
Serial
Controllor
TI
Serial Interrupt
RX CLOCK
RI
SAMPLE
1-To-0
DETECTOR
LOAD SBUF
RX START
RX SHIFT
Read SBUF
CLOCK
RXD
BIT
DETECTOR
SIN
PAROUT
D8
SBUF
Internal
Data Bus
RB8
Receive Shift Register
Figure 17-3: Serial Port Mode 2
If the first bit detected after the falling edge of RxD pin, is not 0, then this indicates an invalid start bit,
and the reception is immediately aborted. The serial port again looks for a falling edge in the RxD line.
If a valid start bit is detected, then the rest of the bits are also detected and shifted into the SBUF.
- 114 -
Preliminary N79E875 Data Sheet
After shifting in 9 data bits, there is one more shift to do, after which the SBUF and RB8 are loaded
and RI is set. However certain conditions must be met before the loading and setting of RI can be
done.
1. RI must be 0 and
2. Either SM2 = 0, or the received stop bit = 1.
If these conditions are met, then the stop bit goes to RB8, the 8 data bits go into SBUF and RI is set.
Otherwise the received frame may be lost. After the middle of the stop bit, the receiver goes back to
looking for a 1-to-0 transition on the RxD pin.
17.4 MODE 3
This mode is similar to Mode 2 in all respects, except that the baud rate is programmable. The user
must first initialize the Serial related SFR SCON before any communication can take place. This
involves selection of the Mode and baud rate. The Timer 1 should also be initialized if modes 1 and 3
are used. In all four modes, transmission is started by any instruction that uses SBUF as a destination
register. Reception is initiated in Mode 0 by the condition RI = 0 and REN = 1. This will generate a
clock on the TxD pin and shift in 8 bits on the RxD pin. Reception is initiated in the other modes by the
incoming start bit if REN = 1. The external device will start the communication by transmitting the start
bit.
Transmit Shift Register
1
TB8
Internal
Data Bus
0
Timer 1
Overflow
Write to
SBUF
1/2
STOP
D8
PARIN
SOUT
START
LOAD
TXD
CLOCK
SMOD 0
TX START
1
1/16
1/16
TX SHIFT
TX CLOCK
Serial
Controllor
TI
Serial Interrupt
RX CLOCK
RI
SAMPLE
1-To-0
DETECTOR
LOAD SBUF
RX START
RX SHIFT
Read SBUF
CLOCK
RXD
BIT
DETECTOR
SIN
PAROUT
D8
SBUF
Internal
Data Bus
RB8
Receive Shift Register
Figure 17-4: Serial Port Mode 3
- 115 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
SM0
SM1
MODE
TYPE
BAUD CLOCK
FRAME
SIZE
START
BIT
STOP
BIT
9TH BIT
FUNCTION
0
0
0
Synch.
4 or 12 TCLKS
8 bits
No
No
None
0
1
1
Asynch.
Timer 1
10 bits
1
1
None
1
0
2
Asynch.
32 or 64 TCLKS
11 bits
1
1
0, 1
1
1
3
Asynch.
Timer 1
11 bits
1
1
0, 1
Figure 17-5: Serial Ports Modes
17.5 Framing Error Detection
A Frame Error occurs when a valid stop bit is not detected. This could indicate incorrect serial data
communication. Typically the frame error is due to noise and contention on the serial communication
line. N79E875 series have the capability to detect such framing errors and set a flag which can be
checked by software.
The Frame Error FE bit is located in SCON.7. This bit is normally used as SM0 in the standard 8051
family. However, it serves a dual function and is called SM0/FE. There are actually two separate flags,
one for SM0 and the other for FE. The flag that is actually accessed as SCON.7 is determined by
SMOD0 (PCON.6) bit. When SMOD0 is set to 1, then the FE flag is indicated in SM0/FE. When
SMOD0 is set to 0, then the SM0 flag is indicated in SM0/FE.
The FE bit is set to 1 by hardware but must be cleared by software. Note that SMOD0 must be 1 while
reading or writing to FE. If FE is set, then any following frames received without any error will not clear
the FE flag. The clearing has to be done by software.
17.6 Multiprocessor Communications
Multiprocessor communications makes use of the 9th data bit in modes 2 and 3. The RI flag is set only
if the received byte corresponds to the Given or Broadcast address. This hardware feature eliminates
the software overhead required in checking every received address, and greatly simplifies the
software programmer task.
In the multiprocessor communication mode, the address bytes are distinguished from the data bytes
by transmitting the address with the 9th bit set high. When the master processor wants to transmit a
block of data to one of the slaves, it first sends out the address of the targeted slave (or slaves). All the
slave processors should have their SM2 bit set high when waiting for an address byte. This ensures
that they will be interrupted only by the reception of an address byte. The Automatic address
recognition feature ensures that only the addressed slave will be interrupted. The address comparison
is done in hardware not software.
The addressed slave clears the SM2 bit, thereby clearing the way to receive data bytes. With SM2 = 0,
the slave will be interrupted on the reception of every single complete frame of data. The unaddressed
slaves will be unaffected, as they will be still waiting for their address. In Mode 1, the 9th bit is the stop
bit, which is 1 in case of a valid frame. If SM2 is 1, then RI is set only if a valid frame is received and
the received byte matches the Given or Broadcast address.
The Master processor can selectively communicate with groups of slaves by using the Given Address.
All the slaves can be addressed together using the Broadcast Address. The addresses for each slave
are defined by the SADDR and SADEN SFRs. The slave address is an 8-bit value specified in the
SADDR SFR. The SADEN SFR is actually a mask for the byte value in SADDR. If a bit position in
SADEN is 0, then the corresponding bit position in SADDR is don't care. Only those bit positions in
SADDR whose corresponding bits in SADEN are 1 are used to obtain the Given Address. This gives
- 116 -
Preliminary N79E875 Data Sheet
the user flexibility to address multiple slaves without changing the slave address in SADDR.
The following example shows how the user can define the Given Address to address different slaves.
Slave 1:
SADDR 1010 0100
SADEN 1111 1010
Given: 1010 0x0x
Slave 2:
SADDR 1010 0111
SADEN 1111 1001
Given :
1010 0xx1
The Given address for slave 1 and 2 differ in the LSB. For slave 1, it is don't care, while for slave 2 it is
1. Thus to communicate only with slave 1, the master must send an address with LSB = 0 (1010
0000). Similarly the bit 1 position is 0 for slave 1 and don't care for slave 2. Hence to communicate
only with slave 2 the master has to transmit an address with bit 1 = 1 (1010 0011). If the master
wishes to communicate with both slaves simultaneously, then the address must have bit 0 = 1 and bit
1 = 0. The bit 3 position is don't care for both the slaves. This allows two different addresses to select
both slaves (1010 0001 and 1010 0101).
The master can communicate with all the slaves simultaneously with the Broadcast Address. This
address is formed from the logical OR of the SADDR and SADEN SFRs. The zeros in the result are
defined as don't cares. In most cases the Broadcast Address is FFh. In the previous case, the
Broadcast Address is (1111111X) for slave 1 and (11111111) for slave 2.
The SADDR and SADEN SFRs are located at address A9h and B9h respectively. On reset, these two
SFRs are initialized to 00h. This results in Given Address and Broadcast Address being set as XXXX
XXXXb (i.e. all bits don't care). This effectively removes the multiprocessor communications feature,
since any selectivity is disabled.
- 117 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
18 I2C SERIAL CONTROL
The I2C bus uses two wires (SDA and SCL) to transfer information between devices connected to the
bus. The main features of the bus are:

Bidirectional data transfer between masters and slaves

Multi-master bus (no central master)

Arbitration between simultaneously transmitting masters without corruption of serial data on the
bus

Serial clock synchronization allows devices with different bit rates to communicate via one serial
bus

Serial clock synchronization can be used as a handshake mechanism to suspend and resume
serial transfer

Built-in a 14-bit time-out counter will request the I2C interrupt if the I2C bus hangs up and timerout counter overflows.

The I2C port pins, SDA and SCL are permanently in Open-drain type. External pull-up are
needed for high output
STOP
Repeated
START
START
STOP
SDA
tBUF
tLOW
tr
SCL
tHD;STA
tf
tHIGH
tHD;DAT
tSU;DAT
tSU;STA
tSU;STO
Figure 18-1: I2C Bus Timing
18.1 I2C Port
The device’s on-chip I2C logic provides the serial interface that meets the I2C bus standard mode
specification. The I2C port handles byte transfers autonomously. To enable this port, the bit ENSI in
I2CON should be set to '1'. The I2C H/W interfaces to the I2C bus via two pins: SDA (P1.6, serial data
line) and SCL (P1.5, serial clock line). Pull up resistors are needed on Pin P1.5 and P1.6 for I2C
operation as these are open drain pins. When the I/O pins are used as I2C port, user must set the pins
to logic high in advance.
- 118 -
Preliminary N79E875 Data Sheet
18.2 SFR for I2C Function
The CPU interfaces to the SIO port through the following six special function registers: I2CON (control
register, C0H), I2STATUS (status register, BDH), I2DAT (data register, BCH), I2ADDR (address
registers, C1H), I2CLK (clock rate register BEH) and I2TOC (Time-out counter register, BFH).
When I2C port is enabled by setting ENSI to high, the internal states will be controlled by I2CON and
I2C logic hardware. Once a new status code is generated and stored in I2STATUS, the I2C interrupt
flag (SI) will be set automatically. If both EA and EI2C are also in logic high, the I2C interrupt is
requested. The 5 most significant bits of I2STATUS stores the internal state code, the lowest 3 bits are
always zero and the content keeps stable until SI is cleared by software.
18.2.1 I2C Address Registers, I2ADDR
I2C port is equipped with one slave address register. The contents of the register are irrelevant when
I2C is in master mode. In the slave mode, the seven most significant bits must be loaded with the
MCU’s own slave address. The I2C hardware will react if the contents of I2ADDR are matched with
the received slave address.
The I2C ports support the “General Call” function. If the GC bit is set the I2C port1 hardware will
respond to General Call address (00H). Clear GC bit to disable general call function.
When GC bit is set, the I2C is in Slave mode, it can be received the general call address by 00H after
Master send general call address to I2C bus, then it will follow status of GC mode. If it is in Master
mode, the AA bit must be cleared when it will send general call address of 00H to I2C bus.
SYMBOL
DEFINITION
ADDRESS
MSB
BIT ADDRESS, SYMBOL
I2ADDR
I2C ADDRESS1
C1H
ADDR.7 ADDR.6 ADDR.5 ADDR.4 ADDR.3 ADDR.2 ADDR.1 GC
LSB RESET
xxxx xxx0B
18.2.2 I2C Data Register, I2DAT
This register contains a byte of serial data to be transmitted or a byte which has just been received.
The CPU can read from or write to this 8-bit directly addressable SFR while it is not in the process of
shifting a byte. This occurs when SIO is in a defined state and the serial interrupt flag (SI) is set. Data
in I2DAT remains stable as long as SI bit is set. While data is being shifted out, data on the bus is
simultaneously being shifted in; I2DAT always contains the last data byte present on the bus. Thus, in
the event of arbitration lost, the transition from master transmitter to slave receiver is made with the
correct data in I2DAT.
I2DAT and the acknowledge bit form a 9-bit shift register, the acknowledge bit is controlled by the SIO
hardware and cannot be accessed by the CPU. Serial data is shifted through the acknowledge bit into
I2DAT on the rising edges of serial clock pulses on the SCL line. When a byte has been shifted into
I2DAT, the serial data is available in I2DAT, and the acknowledge bit (ACK or NACK) is returned by
the control logic during the ninth clock pulse. Serial data is shifted out from I2DAT on the falling edges
of SCL clock pulses, and is shifted into I2DAT on the rising edges of SCL clock pulses.
I2C Data Register:
I2DAT.7 I2DAT.6 I2DAT.5 I2DAT.4 I2DAT.3 I2DAT.2 I2DAT.1 I2DAT.0
shifting direction
Figure 18-2 I2C Data Shifting Direction
- 119 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
SYMBOL
DEFINITION
ADDRESS
MSB
BIT ADDRESS, SYMBOL
LSB RESET
I2DAT
I2C DATA REGISTER
BCH
I2DAT.7 I2DAT.6 I2DAT.5 I2DAT.4 I2DAT.3 I2DAT.2 I2DAT.1 I2DAT.0 xxxx xxxxB
18.2.3 I2C Control Register, I2CON
The CPU can read from and write to this 8-bit, directly addressable SFR. Two bits are affected by
hardware: the SI bit is set when the I2C hardware requests a serial interrupt, and the STO bit is
cleared when a STOP condition is present on the bus. The STO bit is also cleared when ENSI = "0".
ENSI
Set to enable I2C serial function block. When ENS=1 the I2C serial function enables. The
port latches of SDA1 and SCL1 must be set to logic high.
STA
I2C START Flag. Setting STA to logic 1 to enter master mode, the I2C hardware sends a
START or repeat START condition to bus when the bus is free.
STO
I2C STOP Flag. In master mode, setting STO to transmit a STOP condition to bus then
I2C hardware will check the bus condition if a STOP condition is detected this flag will be
cleared by hardware automatically. In a slave mode, setting STO resets I2C hardware to
the defined “not addressed” slave mode. This means it is NO LONGER in the slave
receiver mode to receive data from the master transmit device.
SI
I2C Interrupt Flag. When a new SIO state is present in the I2STATUS register, the SI flag
is set by hardware, and if the EA and EI2C bits are both set, the I2C interrupt is
requested. SI must be cleared by software.
AA
Assert Acknowledge control bit. When AA=1 prior to address or data received, an
acknowledged (low level to SDA) will be returned during the acknowledge clock pulse on
the SCL line when 1.) A slave is acknowledging the address sent from master, 2.) The
receiver devices are acknowledging the data sent by transmitter. When AA=0 prior to
address or data received, a Not acknowledged (high level to SDA) will be returned during
the acknowledge clock pulse on the SCL line.
SYMBOL
DEFINITION
ADDRESS
MSB
I2CON
I2C CONTROL REGISTER
C0H
(CF)
-
BIT ADDRESS, SYMBOL
(CE)
ENSI
(CD)
STA
(CC)
STO
(CB)
SI
(CA)
AA
(C9)
-
LSB RESET
(C8)
-
x000 00xxB
18.2.4 I2C Status Register, I2STATUS
I2STATUS is an 8-bit read-only register. The three least significant bits are always 0. The five most
significant bits contain the status code. There are 26 possible status codes. When I2STATUS contains
F8H, no serial interrupt is requested. All other I2STATUS values correspond to defined SIO states.
When each of these states is entered, a status interrupt is requested (SI = 1). A valid status code is
present in I2STATUS one machine cycle after SI is set by hardware and is still present one machine
cycle after SI has been reset by software.
In addition, state 00H stands for a Bus Error. A Bus Error occurs when a START or STOP condition is
present at an illegal position in the format frame. Examples of illegal positions are during the serial
transfer of an address byte, a data byte or an acknowledge bit. To recover I2C from bus error, STO
should be set and SI should be clear to enter not addressed slave mode. Then clear STO to release
bus and to wait new communication. I2C bus can not recognize stop condition during this action when
bus error occurs.
SYMBOL
DEFINITION
I2STATUS I2C STATUS REGISTER
ADDRESS
MSB
BDH
B7
BIT ADDRESS, SYMBOL
B6
- 120 -
B5
B4
B3
B2
B1
LSB RESET
B0
1111 1000B
Preliminary N79E875 Data Sheet
18.2.5 I2C Clock Baud Rate Bits, I2CLK
The data baud rate of I2C is determines by I2CLK register when SIO is in a master mode. It is not
important when SIO is in a slave mode. In the slave modes, SIO will automatically synchronize with
any clock frequency up to 400 KHz from master I2C device.
The data baud rate of I2C setting is Data Baud Rate of I2C = Fcpu /(4x(I2CLK+1)). If Fcpu=16MHz,
the I2CLK = 40(28H), so data baud rate of I2C = 16MHz/(4X (40 +1)) = 97.5Kbits/sec. The block
diagram is as below figure.
SYMBOL
DEFINITION
ADDRESS
MSB
BIT ADDRESS, SYMBOL
LSB RESET
I2CLK
I2C CLOCK RATE
BEH
I2CLK.7 I2CLK.6 I2CLK.5 I2CLK.4 I2CLK.3 I2CLK.2 I2CLK.1 I2CLK.0 0000 0000B
18.2.6 I2C Time-out Counter Register, I2TOC
There is a 14-bit time-out counter which can be sued to deal with the I2C bus hang-up. If the time-out
counter is enabled, the counter starts up counting until it overflows(TIF=1) and requests I2C interrupt
from CPU or stops counting by clearing ENTI to 0. When time-out counter is enabled, setting flag SI to
high will reset counter and re-start up counting after SI is cleared. If I2C bus hangs up, it causes the
I2STATUS and flag SI are not updated for a period, the 14-bit time-out counter may overflow and
acknowledge CPU the I2C interrupt. Refer to Figure 18-3 for the 14-bit time-out counter.
0
Fcpu
14-bits Counter
Enable
1/4
1
TIF
To I2C Interrupt
Clear Counter
DIV4
SI
ENS1
ENTI
SI
Figure 18-3: I2C Time-out Count Block Diagram
SYMBOL
DEFINITION
ADDRESS
I2TOC
I2C TIME-OUT COUNTER REGISTER BFH
MSB
-
BIT ADDRESS, SYMBOL
-
-
-
-
ENTI
DIV4
LSB RESET
TIF
0000 0000B
18.3 Modes of Operation
The on-chip I2C ports support five operation modes, Master transmitter, Master receiver, Slave
transmitter, Slave receiver, and GC call.
In a given application, I2C port may operate as a master or as a slave. In the slave mode, the I2C port
hardware looks for its own slave address and the general call address. If one of these addresses is
detected, and if the slave is willing to receive or transmit data from/to master(by setting the AA bit),
acknowledge pulse will be transmitted out on the 9th clock, hence an interrupt is requested on both
master and slave devices if interrupt is enabled. When the microcontroller wishes to become the bus
master, the hardware waits until the bus is free before the master mode is entered so that a possible
slave action is not interrupted. If bus arbitration is lost in the master mode, I2C port switches to the
- 121 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
slave mode immediately and can detect its own slave address in the same serial transfer.
18.3.1 Master Transmitter Mode
Serial data output through SDA while SCL outputs the serial clock. The first byte transmitted contains
the slave address of the receiving device (7 bits) and the data direction bit. In this case the data
direction bit (R/W) will be logic 0, and it is represented by “W” in the flow diagrams. Thus the first byte
transmitted is SLA+W. Serial data is transmitted 8 bits at a time. After each byte is transmitted, an
acknowledge bit is received. START and STOP conditions are output to indicate the beginning and the
end of a serial transfer.
18.3.2 Master Receiver Mode
In this case the data direction bit (R/W) will be logic 1, and it is represented by “R” in the flow
diagrams. Thus the first byte transmitted is SLA+R. Serial data is received via SDA while SCL outputs
the serial clock. Serial data is received 8 bits at a time. After each byte is received, an acknowledge bit
is transmitted. START and STOP conditions are output to indicate the beginning and end of a serial
transfer.
18.3.3 Slave Receiver Mode
Serial data and the serial clock are received through SDA and SCL. After each byte is received, an
acknowledge bit is transmitted. START and STOP conditions are recognized as the beginning and
end of a serial transfer. Address recognition is performed by hardware after reception of the slave
address and direction bit.
18.3.4 Slave Transmitter Mode
The first byte is received and handled as in the slave receiver mode. However, in this mode, the
direction bit will indicate that the transfer direction is reversed. Serial data is transmitted via SDA while
the serial clock is input through SCL. START and STOP conditions are recognized as the beginning
and end of a serial transfer.
18.4 Data Transfer Flow in Five Operating Modes
The five operating modes are: Master/Transmitter, Master/Receiver, Slave/Transmitter,
Slave/Receiver and GC Call. Bits STA, STO and AA in I2CON register will determine the next state of
the SIO hardware after SI flag is cleared. Upon complexion of the new action, a new status code will
be updated and the SI flag will be set. If the I2C interrupt control bits (EA and EI2C) are enable,
appropriate action or software branch of the new status code can be performed in the Interrupt service
routine.
Data transfers in each mode are shown in the following figures.
*** Legend for the following five figures:
- 122 -
Preliminary N79E875 Data Sheet
Last state
Last action is done
Next setting in I2CON
Expected next action
New state
next action is done
Software's access to I2DAT with respect to "Expected next action":
(1) Data byte will be transmitted:
Software should load the data byte (to be transmitted)
into I2DAT before new I2CON setting is done.
(2) SLA+W (R) will be transmitted:
Software should load the SLA+W/R (to be transmitted)
into I2DAT before new I2CON setting is done.
(STA,STO,SI,AA)=(0,0,0,X) (3) Data byte will be received:
Software can read the received data byte from I2DAT
SLA+W will be transmitted;
while a new state is entered.
ACK bit will be received.
08H
A START has been
transmitted.
18H
SLA+W has been transmitted;
ACK has been received.
Figure 18-4 Legend for the following four figures
- 123 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Set STA to generate
a START.
From Slave Mode (C)
08H
A START has been
transmitted.
(STA,STO,SI,AA)=(0,0,0,X)
SLA+W will be transmitted;
ACK bit will be received.
From Master/Receiver (B)
18H
SLA+W will be transmitted;
ACK bit will be received.
or
20H
SLA+W will be transmitted;
NOT ACK bit will be received.
(STA,STO,SI,AA)=(0,0,0,X)
Data byte will be transmitted;
ACK will be received.
28H
Data byte in S1DAT has been transmitted;
ACK has been received.
(STA,STO,SI,AA)=(0,1,0,X)
A STOP will be transmitted;
STO flag will be reset.
(STA,STO,SI,AA)=(1,0,0,X)
A repeated START will be transmitted;
10H
A repeated START has
been transmitted.
(STA,STO,SI,AA)=(1,1,0,X)
A STOP followed by a START will
be transmitted;
STO flag will be reset.
Send a STOP
Send a STOP
followed by a START
or
30H
Data byte in S1DAT has been transmitted;
NOT ACK has been received.
(STA,STO,SI,AA)=(0,0,0,X)
SLA+R will be transmitted;
ACK bit will be transmitted;
SIO1 will be switched to MST/REC mode.
38H
Arbitration lost in SLA+R/W or
Data byte.
To Master/Receiver (A)
(STA,STO,SI,AA)=(0,0,0,X)
I2C bus will be release;
Not address SLV mode will be entered.
Enter NAslave
Figure 18-5 Master Transmitter Mode
- 124 -
(STA,STO,SI,AA)=(1,0,0,X)
A START will be transmitted when the
bus becomes free.
Send a START
when bus becomes free
Preliminary N79E875 Data Sheet
Set STA to generate
a START.
From Slave Mode (C)
08H
A START has been
transmitted.
(STA,STO,SI,AA)=(0,0,0,X)
SLA+R will be transmitted;
ACK bit will be received.
From Master/Transmitter (A)
48H
SLA+R has been transmitted;
NOT ACK has been received.
40H
SLA+R has been transmitted;
ACK has been received.
(STA,STO,SI,AA)=(0,0,0,0)
Data byte will be received;
NOT ACK will be returned.
58H
Data byte has been received;
NOT ACK has been returned.
(STA,STO,SI,AA)=(1,1,0,X)
A STOP followed by a START will
be transmitted;
STO flag will be reset.
(STA,STO,SI,AA)=(0,1,0,X)
A STOP will be transmitted;
STO flag will be reset.
(STA,STO,SI,AA)=(0,0,0,1)
Data byte will be received;
ACK will be returned.
50H
Data byte has been received;
ACK has been returned.
(STA,STO,SI,AA)=(1,0,0,X)
A repeated START will be transmitted;
10H
A repeated START has
been transmitted.
Send a STOP
Send a STOP
followed by a START
38H
Arbitration lost in NOT ACK
bit.
(STA,STO,SI,AA)=(0,0,0,X)
SLA+R will be transmitted;
ACK bit will be transmitted;
SIO1 will be switched to MST/REC mode.
To Master/Transmitter (B)
(STA,STO,SI,AA)=(1,0,0,X)
A START will be transmitted;
when the bus becomes free
Send a START
when bus becomes free
(STA,STO,SI,AA)=(0,0,0,X)
I2C bus will be release;
Not address SLV mode will be entered.
Enter NAslave
Figure 18-6 Master Receiver Mode
- 125 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Set AA
A8H
Own SLA+R has been received;
ACK has been return.
or
B0H
Arbitration lost SLA+R/W as master;
Own SLA+R has been received;
ACK has been return.
(STA,STO,SI,AA)=(0,0,0,1)
Data byte will be transmitted;
ACK will be received.
(STA,STO,SI,AA)=(0,0,0,0)
Last data byte will be transmitted;
ACK will be received.
C8H
Last data byte in S1DAT has been transmitted;
ACK has been received.
C0H
Data byte or Last data byte in S1DAT has been
transmitted;
NOT ACK has been received.
B8H
Data byte in S1DAT has been transmitted;
ACK has been received.
(STA,STO,SI,AA)=(0,0,0,0)
Last data will be transmitted;
ACK will be received.
(STA,STO,SI,AA)=(0,0,0,1)
Data byte will be transmitted;
ACK will be received.
A0H
A STOP or repeated START has been
received while still addressed as SLV/TRX.
(STA,STO,SI,AA)=(1,0,0,1)
Switch to not address SLV mode;
Own SLA will be recognized;
A START will be transmitted when the
bus becomes free.
(STA,STO,SI,AA)=(1,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA;
A START will be transmitted when the
becomes free.
(STA,STO,SI,AA)=(0,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA.
(STA,STO,SI,AA)=(0,0,0,1)
Switch to not addressed SLV mode;
Own SLA will be recognized.
Enter NAslave
Send a START
when bus becomes free
To Master Mode (C)
Figure 18-7 Slave Transmitter Mode
- 126 -
Preliminary N79E875 Data Sheet
Set AA
60H
Own SLA+W has been received;
ACK has been return.
or
68H
Arbitration lost SLA+R/W as master;
Own SLA+W has been received;
ACK has been return.
(STA,STO,SI,AA)=(0,0,0,1)
Data byte will be received;
ACK will be returned.
(STA,STO,SI,AA)=(0,0,0,0)
Data byte will be received;
NOT ACK will be returned.
80H
Previously addressed with own SLA address;
Data has been received;
ACK has been returned.
88H
Previously addressed with own SLA address;
NOT ACK has been returned.
(STA,STO,SI,AA)=(0,0,0,1)
Data will be received;
ACK will be returned.
(STA,STO,SI,AA)=(0,0,0,0)
Data will be received;
NOT ACK will be returned.
A0H
A STOP or repeated START has been
received while still addressed as SLV/REC.
(STA,STO,SI,AA)=(1,0,0,1)
Switch to not address SLV mode;
Own SLA will be recognized;
A START will be transmitted when
the bus becomes free.
(STA,STO,SI,AA)=(1,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA;
A START will be transmitted when the
becomes free.
(STA,STO,SI,AA)=(0,0,0,1)
Switch to not addressed SLV mode;
Own SLA will be recognized.
(STA,STO,SI,AA)=(0,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA.
Enter NAslave
Send a START
when bus becomes free
To Master Mode (C)
Figure 18-8 Slave Receiver Mode
- 127 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Set AA
70H
Reception of the general call address
and one or more data bytes;
ACK has been return.
or
78H
Arbitration lost SLA+R/W as master;
and address as SLA by general call;
ACK has been return.
(STA,STO,SI,AA)=(X,0,0,1)
Data byte will be received;
ACK will be returned.
(STA,STO,SI,AA)=(X,0,0,0)
Data byte will be received;
NOT ACK will be returned.
90H
Previously addressed with General Call;
Data has been received;
ACK has been returned.
98H
Previously addressed with General Call;
Data byte has been received;
NOT ACK has been returned.
(STA,STO,SI,AA)=(X,0,0,1)
Data will be received;
ACK will be returned.
(STA,STO,SI,AA)=(X,0,0,0)
Data will be received;
NOT ACK will be returned.
A0H
A STOP or repeated START has been
received while still addressed as
SLV/REC.
(STA,STO,SI,AA)=(1,0,0,1)
Switch to not address SLV mode;
Own SLA will be recognized;
A START will be transmitted when
the bus becomes free.
(STA,STO,SI,AA)=(1,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA;
A START will be transmitted when the
becomes free.
(STA,STO,SI,AA)=(0,0,0,1)
Switch to not addressed SLV mode;
Own SLA will be recognized.
(STA,STO,SI,AA)=(0,0,0,0)
Switch to not addressed SLV mode;
No recognition of own SLA.
Enter NAslave
Send a START
when bus becomes free
To Master Mode (C)
Figure 18-9 GC Mode
- 128 -
Preliminary N79E875 Data Sheet
19 SERIAL PHERIPHERAL INTERFACE (SPI)
19.1 General descriptions
N79E875 series consist of SPI block to support high speed serial communication. It’s capable of
supporting data transfer rates of 2.5 Mbit/s, for 40MHz bus frequency. This device’s SPI support the
following features;







Master and slave mode.
Slave select output.
Programmable serial clock’s polarity and phase.
Receive double buffered data register.
MSB first(default) or LSB first selectable.
Write collision detection.
Transfer complete interrupt.
19.2 Block descriptions
The following figure shows SPI block diagram. It provides an overview of SPI architecture in this
device. The main blocks of SPI are SPI register blocks, control logics, baud rate control, and pin
control logics;
Shift register and read data buffer. It is single buffered in the transmit direction and double buffered
in the receive direction. Transmit data cannot be written to the shifter until the previous transfer is
complete. When the SPIF set, user will not be able to write to the shift register. User has to clear the
SPIF before writing to the shift register. Receive logics consist of parallel read data buffer so the
shifter is free to accept a second data, as the first received data will be transferred to the read data
buffer.
SPI Control block. This provide control functions to configure the device for SPI enable, master or
slave, clock phase and polarity, MSB/LSB access first selection, and Slave Select output enable.
Baud rate control. This control logics divide CPU clock to 4 different selectable clocks (1/16, 1/32,
1/64 and 1/128).
SPR1
SPR0
Divider
Baud Rate
0
0
16
2.5 Mbit/s
0
1
32
1.25 Mbit/s
1
0
64
625 Kbit/s
1
1
128
312.5 Kbit/s
Table 19-1 SPI Baud Rate Selection (based on 40 MHz Bus Clock)
SPI registers. There are three SPI registers to support its operations, they are;
• SPI control registers (SPCR)
• SPI status registers (SPSR)
• SPI data register (SPDR)
- 129 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
These registers provide control, status, data storage functions and baud rate selection control. Detail
bit descriptions are found at SFR section.
Pin control logic. Controls behavior of SPI interface pins.
INTERNAL
MCU CLOCK
S
/32
/64
MSB
/128
LSB
M
S
8- BIT SHIFT REGISTER
READ DATA BUFFER
CLOCK
SPR0
SPR1
SELECT
CLOCK LOGIC
PI N CONTROL LOGIC
/16
MISO
M
DIVIDER
MOSI
SPCLK
SPI STATUS REGISTER
SPI INTERRUPT
REQUEST
SPR1
SPR1
CPHA
MSTR
CPOL
LSBFE
SPE
SPE
SSOE
ESPI
DRSS
M ODF
SPIOVF
WCOL
SPIF
SPI CONTROL
SPI CONTROL REGISTER
INTERNAL
DATA BUS
Figure 19-1 SPI block diagram
- 130 -
DRSS
MSTR
SSOE
MSTR
SPE
__
SS
Preliminary N79E875 Data Sheet
19.3 Functional descriptions
19.3.1 Master mode
The device can configure the SPI to operate as a master or as a slave, through MSTR bit. When the
MSTR bit is set, master mode is selected, when MSTR bit is cleared, slave mode is selected. During
master mode, only master SPI device can initiate transmission. A transmission begins by writing to the
master SPDR register. The bytes begin shifting out on MOSI pin under the control of SPCLK. The
master places data on MOSI line a half-cycle before SPCLK edge that the slave device uses to latch
the data bit. The /SS must stay low before data transactions and stay low for the duration of the
transactions.
8
7
6
5
4
3
2
1
SPCLK Cycles
SPCLK (Output,
CPOL=0)
MOSI/MISO
/SS (output to slave)
2
MSB
6
5
4
3
2
1
LSB
1
4
3
SPIF
Master transfer in progress
Master writes to SPDR:
1. /SS asserted.
2. During master transmit, data is shifting out through MOSI.
During master receive, data is shifting in through MISO.
3. SPIF asserted at the end of transmission.
4. /SS negated.
Note:
When CPHA = 0, /SS output must go high between successive SPI characters.
When CPOL = 0, SPCLK idle low.
Figure 19-2 Master Mode Transmission (CPOL = 0, CPHA = 0)
- 131 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
8
7
6
5
4
3
2
1
SPCLK Cycles
SPCLK (Output,
CPOL=1)
MOSI/MISO
/SS (output to slave)
2
MSB
6
5
4
3
2
1
LSB
1
4
3
SPIF
Master transfer in progress
Master writes to SPDR:
1. /SS asserted.
2. During master transmit, data is shifting out through MOSI.
During master receive, data is shifting in through MISO.
3. SPIF asserted at the end of transmission.
4. /SS negated.
Note:
When CPHA = 0, /SS output must go high between successive SPI characters.
When CPOL = 1, SPCLK idle high.
Figure 19-3 Master Mode Transmission (CPOL = 1, CPHA = 0)
- 132 -
Preliminary N79E875 Data Sheet
SPCLK Cycles
1
2
3
4
5
6
7
8
MSB
6
5
4
3
2
1
LSB
SPCLK (Output,
CPOL=0)
MOSI/MISO
/SS (output to slave)
2
1
4
SPIF
3
Master transfer in progress
Master writes to SPDR:
1. /SS asserted.
2. During master transmit, data is shifting out through MOSI.
During master receive, data is shifting in through MISO.
3. SPIF asserted at the end of transmission.
4. /SS negated.
Note:
When CPHA = 1, /SS output can stay low between successive SPI characters.
When CPOL = 0, SPCLK idle low.
Figure 19-4 Master Mode Transmission (CPOL = 0, CPHA = 1)
- 133 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
SPCLK Cycles
1
2
3
4
5
6
7
8
MSB
6
5
4
3
2
1
LSB
SPCLK (Output,
CPOL=1)
MOSI/MISO
2
1
/SS (output to slave)
4
SPIF
3
Master transfer in progress
Master writes to SPDR:
1. /SS asserted.
2. During master transmit, data is shifting out through MOSI.
During master receive, data is shifting in through MISO.
3. SPIF asserted at the end of transmission.
4. /SS negated.
Note:
When CPHA = 1, /SS output can stay low between successive SPI characters.
When CPOL = 1, SPCLK idle high.
Figure 19-5 Master Mode Transmission (CPOL = 1, CPHA = 1)
19.3.2 Slave Mode
When in slave mode, the SPCLK pin becomes input and it will be clock by another master SPI device.
The /SS pin also becomes input. Similarly, before data transmissions occurs, and remain low until the
transmission completed. If /SS goes high, the SPI is forced into idle state.
Data flows from master to slave on MOSI pin and flows from slave to master on MISO pin. The SPDR
is used when transmitting or receiving data on the serial bus. Only a write to this register initiates
transmission or reception of a byte, and this only occurs in the master device. At the completion of
transferring a byte of data, the SPIF status bit is set in both the master and slave devices. A read of
the SPDR is actually a read of a buffer. To prevent an overrun and the loss of the byte that caused the
overrun, the first SPIF must be cleared by the time a second transfer of data from the shift register to
the read buffer is initiated.
- 134 -
Preliminary N79E875 Data Sheet
1
SPCLK Cycles
2
3
5
4
6
7
8
SPCLK (Input,
CPOL=0)
MOSI/MISO
/SS (input)
2
MSB
6
5
4
3
2
1
LSB
1
4
SPIF
3
Slave transfer in progress
Slave writes to SPDR:
1. /SS asserted.
2. During slave transmit, data is shifting out through MISO.
During slave receive, data is shifting in through MOSI.
3. SPIF asserted at the end of transmission.
4. /SS negated.
Note:
When CPHA = 0, /SS input must go high between successive SPI characters.
When CPOL = 0, SPCLK idle low.
Figure 19-6 Slave Mode Transmission (CPOL = 0, CPHA = 0)
- 135 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
8
7
6
5
4
3
2
1
SPCLK Cycles
SPCLK (Input,
CPOL=1)
MOSI/MISO
2
MSB
6
5
4
3
2
1
LSB
1
4
SPIF
3
Slave transfer in progress
Slave writes to SPDR:
1. /SS asserted.
2. During slave transmit, data is shifting out through MISO.
During slave receive, data is shifting in through MOSI.
3. SPIF asserted at the end of transmission.
4. /SS negated.
Note:
When CPHA = 0, /SS input must go high between successive SPI characters.
When CPOL = 1, SPCLK idle high.
Figure 19-7 Slave Mode Transmission (CPOL = 1, CPHA = 0)
- 136 -
Preliminary N79E875 Data Sheet
SPCLK Cycles
1
2
3
4
5
6
7
8
MSB
6
5
4
3
2
1
LSB
SPCLK (Input,
CPOL=0)
MOSI/MISO
/SS (input)
2
1
4
SPIF
3
Slave transfer in progress
Slave writes to SPDR:
1. /SS asserted.
2. During slave transmit, data is shifting out through MISO.
During slave receive, data is shifting in through MOSI.
3. SPIF asserted at the end of transmission.
4. /SS negated.
Note:
When CPHA = 1, /SS input can stay low between successive SPI characters.
When CPOL = 0, SPCLK idle low.
Figure 19-8 Slave Mode Transmission (CPOL = 0, CPHA = 1)
- 137 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
SPCLK Cycles
1
2
3
4
5
6
7
8
MSB
6
5
4
3
2
1
LSB
SPCLK (Input,
CPOL=1)
MOSI/MISO
2
1
/SS (input)
4
SPIF
3
Slave transfer in progress
Slave writes to SPDR:
1. /SS asserted.
2. During slave transmit, data is shifting out through MISO.
During slave receive, data is shifting in through MOSI.
3. SPIF asserted at the end of transmission.
4. /SS negated.
Note:
When CPHA = 1, /SS input can stay low between successive SPI characters.
When CPOL = 1, SPCLK idle high.
Figure 19-9 Slave Mode Transmission (CPOL = 1, CPHA = 1)
19.3.3 Slave select
The slave select (/SS) input of a slave device must be externally asserted before a master device can
exchange data with the slave device. /SS must be low before data transactions and must stay low for
the duration of the transaction. The /SS line of the master must be held high.
The other three lines are dedicated to the SPI whenever the serial peripheral interface is on.
The state of the master and slave CPHA bits affects the operation of /SS. CPHA settings should be
identical for master and slave. When CPHA = 0, the shift clock is the OR of /SS with SCK. In this clock
phase mode, /SS must go high between successive characters in an SPI message. When CPHA = 1,
/SS can be left low between successive SPI characters. In cases where there is only one SPI slave
MCU, its /SS line can be tied to VSS as long as only CPHA = 1 clock mode is used.
19.3.4 Slave Select output enable
Available in master mode only, the /SS output is enabled with the SSOE bit in the SPCR register. The
/SS output pin is connected to the /SS input pin of the slave device. The /SS output automatically goes
low for each transmission when selecting external device and it goes high during each idling state to
deselect external devices.
DRSS
SSOE
0
0
Master Mode
Slave Mode
/SS input (With Mode Fault). See
section SPI I/O mode section for
detail.
/SS Input (Not affected by SSOE)
- 138 -
Preliminary N79E875 Data Sheet
0
1
Reserved
/SS Input (Not affected by SSOE)
1
0
/SS General purpose I/O (No Mode
Fault)
/SS Input (Not affected by SSOE)
1
1
/SS output (No Mode Fault)
/SS Input (Not affected by SSOE)
Table 19-2 /SS output
During master mode (with SSOE=DRSS= 0), mode fault will be set if /SS pin is detected low. When
mode fault is detected hardware will clear MSTR bit and SPE bit in the meantime it will also generated
interrupt request, if ESPI is enabled.
SPIF
SPIOVF
SS
MODF
ESPI
SPI
interrupt
request
EA
MSTR
SSOE
DRSS
Figure 19-10 SPI interrupt request
19.3.5 SPI I/O pins mode
When SPI is disabled (SPE = 0) the corresponding I/O is following the setting determined by port
mode setting (SFR P2M1 & P2M2). When SPI is enabled (SPE = 1) the SPI pins I/O mode follow the
below table. For /SS pin it is always at Quasi-bidirectional mode whether it is configured as master or
slave.
MISO
MOSI
CLK
/SS
Input
Output
Output
Input
Input
[1]
Master
Slave
Output
[2]
during /SS = Low
Else Input mode
Output : DRSS=1,SSOE=1
Input: DRSS=0, SSOE=0
Input
Table 19-3 SPI I/O pins mode
Input = Quasi-bidirectional mode; Output = Push-pull mode
Output
[1]
= This output mode in /SS is Quasi-bidirectional output mode. Master needs to detect mode
fault during master outputs /SS low.
Output
[2]
= In SLAVE mode, MISO is in output mode only during the time of /SS =Low. Otherwise it
must keep in input mode (Quasi-bidirectional).
- 139 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
19.3.6 Programmable serial clock’s phase and polarity
The clock polarity SPCR.CPOL control bit selects active high or active low SCK clock, and has no
significant effect on the transfer format. The clock phase SPCR.CPHA control bit selects one of two
different transfer protocols by sampling data on odd numbered SCK edges or on even numbered SCK
edges. Thus, both these bits enable selection of four possible clock formats to be used by SPI system.
The clock phase and polarity should be identical for the master SPI device and the communicating
slave device.
When CPHA equals 0, the /SS line must be negated and reasserted between each successive serial
byte. Also, if the slave writes data to the SPI data register (SPDR) while /SS is low, a write collision
error results. When CPHA equals 1, the /SS line can remain low between successive transfers.
When CPHA = 0, data is sample on the first edge of SPCLK and when CPHA = 1 data is sample on
the second edge of the SPCLK. Prior to changing CPOL setting, SPE must be disabled first.
19.3.7 Receive double buffered data register
This device is single buffered in the transmit direction and double buffered in the receive direction.
This means that new data for transmission cannot be written to the shifter until the previous transfer is
complete; however, received data is transferred into a parallel read data buffer so the shifter is free to
accept a second serial byte. As long as the first byte is read out of the read data buffer before the next
byte is ready to be transferred, no overrun condition occurs.
If overrun occur, SPIOVF is set. Second byte serial data cannot be transferred successfully into the
data register during overrun condition and the data register will remains the value of the previous byte.
The figure below shows the receive data timing waveform when overrun occur.
Data (N) Receiving
SPI Shift Register
Data (N+1) Receiving
Data (N) Progressing
Data (N+2) Receiveing
Data (N+1) Progressing
Data (N+2) Progressing
SPIF
SPI Data Register
Data (N)
Data (N)
Data (N+2)
SPIOVF
When Data (N) is received,
the SPIF will be set.
If SPIF is not clear,
the SPIOVF will be set,
Data (N) will be kept.
The Data (N+1) will be lost.
To clear this bit by
software.
When Data (N+2) is received,
the SPIF will be set.
Figure 19-11 SPI receive data timing waveform
19.3.8 LSB first enable
By default, this device transfer the SPI data most significant bit first. This device provides a control bit
SPCR.LSBFE to allow support of transfer of SPI data in least significant bit first.
- 140 -
Preliminary N79E875 Data Sheet
19.3.9 Write Collision detection
Write collision indicates that an attempt was made to write data to the SPDR while a transfer was in
progress. SPDR is not double buffered in the transmit direction, any writes to SPDR cause data to be
written directly into the SPI shift register. This write corrupts any transfer in progress, a write collision
error is generated (WCOL will be set). The transfer continues undisturbed, and the write data that
caused the error is not written to the shifter. A write collision is normally a slave error because a slave
has no control over when a master initiates a transfer. A master knows when a transfer is in progress,
so there is no reason for a master to generate a write-collision error, although the SPI logic can detect
write collisions in both master and slave devices.
WCOL flag is clear by software.
19.3.10 Transfer complete interrupt
This device consists of an interrupt flag at SPSR.SPIF. This flag will be set upon completion of data
transfer with external device, or when a new data have been received and copied to SPDR. If interrupt
is enable (through ESPI located at EIE2.3), the SPI interrupt request will be generated, if global enable
is also enabled. SPIF is a software clear interrupt.
19.3.11 Mode Fault
Error arises in a multiple-master system when more than one SPI device simultaneously tries to be a
master. This error is called a mode fault.
When the SPI system is configured as a master and the /SS input line goes to active low, a mode fault
error has occurred — usually because two devices have attempted to act as master at the same time.
In cases where more than one device is concurrently configured as a master, there is a chance of
contention between two pin drivers. For push-pull CMOS drivers, this contention can cause permanent
damage. The mode fault mechanism attempts to protect the device by disabling the drivers. The
MSTR & SPE control bits in the SPCR associated with the SPI are cleared and an interrupt is
generated subject to masking by the ESPI control bit.
Other precautions may need to be taken to prevent driver damage. If two devices are made masters at
the same time, mode fault does not help protect either one unless one of them selects the other as
slave. The amount of damage possible depends on the length of time both devices attempt to act as
master.
MODF bit is set automatically by SPI hardware, if the MSTR control bit is set and the slave select input
pin becomes 0. This condition is not permitted in normal operation. In the case where /SS is set, it is
an output pin rather than being dedicated as the /SS input for the SPI system. In this special case, the
mode fault function is inhibited and MODF remains cleared. This flag is cleared by software.
The following figures show the sample hardware connection for multi-master/slave environment, and
flow diagram which shows how s/w handles mode fault.
- 141 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
MASTER/SLAVE
MMCU1
MASTER/SLAVE
MMCU2
MISO
MISO
MOSI
MOSI
SCK
/SS
/SS
0
1
2
3
SLAVE MCU 0
SLAVE MCU 1
SLAVE MCU 2
Figure 19-12 SPI multi-master slave environment
- 142 -
MISO
MOSI
/SS
SCK
MISO
SCK
MOSI
/SS
MISO
SCK
MOSI
0
1
2
3
/SS
I/O
PORT
SCK
I/O
PORT
Preliminary N79E875 Data Sheet
MMCU1/2
Start
A
Configuration (master);
MSTR = 1, SPE = 1
SSOE = 0, DRSS = 0
S/w should configure SPR0-1,
CPHA, CPOL,
LSBFE accordingly.
N
SPI intr?
Y
Mode fault detected
Y
MODF?
N
Configure P0[3:0] to Fh (input).
SPIF
Y
N
Missing data. S/W should take
appropriate actions here.
SPIOVF
Y
SPI overflow
Read SPDR
N
Read SPDR
Clear MODF flag
Clear SPIF flag
Eg. Checking /SS line.
Missing data. S/W
should take
appropriate actions
here.
Clear SPIF &
SPIOVF flag
N OK to reconfigure?
Y
A
N
Send data?
Y
Write SPDR
Figure 19-13 SPI multi-master slave s/w flow diagram
- 143 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
20 TIMED ACCESS PROTECTION
In this MCU, some functions are crucial to proper operation of the system like the Watchdog Timer. If
left unprotected, errant code may write to the Watchdog control bits resulting in incorrect operation
and loss of control. In order to prevent this, it has a protection scheme which controls the write access
to critical bits. This protection scheme is done using a timed access.
There registers, PDTC0(AEh), DTCNT(ABh) and WDCON(D8h) have the timed access protection
when CPU has a write access to one of the three registers.
In this method, the bits which are to be protected have a timed write enable window. A write is
successful only if this window is active, otherwise the write will be discarded. This write enable window
is open for 3 machine cycles if certain conditions are met. After 3 machine cycles, this window
automatically closes. The window is opened by writing AAh and immediately 55h to the Timed Access
(TA) SFR. This SFR is located at address C7h. The suggested code for opening the timed access
window is
TA
REG
0C7h
; Define new register TA, located at 0C7h
MOV
TA, #0AAh
MOV
TA, #055h
When the software writes AAh to the TA SFR, a counter is started. This counter waits for 3 machine
cycles looking for a write of 55h to TA. If the second write (55h) occurs within 3 machine cycles of the
first write (AAh), then the timed access window is opened. It remains open for 3 machine cycles,
during which the user may write to the protected bits. Once the window closes the procedure must be
repeated to access the other protected bits.
Examples of Timed Assessing are shown below.
Example 1: Valid access
MOV
TA, #0AAh
; 3 M/C; Note: M/C = Machine Cycles
MOV
TA, #055h
; 3 M/C
MOV
WDCON, #00h
; 3 M/C
Example 2: Valid access
MOV
TA, #0AAh
; 3 M/C
MOV
TA, #055h
; 3 M/C
NOP
SETB
; 1 M/C
EWRST
; 2 M/C
Example 3: Valid access
MOV
TA, #0Aah
; 3 M/C
MOV
TA, #055h
; 3 M/C
ORL
WDCON, #00000010B ; 3M/C
Example 4: Invalid access
MOV
TA, #0AAh
MOV
TA, #055h
; 3 M/C
; 3 M/C
- 144 -
Preliminary N79E875 Data Sheet
NOP
; 1 M/C
NOP
; 1 M/C
CLR
EWT
; 2 M/C
Example 5: Invalid Access
MOV
TA, #0AAh
; 3 M/C
NOP
; 1 M/C
MOV
TA, #055h
; 3 M/C
SETB
EWT
; 2 M/C
In the first three examples, the writing to the protected bits is done before the 3 machine cycles’
window closes. In Example 4, however, the writing to the protected bit occurs after the window has
closed, and so there is effectively no change in the status of the protected bit. In Example 5, the
second write to TA occurs 4 machine cycles after the first write, therefore the timed access window is
not opened at all, and the write to the protected bit fails.
- 145 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
21 KEYBOARD INTERRUPT (KBI)
The N79E875 series provide 8 keyboard interrupt function to detect keypad status which key is acted,
and allow a single interrupt to be generated when any key is pressed on a keyboard or keypad
connected to specific pins of the N79E875 series, as shown below figure. This interrupt may be used
to wake up the CPU from Idle or Power Down modes, after chip is in Power Down or Idle Mode.
Keyboard function is supported through by Port 0. It can allow any or all pins of Port 0 to be enabled to
cause this interrupt. Port pins are enabled by the setting of bits of KBI0 ~ KBI7 in the KBI register, as
shown below figure. The Keyboard Interrupt Flag, KBF in the AUXR1(A2H).7, is set when any enabled
pin is triggered while the KBI interrupt function is active, an interrupt will be generated if it has been
enabled. The KBF bit set by hardware and must be cleared by software. In order to determine which
key was pressed, the KBI will allow the interrupt service routine to poll port 0.
KBI1~KBI3 support both rising and falling edge detection, and the remaining pins support low level
detection only.
P0.7
KBI.7
P0.6
KBI.6
P0.5
KBI.5
P0.4
KBF (KBI
Interrupt)
KBI.4
P0.3
or
EKB
(From EIE Register)
KBI.3
P0.2
or
KBI.2
P0.1
or
KBI.1
P0.0
KBI.0
Figure 21-1: KBI inputs
SYMBOL
DEFINITION
ADDRESS
MSB
AUXR1
AUX FUNCTION REGISTER 0
A2H
KBF
BOD
BOI
LPBOD SRST
BIT ADDRESS, SYMBOL
ADCEN RCCLK BOS
0X00 0000B
KBI
KEYBOARD INTERRUPT
A1H
KBI.7
KBI.6
KBI.5
KBI.4
KBI.2
0000 0000B
- 146 -
KBI.3
KBI.1
LSB RESET
KBI.0
Preliminary N79E875 Data Sheet
22 I/O PORT CONFIGURATION
N79E875 series have maximum four 8 bits I/O ports; port 0, port 1, port 2, port 3 and one partial port
4; P4.0 to P4.3. All pins of I/O ports can be configured to one of four types by software except P1.4 is
only input pin or set to reset pin. When P1.4 is configured reset pin by RPD=0 in the CONFIG0
register, the device can support 33 I/O pins by use Crystal. If used on-chip RC oscillator and the P1.4
is configured input pin, the device can be supported up to 36 I/O pins. The I/O ports configuration
setting as below table.
PxM1.y
PxM2.y
Port Input/Output Mode
0
0
Quasi-bidirectional
0
1
Push-Pull
1
0
Input Only (High Impedance)
1
1
Open Drain
Table 22-1: I/O port configuration table
All port pins can be determined to high or low after reset by configure PRHI bit in the CONFIG0
register. After reset, these pins are in quasi-bidirectional mode. The port pin of P1.4 only is a Schmitt
trigger input.
Enabled toggle outputs from Timer 0 and Timer 1 by T0OE and T1OE on AUXR2 register, the output
frequency of Timer 0 or Timer 1 is by Timer overflow.
Each I/O port of N79E875 series may be selected to use TTL level inputs or Schmitt inputs by P(n)S
bit on PORTS register; where n is 0, 1, 2, 3 or 4. When P(n)S is set to 1, Ports are selected Schmitt
trigger inputs on Port(n). The P1.0 (XTAL2) can be configured as clock output when used on-chip RC
or external Oscillator is clock source, and the frequency of clock output is divided by 4 on on-chip RC
clock or external Oscillator.
P1.5 and P1.6(/INT0) that supported I2C are permanent open drain pins.
22.1 Quasi-Bidirectional Output Configuration
The default port output configuration for standard N79E875 series I/O ports is the quasi-bidirectional
output that is common on the 80C51 and most of its derivatives. This output type can be used as both
an input and output without the need to reconfigure the port. This is possible because when the port
outputs a logic high, it is weakly driven, allowing an external device to pull the pin low. When the pin is
pulled low, it is driven strongly and able to sink a fairly large current. These features are somewhat
similar to an open drain output except that there are three pull-up transistors in the quasi-bidirectional
output that serve different purposes. One of these pull-ups, called the “very weak” pull-up, is turned on
whenever the port latch for the pin contains a logic 1. The very weak pull-up sources a very small
current that will pull the pin high if it is left floating.
A second pull-up, called the “weak” pull-up, is turned on when the port latch for the pin contains a logic
1 and the pin itself is also at a logic 1 level. This pull-up provides the primary source current for a
quasi-bidirectional pin that is outputting a 1. If a pin that has a logic 1 on it is pulled low by an external
device, the weak pull-up turns off, and only the very weak pull-up remains on. In order to pull the pin
low under these conditions, the external device has to sink enough current to overpower the weak
pull-up and take the voltage on the port pin below its input threshold.
The third pull-up is referred to as the “strong” pull-up. This pull-up is used to speed up low-to-high
transitions on a quasi-bidirectional port pin when the port latch changes from a logic 0 to a logic 1.
- 147 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
When this occurs, the strong pull-up turns on for a brief time, two CPU clocks, in order to pull the port
pin high quickly. Then it turns off again. The quasi-bidirectional port configuration is shown as below.
VDD
2 CPU
Clock Delay
P
Strong
P
Very
Weak
P
Weak
Port Pin
Port Latch
Data
N
Input Data
Figure 22-1: Quasi-Bidirectional Output
22.2 Open Drain Output Configuration
The open drain output configuration turns off all pull-ups and only drives the pull-down transistor of the
port driver when the port latch contains a logic 0. To be used as a logic output, a port configured in this
manner must have an external pull-up, typically a resistor tied to VDD. The pull-down for this mode is
the same as for the quasi-bidirectional mode. The open drain port configuration is shown as below.
Port Pin
Port Latch
Data
N
Input Data
Figure 22-2: Open Drain Output
22.3 Push-Pull Output Configuration
The push-pull output configuration has the same pull-down structure as both the open drain and the
quasi-bidirectional output modes, but provides a continuous strong pull-up when the port latch
contains a logic 1. The push-pull mode may be used when more source current is needed from a port
output. The push-pull port configuration is shown below. One port pin that cannot be configured is
P1.4. P1.4 may be used as a Schmitt trigger input if the device has been configured for an internal
reset and is not using the external reset input function /RST.
The value of port pins at reset is determined by the PRHI bit in the CONFIG0 register. Ports may be
configured to reset high or low as needed for the application. When port pins are driven high at reset,
they are in quasi-bidirectional mode and therefore do not source large amounts of current. Every
output on the device may potentially be used as a 20mA sink LED drive output. However, there is a
maximum total output current for all ports which must not be exceeded.
All ports pins of the device have slew rate controlled outputs. This is to limit noise generated by quickly
switching output signals. The slew rate is factory set to approximately 10 ns rise and fall times. The
- 148 -
Preliminary N79E875 Data Sheet
PORTS SFR bits can enable Schmitt trigger inputs on each I/O port. The AUXR2 register has bits to
enable toggle outputs from Timer 0 and Timer 1, and enable a clock output if either the internal RC
oscillator or external clock input is being used. The last two functions are described in the
Timer/Counters and Oscillator sections respectively. Each I/O port of this device may be selected to
use TTL level inputs or Schmitt inputs with hysteresis. A single configuration bit determines this
selection for the entire port. Port pin P1.4 always has a Schmitt trigger input.
VDD
P
Port Pin
Port Latch
Data
N
Input Data
Figure 22-3: Push-Pull Output
22.4 Input Only Configuration
By configure this mode, the ports are only digital input and disable digital output. The N79E875 series
can select input pin to Schmitt trigger or TTL level input by PxM1.y and PxM2.y registers.
22.5 SFR of I/O Port Configuration
SYMBOL
DEFINITION
ADDRESS
MSB
BIT ADDRESS, SYMBOL
P4M2
PORT 4 OUTPUT MODE 2
FBH
-
-
-
-
P4M1
PORT 4 OUTPUT MODE 1
FAH
-
-
-
-
P4M1.3 P4M1.2 P4M1.1 P4M1.0 XXXX 0000b
PORTS
PORT SHMITT REGISTER
ECH
-
-
-
P4S
P3S
P2M2
PORT 2 OUTPUT MODE 2
B6H
P2M2.7 P2M2.6 P2M2.5 P2M2.4 P2M2.3 P2M2.2 P2M2.1 P2M2.0 0000 0000b
P2M1
PORT 2 OUTPUT MODE 1
B5H
P2M1.7 P2M1.6 P2M1.5 P2M1.4 P2M1.3 P2M1.2 P2M1.1 P2M1.0 0000 0000b
P1M2
PORT 1 OUTPUT MODE 2
B4H
P1M2.7 -
-
-
P1M2.3 P1M2.2 P1M2.1 P1M2.0 000X 0000b
P1M1
PORT 1 OUTPUT MODE 1
B3H
P1M1.7 -
-
-
P1M1.3 P1M1.2 P1M1.1 P1M1.0 000X 0000b
P0M2
PORT 0 OUTPUT MODE 2
B2H
P0M2.7 P0M2.6 P0M2.5 P0M2.4 P0M2.3 P0M2.2 P0M2.1 P0M2.0 0000 0000b
P0M1
PORT 0 OUTPUT MODE 1
B1H
P0M1.7 P0M1.6 P0M1.5 P0M1.4 P0M1.3 P0M1.2 P0M1.1 P0M1.0 0000 0000b
P3M1
PORT 3 OUTPUT MODE 1
9EH
P3M1.7 P3M1.6 P3M1.5 P3M1.4 P3M1.3 P3M1.2 P3M1.1 P3M1.0 0000 0000b
- 149 -
LSB RESET
P4M2.3 P4M2.2 P4M2.1 P4M2.0 XXXX 0000b
P2S
P1S
P0S
XXX0 0000B
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
23 OSCILLATOR
N79E875 series provide three oscillator input options. These are configured at CONFIG register
(CONFIG0) that include On-Chip RC Oscillator Option, External Clock Input Option and Crystal
Oscillator Input Option. The Crystal Oscillator Input frequency may be supported from 4MHz to
40MHz, and optionally with capacitor or resister.
Crystal Oscillator
00b
Internal RC Oscillator
01b
External Clock input
11b
(CONFIG0)
16 bits Ripple
Counter
FOSC1
CPU Clock
FOSC0
Power Monitor Reset
Power Down
Figure 23-1: Oscillator
23.1 On-Chip RC Oscillator Option
The On-Chip RC Oscillator is programmable to 22.1184MHz/11.0592MHz +/- 2% (selectable by FS1
config bit) frequency to support clock source. When FOSC1, FOSC0 = 01b, the On-Chip RC Oscillator
is enabled. A clock output on P1.0 (XTAL2) may be enabled when On-Chip RC oscillator is used.
23.2 External Clock Input Option
The clock source pin (XTAL1) is from External Clock Input by FOSC1, FOSC0 = 11b, and frequency
range is form 0Hz up to 40MHz. A clock output on P1.0 (XTAL2) may be enabled when External Clock
Input is used.
N79E875 series support a clock output function when either the on-chip RC oscillator or the external
clock input options is selected. This allows external devices to synchronize to the device. When
enabled, via the ENCLK bit in the AUXR2 register, the clock output appears on the XTAL2/CLKOUT
pin whenever the on-chip oscillator is running, including in Idle Mode. The frequency of the clock
output is 1/4 of the CPU clock rate. If the clock output is not needed in Idle Mode, it may be turned off
prior to entering Idle mode, saving additional power. The clock output may also be enabled when the
external clock input option is selected.
- 150 -
Preliminary N79E875 Data Sheet
24 POWER MONITORING FUNCTION
Power-On Detect and Brownout are two additional power monitoring functions implemented in
N79E875 series to prevent incorrect operation during power up and power drop or loss.
24.1 Power On Detect
The Power–On Detect function is a design to detect power up after power voltage reaches to a level
where Brownout Detect can work. After power on detect, the POR (PCON.4) will be set to “1” to
indicate an initial power up condition. The POR flag will be cleared by software.
24.2 Brownout Detect
The N79E875 has an on-chip Brown-out Detection (BOD) circuit for monitoring the VDD level during
operation by comparing it to a fixed trigger level. There are 3 trigger levels of BOD selected by 2
config0 bits BOV[1:0] suited for wide voltage use. The following table shows the brownout voltage
levels supported;
BOV bits
(CONFIG0.4-3)
Brownout voltage
detect level
00
4.5V
01
3.8V
1x
2.6V (default)
Table 24-1: Brownout Voltage Detect Levels
When the Brownout voltage is drop to the select level, the brownout detector will detect and keeps this
active until VDD is returns to above brownout Detect voltage. The Brownout Detect block is as follow.
BOS
(Config-bits)
BOV[1:0]
BOD
LPBOV
BOI
Brownout
Detect
Circuit
0
To Reset
1
To Brownout interrupt
BOF
Figure 24-1: Brownout Detect Block
When Brownout Detect is enabled by BOD (AUXR1.6), the BOF (PCON.5) flag will be set that it
causes brownout reset or interrupt, and BOF will be cleared by software. If BOI (AUXR1.5) is set to
“1”, the brownout detect will cause interrupt via the EA (IE.7) and EBO (IE.5) bits is set.
- 151 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
VDD
VBOR+
Nominal Brownout Voltage
VBOR -
Brown-out Status
BOS
BOI=0 to select
Brown-out Reset
TBOR
Reset
8ms
Clear by Software
Clear by Software
BOI=1 to select
Brown-out Interrupt
BOF
Set by Hardware
Hysterisis voltage is about 30mV~150mV for each BOD voltage level
TBOR :Brown-out Reset Delay Time with about 8mS
Figure 24-2: Brown-out Voltage Detection
24.3 SFR of Brown-out Detection
SYMBOL
DEFINITION
ADDRESS
MSB
BIT ADDRESS, SYMBOL
AUXR1
AUX FUNCTION REGISTER 1
A2H
KBF
BOD
PCON
POWER CONTROL
87H
SMOD
SMOD0 BOF
- 152 -
BOI
LSB RESET
LPBOD SRST
ADCEN RCCLK BOS
0X00 0000B
POR
GF0
00XX 0000B
GF1
PD
IDL
Preliminary N79E875 Data Sheet
25 PULSE-WIDTH-MODULATED (PWM) OUTPUTS
In SA8218, the build-in PWM function is specially designed for driving motor control applications.
Using the PWM and timer2/input capture module with proper control flow by software can drive 3phase Brushless DC motor, 3-phase AC induction motor and DC motor.
25.1 PWM Features
The PWM block supports the features as below;











Four independent 12-bit PWM duty control units with maximum 8 port pins:

4 independent PWM output: PWM0, PWM2, PWM4 and PWM6

3 complementary PWM pairs, with each pin in a pair mutually complement to each other
and capable of programmable dead-time insertion:
(PWM0,PWM1), (PWM2,PWM3) and (PWM4,PWM5)

3 synchronous PWM pairs, with each pin in a pair in-phase:
(PWM0,PWM1), (PWM2,PWM3) and (PWM4,PWM5)
Group control bit:
PWM2 and PWM4 are synchronized with PWM0
Support Edge aligned mode and Center aligned mode.
Programmable dead-time insertion between complementary paired PWMs.
Each pin of from PWM0 to PWM5 has independent polarity setting control.
Mask output control for Electrically Commutated Motor operation.
Tri-state output at reset.
Hardware brake protections.
Support 2 independent interrupts.

Interrupt is synchronously requested at PWM frequency when up/down counter comparison
matched (edge aligned mode) or underflow (center aligned mode).

Interrupt is requested when external brake pins asserted
The PWM signals before polarity control stage are defined in the view of positive logic. The PWM
ports is active high or active low are controlled by polarity control register.
High Source/Sink current.
After CPU reset the internal output of the each PWM channels depends on the polarity setting. The
interval between successive outputs is controlled by a 12–bit up/down counter which uses the
oscillator frequency with configurable internal clock pre-scalar as its input. The PWM counter clock
has the frequency as the clock source FPWM = FCPU/Pre-scalar. The Figure 25-1 is the block diagram
for PWM.
- 153 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
PWM Generator
PWM
timebase
control
PWM
control
logic
PWM0
Freq/Duty
PWM0 & PWM1
Set complementary &
Dead-time insertion
PG0
MP0
PWM0
PG1
MP1
PWM1
PWM2
Freq/Duty
PWM2 & PWM3
Set complementary &
Dead-time insertion
PG2
PWM4
Freq/Duty
PWM4 & PWM5
Set complementary &
Dead-time insertion
PG4
MP4
PWM4
PG5
MP5
PWM5
PWM6
Freq/Duty
PG3
PG6
Mask
Output
Control
MP2
MP3
0
1
Brake
&
Polarity
Control
PWM2
PWM3
PWM6
PWM7
Brake
control
Brake Condition
Figure 25-1: PWM Block Diagram
- 154 -
Preliminary N79E875 Data Sheet
25.2 PWM Operation
The following diagram shows PWM time-base generator.
12-bit
LOAD
PWMP Register
load
A
PWMRUN
Fcpu
Prescaler
(1/1, 1/2, 1/4, 1/16)
Fpwm
12-bits up/down
counter
control block
Counter match
PWMP/
underflow
Q
Q
S/W Clear
X
Edge/Center
CLRPWM
SET
CLR
(PWMDIV.1~0)
PWMTYPE
D
Y
Clear Counter
PWM Period Interrupt
PWMF
++
PWM0
PWM0
(P2.0)
PWM1
PWM1
(P3.0)
PWM2
PWM2
(P2.1)
PWM3
PWM3
(P3.1)
PWM4
PWM4
(P2.2)
PWM5
PWM5
(P3.2)
Compare Register0
A
X
PWM0 register
-
12-bit
Y
0
1
+
Compare Register2
GRP bit
A
X
PWM2 register
Dead-time
insertion
&
Mask control
&
Brake control
&
Set polarity
-
12-bit
Y
0
1
+
Compare Register4
A
PWM4 register
X
P6Ctrl
-
P0.7
12-bit
Y
0
+
1
1
Compare Register6
0
PWM6
(P0.7)
PIO.6
A
PWM6 register
P3.3
12-bit
0
1
PWM7
(P3.3)
PIO.7
Figure 25-2: PWM Time-base Generator
- 155 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
The overall functioning of the PWM module is controlled by the contents of the PWMCON1, PWMB
and PWMCON3 registers. The operation of most of the control bits is straightforward. PWMCON1.7
(PWMRUN) allows the PWM to be either in the run or idle state. The transfer of the data from the
PWMP register to 12-bit counter will occur on the rising edge of PWMCON1.7 (PWMRUN) or during
PWMRUN with PWMCON1.6 (load) and counter match/underflow occur. The transfer of the data from
the PWMn registers to the compare registers is controlled by the PWMCON1.6 (load) (with condition
that PWMRUN=1 and match/underflow occurs).
Notes:
■ A compare value greater than the counter reloaded value resulted in the PWM output being
permanently high. In addition there are two special cases. If compare register is set to 000H, the
PWMn output will stay at low, and if compare register is set to FFFH, the PWMn output will stuck
at high until there is a change in the compare register. [n = 0-3].
■ During ICP mode, PWM pins will be tri-stated. PWM operation will be stop. When exit from ICP
mode, the PWM pins will follow the last SFR port values.
The PWMP register fact that writes are not into the Counter register that controls the counter; rather
they are into a holding register. The transfer of data from this holding register, into the register which
contains the actual reload value, occurs when the following conditions are met; Load = 1, PWMRUN =
1 and PWM match/underflow. The width of each PWM output pulse is determined by the value in the
appropriate compare register. Each PWM register pair of (PWMPH,PWMPL), (PWM0H,PWM0L),
(PWM2H,PWM2L), (PWM4H,PWM4L) and (PWM6H, PWM6L), in the format of 12-bit width by
combining 4 LSB of high byte register and 8 bits of low byte register, decides the PWM period and
each channel’s duty cycle.
Please take note that duty registers PWM0~6 and period registers PWMP are double-buffered
registers used to set the duty cycle and counting period for the PWM time base respectively. For the
st
nd
1 buffer it is accessible by user while the 2 buffer holds the actual compare value used in the
nd
present period. Load bit must be set to 1 to enable the value to be loaded in to the 2 buffer register
when counter underflow/match.
25.2.1 PWM Operation Mode
This device supports 2 operation modes: Edge-aligned and Centre-aligned mode.
The following equations show the formula for period and duty for each pwm operation mode:
Edge aligned:
Period
= (PWMP +1) * CPU clock period/pre-scalar
Duty
= duty * CPU clock period /pre-scalar
Centre aligned:
Period
= (PWMP* 2) * CPU clock period/pre-scalar
Duty
= (duty*2 - 1) * CPU clock period/pre-scalar
Note: “duty” refers to PWM0/2/4/6 register value.
25.2.2 Edge aligned PWM (up-counter)
In Edge-aligned PWM Output mode, the 12 bits counter will starts counting from 0 to match with the
value of the duty cycle PWM0 (old), when this happen it will toggle the PWM0 generator output to low.
The counter will continue counting to match with the value of the period register PWMP (old), at this
moment, it toggles the PWM0 generator output to high and new PWM0 (new) and PWMP(new) are
updated with Load=1 and request the PWM interrupt if PWM interrupt is enabled(EIE1.6=1).
- 156 -
Preliminary N79E875 Data Sheet
Figure 25-3, Figure 25-4 and Figure 25-5 depict the Edge-aligned PWM timing and operation flow.
If 12-bit up counter matches PWMP
1. Update new duty cycle register (PWM0,2,4 and 6) if Load = 1
2. Update new PWMP period register (PWMP) if Load = 1
PWMP (new)
PWMP (old)
PWM0 (new)
PWM0 (old)
New Duty Cycle
PWM0
generator ouput
PWM period
New PWM0
is written
New PWM period
New PWMP
is written
Figure 25-3: Edge-Aligned PWM
PWMP (7FF)
PWM0 (3FF)
PWMF
(INT_TYPE=X)
s/w
clear
s/w
clear
s/w
clear
s/w
clear
s/w
clear
PWM0
generator ouput
PWM
Period
Figure 25-4: PWM0 Edge Aligned Waveform Output
- 157 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Set PMOD[1:0] =00b
PWMTYPE = 0b
Start:
Load = 1
PWMRUN = 1
CLRPWM = 1
H/w will load PWMn and PWMP to working registers.
“Load” bit will be auto-cleared.
PWMn output:
1 if counter < PWMn
0 if counter > PWMn
Counter counting up
Counter =
PWMn?
no
PWMn output toggle
Counter continue counting up
Counter =
PWMP?
no
PWMn output toggle
Reset counter to zero (h/w)
PWMF flag set
no
Load = 1?
H/w willl load in new PWMP/PWMn
value to working registers.
Figure 25-5: Edge-Aligned Flow Diagram
- 158 -
Preliminary N79E875 Data Sheet
25.2.3 Center Aligned PWM (up/down counter)
The Center-aligned PWM signals are produced by the module when the PWM time base is configured
in an Up/Down Counting mode. The counter will start counting-up from 0 to match the value of PWM0
(old), this will cause the toggling of the PWM0 generator output to low. The counter will continue
counting to match with the PWMP (old). Upon reaching this states counter is configured automatically
to down counting, when counter matches the PWM0 (old) value again the PWM0 generator output
toggles to high. Once the counter underflows it will update the PWM period register PWMP(new) and
duty cycle register PWM0(new) with Load = 1.
In Center-aligned mode, the PWM interrupt is requested at down-counter underflow if INT_TYPE
(PWMCON3.0)=0 or at up-counter matching with PWMP if INT_TYPE(PWMCON3.0)=1.
Figure 25-6, Figure 25-7 and Figure 25-8 depict the Center-aligned PWM timing and operation flow.
If 12-bit up/down counter underflows
1. Update new duty cycle register (PWM0,2,4 and 6) if Load = 1
2. Update new PWMP period register (PWMP) if Load = 1
PWMP (new)
PWMP (old)
PWM0 (new)
PWM0 (old)
New Duty
Cycle
PWM0
generator ouput
PWM period
New PWM0
is written
PWM period
New PWM period
New PWMP
is written
Figure 25-6: Center-Aligned Mode
- 159 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
PWMP (7FF)
PWM0 (3FF)
PWMF
(INT_TYPE=0)
s/w
clear
s/w
clear
s/w
clear
PWMF
(INT_TYPE=1)
s/w
clear
s/w
clear
PWM0
generator ouput
PWM
Period
PWM
Period
Figure 25-7: PWM0 Center Aligned Waveform Output
- 160 -
Preliminary N79E875 Data Sheet
Set PMOD[1:0] =10b
PWMTYPE = 1b
Start:
Load = 1
PWMRUN = 1
CLRPWM = 1
H/w will load PWMn and PWMP to working registers.
“Load” bit will be auto-cleared (h/w).
PWMn output:
1 if counter < PWMn
0 if counter > PWMn
Counter counting up
Counter =
PWMn?
no
PWMn output toggle
Counter continue counting up
Counter =
PWMP?
no
Counter counting down from PWMP
Counter =
PWMn?
PWMn output toggle
Counter continue counting down
Counter = 0?
no
PWMF flag set (INT_TYPE = 0)
no
Load = 1?
H/w willl load in new PWMP/PWMn
value to working registers.
Figure 25-8: Center-aligned Flow Diagram (INT_TYPE = 0)
- 161 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
25.3 PWM Brake Function
This device supported 2 external brake pins; BKP0 and BKP1 pins. Both brake pins have each a 4degree digital filter that is user controllable through BKnFILT.1-0 bits (n=0,1). The Brake function is
controlled by the contents of the SFR PWMCON1-4 registers.
BK0FILT.1-0
Fosc/1,/2,/4,/8
BKP0
pin (P1.7)
Noise Filter
FBK0
PWM0~5 outputs
follow PWMnB
(see note)
BKEN0
Brake Detect
Interrupt
BK1FILT.1-0
EBRK
Fosc/1,/2,/4,/8
BKP1
pin (P1.5)
(Open-drian)
(From EIE Register)
Noise Filter
FBK1
BKEN1
Low level
detection
PWM0~5 outputs
follow PWMnB
(see note)
AutoBK1
Note: PWM output level during brake condition will also depend on PNP .n to control PWMnB polarity.
If PNP.n = 0, PWMn output = PWMnB.
If PNP.n = 1, PWMn output = invert(PWMnB).
Figure 25-9: PWM Brake Function
The following table summaries the effect of each brake pins; the Figure 25-10 and Figure 25-11
illustrate the brake signals vs PWM operation.
Brake Pin
Brake trigger condition
Actions
BKP0
A falling edge at BKP0
1. FBK0 flag set by H/W; but cleared by S/W.
2. PWM0~5 outputs follow PWMnB bits. PNP bits
are also able to control the polarity of PWMnB.
If PNP.n=0, PWMn pin output = PWMnB.
If PNP.n=1, PWMn pin output = invert(PWMnB).
3. H/W sets PWMRUN=0 to stop PWM generator.
4. PWM0~5 pin outputs does not resume on
release of BKP0 pin. PWM0~5 will remain in
PWMnB state after the s/w clearing of FBK0 flag,
if user keep PWMRUN = 0. If user re-enabled
PWMRUN, the brake state will be release on
next PWM cycle/period.
BKP1
A falling edge at BKP1;
1. FBK1 flag set by the falling edge at BKP1; but
cleared by S/W.
2. If AUTOBK1=1 and BKP1 detected as low level,
Low level state
- 162 -
Preliminary N79E875 Data Sheet
PWM0~5 pin outputs follow PWMnB bits.
Otherwise, PWM0~5 will continue follow PWM
generators’ output. In both situations, PNP bits
are also able to control port polarity.
3. PWMRUN bit remain asserted to keep PWM
generators running.
4. PWM0~5 resume if BKP1 pin state returns to
high state. PWM0~5 will resume on start of next
PWM cycle/period.
Note that user require to enable brake enable bits, BKENn, in order for the above to be effective.
PWM0 register
PWM
counter
BKP1
BKP0
FBK0
Port PWM0
PWM0 at
brake state
PWM0 at
brake state
Port PWM1
PWM1 at
brake state
PWM1 at
brake state
*Initially, AutoBK1=1 and BKEN0=1
PWM signals resume at next start
of PWM period
Figure 25-10: PWM brake condition (edge aligned mode)
PWM0 register
PWM
counter
BKP1
BKP0
FBK0
Port PWM0
PWM0
at brake state
PWM0 at
brake state
Port PWM1
PWM1
at brake state
PWM1 at
brake state
*Initially, AutoBK1=1 and BKEN0=1
PWM signals resume at next start
of a PWM period
Figure 25-11: PWM brake condition (centre aligned mode)
Since the both brake conditions being asserted will automatically cause FBKn flag will be set, the user
- 163 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
program can poll these brake flag bits or enable PWM’s brake interrupt to determine which condition
causes a brake to occur.
25.4 PWM Output Driving Control
3-State Control
(HZ_Even, HZ_Odd)
PMEn
PMDn
Dead-time
Insertion
PGn
(PXM2.Y, PXM1.Y)
PIOn
1
MPn
Brake &
Polarity
Control
0
Mask control
I/O bit
Polarity control
1
0
3-state/
push-pull/
quasi/
open drain
Driving mode
control
PWMn
Output
Note: n=0~5
Figure 25-12: PWM Output Driving Control
The driving type of PWM output ports can be initialized as Tri-state type or other type dependent with
SFR PxMy setting after any reset. As show in the above diagram, PWM output structures are
controllable through option bits (config1.0-1), SFR (PWMCON3.HZ_Even,HZ_Odd) bits and SFR
PxMy mode registers.
HZ_Even/HZ_Odd
(SFR PWMCON3 BITS)
PWM Output Drive mode
0
Depend on PxMy SFR.
1
Driving mode = Hi-Z.
Note: SFR bits for HZ_Even and HZ_Odd are latched from config1.0 and config1.1, respectively,
during all reset.
25.5 PWM modes
This powerful PWM unit supports Independent mode which may be applied to DC and BLDC motor
system, Complementary mode with dead-time insertion which may be used in the application of AC
induction motor and synchronous motor, Synchronous mode that makes both pins of each pair are in
phase. Besides, the Group mode, forces the PWM0, PWM2 and PWM4 synchronous with PWM0
generator, may simplify updating duty control in DC and BLDC motor applications.
25.5.1 Independent mode
Independent mode is enabled when PMOD.1-0 = 00b.
On default, the PWM is operating in independent mode, with four PWM even channels outputs:
PWM0, PWM2, PWM4 and PWM6. Each channel is running off its own duty-cycle generator module.
PWM6 can be user controllable to output from PWM2 generator if P6CTRL = 1.
PWM7 is taking output from PWM4 generator.
- 164 -
Preliminary N79E875 Data Sheet
25.5.2 Complementary mode
Complementary mode is enabled when PMOD.1-0 = 01b.
In this module there are three duty-cycle generators utilized for complementary mode, with total of
three PWM output pair pins in this module. The total six PWM outputs are grouped into output pairs of
even and odd numbered outputs. In complimentary modes, the internal odd PWM signal PGx, refer to
Figure 25-1, must always be the complement of the corresponding even PWM signal. For example,
PG1 will be the complement of PG0. PG3 will be the complement of PG2 and PG5 will be the
complement of PG4. The time base for the PWM module is provided by its own 12-bit timer, which
also incorporates selectable pre-scalar options.
25.5.2.1 Dead-Time Insertion
The dead time generator inserts an “off” period called “dead time” between the turnings off of one pin
to the turning on of the complementary pin of the paired pins. This is to prevent damage to the power
switching devices that will be connected to the PWM output pins. The complementary output pair
mode has an 8-bit counter used to produce the dead time insertion. The complementary outputs are
delayed until the timer counts down to zero.
The dead-time can be calculated from the following formula:
Dead-time = FCPU * (DTCNT.[7:0]+1).
The timing diagram below indicates the dead time insertion for one pair of PWM signals.
PG0 without
Dead-Time
PG1 without
Dead-Time
PWM0 with
Dead-Time
PWM1 with
Dead-Time
Dead-Time Interval
Effect of Dead-Time for complementary pairs
Figure 25-13: Dead-Time Insertion
PDTC0 and DTCNT have time access protection in writing access. In Power inverter application, a
dead time insertion avoids the upper and lower switches of the half bridge from being active at the
same time. Hence the dead time control is crucial to proper operation of a system. Some amount of
time must be provided between turning off of one PWM output in a complementary pair and turning on
the other transistor as the power output devices cannot switch instantaneously.
25.5.3 Synchronous mode
Synchronous mode is enabled when PMOD.1-0 = 10b.
In the synchronization mode the PWM pair signals from PWM Generator are in-phase.
PG1=PG0, PG3=PG2 and PG5=PG4.
25.5.4 Group mode
Group mode is enabled when PMOD.1-0 = 11b.
- 165 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
This device support Group Mode control. This control allows all even PWM channels output to be duty
controllable by PWM0 duty register.
If GRP = 1, both (PG2, PG3) and (PG4, PG5) pairs will follow (PG0, PG1), which imply;
PG4 = PG2 = PG0;
PG5 = PG3 = PG1 = invert (PG0) if Complementary mode is enabled (PMOD.1-0=01b)
25.6 Polarity Control
Each PWM port of from PWM0 to PWM5 has independent polarity control to configure the polarity of
active state of PWM output. At default, the PWM output is active high. This implies the PWM OFF
state is low and ON state is high. This is controllable through SFR PNP on each individual PWM
channel.
The following diagram show the initial state before PWM starts with different polarity settings.
Initial State
PWM Starts
PG0
PG1
PWM0
off
PWM1
off
PWM0
off
PWM1
off
PWM0
off
PWM1
off
PWM0
off
PWM1
off
on
off
on
off
on
off
on
off
off
on
off
on
off
on
off
on
on
(PNP.0=0)
off
(PNP.1=0)
on
(PNP.0=1)
off
(PNP.1=0)
on
(PNP.0=0)
off
(PNP.1=1)
on
off
(PNP.0=1)
(PNP.1=1)
Dead-time insertion; It is only effective in complementary mode
NPx: Negative Polarity control bits; It controls the PWM output initial
state and polarity
PWM output with dead-time insertion and polarity control
Figure 25-14: Initial state and polarity control with rising edge dead time insertion
25.7 PWM Mask Output
Each of the PWM output channels can be manually overridden by using the appropriate bits in the
SFR PME and PMD registers to drive the PWM I/O pins to specified logic states independent of the
duty cycle comparison units. The PWM mask bits are useful when controlling various types of
Electrically Commutated Motor (ECM) like a BLDC motor. The PMD register contains six bits,
PMD[5:0] determine which PWM I/O pins will be overridden. On reset PMD is 00H.
- 166 -
Preliminary N79E875 Data Sheet
The PME register contains six bits, PME[5:0] determine the state of the PWM I/O pins when a
particular output is masked via the PMD bits. On reset PME is 00H. The PME[5:0] bits are active-high.
When the PME[5:0] bits are set, the corresponding PMD[5:0] bit will have effect on the PWM channel.
When one of the PME bits is sets, the output on the corresponding PWM I/O pin will be determined by
the state of the PMD bit and polarity control bit.
Bit Number
0
2
4
0
2
4
1
3
5
1
3
5
3-phase
load
Symbol legend of a typical
3-phase inverter
PME
PMD
PME
PMD
PME
PMD
PME
PMD
0
1
1
x
0
0
0
1
1
x
0
0
1
0
1
0
x
0
1
0
1
0
x
0
0
1
1
x
1
0
0
1
1
x
0
1
1
0
1
0
x
1
1
0
1
1
x
0
PWM0
PWM0
PWM2
PWM2
PWM1
PWM1
PWM3
PWM3
Current path = (0,5)
Current path = (2,5)
Current path = (2,1)
Example 1.2
Example 1.3
Example 1.4
Current path = (0,3)
Example 1.1
Mask Control in Complementary Mode
PME
PMD
PME
PMD
PME
PMD
PME
PMD
0
1
1
x
0
0
0
1
1
x
0
0
1
0
1
0
x
0
1
0
1
0
x
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
PWM0
PWM0
PWM2
PWM2
Current path = (0,3)
Current path = (0,5)
Current path = (2,5)
Current path = (2,1)
Example 2.1
Example 2.2
Example 2.3
Example 2.4
Mask Control in Independent Mode
Figure 25-15 Illustration of Mask Control
Figure above shows example of how PWM mask control can be used for the override feature.
In example 1.1; PME[5:0] = 11 1100b, PMD[5:0] = 0010xxb (complementary mode)
- 167 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet



PWM channels 2-5 are masked from pwm frequency/duty generators.
PWM channels 2-5 outputs are determined by state of PMD bits.
PWM channels 0 and 1 follow pwm generator.
Switch 0 (On/Off) : Control by PWM0 (pwm0 frequency/duty generator).
Switch 1 (On/Off)
: Control by PWM1 (inverted of PWM0, complementary mode).
Switch 2 (Off)
: PMD.2 = 0.
Switch 3 (On)
: PMD.3 = 1.
Switch 4 (Off)
: PMD.4 = 0.
Switch 5 (Off)
: PMD.5 = 0.
In example 1.3; PME[5:0] = 11 0011b, PMD[5:0] = 10xx00b (complementary mode)



PWM channels 0, 1, 4 and 5 are masked from pwm frequency/duty generators.
PWM channels 0, 1, 4 and 5 outputs are determined by state of PMD bits.
PWM channels 2 and 3 follow pwm generator.
Switch 0 (Off)
: PMD.0 = 0.
Switch 1 (Off)
: PMD.1 = 0.
Switch 2 (On/Off)
: Control by PWM2 (pwm2 frequency/duty generator).
Switch 3 (On/Off)
: Control by PWM3 (inverted of PWM2, complementary mode).
Switch 4 (Off)
: PMD.4 = 0.
Switch 5 (On)
: PMD.5 = 1.
In example 2.1; PME[5:0] = 11 1110b, PMD[5:0] = 00100xb (independent mode)



PWM channels 1-5 are masked from pwm frequency/duty generators.
PWM channels 1-5 outputs are determined by state of PMD bits.
PWM channel 0 follow pwm generator.
Switch 0 (On/Off) : Control by PWM0 (pwm0 frequency/duty generator).
Switch 1 (Off)
: PMD.1 = 0.
Switch 2 (Off)
: PMD.2 = 0.
Switch 3 (On)
: PMD.3 = 1.
Switch 4 (Off)
: PMD.4 = 0.
Switch 5 (Off)
: PMD.5 = 0.
In example 2.3; PME[5:0] = 11 1011b, PMD[5:0] = 100x00b (independent mode)



PWM channels 0,1,3,4 and 5 are masked from pwm frequency/duty generators.
PWM channels 0,1,3,4 and 5 outputs are determined by state of PMD bits.
PWM channel 2 follow pwm generator.
Switch 0 (Off)
: PMD.0 = 0.
Switch 1 (Off)
: PMD.1 = 0.
Switch 2 (On/Off)
: Control by PWM2 (pwm2 frequency/duty generator).
- 168 -
Preliminary N79E875 Data Sheet
Switch 3 (Off)
: PMD.3 = 0.
Switch 4 (Off)
: PMD.4 = 0.
Switch 5 (On)
: PMD.5 = 1.
- 169 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
25.8 SFR of PWM Unit
SYMBOL
DEFINITION
ADDRE
SS
MSB
BIT ADDRESS, SYMBOL
PWM6H
PWM 6 HIGH BITS REGISTER
FEH
PWM6L
PWM 6 LOW BITS REGISTER
FDH
PWM6.7
PWMCON4
PWM CONTROL REGISTER 4
FCH
BK1FILT.1 BK1FILT.0
PMD
PWM MASK DATA REGISTER
EEH
-
-
PMD.5
PMD.4
PMD.3
PMD.2
PMD.1
PMD.0
XX00 0000b
PME
PWM MASK ENABLE
REGISTER
EDH
-
-
PME.5
PME.4
PME.3
PME.2
PME.1
PME.0
XX00 0000b
PWMB
PWM BRAKE OUTPUT
DFH
-
-
PWM5B
PWM4B
PWM3B
PWM2B
PWM1B
PWM0B
XX00 0000b
PWM2L
PWM 2 LOW BITS REGISTER
DDH
PWM2.7
PWM2.6
PWM2.5
PWM2.4
PWM2.3
PWM2.2
PWM2.1
PWM2.0
0000 0000b
PWMCON1
PWM CONTROL REGISTER 1
DCH
PWMRUN LOAD
PWMF
CLRPWM
FBK1
FBK0
PMOD.1
PMOD.0
0000 0000b
PWM0L
PWM 0 LOW BITS REGISTER
DAH
PWM0.7
PWM0.5
PWM0.4
PWM0.3
PWM0.2
PWM0.1
PWM0.0
0000 0000b
PWMPL
PWM COUNTER LOW
REGISTER
D9H
PWMP0.7 PWMP0.6
PWMP0.5
PWMP0.4
PWMP0.3 PWMP0.2 PWMP0.1 PWMP0.0 0000 0000b
PWMCON3
PWM CONTROL REGISTER 3
D7H
HZ_Even
HZ_Odd
GRP
PWMTYPE -
PWM2H
PWM 2 HIGH BITS REGISTER
D5H
-
-
-
-
PWM2.11 PWM2.10 PWM2.9
PWM2.8
XXXX 0000b
PWM0H
PWM 0 HIGH BITS REGISTER
D2H
-
-
-
-
PWM0.11 PWM0.10 PWM0.9
PWM0.8
XXXX 0000b
PWMPH
PWM COUNTER HIGH
REGISTER
D1H
-
-
-
-
PWMP.11 PWMP.10 PWMP.9
PWMP.8
XXXX 0000b
PNP
PWM NEGATIVE POLRARITY
C3H
-
-
PNP.5
PNP.4
PNP.3
PNP.2
PNP.1
PNP.0
XX00 0000b
P3
PORT 3
B0H
(B7)
P3.7
OPN
(B6)
P3.6
OPP
(B5)
P3.5
(B4)
P3.4
(B3)
P3.3
PWM7
(B2)
P3.2
PWM5
(B1)
P3.1
PWM3
(B0)
P3.0
PWM1
1111 1111b(1)
0000 0000b
PDTC0
PWM DEAD TIME CONTROL 0
REGISTER
AEH
-
-
-
-
-
DTENB4
DTENB2
DTENB0
XXXX X000b
DTCNT
PWM DEAD TIME COUNTER
REGISTER
ABH
DTCNT.7
DTCNT.6
DTCNT.5
DTCNT.4
DTCNT.3 DTCNT.2 DTCNT.1 DTCNT.0 0000 0000b
P2
PORT 2
A0H
(A7)
P2.7
T1
(A6)
P2.6
IC2
MOSI
(A5)
P2.5
IC1
MISO
(A4)
P2.4
IC0
/SS
(A3)
P2.3
T3
SCLK
(A2)
P2.2
PWM4
(A1)
P2.1
PWM2
CP1O
(A0)
P2.0
PWM0
CP2O
1111 1111b(1)
0000 0000b
PIO
PWM IO REGISTER
9BH
PIO.7
PIO.6
PIO.5
PIO.4
PIO.3
PIO.2
PIO.1
PIO.0
0000 0000b
PWM4H
PWM 4 HIGH BITS REGISTER
97H
-
-
-
-
PWM4.11 PWM4.10 PWM4.9
PWM4.8
XXXX 0000b
PWM4L
PWM 4 LOW BITS REGISTER
96H
PWM4.7
PWM4.6
PWM4.5
PWM4.4
PWM4.3
PWM4.0
0000 0000b
PWM6.6
PWM0.6
PWM6.5
PWM6.4
LSB
PWM6.11 WM6.10
PWM6.9
PWM6.8
XXXX 0000b
PWM6.3
PWM6.1
PWM6.0
0000 0000b
BKEN1
BKEN0
0000 0X00b
PWM6.2
BK0FILT.1 BK0FILT.0 AUTOBK 1
Note:
1. If config0.PRHI=1, the initial value is FFh at reset. If config0.PRHI=0, the initial value is 00h at reset
- 170 -
RESET
-
PWM4.2
P6CTRL
PWM4.1
INT_TYP XX00 XX00b
E
Preliminary N79E875 Data Sheet
26 ANALOG-TO-DIGITAL CONVERTER (ADC)
N79E875 series support a 10-bit analog-to-digital converter (ADC) which contains a DAC which
converts the contents of a successive approximation register to a voltage (VDAC) which is compared to
the analog input voltage (Vin). The output of the comparator is fed to the successive approximation
control logic which controls the successive approximation register. This is illustrated in the figure
below.
MSB
Start
DAC
Successive
Approximation
Register
Successive
Approximation
Control Logic
LSB
Ready
(Stop)
Comparator
VDAC
Vin
+
Figure 26-1: Successive Approximation ADC
26.1 Operation of ADC
26.1.1 Normal Operation of ADC
A conversion can be initiated by software only or by either hardware or software. The software only
start mode is selected when control bit ADCCON.5 (ADCEX)=0. A conversion is then started by
setting control bit ADCCON.3 (ADCS) The hardware or software start mode is selected when ADCEX
=1, and a conversion may be started by setting ADCS as above or by applying a rising edge to
external pin STADC(P1.7) or by a trigger signal synchronous with PWM unit. When a conversion is
started by applying a rising edge, a low level must be applied to STADC for at least one machine cycle
followed by a high level for at least one machine cycle. When ADCCON.5 (ADCEX) is set by external
pin to start ADC conversion, after N79E875 series have entered idle mode, STADC/P1.7 can start
ADC conversion at least 1 machine cycle.
The end of the 10-bit conversion is flagged by control bit ADCCON.4 (ADCI). The upper 8 bits of the
result are held in special function register ADCH, and the two remaining bits are held in ADCCON.7
(ADC.1) and ADCCON.6 (ADC.0). The user may ignore the two least significant bits in ADCCON and
use the ADC as an 8-bit converter (8 upper bits in ADCH). In any event, the total actual conversion
time is 34 ADC clock cycles. ADCI flag is set at end of ADC conversion. ADCS will be hardware
cleared when ADCI is set.
Control bits ADCCON.0, ADCCON.1 and ADCCON.2 are used to control an analog multiplexer which
selects one of eight analog channels. An ADC conversion in progress is unaffected by an external or
software ADC start. The result of a completed conversion remains unaffected provided ADCI = logic 1.
- 171 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
ADC Conversion Block
PWMSRC.1~0 bits
STADCT.1~0
00
01
10
11
PWM0
PWM2
PWM4
PWM6
eoc*
[01]
pwm_strt_pulse*
[10]
[11]
STADCT.1~0
reset pulse
ADCI
Fcpu/4
8-bit Up
Counter
/1, /2
note1
ADC0 (P0.0/OPO)
ADC1 (P0.1/VBR)
ADC2 (P0.2)
ADC3 (P0.3)
ADC4 (P0.4)
ADC5 (P0.5)
ADC6 (P0.6)
ADC7 (P0.7)
reset
ADCDLY register
=
DLYDIV bit
00
Fcpu
STADC/BKP0/P1.7
RC_CLK (Internal RC
11.0592MHz or 22.1184MHz,
selectable by CONFIG1.FS1 bit)
RCCLK
Vref+
Analog
Input
Multiplexer
AADR[2:0]
0
ADCS
ADC.0
|
ADC.9
Enable ADC
ADCEN
ADCS
~00
Start Conversion
1
10-bits
ADC Block
ADCI
ADCEX
0
Prescaler
/8,/4,/2,/1
1
ADC Clock
ADC Clock range:
@5V: 200KHz to 20MHz
@3V: 200KHz to 12MHz
AVSS
ADCLK1, ADCLK0 bits
(SFR ADCCON1)
default: divided by 2.
* Notes
eoc
pwm_strt_pulse
AVDD
- End of conversion single pulse signal.
- This pulse will be generated when detected a valid start. This signal will remain low in the event of
potential multiple PWM or ADCS triggers that arrives before current conversion in progress completed.
An aborted conversion by clearing ADCEN will assert this pulse to clear the counter.
Figure 26-2: ADC Block Diagram
Note:
•
•
The ADC0 alternative input source will come from OP Amplifier output when AUXR2.ENOP
bit is enabled. See section OP Amplifier for detail. User is recommended to set SFR
PADIDS.0 to disable digital input when enable ENOP. See Figure 26-3 for ADC0 and ADC1
source selection.
The ADC1 alternative input source will come from Brownout Reference Voltage, VBR. It can be
selected through AUXR2.ADC1SEL bit. Refer to Figure 28-1: Comparators block diagram for
the detail.
(SFR)
(SFR)
ADC1SEL
ENOP
OP
output
P0.1
ADC0
VBR
Brownout
reference voltage
P0.0
Figure 26-3: ADC0 and ADC1 source selections.
- 172 -
0
1
ADC1
Preliminary N79E875 Data Sheet
26.1.2 ADC Start Synchronous with PWM
Besides software start and external pin STADC (P1.7) to start ADC conversion, this device has new
feature to allow PWM even channels to trigger the ADC start. User may configure any one of the
PWM as well as trigger types; rising, falling PWM edge or central point of PWM (centre-aligned mode
only) to trigger ADC start. The device also allow user to configure the amount of delay prior to ADC
start after hardware detected the PWM edge. See SFR ADCCON1 and ADCDLY for bits descriptions.
Figure below shows the programmable delay time for PWM-triggered ADC start conversion. For PWM
trigger ADC start conversion in centre align mode, ADC start conversion point will be at the same,
regardless of which pwm channel is selected.
Delay
time
Delay
time
Delay
time
Starts A/D
converting
Synchronized with PWM
rising edge
Starts A/D
converting
Synchronized with PWM
falling edge
Starts A/D
converting
Synchronized with PWM
central point (centre-aligned
mode only)
Figure 26-4: PWM-triggered ADC start
26.1.3 ADC Converting in Power-dwon and Idle Mode
When ADC is operating a conversion, the noise induced by CPU clock effects the ADC resolution.
N79E875 series allows ADC converting in Power-down and Idle modes to minimize the noise from
CPU. Software may enable ADC Interrupt in advanced then set ADCS=1 to start converting and follow
setting PD=1(PCON.1) or IDL=1(PCON.0) to force CPU entering power-down or idle mode. When the
conversion is completed, hardware requests ADC interrupt and release CPU from power-down or idle
mode. Note that due to CPU clock stops in power-down mode, software must set RCCLK=1 to select
ADC clock is from internal RC oscillator before CPU enter power-down mode.
26.2
ADC Resolution and Analog Supply:
The ADC circuit has its own supply pins (AVDD and AVSS) and one pins (Vref+) connected to each
end of the DAC’s resistance-ladder that the AVDD and Vref+ are connected to VDD and AVSS is
connected to VSS. The ladder has 1023 equally spaced taps, separated by a resistance of “R”. The
first tap is located 0.5×R above AVss, and the last tap is located 0.5×R below Vref+. This gives a total
ladder resistance of 1024×R. This structure ensures that the DAC is monotonic and results in a
symmetrical quantization error.
For input voltages between AVss and [(Vref+) + ½ LSB], the 10-bit result of an A/D conversion will be
0000000000B = 000H. For input voltages between [(Vref+) – 3/2 LSB] and Vref+, the result of a
conversion will be 1111111111B = 3FFH. Vref+ and AVSS may be between AVDD + 0.2V and AVSS –
0.2 V. Vref+ should be positive with respect to AVSS, and the input voltage (Vin) should be between
Vref+ and AVSS.
The result can always be calculated from the following formula:
Result = 1024 ×
Vin
Vref +
or Result = 1024 ×
Vin
VDD
- 173 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
26.3
ADC Continuous Mode
If ADC continuous mode is enabled, a repeated conversion of the selected channel will be performed
until ADCCM or ADCS bit is cleared and the new 10-bit result will overwrite the old data. Unlike the
normal ADC function ADCS is cleared automatically at the end of a conversion, in this mode, ADCS
keeps high till software clear it or ADCCM is cleared and the last conversion is completed. Figure
below explains the behavior of the ADC continuous mode.
H/W Complete
converting & Start
new conversion
Software set high
H/W
Start converting
H/W Complete
converting & Start
new conversion
H/W Set
S/W Clear
H/W Complete
converting & Start
new conversion
H/W Set
S/W Clear
H/W Complete
converting &
STOP new
conversion
H/W Set
S/W Clear
H/W Set
S/W Clear
ADCS
Software
clear
ADCI
ADCCM
Software
clear
Software
set high
Software
clear
ADC Continuous Mode
Figure 26-5: ADC Continuous Mode
26.4
ADC Compare Function
N79E875 ADC provides the compare function that compares the 10-bit ADC result and an arbitrary
10-bit reference data. The compare result places in ADCPO bit. When the new conversion result
makes ADCPO bit change state, the ADCPI flag is set by H/W and an ADC interrupt is requested if
EADCP bit is set in advanced. The block diagram of ADC compare function is shown in the following
figure.
ENADCP
(SFR)
10-bit ADC data
10-bit ADC Ref
(SFR)
(SFR)
(SFR)
(SFR)
+
EADC
ADCI
(SFR)
ADCPO
ADCPI
-
(SFR)
EADCP
ADC Compare Function
Figure 26-6: ADC Compare Function
- 174 -
(SFR)
ADC
Interrupt
Preliminary N79E875 Data Sheet
The 10-bit reference data ADCR.9-0 bits (located at SFR ADCRH.7-0 and ADCRL.7-6) are writable
only when ENADCP = 0. User will have to take of potential false trigger when changing the reference
data. The following is the recommended procedure note when using ADC Compare function.
1.
2.
3.
4.
5.
6.
7.
Disable ADC compare function (ENADCP=0).
Disable ADC compare function interrupt (EADCP=0).
Update 10-bit ADC Ref registers.
Clear ADCPI flag (this is to avoid unwanted compare trigger due to new reference data).
Enable ADC compare function (ENADCP=1).
Enable compare function interrupt (EADCP=1).
Start next ADC conversion.
- 175 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
27 OP AMPLIFIER
This device integrated an operational amplifier. It can be enabled through SFR OPCON.ENOP bit.
User can measure the output of the operational amplifier as the operation amplifier output to the
integrated analog digital convert channel 0, where digital result can be taken.
(SFR)
ENOP
Enable OP
Amplifier
OP Amplifier
P3.6/OPP
P3.7/OPN
+
-
Av
To ADC
Channel 0
P0.0/ADC0/KB0/OPO
ENOP: Enable OP Amplifier
0: Disable OP amplifier
1: Enable OP amplifier and the OP output is connected to ADC0
Figure 27-1: Operation Amplifier block diagram
Note:
•
•
User is required to set AUXR2.POPDIDS bit to disable digital input at P3.6 (OPP) and
P3.7 (OPN) pins, when using OP Amplifier.
The ADC0 alternative input source will come from OP Amplifier output when
AUXR2.ENOP bit is enabled. User is recommended to set SFR PADIDS.0 to disable
digital input when enable ENOP.
- 176 -
Preliminary N79E875 Data Sheet
28 ANALOG COMPARATORS
This device is also provided with two comparators. The comparators can be used in a number of
different configurations. The comparator output is a logical one when positive input greater than
negative input, otherwise the output is a zero. Each comparator can be configured to cause to an
interrupt when the comparator output value changes. The block diagram is as below.
The inputs are CPnP and CPnN, and outputs CPnO (n = 1 or 2). User may select the internal
reference voltage by enable SFR CMPn.CNn bit. The typical value of internal brownout reference
voltage (VBR) is about 1.16V +/- 10%.
CMPEN1 & COE1 (SFR)
CO1
PWM2
1
0
1
COE1
(SFR)
CMPEN1
CMP1 Analog Circuit
Comparator1
P0.4/ADC4/CP1N/KBI.4
(SFR)
CN1
CN2
(SFR)
VBR=1.18V
(SFR)
1
0
P2.1
P2.1/PWM2/CP1O
(SFR)
CO1
CMF1
(SFR)
-
Brownout
reference
voltage
PIO.2
Change Detect
+
P0.3/ADC3/CP1P/KBI.3
P2.1/PWM2/CP1O
0
P2.1
(SFR)
Enable
comparator1
1
(SFR)
CN1
Comparator
Interrupt
(SFR)
ECI
CMP2 Analog Circuit
(SFR)
Comparator2
P0.1/ADC1/CP2PA/KB1
P4.1/CP2PB
P0.2/ADC2/CP2NA/KB2
Change Detect
+
CP2
CO2
(SFR)
Enable
comparator2
(SFR)
CMPEN2
CMF2
(SFR)
-
P4.0/CP2NB
COE2
CN2
(SFR)
P2.0
(SFR)
1
0
(SFR)
P2.0/PWM0/CP2O
(SFR)
CMPEN2 & COE2 (SFR)
CO2
PWM0
1
1
0
1
0
P2.0/PWM0/CP2O
P2.0
(SFR)
PIO.0
Figure 28-1: Comparators block diagram
Note: When using the both comparators, user should set SFR PADIDS.1-2, PADIDS.3-4 or
AUXR2.4-5 bits accordingly to disable digital input at the comparators’ input pins.
Both comparators have hysterisis function that is controllable through HYSEN1 and HYSEN2 bits.
- 177 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
29 ICP (IN-CIRCUIT PROGRAM) FLASH PROGRAM
The ICP(In-Circuit-Program) mode is another approach to access the Flash EPROM. There are only 3
pins needed to perform the ICP function. One is mode input, shared with /RST pin, which is up to 11
volt in ICP working period. One is clock input, shared with P0.5, which accepts serial clock from
external device. Another is data I/O pin, shared with P0.4, that an external ICP program tool shifts
in/out data via P0.4 synchronized with clock(P0.5) to access the Flash EPROM of N79E875 series.
User may refer to http://www.manley.com.cn/english/index.asp for ICP Program Tool.
Vcc
ICP Power
Jumper
ICP
Programmer
ICP Connector
Jumper[1]
Vdd
Vdd
[2]
Vpp
P1.4/RST[3]
[2]
Data
P0.4
[2]
Clock
P0.5
[2]
Vss
To application
To application
To application
Vss
W79E87x
System Board
Note:
1. Circuitry separation is optionally needed between ICP and application during ICP operation.
2. Resistor is optional by application
3. Voltage of P1.4 is up to about 11V during ICP peration
Notes:
■ When using ICP to upgrade code, the P1.4, P0.4 and P0.5 must be taken within design system
board.
■ After program finished by ICP, to suggest system power must be off and remove ICP connector
then power on.
■ It is recommended that user performs erase function and programming configure bits continuously
without any interruption.
■ During ICP mode, all PWM pins will be tri-stated.
- 178 -
Preliminary N79E875 Data Sheet
30 CONFIG BITS
The N79E875 series has two CONFIG bits (CONFIG0 located at FB00h, CONFIG1 located at FB01h)
that must be defined at power up and can not be set the program after start of execution. Those
features are configured through the use of two flash EPROM bytes, and the flash EPROM can be
programmed and verified repeatedly. Until the code inside the Flash EPROM is confirmed OK, the
code can be protected. The protection of flash EPROM (CONFIG1) and those operations on it are
described below. The data of these bytes may be read by the MOVX instruction at the addresses.
30.1 CONFIG0
CONFIG0
Bit:
BIT
7
6
5
4
3
2
1
0
WDTCK
RPD
PRHI
CBOV1
CBOV0
BPFR
Fosc1
Fosc0
NAME
FUNCTION
Clock source of Watchdog Timer select bit:
7
WDTCK 0: The internal 500KHz RC oscillator clock is for Watchdog Timer clock used.
1: The uC clock is for Watchdog Timer clock used.
Reset Pin Disable bit:
6
RPD
0: Enable Reset function of Pin 1.4.
1: Disable Reset function of Pin 1.4, and it to be used as an input port pin.
Port Reset High or Low bit:
5
PRHI
0: Port reset to low state.
1: Port reset to high state.
Brownout Voltage Select bits:
4-3 CBOV.1-0
00: Brownout detect voltage is 4.5V.
01: Brownout detect voltage is 3.8V.
1x: Brownout detect voltage is 2.6V (default).
2
BPFR
Bypass Clock Filter of Crystal Oscillator bit:
0: Disable Clock Filter.
1: Enable Clock Filter. (default)
- 179 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
CPU Oscillator Type Select bits
1-0
FOSC1
FOSC0
OSC SOURCE
0
0
4MHz ~ 40MHz crystal
0
1
Internal RC Oscillator, 22.1184MHz/11.0592MHz
1
0
Reserved
1
1
External Oscillator in XTAL1
Fosc1-0
- 180 -
Preliminary N79E875 Data Sheet
30.2 CONFIG1
CONFIG1
Bit:
BIT
7
6
5
4
3
2
1
0
C7
C6
FS1
-
SCF
-
PWM_Even
PWM_Odd
NAME
FUNCTION
16K-Byte AP Flash EPROM Lock bit:
7
C7
0: The 16K-byte embedded AP Flash EPROM and Config registers are protected
from reading through any programming tool.
1: The 16-byte embedded AP Flash and Config registers are not locked that can
be read by external programming tool.
128-Byte Data Flash Lock bit:
6
C6
0: The 128-byte Data Flash is protected from reading through any programming
tool.
1: The 128-byte Data Flash is not locked that can be read by external
programming tool.
Refer to the below table for more detail.
Internal Oscillator 22.1184MHz/11.0592MHz select bit
5
FS1
0: Internal OSC frequency is 11.0592MHz.
1: Internal OSC frequency is 22.1184MHz.(default)
4
Reserved
Reserved bit and must be kept high.
Select Crystal Frequency:
3
SCF
This bit is used to adjust the oscillation circuit to meet the external crystal
frequency.
0: For external crystal frequency < 24MHz.
1: For external crystal frequency > 24MHz.
2
1
Reserved
Reserved bit and must be kept high.
PWM_Even PWM Even channels driving mode select bit
1: The driving mode of even PWM pins is forced to Hi-Z mode all the time.
0: The driving mode of even PWM pins is controlled by output mode register
(PxMy).
This bit is latched to SFR PWMCON3.HZ_Even after all reset.
- 181 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
0
PWM_Odd PWM Odd channels driving mode select bit
1: The driving mode of odd PWM pins is forced to Hi-Z mode all the time.
0: The driving mode of odd PWM pins is controlled by output mode register
(PxMy).
This bit is latched to SFR PWMCON3.HZ_Odd after all reset.
Lock bits control list:
Bit 7
Bit 6
Function Description
1
1
Both security of 16K-byte AP Flash and 128-byte Data Flash are not locked. They can
be erased, programmed or read by Writer, ICP or JTAG mode.
0
1
The 16K-byte AP Flash is locked but 128-byte Data Flash is not locked.
16K-byte AP Flash;
•
It can’t be read by Writer, ICP or JTAG mode.
128-byte Data Flash;
•
•
It can still support program or read by Writer, ICP or JTAG mode.
Bank erase of this data area is supported in ICP.
1
0
Not supported.
0
0
Both security of 16K-byte AP Flash and 128-byte Data Flash are locked. They can’t be
read by Writer, ICP or JTAG mode.
- 182 -
Preliminary N79E875 Data Sheet
31 ELECTRICAL CHARACTERISTICS
31.1
Absolute Maximum Ratings
SYMBOL
PARAMETER
MIN
MAX
UNIT
VDD−VSS
-0.3
+7.0
V
VIN
VSS-0.3
VDD+0.3
V
1/tCLCL
0
40
MHz
TA
-40
+85
°C
TST
-55
+150
°C
-
120
mA
Maximum Current out of VSS
120
mA
Maximum Current sunk by a
I/O pin
35
mA
Maximum Current sourced by
a I/O pin
35
mA
Maximum Current sunk by
total I/O pins
100
mA
Maximum Current sourced by
total I/O pins
100
mA
DC Power Supply
Input Voltage
Oscillator Frequency
Operating Temperature
Storage Temperature
Maximum Current into VDD
Note: Exposure to conditions beyond those listed under absolute maximum ratings may adversely affects the lift and reliability of the device.
- 183 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
31.2 DC Electrical Characteristics
(TA = -40~85°C, unless otherwise specified.)
SPECIFICATION
PARAMETER
SYM.
TEST CONDITIONS
MIN.
Operating Voltage
VDD
TYP.
2.4
3.0
-
15
MAX.
UNIT
5.5
V
5.5
Program and erase Data Flash.
22
mA
VDD = 5.0V @ 40MHz, No load,
/RST = Vss
7.5
mA
VDD = 3.0V @ 24MHz, No load,
/RST = Vss
40
mA
VDD = 5.0V @ 40MHz, No load,
/RST = VDD, Run NOP
12
mA
VDD = 3.0V @ 24MHz, No load,
/RST = VDD, Run NOP
22
mA
VDD = 5.5V, 40MHz, no load
7
mA
VDD = 3.0V, 24MHz, no load
IDD1
Operating Current
IDD2
Idle Current
IIDLE
Power Down Current
Input Current P1.4(/RST pin)
[1]
Input Leakage Current P0, P1,
P2 (Open Drain), P3, P4
Logic 1 to 0 Transition Current
P0, P1, P2, P3, P4
Input Low Voltage P0, P1, P2,
P3, P4 (TTL input)
Input High Voltage P0, P1, P2,
P3, P4 (TTL input)
Input Low Voltage XTAL1
(Schmitt input), /RST
10
µA
1
10
µA
VDD = 3.0V, no load
@ Disable BOV function
130
µA
VDD = 5.0V, no load, 25°C
With BOV function LPBOD=0
80
µA
VDD = 5.0V, no load, 25°C
With BOV function LPBOD=1
IIN1
-50
-
+15
µA
VDD = 5.5V, VIN = 0V or VIN=VDD
IIN2
-55
-45
-30
µA
VDD = 5.5V, VIN = 0.45V
ILK
-2
-
+2
µA
VDD = 5.5V, 0<VIN<VDD
-500
-
-200
µA
VDD = 5.5V, VIN<2.0V
0
-
1.0
ITL
[*3]
VIL1
VIH1
[*2]
Input High Voltage XTAL1
Negative going threshold
1
VDD = 5.5V, no load
@ Disable BOV function
IPWDN
Input Current P0, P1, P2, P3, P4
VIL3
[*2]
VDD =4.5V ~ 5.5V up to 40MHz
VDD =3.0V ~ 5.5V up to 24MHz
VDD =2.4V ~ 5.5V up to 8MHz
VIH3
VILS
0
-
0.6
2.2
-
VDD +0.2
1.5
-
VDD +0.2
0
-
0.8
0
-
0.4
3.5
-
VDD +0.2
2.4
-
VDD +0.2
-0.5
-
0.3VDD
- 184 -
V
V
V
V
V
VDD = 4.5V
VDD = 2.4V
VDD = 5.5V
VDD =3.0V
VDD = 4.5V
VDD = 3.0V
VDD = 5.5V
VDD = 3.0V
Preliminary N79E875 Data Sheet
Positive going threshold
(Schmitt input), /RST
Hysteresis voltage
Source Current P0, P1, P2, P3,
P4 (Quasi-bidirectional Mode)
Source Current P0, P1, P2, P3,
P4 (Push-pulll Mode)
VIHS
0.7VDD
VHY
-
VDD+0.5
0.2VDD
V
V
ISR11
-150
-210
-360
µA
VDD = 4.5V, VS = 2.4V
ISR12
-35
-40
-60
µA
VDD = 2.7V, VS = 2.2V
ISR12
-18
-27
-40
µA
VDD = 2.4V, VS = 2.0V
ISR21
12
16
20
mA
VDD = 4.5V, VS = 3.0V
ISR22
6
8
10
mA
VDD = 2.7V, VS = 2.2V
ISR22
2.5
3.5
4.5
mA
VDD = 2.4V, VS = 2.0V
Sink Current P0, P1, P2, P3, P4
(Quasi-bidirectional and Pushpull Mode)
ISK1
18
25
32
mA
VDD = 4.5V, VS = 0.45V
ISK1
15
20
25
mA
VDD = 2.7V, VS = 0.45V
ISK1
13
17
21
mA
VDD = 2.4V, VS = 0.45V
Brownout voltage with BOV[1:0]
=0xb
VBO2.5
2.40
2.5
2.60
V
Brownout voltage with BOV[1:0]
=10b
VBO3.8
3.60
3.75
3.90
V
Brownout voltage with BOV[1:0]
=11b
VBO4.5
4.30
4.5
4.70
V
Hysterisis range of BOD voltage
VBh
50
-
140
mV
VDD = 2.4V~5.5V
Notes:
1. /RST pin is a Schmitt trigger input.
2. XTAL1 is a CMOS input.
3. Pins of P0, P1, P2, P3 and 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.
- 185 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
31.3
ADC Converter DC Electrical Characteristics
(VDD−VSS = 3.3~5V, TA = -40~85°C, ADC clock=12MHz, AVDD is independent1, unless otherwise specified.)
PARAMETER
SYMBOL
SPECIFICATION
MIN.
Analog input
AVin
AVSS-0.2
ADCCLK
200KHz
TYP.
ADC clock
TEST CONDITIONS
MAX.
UNIT
AVDD+0.2
V
VDD = 5.0V.
20MHz
Hz
12MHz
ADC Current consumption
IADC
3.0
VDD = 3.3V.
mA
VDD=5.0V
ADCCLK=11.059Mhz
ADC input=GND
(ADC enable)
IADC
2.2
mA
VDD=3.3V
ADCCLK=11.059Mhz
ADC input=GND
Conversion time
2
tC
34tADC
us
Differential non-linearity
DNL
-1
-
+1
LSB
Integral non-linearity
INL
-2
-
+2
LSB
Offset error
Ofe
-0.5
-
+3.0
LSB
Gain error
Ge
-0.6
-
+0.1
%
Absolute voltage error
Ae
-4
-
+4
LSB
-5
+5
Notes:
VDD = 5.0V.
VDD = 3.3V.
1. AVDD needs clear power*, power noise is smaller than 0.5LSB for test condition of resolution. Suggest don’t connect AVDD to DVDD directly without any
isolation device
*clear power:
For test 8-bit resolution of 10bit-SARADC, power noise need smaller than 2LSB of ADC.
If AVDD is 5V, power noise need small than 9.5mV.
2. tADC: The period time of ADC input clock.
- 186 -
Preliminary N79E875 Data Sheet
31.4 OP Amplifier Electrical Characteristics
(VDD−VSS = 3.0~5V, TA = -40~85°C, Fcpu = 16MHz, unless otherwise specified.)
SPECIFICATION
PARAMETERS
UNIT
MIN.
TYP.
MAX.
Temperature
-40
25
85
℃
VDD
2.4
-
5.5
V
OP power current
-
-
2
mA
Input offset voltage
-
-
±20
mV
Input offset average drift
-
-
1
uV/℃
Output swing
0.1
-
VDD-0.1
V
Input common mode
range
0.1
-
VDD-1.2
DC gain
-
80
-
dB
Unity gain freq.
4
-
5.5
MHz
Phase margin
50°
-
°
CONDITIONS
VDD=5V, T=85℃
V
VDD=5V
PSRR+
-
90
-
dB
VDD=5V
CMRR
-
90
-
dB
VDD=5V
Slew rate+
-
6.0
7.5
V/us
VDD=5V
Slew rate-
-
6.0
7.5
V/us
VDD=5V
Wake up time
-
-
20
us
- 187 -
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
31.5 Comparator Electrical Characteristics
(VDD−VSS = 3.0~5V, TA = -40~85°C, Fcpu = 16MHz, unless otherwise specified.)
SPECIFICATION
PARAMETERS
UNIT
CONDITIONS
MIN.
TYP.
MAX.
Temperature
-40
25
85
℃
VDD
2.4
3
5.5
V
Power current
-
20
40
uA
Output swing
0.1
-
VDD-0.1
V
Input common mode
range(VCM)
0.1
-
VDD-1.3
DC gain
-
70
-
dB
Design guarantee
Propagation delay
-
200
-
ns
@ VCM =1V & VDIFF=0.1V
mV
20mV@ VCM =1V
Comparison voltage
10
20
V
50mV@ VCM =0.1V
-
50mV@ VCM =VDD-1.3
@10mV for non-hysteresis
Hysteresis
-
±20
±35
mV
@ VCM=0.5V ~ VDD-1.3V
Wake up time
-
-
2
us
@CINP=0.9V & CINN=1V
1.13
1.16
1.20
V
VDD = 5.0V.
1.11
1.14
1.18
Brownout reference
[1]
voltage (VBR)
Notes:
1. Value is guideline only and not tested.
- 188 -
VDD = 3.0V.
Preliminary N79E875 Data Sheet
31.6
AC Electrical Characteristics
t CLCL
t CLCH
t CLCX
tCHCL
t CHCX
Note: Duty cycle is 50%.
31.6.1 External Clock Characteristics
PARAMETER
SYMBOL
MIN.
TYP.
MAX.
UNITS
Clock High Time
tCHCX
12.5
-
-
nS
Clock Low Time
tCLCX
12.5
-
-
nS
Clock Rise Time
tCLCH
-
-
10
nS
Clock Fall Time
tCHCL
-
-
10
nS
NOTES
31.6.2 Supplied Voltage-Frequency
Supplied Voltage VDD
Operating CPU Clock
MIN.
TYP.
UNIT
MAX.
VDD =4.5V ~ 5.5V
40
MHz
VDD =3.0V ~ 5.5V
24
MHz
VDD =2.4V ~ 5.5V
8
MHz
31.6.3 Internal RC Oscillator Characteristics
(VDD−VSS = 2.4~5V, TA = -40~85°C.)
Parameter
Specification (reference)
Min.
Fosc of N79E875 On-chip RC
oscillator without calibration.
Typ.
Test Conditions
Max.
Unit
-25
25
%
VDD=2.4V~5.5V, TA = -40°C ~85°C
-2
2
%
VDD=3.3V, TA = 25°C
-5
5
%
VDD=2.7V~5.5V, TA = -20~85°C
-8
8
%
VDD=2.7V~5.5V, TA = -40~85°C
Nominal value of Fosc is about
22MHz/11MHz.
Fosc of N79E875R On-chip RC
1,2
oscillator with calibration
Nominal value of Fosc is
22.1184MHz/11.0592MHz
Wakeup time
256
- 189 -
clk
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
Note:
1. These values are for design guidance only and are not tested.
31.6.4 Typical Crystal Application Circuits
CRYSTAL
C1
C2
R
>24MHz
5p~15p
5p~15p
1.8k~2.2k
4MHz ~ 24 MHz
without
without
without
C1
XTAL1
R
XTAL2
C2
Figure 31-1 Typical Crystal Application Circuit
- 190 -
Preliminary N79E875 Data Sheet
32 PACKAGE DIMENSIONS
32.1 48L LQFP (7x7x1.4mm footprint 2.0mm)
HD
D
A
36
A2
25
37
24
48
13
A1
HE E
1
12
b
e
c
SEATING PLANE
L
Y
θ
L1
Controlling dimension : Millimeters
Symbol
A
A1
A2
b
c
D
E
e
HD
HE
L
L1
Y
0
Dimension in inch
Dimension in mm
Min Nom Max
Min Nom Max
0.002 0.004
0.006
0.05
0.053 0.055
0.057
1.35
1.40
1.45
0.006 0.008
0.010
0.15
0.20
0.25
0.004 0.006
0.008
0.10
0.15
0.20
0.272 0.276
0.280
6.90
7.00
7.10
0.272 0.276
0.280
6.90
7.00
7.10
0.020 0.026
0.35
0.50
0.65
0.014
0.10
0.15
0.350
0.354
0.358
8.90
9.00
9.10
0.350
0.354
0.358
8.90
9.00
9.10
0.018
0.024
0.030
0.45
0.60
0.75
1.00
0.039
0.004
0
- 191 -
7
0.10
0
7
Publication Release Date: April 13, 2009
Revision A02
Preliminary N79E875 Data Sheet
33 REVISION HISTORY
VERSION
DATE
PAGE/
CHAP.
A01
December
30, 2008
-
A02
April 13,
2009
DESCRIPTION
Initial Issued
All
a. Remove N79M8xx, 874 & 873 series and change 125°C to
85°C.
All
b. Revise typos in the document.
Ch7
c. Rename PDTC1(ABh) to DTCNT
101
d. Revise typo in Figure 15-2. (Change P4S to P2S)
Ch7
e. Remove “BOD = inverse (CBOD) config bit”
Important Notice
Nuvoton Products are neither intended nor warranted for usage in systems or equipment, any
malfunction or failure of which may cause loss of human life, bodily injury or severe property
damage. Such applications are deemed, “Insecure Usage”.
Insecure usage includes, but is not limited to: equipment for surgical implementation, atomic
energy control instruments, airplane or spaceship instruments, the control or operation of
dynamic, brake or safety systems designed for vehicular use, traffic signal instruments, all
types of safety devices, and other applications intended to support or sustain life.
All Insecure Usage shall be made at customer’s risk, and in the event that third parties lay
claims to Nuvoton as a result of customer’s Insecure Usage, customer shall indemnify the
damages and liabilities thus incurred by Nuvoton.
- 192 -
Similar pages