– Maximum Core Frequency 48 MHz in X1 Mode, 24 MHz in X2 Mode
– Dual Data Pointer
– Full-duplex Enhanced UART (EUART)
– Three 16-bit Timer/Counters: T0, T1 and T2
– 256 Bytes of Scratchpad RAM
• 16/32-Kbyte On-chip Flash EEPROM In-System Programming through USB
– Byte and Page (128 bytes) Erase and Write
– 100k Write C ycles
• 3-KbyteFlash EEPROM for Bootloader
– Byte and Page (128 bytes) Erase and Write
– 100k Write C ycles
• 1-Kbyte EEPROM Data (
– Byte and Page (128 bytes) Erase and Write
– 100k Write C ycles
• On-chip Expanded RAM (ERAM): 1024 Bytes
• Integrated Power Monitor (POR/PFD) to Supervise Internal Power Supply
• USB 1.1 and 2.0 Full Speed Compliant Module with Interrupt on Transfer Completion
– Endpoint 0 for Control Transfers: 32-byte FIFO
– 6 Programmable Endpoints with In or Out Directions and with Bulk, Interrupt or
Isochronous Transfers
Endpoint 1, 2, 3: 32-byte FIFO
Endpoint 4, 5: 2 x 64-byte FIFO with Double Buffering (Ping-pong Mode)
Endpoint 6: 2 x 512-byte FIFO with Double Buffering (Ping-pong Mode)
– Suspend/Resume Interrupts
– 48 MHz PLL for Full-speed Bus Operation
– Bus Disconnection on Microcontroller Request
Output, Compare/Capture, PWM and Watchdog Timer Capabilities
• Programmable Hardware Watchdog Timer (One-time Enabled with Reset-out): 100 ms
to 3s at 8 MHz
• Keyboard Interrupt Interface on Port P1 (8 Bits)
• TWI (Two Wire Interface) 400Kbit/s
• SPI Interface (Master/Slave Mode)
• 34 I/O Pins
• 4 Direct-drive LED Outputs with Programmable Current Sources: 2-6-10 mA Typical
• 4-level Priority Interrupt System (11 sources)
• Idle and Power-down Modes
• 0 to 24 MHz On-chip Oscillator with Analog PLL for 48 MHz Synthesis
• Industrial Temperature Range
• Extended Range Power Supply: 2.7V to 5.5V (3.3V to 5.5V required for USB)
• Packages: PLCC52, VQFP64, QFN32
8-bit Flash
Microcontroller
with Full Speed
USB Device
AT89C5130A-M
AT89C5131A-M
Rev. 4337G–USB–11/06
DescriptionAT89C5130A/31A-M is a high-performance Flash version of the 80C51 single-chip 8-bit
microcontrollers with full speed USB functions.
AT89C5130A/31A-M features a full-speed USB module compatible with the USB specifications Version 1.1 and 2.0. This module integrates the USB transceivers with a 3.3V
voltage regulator and the Serial Interface Engine (SIE) with Digital Phase Locked Loop
and 48 MHz clock recovery. USB Event detection logic (Reset and Suspend/Resume)
and FIFO buffers supporting the mandatory control Endpoint (EP0) and up to 6 versatile
Endpoints (EP1/EP2/EP3/EP4/EP5/EP6) with minimum software overhead are also part
of the USB module.
AT89C5130A/31A-M retains the features of the Atmel 80C52 with extended Flash
capacity (16/32-Kbytes), 256 bytes of internal RAM, a 4-level interrupt system, two 16bit timer/counters (T0/T1), a full duplex enhanced UART (EUART) and an on-chip
oscillator.
In addition, AT89C5130A/31A-M has an on-chip expanded RAM of 1024 bytes (ERAM),
a dual data pointer, a 16-bit up/down Timer (T2), a Programmable Counter Array (PCA),
up to 4 programmable LED current sources, a programmable hardware watchdog and a
power-on reset.
AT89C5130A/31A-M has two software-selectable modes of reduced activity for further
reduction in power consumption. In the idle mode the CPU is frozen while the timers, the
serial ports and the interrupt system are still operating. In the power-down mode the
RAM is saved, the peripheral clock is frozen, but the device has full wake-up capability
through USB events or external interrupts.
2
AT89C5130A/31A-M
4337G–USB–11/06
Block Diagram
XTAL1
XTAL2
ALE
PSEN
EA
CPU
RxD
(2)(2)
EUART
+
BRG
TxD
C51
CORE
RAM
256x8
VDD
VSS
16/32Kx8Flash
EEPROM
4Kx8
ERAM
1Kx8
AT89C5130A/31A-M
SS
MISO
MOSI
ECI
(1)(1)
PCA
CEX
T2EX
(1) (1)
Timer2
T2
SCL
(3) (3)
TWI
SDA
(1) (1) (1)
SCK
(1)
SPI
(2)
RD
(2)
WR
RST
Notes: 1. Alternate function of Port 1
2. Alternate function of Port 3
3. Alternate function of Port 4
Timer 0
Timer 1
(2) (2)(2) (2)
T0
T1
INT
Ctrl
INT0
Parallel I/O Ports & Ext. Bus
Port 1
Port 0
P1
INT1
P0
Port 2
P2
Port 3
P3
Port 4
P4
Key
Board
KIN [0..7]
Watch
Dog
USB
D -
D +
Regu-
lator
AVSS
VREF
AVDD
4337G–USB–11/06
3
Pinout Description
Pinout
Figure 1. AT89C5130A/31A-M 52-pin PLCC Pinout
P1.7/CEX4/KIN7/MOSI
P1.6/CEX3/KIN6/SCK
P4.1/SDA
P2.3/A11
P2.4/A12
P2.5/A13
XTAL2
XTAL1
P2.6/A14
P2.7/A15
VDD
AVD D
UCAP
AVSS
P3.0/RxD
P4.0/SCL
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 222625242329282730 31
PLLF
P1.5/CEX2/KIN5/MISO
5 4 3 2 1 6
D-
D+
VREF
P2.0/A8
P2.1/A9
P2.2/A10
PLCC52
EA
ALE
UVSS
P1.4/CEX1/KIN4
P0.0/AD0
52 51 50 49 48
PSEN
P3.1/TxD
P1.2/ECI/KIN2
P1.3/CEX0/KIN3
P1.1/T2EX/KIN1/SS
P1.0/T2/KIN0
47
NC
46
P0.1/AD1
45
P0.2/AD2
44
43
RST
42
P0.3/AD3
41
VSS
P0.4/AD4
40
39
P3.7/RD/LED3
P0.5/AD5
38
37
P0.6/AD6
P0.7/AD7
36
35
P3.6/WR/LED2
NC
34
32 33
/LED0
P3.4/T0
P3.2/INT0
P3.5/T1/LED1
P3.3/INT1
4
AT89C5130A/31A-M
4337G–USB–11/06
AT89C5130A/31A-M
Figure 2. AT89C5130A/31A-M 64-pin VQFP Pinout
NC
P2.3/A11
P2.4/A12
P2.5/A13
XTAL2
XTAL1
P2.6/A14
P2.7/A15
VDD
AVD D
UCAP
AVSS
NC
P3.0/RxD
NC
NC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
64
NC
P4.1/SDA
P1.6/CEX3/KIN6/SCK
P1.7/CEX4/KIN7/MOSI
P4.0/SCL
62 61 60 59 58 63
P2.1/A9
P2.2/A10
P1.5/CEX2/KIN5/MISO
57 56 55 54 53
VQFP64
17 182221201925242326 27
NC
PLLF
D-
D+
VREF
UVSS
EA
NC
P2.0/A8
ALE
P0.0/AD0
PSEN
P3.1/TxD
P1.4/CEX1/KIN4
28
P1.2/ECI/KIN2
P1.0/T2/KIN0
P1.1/T2EX/KIN1/SS
51 50
30
31 32
P3.4/T0
P3.5/T1/LED1
NC
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
NC
NC
NC
P0.1/AD1
P0.2/AD2
RST
P0.3/AD3
VSS
NC
P0.4/AD4
P3.7/RD/LED3
P0.5/AD5
P0.6/AD6
P0.7/AD7
P3.6/WR/LED2
NC
NC
P1.3/CEX0/KIN3
52
29
/LED0
P3.2/INT0
P3.3/INT1
4337G–USB–11/06
5
Figure 3. AT89C5130A/31A-M 32-pin QFN Pinout
P1.7/CEX4/KIN7/MOSI
P4.1/SDA
XTAL2
XTAL1
VDD
UCAP
AVSS
P3.0/RxD
PLLF
P4.0/SCL
32 31 30 29 28 27 26 25
1
2
3
4
5
6
7
8
9 10 11 12 13 14 15 16
D-
P1.6/CEX3/KIN6/SCK
QFN32
D+
VREF
P1.5/CEX2/KIN5/MISO
UVSS
P1.4/CEX1/KIN4
P3.1/TxD
P1.2/ECI/KIN2
P1.3/CEX0/KIN3
P1.1/T2EX/KIN1/SS
24
P1.0/T2/KIN0
23
RST
22
NC
21
VSS
20
NC
19
P3.7/RD/LED3
18
17
/LED0
P3.4/T0
P3.2/INT0
P3.3/INT1
/LED2
P3.6/WR
P3.5/T1/LED1
Note : The metal plate can be connected to Vss
6
AT89C5130A/31A-M
4337G–USB–11/06
AT89C5130A/31A-M
SignalsAll the AT89C5130A/31A-M signals are detailed by functionality on Table 1 through
Table 12.
Table 1. Keypad Interface Signal Description
Signal
NameType Description
KIN[7:0)I
Keypad Input Lines
Holding one of these pins high or low for 24 oscillator periods triggers a
keypad interrupt if enabled. Held line is reported in the KBCON register.
Table 2. Programmable Counter Array Signal Description
Signal
NameType Description
ECIIExternal Clock InputP1.2
Capture External Input
CEX[4:0]I/O
Compare External Output
Table 3. Serial I/O Signal Description
Signal
NameType Description
RxDISerial Input PortP3.0
Alternate
Function
P1[7:0]
Alternate
Function
P1.3
P1.4
P1.5
P1.6
P1.7
Alternate
Function
TxDOSerial Output PortP3.1
Table 4. Timer 0, Timer 1 and Timer 2 Signal Description
Signal
NameType Description
Timer 0 Gate Input
serves as external run control for timer 0, when selected by GATE0
INT0
bit in TCON register.
INT0I
INT1I
External Interrupt 0
input set IE0 in the TCON register. If bit IT0 in this register is set, bits
INT0
IE0 are set by a falling edge on INT0
a low level on INT0
Timer 1 Gate Input
serves as external run control for Timer 1, when selected by GATE1
INT1
bit in TCON register.
External Interrupt 1
input set IE1 in the TCON register. If bit IT1 in this register is set, bits
INT1
IE1 are set by a falling edge on INT1
a low level on INT1
.
.
. If bit IT0 is cleared, bits IE0 is set by
. If bit IT1 is cleared, bits IE1 is set by
Alternate
Function
P3.2
P3.3
4337G–USB–11/06
7
Table 4. Timer 0, Timer 1 and Timer 2 Signal Description (Continued)
Signal
NameType Description
Alternate
Function
T0I
T1I
T2
T2EXITimer/Counter 2 Reload/Capture/Direction Control InputP1.1
Timer Counter 0 External Clock Input
When Timer 0 operates as a counter, a falling edge on the T0 pin
increments the count.
Timer/Counter 1 External Clock Input
When Timer 1 operates as a counter, a falling edge on the T1 pin
increments the count.
I
Timer/Counter 2 External Clock Input
O
Timer/Counter 2 Clock Output
Table 5. LED Signal Description
Signal
NameType Description
Direct Drive LED Output
LED[3:0]O
These pins can be directly connected to the Cathode of standard LEDs
without external current limiting resistors. The typical current of each
output can be programmed by software to 2, 6 or 10 mA. Several outputs
can be connected together to get higher drive capabilities.
Table 6. TWI Signal Description
Signal
NameType Description
P3.4
P3.5
P1.0
Alternate
Function
P3.3
P3.5
P3.6
P3.7
Alternate
Function
SCLI/O
SDAI/O
SCL: TWI Serial Clock
SCL output the serial clock to slave peripherals.
SCL input the serial clock from master.
SDA: TWI Serial Data
SCL is the bidirectional TWI data line.
Table 7. SPI Signal Description
Signal
NameType Description
SSI/OSS
MISOI/O
SCKI/O
MOSI
I/O
: SPI Slave SelectP1.1
MISO: SPI Master Input Slave Output line
When SPI is in master mode, MISO receives data from the slave
peripheral. When SPI is in slave mode, MISO outputs data to the master
controller.
SCK: SPI Serial Clock
SCK outputs clock to the slave peripheral or receive clock from the master
MOSI: SPI Master Output Slave Input line
When SPI is in master mode, MOSI outputs data to the slave peripheral.
When SPI is in slave mode, MOSI receives data from the master controller
P4.0
P4.1
Alternate
Function
P1.5
P1.6
P1.7
8
AT89C5130A/31A-M
4337G–USB–11/06
AT89C5130A/31A-M
Table 8. Ports Signal Description
Signal
NameType DescriptionAlternate Function
Port 0
P0 is an 8-bit open-drain bidirectional I/O port. Port 0
P0[7:0]I/O
P1[7:0]I/O
pins that have 1s written to them float and can be used
as high impedance inputs. To avoid any parasitic current
consumption, Floating P0 inputs must be pulled to V
.
V
SS
Port 1
P1 is an 8-bit bidirectional I/O port with internal pull-ups.
DD
or
AD[7:0]
KIN[7:0]
T2
T2EX
ECI
CEX[4:0]
P2[7:0]I/O
P3[7:0]I/O
P4[1:0]I/O
Port 2
P2 is an 8-bit bidirectional I/O port with internal pull-ups.
Port 3
P3 is an 8-bit bidirectional I/O port with internal pull-ups.
Port 4
P4 is an 2-bit open drain port.
Table 9. Clock Signal Description
Signal
NameType Description
XTAL1I
XTAL2O
Input to the on-chip inv e r ting oscillator amplifier
To use the internal oscillator, a crystal/resonator circuit is connected to this
pin. If an external oscillator is used, its output is connected to this pin.
Output of the on-chip inverting oscillator amplifier
To use the internal oscillator, a crystal/resonator circuit is connected to this
pin. If an external oscillator is used, leave XTAL2 unconnected.
A[15:8]
LED[3:0]
RxD
TxD
INT0
INT1
T0
T1
WR
RD
SCL
SDA
Alternate
Function
-
-
4337G–USB–11/06
PLLFI
PLL Low Pass Filter input
Receive the RC network of the PLL low pass filter.
-
9
Table 10. USB Signal Description
Signal
NameType Description
D+I/O
D-I/O
VREFO
USB Data + signal
Set to high level under reset.
USB Data - signal
Set to low level under reset.
USB Reference Voltage
Connect this pin to D+ using a 1.5 kΩ resistor to use the Detach function.
Alternate
Function
Table 11. System Signal Description
Signal
NameType Description
AD[7:0]I/O
A[15:8]I/OAddress Bus MSB for external accessP2[7:0]
RD
WR
Multiplexed Address/Data LSB for external access
Data LSB for Slave port access (used for 8-bit and 16-bit modes)
Read Signal
Read signal asserted during external data memory read operation.
I/O
Control input for slave port read access cycles.
Write Signal
Write signal asserted during external data memory write operation.
I/O
Control input for slave write access cycles.
Alternate
Function
P0[7:0]
-
-
-
P3.7
P3.6
Reset Input
Holding this pin low for 64 oscillator periods while the oscillator is running
resets the device. The Port pins are driven to their reset conditions when a
is applied, whether or not the oscillator is running.
IL
when the chip is in Idle mode or Power-down mode returns
RST
ALEO
PSENI/O
EA
O
voltage lower than V
This pin has an internal pull-up resistor which allows the device to be reset
by connecting a capacitor between this pin and VSS.
Asserting RST
the chip to normal operation.
This pin is tied to 0 for at least 12 oscillator periods when an internal reset
occurs ( hardware watchdog or power monitor).
Address Latch Enable Output
The falling edge of ALE strobes the address into external latch. This signal
is active only when reading or writing external memory using MOVX
instructions.
Program Strobe En a b le / H a r d wa r e conditions In pu t f o r ISP
Used as input under reset to detect external hardware conditions of ISP
mode.
External Access Enable
I
This pin must be held low to force the device to fetch code from external
program memory starting at address 0000h.
Table 12. Power Signal Description
Signal
NameType Description
-
-
-
-
Alternate
Function
10
AVS SG ND
AT89C5130A/31A-M
Analog Ground
AVSS is used to supply the on-chip PLL and the USB PAD.
-
4337G–USB–11/06
Table 12. Power Signal Description (Continued)
Signal
NameType Description
AT89C5130A/31A-M
Alternate
Function
AVD DPWR
VSSGND
UVSSGND
UCAPPWR
VDDPWR
VREFO
Analog Supply Voltage
AVDD is used to supply the on-chip PLL and the USB PAD.
Digital Grou nd
VSS is used to supply the buffer ring and the digital core.
USB Digital Ground
UVSS is used to supply the USB pads.
USB Pad Power Capacitor
UCAP must be connect to an external capacitor for USB pad power supply
(for typical application see Figure 4 on page 12)
Digital Supply V oltage
VDD is used to supply the buffer ring on all versions of the device.
It is also used to power the on-chip voltage regulator of the Standard
versions or the digital core of the Low Power versions.
USB pull-up Controlled Output
VREF is used to control the USB D+ 1.5 kΩ pull up.
The Vref output is in high impedance when the bit DETACH is set in the
USBCON register.
-
-
-
-
-
-
4337G–USB–11/06
11
Typical Application
Recommended External components
All the external components described in the figure below must be implemented as
close as possible from the microcontroller package.
The following figure represents the typical wiring schematic.
Figure 4. Typical Application
VDD
USB
VBUS
D+
D-
GND
VDD
VSS
2.2nF
1μF
+20%
VSS
100R
10nF
VSS
1.5K
27R
27R
VSS
VSS
4.7μF
VSS
100nF
VDD
VRef
AT89C5130A/31A-M
D+
D-
UVSS
UCAP
PLLF
VSS
VSS
AVDD
XTAL1
XTAL2
AVSS
100nF
VSS
22pF
Q
22pF
VSS
12
AT89C5130A/31A-M
4337G–USB–11/06
PCB Recommandations
AT89C5130A/31A-M
Figure 5. USB Pads
VRef
D+
D-
Figure 6. USB PLL
Components must be
close to the
microcontroller
If possible, i solate D+ and D- signals from other signal s
with ground wires
Wires must be routed in Parallel and
must be as short as possible
PLLFAVss
Components must be
close to the
microcontroller
Isolate filter components
with a ground wire
C1
C2
R
USB Connector
4337G–USB–11/06
13
Clock Controller
IntroductionThe AT89C5130A/31A-M clock controller is based on an on-chip oscillator feeding an
on-chip Phase Lock Loop (PLL). All the internal clocks to the peripherals and CPU core
are generated by this controller.
The AT89C5130A/31A-M X1 and X2 pins are the input and the output of a single-stage
on-chip inverter (see Figure 7) that can be configured with off-chip components as a
Pierce oscillator (see Figure 8). Value of capacitors and crystal characteristics are
detailed in the section “DC Characteristics”.
The X1 pin can also be used as input for an external 48 MHz clock.
The clock controller outputs three different clocks as shown in Figure 7:
•a clock for the CPU core
•a clock for the peripherals which is used to generate the Timers, PCA, WD, and Port
sampling clocks
•a clock for the USB controller
These clocks are enabled or disabled depending on the power reduction mode as
detailed in Section “Power Management”, page 153.
Figure 7. Oscillator Block Diagram
0
1
X2
CKCON.0
X1
X2
EXT48
PLLCON.2
PD
PCON.1
PLL
÷2
0
1
OscillatorTwo types of clock sources can be used for CPU:
•Crystal oscillator on X1 and X2 pins: Up to 32 MHz (Amplifier Bandwidth)
•External clock on X1 pin: Up to 48MHz
Peripheral
Clock
CPU Core
Clock
IDL
PCON.0
USB
Clock
14
In order to optimize the power consumption, the oscillator inverter is inactive when the
PLL output is not selected for the USB device.
AT89C5130A/31A-M
4337G–USB–11/06
AT89C5130A/31A-M
Figure 8. Crystal Connection
X1
C1
Q
C2
VSS
PLL
PLL DescriptionThe AT89C5130A/31A-M PLL is used to generate internal high frequency clock (the
USB Clock) synchronized with an external low-frequency (the Peripheral Clock). The
PLL clock is used to generate the USB interface clock. Figure 9 shows the internal
structure of the PLL.
The PFLD block is the Phase Frequency Comparator and Lock Detector. This block
makes the comparison between the reference clock coming from the N divider and the
reverse clock coming from the R divider and generates some pulses on the Up or Down
signal depending on the edge position of the reverse clock. The PLLEN bit in PLLCON
register is used to enable the clock generation. When the PLL is locked, the bit PLOCK
in PLLCON register (see Figure 9) is set.
X2
The CHP block is the Charge Pump that generates the voltage reference for the VCO by
injecting or extracting charges from the external filter connected on PLLF pin (see
Figure 10). Value of the filter components are detailed in the Section “DC
Characteristics”.
The VCO block is the Voltage Controlled Oscillator controlled by the voltage V
duced by the charge pump. It generates a square wave signal: the PLL clock.
Figure 9. PLL Block Diagram and Symbol
OSC
CLOCK
N divider
N3:0
Figure 10. PLL Filter Connection
PLLCON.1
PLLEN
PFLD
PLOCK
PLLCON.0
USBclk
Up
Down
OSCclkR1+()×
-----------------------------------------------=
PLLF
CHP
R divider
R3:0
N1+
PLLF
Vref
VCOUSB Clock
USB
CLOCK
USB Clock Symbol
REF
pro-
4337G–USB–11/06
R
C1
VSS
C2
VSS
The typical values are: R = 100 Ω, C1 = 10 nf, C2 = 2.2 nF.
15
PLL ProgrammingThe PLL is programmed using the flow shown in Figure 11. As soon as clock generation
is enabled user must wait until the lock indicator is set to ensure the clock output is
stable.
Figure 11 . PLL Programming Flow
PLL
Programming
Configure Dividers
N3:0 = xxxxb
R3:0 = xxxxb
Enable PLL
PLLEN = 1
PLL Locked?
LOCK = 1?
Divider ValuesTo generate a 48 MHz clock using the PLL, the divider values have to be configured fol-
lowing the oscillator frequency. The typical divider values are shown in Table 13.
Table 13. Typical Divider Values
Oscillator FrequencyR+1N+1PLLDIV
3 MHz161F0h
6 MHz8170h
8 MHz6150h
12 MHz4130h
16 MHz3120h
18 MHz8372h
20 MHz125B4h
24 MHz2110h
32 MHz3221h
40 MHz1210B9h
16
AT89C5130A/31A-M
4337G–USB–11/06
RegistersTable 14. CKCON0 (S:8Fh)
Clock Control Register 0
76543210
TWIX2WDX2PCAX 2SIX2T2X2T1X2T0X2X2
AT89C5130A/31A-M
Bit Number
7TWIX2
6WDX2
5PCAX2
4SIX2
3T2X2
Bit
Mnemonic Description
TWI Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low,
this bit has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Watchdog Clo ck
This control bit is validated when the CPU clock X2 is set. When X2 is low,
this bit has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Programmable Counter Ar r ay Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low,
this bit has no effect.
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)
This control bit is validated when the CPU clock X2 is set. When X2 is low,
this bit has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Timer2 Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low,
this bit has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
4337G–USB–11/06
Timer1 Clock
2T1X2
1T0X2
0X2
This control bit is validated when the CPU clock X2 is set. When X2 is low,
this bit has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Timer0 Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low,
this bit has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
System Clock Control bit
Clear to select 12 clock periods per machine cycle (STD mode, F
F
OSC
Set to select 6 clock periods per machine cycle (X2 mode, F
Reset Value = 0000 0000b
/2).
= F
CPU
PER =
CPU = FPER = FOSC
).
17
Table 15. CKCON1 (S:AFh)
Clock Control Register 1
76543210
-------SPIX2
Bit Number
7-1-
0SPIX2
Bit
Mnemonic Description
Reserved
The value read from this bit is always 0. Do not set this bit.
SPI Clock
This control bit is validated when the CPU clock X2 is set. When X2 is low,
this bit has no effect.
Clear to select 6 clock periods per peripheral clock cycle.
Set to select 12 clock periods per peripheral clock cycle.
Reset Value = 0000 0000b
Table 16. PLLCON (S:A3h)
PLL Control Register
76543210
-----EXT48PLLENPLOCK
Bit Number
7-3-
2EXT48
Bit
Mnemonic Description
Reserved
The value read from this bit is always 0. Do not set this bit.
External 48 MHz Enable Bit
Set this bit to bypass the PLL and disable the crystal oscillator.
Clear this bit to select the PLL output as USB clock and to enable the crystal
oscillator.
18
1PLLEN
0PLOCK
Reset Value = 0000 0000b
Table 17. PLLDIV (S:A4h)
PLL Divider Register
76543210
R3R2R1R0N3N2N1N0
Bit Number
7-4R3:0PLL R Divider Bi ts
3-0N3:0PLL N Divider Bi ts
Mnemonic Description
Reset Value = 0000 0000
AT89C5130A/31A-M
PLL Enable Bit
Set to enable the PLL.
Clear to disable the PLL.
PLL Lock Indicator
Set by hardware when PLL is locked.
Clear by hardware when PLL is unlocked.
Bit
4337G–USB–11/06
AT89C5130A/31A-M
SFR MappingThe Special Function Registers (SFRs) of the AT89C5130A/31A-M fall into the following
The additional data pointer can be used to speed up code execution and reduce code
size.
The dual DPTR structure is a way by which the chip will specify the address of an external data memory location. There are two 16-bit DPTR registers that address the external
memory, and a single bit called DPS = AUXR1.0 (see Table 32) that allows the program
code to switch between them (see Figure 12).
External Data Memory
07
DPS
DPTR1
DPTR0
DPH(83H) DPL(82H)
Table 32. AUXR1 Register
AUXR1- Auxiliary Register 1(0A2h)
76543210
--ENBOOT-GF30-DPS
Bit
Number
7-
6-
5ENBOOT
4-
3GF3This bit is a general-purpose user flag.
20Always cleared.
1-
0DPS
Reset Value = XX[BLJB
Bit
Mnemonic Description
Reserved
The value read from this bit is indeterminate. Do not set this bit.
Reserved
The value read from this bit is indeterminate. Do not set this bit.
Enable Boot Flash
Cleared to disable boot ROM.
Set to map the boot ROM between F800h - 0FFFFh.
Reserved
The value read from this bit is indeterminate. Do not set this bit.
Reserved
The value read from this bit is indeterminate. Do not set this bit.
Data Pointer Selection
Cleared to select DPTR0.
Set to select DPTR1.
]X X0X0b
Not bit addressable
26
a. Bit 2 stuck at 0; this allows to use INC AUXR1 to toggle DPS without changing GF3.
AT89C5130A/31A-M
4337G–USB–11/06
AT89C5130A/31A-M
ASSEMBLY LANGUAGE
; Block move using dual data pointers
; Modifies DPTR0, DPTR1, A and PSW
; note: DPS exits opposite of entry state
; unless an extra INC AUXR1 is added
;
00A2 AUXR1 EQU 0A2H
;
0000 909000MOV DPTR,#SOURCE ; address of SOURCE
0003 05A2 INC AUXR1 ; switch data pointers
0005 90A000 MOV DPTR,#DEST ; address of DEST
0008 LOOP:
0008 05A2 INC AUXR1 ; switch data pointers
000A E0 MOVX A,@DPTR ; get a byte from SOURCE
000B A3 INC DPTR ; increment SOURCE address
000C 05A2 INC AUXR1 ; switch data pointers
000E F0 MOVX @DPTR,A ; write the byte to DEST
000F A3 INC DPTR ; increment DEST address
0010 70F6JNZ LOOP ; check for 0 terminator
0012 05A2 INC AUXR1 ; (optional) restore DPS
INC is a short (2 bytes) and fast (12 clocks) way to manipulate the DPS bit in the AUXR1
SFR. However, note that the INC instruction does not directly force the DPS bit to a particular state, but simply toggles it. In simple routines, such as the block move example,
only the fact that DPS is toggled in the proper sequence matters, not its actual value. In
other words, the block move routine works the same whether DPS is '0' or '1' on entry.
Observe that without the last instruction (INC AUXR1), the routine will exit with DPS in
the opposite state.
4337G–USB–11/06
27
Program/Code
Memory
The AT89C5130A/31A-M implement 16/ 32 Kbytes of on-chip program/code memory.
Figure 13 shows the split of internal and external program/code memory spaces
depending on the product.
The Flash memory increases EPROM and ROM functionality by in-circuit electrical erasure and programming. Thanks to the internal charge pump, the high voltage needed for
programming or erasing Flash cells is generated on-chip using the standard V
DD
voltage. Thus, the Flash Memory can be programmed using only one voltage and allows Inapplication Software Programming commonly known as IAP. Hardware programming
mode is also available using specific programming tool.
Figure 13. Program/Code Memory Organization
FFFFh
FFFFh
48 Kbytes
External Code
4000h
3FFFh
16 Kbytes
Flash
0000h
AT89C5130A
Note:If the program executes exclusively from on-chip code memory (not from external mem-
ory), beware of executing code from the upper byte of on-chip memory (3FFFh/7FFFh)
and thereby disrupting I/O Ports 0 and 2 due to external prefetch. Fetching code constant
from this location does not affect Ports 0 and 2.
8000h
7FFFh
0000h
32 Kbytes
External Code
32 Kbytes
Flash
AT89C5131A
External Code Memory
Access
Memory InterfaceThe external memory interface comprises the external bus (Port 0 and Port 2) as well as
the bus control signals (PSEN
, and ALE).
28
Figure 14 shows the structure of the external address bus. P0 carries address A7:0
while P2 carries address A15:8. Data D7:0 is multiplexed with A7:0 on P0. Table 33
describes the external memory interface signals.
Multiplexed lower address lines and data for the external memory.
Address Latch Enable
ALE signals indicates that valid address information are available on lines
AD7:0.
Program Store Enable Output
O
This signal is active low during external code fetch or external code read
(MOVC instruction).
Alternate
Function
P2.7:0
P0.7:0
-
-
External Bus CyclesThis section describes the bus cycles the AT89C5130A/31A-M executes to fetch code
(see Figure 15) in the external program/code memory.
External memory cycle takes 6 CPU clock periods. This is equivalent to 12 oscillator
clock periods in standard mode or 6 oscillator clock periods in X2 mode. For further
information on X2 mode (see the clock Section).
For simplicity, the accompanying figure depicts the bus cycle waveforms in idealized
form and do not provide precise timing information.
Figure 15. External Code Fetch Waveforms
Flash Memory
Architecture
CPU Clock
ALE
PSEN
P0
P2
D7:0
PCL
PCHPCH
PCLD7:0D7:0
PCH
AT89C5130A/31A-M features two on-chip Flash memories:
•Flash memory FM0:
containing 32 Kbytes of program memory (user space) organized into 128-byte
pages,
•Flash memory FM1:
3 Kbytes for bootloader and Application Programming Interfaces (API).
The FM0 supports both parallel programming and Serial In-System Programming (ISP)
whereas FM1 supports only parallel programming by programmers. The ISP mode is
detailed in the “In-System Programming” section.
All Read/Write access operations on Flash memory by user application are managed by
a set of API described in the “In-System Programming” section.
4337G–USB–11/06
29
Figure 16. Flash Memory Architecture
3 Kbytes
Hardware Security (1 Byte)
Extra Row (128 Bytes)
Flash Memory
Boot Space
FM1
Column Latches (128 Bytes)
3FFFh for
AT89C5130A
for 16 KB
7FFFh for
AT89C5131A
for 32 KB
16/32 KB
Flash Memory
User Space
FM0
FM1 mapped between FFFFh and
F400h when bit ENBOOT is set in
AUXR1 register
0000h
FM0 Memory ArchitectureThe Flash memory is made up of 4 blocks (see Figure 16):
1. The memory array (user space) 32 Kbytes
2. The Extra Row
3. The Hardware security bits
4. The column latch registers
FFFFh
F400h
User SpaceThis space is composed of a 16/32 Kbytes Flash memory organized in 128/256 pages
of 128 bytes. It contains the user’s application code.
Extra Row (XRow)This row is a part of FM0 and has a size of 128 bytes. The extra row contains informa-
tion for bootloader usage (see Table 39.Software Registers, page 40)
Hardware Security SpaceThe hardware security space is a part of FM0 and has a size of 1 byte.
The 4 MSB can be read/written by software. The 4 LSB can only be read by software
and written by hardware in parallel mode.
Column LatchesThe column latches, also part of FM0, have a size of full page (128 bytes).
The column latches are the entrance buffers of the three previous memory locations
(user array, XRow and Hardware security byte).
Overview of FM0
Operations
The CPU interfaces to the Flash memory through the FCON register and AUXR1
register.
These registers are used to:
•Map the memory spaces in the adressable space
•Launch the programming of the memory spaces
•Get the status of the Flash memory (busy/not busy)
•Select the Flash memory FM0/FM1.
Mapping of the Memory Space By default, the user space is accessed by MOVC instruction for read only. The column
latches space is made accessible by setting the FPS bit in FCON register. Writing is
possible from 0000h to 3FFFH/7FFFh, address bits 6 to 0 are used to select an address
within a page while bits 14 to 7 are used to select the programming address of the page.
30
Setting this bit takes precedence on the EXTRAM bit in AUXR register.
AT89C5130A/31A-M
4337G–USB–11/06
Loading...
+ 156 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.