• A 10-bit Resolution Analog-to-Digital Converter (ADC) with 8 Multiplexed Inputs
• Full CAN Controller
– Fully Compliant with CAN rev.# 2.0A and 2.0B
– Optimized Structure for Communication Management (Via SFR)
– 4 Independent Message Objects
-Each Message Object Programmable on Transmission or Reception
-Individual Tag and Mask Filters up to 29-bit Identifier/Channel
-8-byte Cyclic Data Regis ter (FIFO)/Message Object
-16-bit Status and Control Register/Message Object
-16-bit Time-Stamping Register/Message Object
-CAN Specification 2.0 Part A or 2.0 Part B Programmable for Each Message
Object
-Access to Message Object Control and D ata Registers Via SFR
-Programmable Reception Buffer Length up to 4 Message Objects
-Priority Management of Reception of Hits on Several Message Objects
Simultaneously (Basic CAN Feature)
-Priority Management for Transmission
-Message Object Overrun Interrupt
– Supports
-Time Triggered Communication
-Autobaud and Listening Mode
-Programmable Automatic Reply Mode
• 1-Mbit/s Maximum Transfer Rate at 8 MHz
• Readable Error Counters
• Programmable Link to On-chip Timer for Time Stamping and Network Synchronization
• Independent Baud Rate Prescaler
• Data, Remote, Error and Overload Frame Handling
• Power-saving Modes
–Idle Mode
– Power-down Mode
• Power Supply: 3 Volts to 5.5 Volts
• Temperature Range: Industrial (-40° to +85°C)
• Packages: SOIC28, SOIC24, PLCC28, VQFP32
(1)
Crystal Frequency In X2 Mode
Enhanced 8-bit
Microcontroller
with CAN
Controller and
Flash
T89C51CC02
AT89C51CC02
Note:1. At BRP = 1 sampling point will be fixed.
Rev. 4126L–CAN–01/08
AT/T89C51CC02
DescriptionPart of the CANary
tions, the T89C51CC02 is a low-pin count 8-bit Flash microcontroller.
In X2 Mode a maximum external clock rate of 20 MHz reaches a 300 ns cycle time.
Besides the full CA N controll er T89C51CC02 p rovides 16K Bytes of Fl ash memory
including In-Sy stem Programm ing (ISP), 2K Byt es Boot Flash Mem ory, 2K Bytes
EEPROM and 512 Bytes RAM.
Special attention is payed to the reduction of the electro-magnetic emission of
T89C51CC02.
Block Diagram
RxD
TxD
TM
family of 8-bit microcon troll er s dedi ca ted to C AN ne twork appl ica-
VCCSupply Voltage
VAREFReference Voltage for ADC (input)
VAVCCSupply Voltage for ADC
VAGNDReference Ground for ADC (internaly connected with the VSS)
P1.0:7I/OPort 1:
Is an 8-bit bi-directional I/O port w ith internal pull -ups. Port 1 pins can be used for digit al input/o utput or as
analog inputs for the Analog Digital Converter (ADC). Port 1 pins that have 1’s written to them are pulled
high by the internal pull-up transistors and can be used as inputs in this state. As inputs, Port 1 pins that
are being pulled low externally will be the source of curren t (I
because of the internal pull-ups. Port 1 pins are assigned to be used as analog inputs via the ADCCF
register (in this case the internal pull-ups are disconnected).
As a secondary digital function, port 1 contains the Timer 2 external trigger and clock input; the PCA
external clock input and the PCA module I/O.
P1.0/AN0/T2
Analog input channel 0,
External clock input for Timer/counter2.
P1.1/AN1/T2EX
Analog input channel 1,
Trigger input for Timer/counter2.
P1.2/AN2/ECI
Analog input channel 2,
PCA external clock inpu t.
P1.3/AN3/CEX0
Analog input channel 3,
PCA module 0 Entry of input/PWM output.
P1.4/AN4/CEX1
Analog input channel 4,
PCA module 1 Entry of input/PWM output.
P1.5/AN5
Analog input channel 5,
P1.6/AN6
Analog input channel 6,
P1.7/AN7
Analog input channel 7,
It can drive CMOS inputs without external pull-ups.
AT/T89C51CC02
, See section ’Electrical C haracteristic’)
IL
P2.0:1I/OPort 2:
4126L–CAN–01/08
Is an 2-bit bi-directional I/O port with internal pull-ups. Port 2 pins that have 1’s written to them are pulled
high by the internal pull-ups and can be used as inputs in this state. As inputs, Port 2 pins that are being
pulled low externally will be a source of current (IIL, on the datasheet) because of the internal pull-ups.
In the T89C51CC02 Port 2 can sink or source 5mA. It can drive CMOS inputs without external pull-ups.
5
AT/T89C51CC02
Pin NameTypeDescription
P3.0:7I/OPort 3:
Is an 8-bit bi-directional I/O port with internal pull-ups. Port 3 pins that have 1’s written to them are pulled
high by the internal pull-up transistors and can be used as inputs in this state. As inputs, Port 3 pins that
are being pu lled low externally will be a source of current (I
because of the internal pull-ups.
The output latch corresponding to a secondary function must be programmed to one for that function to
operate (except for TxD and WR
P3.0/RxD: Receiver data input (asynchronous) or data input/output (synchronous) of the serial interface
P3.1/TxD: Transmitter data output (asynchronous) or clock output (synchronous) of the serial interface
P3.2/INT0
P3.3/INT1
P3.4/T0: Timer 0 counter input
P3.5/T1: Timer 1 counter input
P3.6: Regular I/O port pin
P3.7: Regular I/O port pin
P4.0:1I/OPort 4:
Is an 2-bit bi-directional I/O port with internal pull-ups. Port 4 pins that have 1’s written to them are pulled
high by the internal pull-ups and can be used as inputs in this state. As inputs, Port 4 pins that are being
pulled low externally will be a source of current (IIL, on the datasheet) because of the internal pull-up
transistor.
The output latch corresponding to a secondary function RxDC must be programmed to one for that
function to operate. The secondary functions are assigned to the two pins of port 4 as follows:
P4.0/TxDC:
Transmitter output of CAN controller
P4.1/RxDC:
Receiver input of CAN controller.
It can drive CMOS inputs without external pull-ups.
IL
). The secondary functions are assigned to the pins of port 3 as follows:
: External interrupt 0 input/timer 0 gate control input
: External interrupt 1 input/timer 1 gate control input
, See section ’Electrical Characteristic’)
RESETI/OReset:
A high level on this pin during two machine cycles while the oscillator is running resets the device. An
internal pull-down resistor to VSS permits power-on reset using only an external capacitor to VCC.
XTAL1IXTAL1:
Input of the inverting oscillator amplifier and input of the internal clock generator circuits. To drive the
device from an external clock sourc e, XTAL1 should be driven, while XTAL2 is left unconnected. To
operate above a frequency of 16 MHz, a duty cycle of 50% should be maintained.
XTAL2OXTAL2:
Output from the inverting oscillator amplifier.
6
4126L–CAN–01/08
AT/T89C51CC02
I/O ConfigurationsEach Port SFR operates via type-D latches, as illustrated in Figure 1 for Ports 3 and 4. A
CPU ’write to latch’ signal initiates transfer of internal bus data into the type-D latch. A
CPU ’read latch’ signal transf ers the latched Q out put onto the intern al bus. Similarl y, a
’read pin’ signal transfers the logical level of the Port pin. Some Port data instructions
activate the ’read latch’ signal while others activate the ’read pin’ signal. Latch instructions are referred to as Read-Modify-Write instructions. Each I/O line may be
independently programmed as input or output.
Port StructureFigure 1 shows the structure of Ports, which have internal pull-ups. An external source
can pull the pin low. Each Port pin can be configured either for general-purpose I/O or
for its alternate input output function.
To use a pin for general-purpose output, set or clear the corresponding bit in the Px register (x = 1 to 4). To use a pin for general-purpose input, set the bit in the Px register.
This turns off the output FET drive.
To configure a pin for its al ter nat e fun ction, set the bit in the Px register . W hen the l atch
is set, the ’alterna te outpu t funct ion’ sig nal c ontrols the out put lev el (See Figur e 1) . The
operation of Ports is discussed further in ’Quasi-Bi-directional Port Operation’
paragraph.
Figure 1. Ports Structure
VCC
READ
LATCH
ALTERNATE
OUTPUT
FUNCTION
INTERNAL
PULL-UP (1)
P1.x
P2.x
INTERNAL
BUS
WRITE
TO
LATCH
READ
PIN
D
LATCH
CL
Q
ALTERNATE
INPUT
FUNCTION
P3.x
P4.x
Note:1. The internal pull-up can be disabled on P1 when analog function is selected.
(1)
4126L–CAN–01/08
7
AT/T89C51CC02
Read-Modify-Write
Instructions
Some instructions rea d the l atch data rath er th an the pin da ta. T he latch based inst ructions read the data, m odify the data an d then r ewrit e the latc h. T hese are called ’ReadModify-Write’ instructions. Below is a complete list of these special instructions (See
Table 1). When the destination operand is a Port or a Port bit, these instructions read
the latch rather than the pin:
Table 1. Read/Modify/Write Instructions
InstructionDescriptionExample
ANLLogical ANDANL P1, A
ORLLogical ORORL P2, A
XRLLogical EX-ORXRL P3, A
JBCJump if bit = 1 and clear bitJBC P1.1, LABEL
CPLComplement bitCPL P3.0
INCIncrementINC P2
DECDecrementDEC P2
DJNZDecrement and jump if not zeroDJNZ P3, LABEL
MOV Px.y, CMove carry bit to bit y of Port xMOV P1.5, C
CLR Px.yClear bit y of Port xCLR P2.4
SET Px.ySet bit y of Port xSET P3.3
Quasi Bi-directional Port
Operation
It is not obvious t hat t he l as t thr ee in str uc ti ons in thi s lis t a re Rea d -Modify-Write inst ru ctions. These instructions read the port (all 8 bits), modify the specifically addressed bit
and write the new byte back to the latch. These Read-Modify-Write instr uctions are
directed to the latc h rather than the p in in or der to av oid poss ible mi sinterpret ation of
voltage (and there fore, logic) levels at th e pin. For e xampl e, a P ort b it used to dri ve the
base of an external bipolar transistor cannot rise above the transistor’s base-emitter
junction voltage (a v al ue l owe r than VIL). With a logic one wr itt en t o th e bi t, a ttem pts by
the CPU to read the P ort a t the p in are misi nterpret ed as logi c ze ro. A r ead of the l atch
rather than the pins returns the correct logic one value.
Port 1, Port 3 and Port 4 have fixed internal pull-ups and are referred to as ’quasi-bidirectional’ Ports. When configured as an input, the pin impedance appears as logic one
and sources current in response to an external logic zero condition. Resets write logic
one to all Port latch es. If log ical zer o is subs equently w ritten to a P ort latch , it can b e
returned to input conditions by a logic one written to the latch.
Note:Port latch values change near the end of Read-Modify-Write insruction cycles. Output
buffers (and therefore the pin state) are updated early in the instruction after Read-Modify-Write instruction cycle.
Logical zero-to-one transitions in Port 1, Port 3 and Port 4 use an additional pull-up (p1)
to aid this logic tran siti on S ee Fi gure 2. T his in cre ases s witc h s peed. Thi s ext ra p ull-u p
sources 100 times normal internal circuit current during 2 oscillator clock periods. The
internal pull-ups are field-effect transistors rather than linear resistors. Pull-ups consist
of three p-channel FET (pFE T) devi ces. A pFE T is on when th e gate sen ses logic zero
and off when the gate senses log ic one. p FET # 1 is tur ned o n for two osc illator pe riods
immediately after a zero- to-one transition in the Port latc h. A logic one at the Port pin
turns on pFET #3 (a weak pull-up) through the inverter. This inverter and pFET pair form
a latch to drive logic one. pFET #2 is a very weak pull-up switched on whenever the
8
4126L–CAN–01/08
AT/T89C51CC02
associated nFET is switched off. This is tradition al CMOS switch conventio n. Current
strengths are 1/10 that of pFET #3.
Note:During Reset, pFET#1 is not avtivated. During Reset, only the weak pFET#3 pull up the
pin.
Figure 2. Internal Pull-up Configurations
2 Osc. PERIODS
VCCVCCVCC
OUTPUT DATA
INPUT DATA
READ PIN
p1(1)
n
p2
p3
P1.x
P2.x
P3.x
P4.x
4126L–CAN–01/08
9
AT/T89C51CC02
SFR MappingTables 3 through Table 11 show the Special Function Registers (SFRs) of the
T89C51CC02.
Table 2. C51 Core SFRs
MnemonicAddName76543210
ACCE0h Accumulator
BF0h B Register
PSWD0h Program Status WordCYACF0RS1RS0OVF1P
SP81h Stack Pointer
Data Pointer Low
DPL82h
DPH83h
Table 3. I/O Port SFRs
MnemonicAddName76543210
P190h Port 1
byte
LSB of DPTR
Data Pointer High
byte
MSB of DPTR
P2A0h Port 2 (x2)
P3B0h Port 3
P4C0h Port 4 (x2)
Table 4. Timers SFRs
MnemonicAddName76543210
TH08Ch
TL08Ah
TH18Dh
TL18Bh
TH2CDh
TL2CCh
TCON88h
Timer/Counter 0 High
byte
Timer/Counter 0 Low
byte
Timer/Counter 1 High
byte
Timer/Counter 1 Low
byte
Timer/Counter 2 High
byte
Timer/Counter 2 Low
byte
Timer/Counter 0 and
1 control
TF1TR1TF0TR0IE1IT1IE0IT0
TMOD89h
Timer/Counter 0 and
1 Modes
10
GATE1C/T1#M11M 01GATE0C/T0#M10M00
4126L–CAN–01/08
AT/T89C51CC02
Table 4. Timers SFRs (Continued)
MnemonicAddName76543210
T2CONC8h
T2MODC9h
RCAP2HCBh
RCAP2LCAh
WDTRSTA6h
WDTPRGA7h
Timer/Counter 2
control
Timer/Counter 2
Mode
Timer/Counter 2
Reload/Capture High
byte
Timer/Counter 2
Reload/Capture Low
byte
WatchDog Timer
Reset
WatchDog Timer
Program
TF2EXF2RCLKTCLKEXEN2TR2C/T2#CP/RL2#
T2OEDCEN
S2S1S0
Table 5. Serial I/O Port SFRs
MnemonicAddName76543210
SCON98h Serial Cont rolFE/SM0SM1SM2RENTB8RB8TIR I
SBUF99h Serial Data Buffer
SADENB 9h Slave Address Mask
SADDRA9h Slave Address
Table 6. PCA SFRs
MnemonicAddName76543210
CCOND8h
CMODD9h
CLE9h
CHF9h
CCAPM0
CCAPM1
CCAP0H
CCAP1H
DAh
DBh
FAh
FBh
PCA Timer/Counter
Control
PCA Timer/Counter
Mode
PCA Timer/Counter
Low byte
PCA Timer/Counter
High byte
PCA Timer/Counter
Mode 0
PCA Timer/Counter
Mode 1
PCA Compare
Capture Module 0 H
PCA Compare
Capture Module 1 H
CFCRCCF4CCF3CCF2CCF1CCF0
CIDLCPS1CPS0ECF
CCAP0H7
CCAP1H7
ECOM0
ECOM1
CCAP0H6
CCAP1H6
CAPP0
CAPP1
CCAP0H5
CCAP1H5
CAPN0
CAPN1
CCAP0H4
CCAP1H4
MAT0
MAT1
CCAP0H3
CCAP1H3
TOG0
TOG1
CCAP0H2
CCAP1H2
PWM0
PWM1
CCAP0H1
CCAP1H1
CCAP0H0
CCAP1H0
ECCF0
ECCF1
4126L–CAN–01/08
11
AT/T89C51CC02
Table 6. PCA SFRs (Continued)
MnemonicAddName76543210
CCAP0L
CCAP1L
PCA Compare
EAh
Capture Module 0 L
EBh
PCA Compare
Capture Module 1 L
CCAP0L7
CCAP1L7
CCAP0L6
CCAP1L6
CCAP0L5
CCAP1L5
CCAP0L4
CCAP1L4
CCAP0L3
CCAP1L3
CCAP0L2
CCAP1L2
CCAP0L1
CCAP1L1
CCAP0L0
CCAP1L0
Table 7. Interrupt SFRs
MnemonicAddName76543210
IEN0A8h
IEN1E8h
IPL0B8h
IPH0B7h
IPL1F8h
IPH1F7h
Interrupt Enable
Control 0
Interrupt Enable
Control 1
Interrupt Priorit y
Control Low 0
Interrupt Priorit y
Control High 0
Interrupt Priorit y
Control Low 1
Interrupt Priorit y
Control High1
EAECET2ESET1EX1ET0EX0
ETIMEADCECAN
PPCPT2PSPT1PX1PT0PX0
PPCHPT2HPSHPT1HPX1HPT0HPX0H
POVRLPADCLPCANL
POVRHPADCHPCANH
Table 8. ADC SFRs
MnemonicAddName76543210
ADCONF3h ADC ControlPSIDLEADENADEOCADSSTSCH2S CH1SCH0
ADCFF6h ADC ConfigurationCH7CH6CH5C H4CH3CH2CH 1CH0
ADCLKF2h ADC ClockPRS4PRS3PRS2PRS1PRS0
ADDHF5h ADC Data High byteADAT9A DAT8ADAT7ADAT6ADAT5ADAT4ADAT3ADAT2
ADDLF4h ADC Data Low byteADAT1ADAT0
Table 9. CAN SFRs
MnemonicAddName76543210
CANGCON ABh
CANGSTAAAh
CANGIT9Bh
CANBT1B4h CAN bit Timing 1BRP5BRP4BRP3BRP2BRP1BRP0
CANBT2B5h CAN bit Timing 2SJW1SJW0PRS2PRS1PRS0
CANBT3B6h CAN bit Timing 3PHS22PHS21PHS20PHS12PHS11PHS10SMP
Sixteen addresses in the SFR space are both byte-addressable and bit-addressable. The bit-addressable SFRs are those
whose address ends in 0 and 8. The bit addresses, in this area, are 0x80 through to 0xFF.
2. AUXR1 bit ENBOOT is initialized with the content of the BLJB bit inverted.
4126L–CAN–01/08
CANGIT
0x00 0000
TL1
0000 0000
DPH
0000 0000
CANTEC
0000 0000
TH0
0000 0000
CANREC
0000 0000
TH1
0000 0000
CKCON
0000 0000
PCON
00x1 0000
9Fh
97h
8Fh
87h
15
AT/T89C51CC02
ClockThe T89C51CC02 core needs only 6 clock periods per machine cycle. This feature,
called “X2”, provides the following advantages:
•Divides frequency crystals by 2 (cheaper crystals) while keeping the same CPU
power.
•Saves power consumption while keeping the same CPU power (oscillator power
saving).
•Saves power consumption by dividing dynamic operating frequency by 2 in
operating and idle modes.
•Increases CPU power by 2 while keeping the same crystal frequency.
In order to keep the ori ginal C51 com patibil ity, a divider -by-2 is in serted betwe en the
XTAL1 signal and the main clock input of the core (phase generator). This divider may
be disabled by the software.
An extra feature is available to start after Reset in the X2 Mode. This feature can be
enabled by a bit X2B in the Hardware Sec urity Byte. Thi s bit is described in the section
’In-System Programming’.
DescriptionThe X2 bit in the CKCON regi ster (See T able 12) allows switching from 12 clock cycles
per instruction to 6 clock cycles and vice versa. At reset, the standard speed is activated
(STD mode).
Setting this bit activates the X2 feature (X2 Mode) for the CPU Clock only (See Figure
3).
The Timers 0, 1 and 2, Uart, PCA, watchdog or CAN switch in X2 Mode only if the corresponding bit is cleared in the CKCON register.
The clock for the whole circuit and peripheral is first divided by two before being used by
the CPU core and peripherals. This allows any cyclic ratio to be accepted on the XTAL1
input. In X2 Mode, as thi s divid er is bypas s ed, t he s ig nal s o n XTA L1 m us t hav e a cy clic
ratio between 40 to 60%. Figure 3. shows the clock generation block diagram. The X2
bit is validat ed on th e XTAL1 ÷ 2 rising edge to avoid glitches when switching from the
X2 to the STD mode. Figure 4 shows the mode switching waveforms.
16
4126L–CAN–01/08
Figure 3. Clock CPU Generation Diagram
X
X
AT/T89C51CC02
X2B
Hardware Byte
On RESET
PCON.0
IDL
X2
CKCON.0
TAL1
÷2
0
1
CPU Core
Clock
TAL2
CPU
CLOCK
PD
PCON.1
÷ 2
÷ 2
÷ 2
÷ 2
÷ 2
÷ 2
1
0
÷2
1
0
1
0
1
0
1
0
1
0
CPU Core Clock Symbol
and ADC
1
0
FT0 Clock
FT1 Clock
FT2 Clock
FUart Clock
FPca Cloc k
FWd Clock
FCan Clock
4126L–CAN–01/08
X2
CKCON.0
CANX2
CKCON.7
WDX2
CKCON.6
PCAX2
CKCON.5
SIX2
CKCON.4
T2X2
CKCON.3
T1X2
CKCON.2
PERIPH
CLOCK
Peripheral Clock Symbol
T0X2
CKCON.1
17
AT/T89C51CC02
Figure 4. Mode Switching Waveforms
XTAL1
XTAL2
X2 bit
CPU
clock
STD
Mode
(1)
X2
Mode
STD
Mode
Note:1. In order to prevent any incorrect operation while operating in the X2 Mode, users must be aware that all peripherals using
the clock frequency a s a time ref erence (UAR T, timers...) will have their time referen ce div ided b y 2. Fo r example , a free ru nning timer generating an interrupt every 20 ms will then generate an interrupt every 10 ms. A UART with a 4800 baud rate
will have a 9600 baud rate.
18
4126L–CAN–01/08
RegisterTable 12. CKCON Register
CKCON (S:8Fh)
Clock Control Register
76543210
CANX2WDX2PCAX2SIX2T 2X2T1X2T0X2X2
AT/T89C51CC02
Bit
Number
7CANX2
6WDX2
5PCAX2
4SIX2
3T2X2
2T1X2
1T0X2
Bit
Mnemonic Description
CAN Clock
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Watchdog Clock
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Programmable Counter Array Cloc k
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Enhanced UART clock (MODE 0 and 2)
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Timer 2 Clock
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Timer 1 Clock
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Timer 0 Clock
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
(1)
(1)
(1)
(1)
(1)
(1)
(1)
4126L–CAN–01/08
CPU Clock
0X2
Clear to select 12 clock periods per machine cycle (STD mode) for CPU and all
the peripherals.
Set to select 6 clock periods per machine cycle (X2 Mode) and to enable the
individual peripherals ’X2’ bits.
Note:1. This control bit is validated when the CPU clock bit X2 is set; when X2 is low, this bit
has no effect.
Reset Value = 0000 0000b
19
AT/T89C51CC02
Power ManagementTwo power reduction modes are implemented in the A/T89C51CC02: the Idle mode and
0
the Power-do wn mode . These modes ar e detai led in th e follo wing se ction s. In ad dition
to these power redu cti on mo des , t he cl oc ks o f th e c ore and peripherals can be dy nam ically divided by 2 using the X2 Mode detailed in Section “Clock”.
Reset PinIn order to start- up (c old re se t) or to res tart (warm rese t) pro perly the m icroc ontroll er, a
high level has to be applied on the RST pin. A bad level leads to a wrong initialisation of
the internal registers like S F Rs, P C, etc . and to unp re dicta ble behavior of the microcontroller. A warm reset ca n be applied either dir ectly o n the RST pin or indire ctly by an
internal reset source such as a watchdog, PCA, timer, etc.
At Power-up (cold reset)Two conditions are required before enabling a CPU start-up:
•VDD must reach the specified VDD range,
•The level on xtal1 input must be outside the specification (VIH, VIL).
If one of these two conditions are not met, the microcontroller d oes not start cor rectly
and can execute an instruct ion fetch fro m anywhe re in the progr am spac e. An active
level applied on the RST pin must be mainta ined unti l both of th e above c onditi ons are
met. A reset is active wh en the lev el VIH1 is reached an d when the pu lse wid th covers
the period of time where VDD and the oscillator are not stabilized. Two parameters have
to be taken into account to determine the reset pulse width:
•VDD rise time (vddrst),
•Oscillator startup time (oscrst).
To determine the capacitor the highest value of these two parameters has to be chosen.
The reset circuitry is shown in Figure 5.
Figure 5. Reset Circuitry
VDD
Crst
RST pin
Rrst
Reset input circuitry
Internal reset
Table 13 and Table 14 give some typical examples for three values of VDD rise times,
two values of oscillator start-up time and two pull-down resistor values.
Table 13. Minimum Reset Capacitor for a 50K Pull-down Resistor
oscrst/vddrst1ms10ms100ms
5ms820nF1.2µF12µF
20
20ms2.7µF3.9µF12µF
4126L–CAN–01/08
AT/T89C51CC02
Table 14. Minimum Reset Capacitor for a 15k Pull-down Resistor
oscrst/vddrst1ms10ms100ms
5ms2.7µF4.7µF47µF
20ms10µF15µF47µF
Note:These values assume VDD starts from 0v to the nominal value. If the time between two
on/off sequences is too fast, the power-supply decoupling capacitors may not be fully
discharged, leading to a bad reset sequence.
During a Normal
Operation (Warm Reset)
Reset pin must be maintained for at l ea st 2 m achi ne cy cl es (24 os c illat or c lock pe r iod s)
to apply a reset s equence duri ng normal o peration. The number of cl ock periods is
mode independent (X2 or X1).
Watchdog ResetA 1K resistor must be added in series with the capacitor to allow the use of watchdog
reset pulse output on the RST pin or when an external power-supply supervisor is used.
Figure 6 shows the reset circuitry when a capacitor is used.
Figure 6. Reset Circuitry for a Watchdog Configuration
VDD
Crst
1kRST pin
Rrst
Reset input circuitry
To other on-board circuitry
Figure 7 shows the reset circuitry when an external reset circuit is used.
watchdog
Internal reset
4126L–CAN–01/08
Figure 7. Reset Circuitry Example Using an External Reset Circuit
VDD
External reset
circuit
RST
1kRST pin
Rrst
Reset input circuitry
To other on-board circuitry
watchdog
Internal reset
21
AT/T89C51CC02
Reset Recommendation
to Prevent Flash
Corruption
When a Flash program memory is embedded on-chip, it is strongly recommended to
use an external reset chip (brown out device) to apply a reset (Figure 7). It prevents system malfunction during periods of insufficient power-supply voltage (power-supply
failure, power supply switched off, etc.).
Idle ModeIdle mode is a power reduction mode that reduces the power consumption. In this mode,
program execution halts. Idle mode freezes the cl ock to the CPU at known sta tes while
the peripherals continue to be clocked. The CPU status before entering Idle mode is
preserved, i.e., the program counter and program status word register retain their data
for the duration of Idle mode. The contents of the SFRs and RAM are also retained. The
status of the Port pins during Idle mode is detailed in Table 15.
Entering Idle ModeTo enter Idle mode, set the IDL bi t in PCON register (See Table 16). The
A/T89C51CC02 enters Idle mode upon execution of the instruction that sets IDL bit. The
instruction that sets IDL bit is the last instruction executed.
Note:If IDL bit and PD bit are set simultaneously, the A/T89C51CC02 enters Power-down
mode. Then it does not go in Idle mode when exiting Power-down mode.
Exiting Idle ModeThere are two ways to exit Idle mode:
1.Generate an enabled interrupt.
Hardware clears IDL bit in PCON register which restores the clock to the CPU. Exe-
cution resumes with the interrupt service routine. Upon completion of the interrupt
service routine, pr o gr am exec uti on r e su mes with the instruction im med iat ely following the instruction that activated Idle mode. The general purpose flags (GF1 and
GF0 in PCON register) may be used to indicate whether an interrupt occurred during normal operati on o r dur i ng I dle mo de. Wh en Idle mode is exite d b y a n i nte rrup t,
the interrupt service routine may examine GF1 and GF0.
2.Generate a reset.
A logic high on the RST pin clears IDL bit in PCON register directly and asynchro-
nously. This restores the c lock to the CPU. Program execu tion momentarily
resumes with the inst ructio n immedia tely follow ing the in structi on that activ ated the
Idle mode and may continue for a number of clock cycles before the internal reset
algorithm takes control. Reset initializes the A/T89C51CC02 and vectors the CPU to
address C:0000h.
Power-down ModeThe Power-down mode places the A/T89C51 CC02 in a v ery low po wer state. Powe r-
Entering Power-down ModeTo enter Power-down mode, set PD bit in PCON register. The A/T89C51CC02 enters
22
Notes:1. Dur i ng the t im e th at ex e cuti o n re su me s, th e i nte r na l R AM ca n no t be ac ce ss ed ; ho w -
ever, it is possible for the Port pins to be accessed. To avoid unexpected outputs at
the Port pins, the instruction immediately following the instruction that activated Idle
mode should not write to a Port pin or to the external RAM.
2. If Idle mode is invoked by ADC Idle, the ADC conversion completion will exit Idle.
down mode stops t he osci ll ator , freez es a ll c lock at k nown s tate s. The CPU st atus p rior
to entering Power-down mode is preserved, i.e., the program counter, program status
word register retain their data for the duration of Power-down mode. In addition, the
SFRs and RAM content s a re pres erv ed. T h e s tatu s of the Po rt pins dur in g P ower -do w n
mode is detailed in Table 15.
the Power-down mode upon execution of the instruction that sets PD bit. The instruction
that sets PD bit is the last instruction executed.
4126L–CAN–01/08
AT/T89C51CC02
Exiting Power-down ModeNote:If V
was reduced during the Power-down mode, do not exit Power-down mode until
DD
V
is restored to the normal operating level.
DD
There are two ways to exit the Power-down mode:
1.Generate an enabled external interrupt.
–The A/T89C51CC02 provides capability to exit from Power-down using
INT0#, INT1#.
Hardware clears PD bit in PCON register which starts the oscillator and
restores the clocks to the CPU and peripherals. Using INTx# input,
execution resumes when the input is released (See Figure 8). Execution
resumes with the interrupt service routine. Upon completion of the interrupt
service routine, program execution resumes with the instruction immediately
following the instruction that activated Power-down mode.
Notes: 1. The external interrupt used to exit Power-down mode must be configured as level
sensitive (INT0# and INT1#) and must be assigned the highest priority. In addition,
the duration of the interrupt must be long enough to allow the oscillator to stabilize.
The execution will only resume when the interrupt is deasserted.
2. Exit from power-down by external interrupt does not affect the SFRs nor the internal
RAM content.
2.Generate a reset.
–A logic high on the RST pin clears PD bit in PCON register directly and
asynchronously. This starts the oscillator and restores the clock to the CPU
and peripherals. Program execution momentarily resumes with the
instruction immediately following the instruction that activated Power-down
mode and may continue for a number of clock cycles before the internal
reset algorithm takes control. Reset initializes the A/T89C51CC02 and
vectors the CPU to address 0000h.
Notes:1. Dur i ng the t im e th at ex e cuti o n re su me s, th e i nte r na l R AM ca n no t be ac ce ss ed ; ho w -
ever, it is possible for the Port pins to be accessed. To avoid unexpected outputs at
the Port pins, the instruction immediately following the instruction that activated the
Power-down mode should not write to a Port pin or to the external RAM.
2. Exit from power-down by res et r edefines all the SFRs, b ut do es not af fect the internal
RAM content.
4126L–CAN–01/08
23
AT/T89C51CC02
Table 15. Pin Conditions in Special Operating Modes
ModePort 1Port 2Port 3Port 4
ResetHighHighHighHigh
Idle
(internal
code)
Idle
(external
code)
Power-
Down(inter
nal code)
Power-
Down
(external
code)
DataDataDataData
DataDataDataData
DataDataDataData
DataDataDataData
24
4126L–CAN–01/08
RegistersTable 16. PCON Register
PCON (S:87h)
Power Control Register
76543210
SMOD1SMOD0-POFGF1GF0PDIDL
AT/T89C51CC02
Bit
Number
7SMOD1
6SMOD0
5-
4POF
3GF1
2GF0
1PD
0IDL
Bit
Mnemonic Description
Serial port Mode bit 1
Set to select double baud rate in mode 1, 2 or 3.
Serial port Mode bit 0
Clear to select SM0 bit in SCON register.
Set to select FE bit in SCON register.
Reserved
The value read from this bit is indeterminate. Do not set this bit.
Power-off Flag
Clear to recognize next reset type.
Set by hardware when V
software.
General purpose Flag
Cleared by user for general purpose usage.
Set by user for general purpose usage.
General purpose Flag
Cleared by user for general purpose usage.
Set by user for general purpose usage.
Power-down Mode bit
Cleared by hardware when reset occurs.
Set to enter power-down mode.
Idle Mode bit
Clear by hardware when interrupt or reset occurs.
Set to enter idle mode.
rises from 0 to its nominal voltage. Can also be set by
CC
4126L–CAN–01/08
Reset Value = 00X1 0000b
Not bit addressable
25
AT/T89C51CC02
Data MemoryThe T89C51CC02 provides data memory access in two different spaces:
The internal space mapped in three separate segments:
•The lower 128 Bytes RAM segment.
•The upper 128 Bytes RAM segment.
•The expanded 256 Bytes RAM segment (XRAM).
A fourth internal segment is available but dedicated to Special Function Registers,
SFRs, (addresses 80h to FFh) accessible by direct addressing mode.
Figure 9 shows the internal data memory spaces organization.
Figure 9. Internal memory - RAM
FFh
00h
256 Bytes
Internal XRAM
FFh
80h80h
7Fh
00h
Upper
128 Bytes
Internal RAM
Indirect Addressing
Lower
128 Bytes
Internal RAM
Direct or Indirect
Addressing
FFh
Direct Addressing
Special
Function
Registers
Internal Space
Lower 128 Bytes RAMThe lower 128 Bytes of RAM (See Figure 10) are accessible from address 00h to 7Fh
using direct or indirect address ing modes. T he lowest 32 Bytes are grouped in to 4
banks of 8 registers (R0 to R7 ). Two bits RS0 and RS 1 in PSW re giste r (See Tabl e 18)
select which bank is in use according to Table 17. This allows more efficient use of code
space, since register instructions are shorter than instructions that use direct addressing, and can be used for context switching in interrupt service routines.
Table 17. Register Bank Selection
RS1RS0Description
00Register bank 0 from 00h to 07h
26
01Register bank 0 from 08h to 0Fh
10Register bank 0 from 10h to 17h
11Register bank 0 from 18h to 1Fh
The next 16 Bytes above the register banks form a block of bit-addressable memory
space. The C51 ins truction set i ncludes a wide s election o f singlebit instruct ions, and
the 128 bits in this area can be directly addressed by these instructions. The bit
addresses in this area are 00h to 7Fh.
Upper 128 Bytes RAMThe upper 128 Bytes of RAM are accessible from address 80h to FFh using only indirect
addressing mode.
Expanded RAMThe on-chip 256 Bytes of expanded RAM (XRAM) are accessible from address 0000h to
00FFh using i ndirect ad dressing mode thro ugh MOVX in structio ns. In this a ddress
range.
Note:Lower 128 Bytes RAM, Upper 128 Bytes RAM, and expanded RAM are made of volatile
memory cells. This means that the RAM content is indeterminate after power-up and
must then be initialized properly.
4126L–CAN–01/08
27
AT/T89C51CC02
Dual Data Pointer
DescriptionThe T89C51CC02 imp lements a second data pointer for speeding up code exe cution
and reducing code size in case of intensive usage of external memory accesses.
DPTR0 and DPTR1 are Seen by the CPU as DPT R and are accessed using the SFR
addresses 83h and 84h that are the DPH and DPL addresses. The DPS bit in AUXR1
register (See Figure 19) is used to select whether DPTR is the data pointer 0 or the data
pointer 1 (See Figure 11).
Figure 11. Dual Data Pointer Implementation
DPL0
DPL1
DPTR0
DPTR1
DPH0
DPH1
0
1
DPS
0
1
DPL
AUXR1.0
DPH
DPTR
ApplicationSoftware can take advantage of the additional data pointers to both increase speed and
reduce code size, for example, block operations (copy, compare…) are well served by
using one data pointer as a “source” pointer and the other one as a “destination” pointer.
Hereafter is an example of block move implementation using the two pointers and coded
in assembler. The latest C compiler takes als o advantag e of this feature b y providin g
enhanced algorithm libraries.
The INC instruction is a short (2 Bytes) and fast (6 machine cycle) way to manipulate the
DPS bit in the AUXR 1 reg ister. H owever , note that th e INC i nstruc tion do es no t direc tly
force the DPS bit to a particular state, but simply toggles it. In simple routines, such as
the block move exa mple, o nly the f act that DP S is tog gled i n the pr oper s equenc e matters, not its actual value. In other words, the block move routine works the same whether
DPS is 0 or 1 on entry.
; ASCII block move using dual data pointers
; Modifies DPTR0, DPTR1, A and PSW
; Ends when encountering NULL character
; Note: DPS exits opposite to the entry state unless an extra INC AUXR1 is
added
28
AUXR1EQU0A2h
move:movDPTR,#SOURCE ; address of SOURCE
incAUXR1 ; switch data pointers
movDPTR,#DEST ; address of DEST
mv_loop:incAUXR1; switch data pointers
movxA,@DPTR; get a byte from SOURCE
incDPTR; increment SOURCE address
incAUXR1; switch data pointers
movx@DPTR,A; write the byte to DEST
incDPTR; increment DEST address
jnzmv_loop; check for NULL terminator
end_move:
4126L–CAN–01/08
RegistersTable 18. PSW Register
PSW (S:D0h)
Program Status Word Register
76543210
CYACF0RS1RS0OVF1P
AT/T89C51CC02
Bit
Number
7CY
6AC
5F0User Definable Flag 0
4 - 3RS1:0
2OV
1F1User Definable Flag 1
0P
Bit
Mnemonic Description
Carry Flag
Carry out from bit 1 of ALU operands.
Auxiliary Carry Flag
Carry out from bit 1 of addition operands.
Register Bank Select bits
Refer to Table 17 for bits description.
Overflow Flag
Overflow set by arithmetic operations.
Parity bit
Set when ACC contains an odd number of 1’s.
Cleared when ACC contains an even number of 1’s.
Reset Value = 0000 0000b
4126L–CAN–01/08
29
AT/T89C51CC02
Table 19. AUXR1 Register
AUXR1 (S:A2h)
Auxiliary Control Register 1
76543210
--ENBOOT-GF30-DPS
Bit
Number
7 - 6-
5ENBOOT
4-
3GF3General Purpose Flag 3
20
1-Reserved for Data Pointer Extension
0DPS
Bit
Mnemonic Description
Reserved
The value read from these bits is indeterminate. Do not set these bits.
Enable Boot Flash
(1)
Set this bit to map the boot Flash between F800h -FFFFh
Clear this bit to disable boot Flash.
Reserved
The value read from this bit is indeterminate. Do not set this bit.
Always Zero
This bit is stuck to logic 0 to allow INC AUXR1 instruction without affecting GF3
flag.
Data Pointe r Select bit
Set to select second dual data pointer: DPTR1.
Clear to select first dual data pointer: DPTR0.
Reset Value = XXXX 00X0b
Note:1. ENBOOT is initialized with the invert BLJB at reset. See In-System Programming
section.
30
4126L–CAN–01/08
Loading...
+ 129 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.