USB Register Definition 15.19. INMAX: USB0 IN Endpoint n Maximum Packet Size 160
USB Register Definition 15.20. EINCSRL: USB0 IN Endpoint Con trol Low Byte . . . . 163
USB Register Definition 15.21. EINCSRH: USB0 IN Endpoint Control High Byte . . . 164
USB Register Definition 15.22. OUTMAX: USB0 Out Endpoint Max Packet Size . . . 165
USB Register Definition 15.23. EOUTCSRL: USB0 OUT Endpoint Control High Byte 166
USB Register Definition 15.24. EOUTCSRH: USB0 OUT Endpoint Control Low Byte 167
USB Register Definition 15.25. EOUTCNTL: USB0 OUT Endpoint Count Low . . . . .167
USB Register Definition 15.26. EOUTCNTH: USB0 OUT Endpoint Count High . . . . 167
•Universal Serial Bus (USB) Function Controller with eight flexible endpoint pipes, integrated transceiver, and 1 k FIFO RAM
•Supply Voltage Regulator (5-to-3 V)
•True 10-bit 200 ksps 17-channel single-ended/differential ADC with analog multiplexer
•On-chip Voltage Reference and Temperature Sensor
•On-chip Voltage Comparators (2)
•Precision programmable 12 MHz internal oscillator and 4x clock multiplier
•16 kB of on-chip Flash memory
•2304 total bytes of on-chip RAM (256 + 1k + 1 k USB FIFO)
•SMBus/I2C, Enhanced UART, and Enhanced SPI serial interfaces implemented in hardware
•Four general-purpose 16-bit timers
•Programmable Counter/Timer Array (PCA) with five capture/compare modules and Watchdog Timer
function
•On-chip Power-On Reset, VDD Monitor, and Missing Clock Detector
•25/21 Port I/O (5 V tolerant)
With on-chip Power-On Reset, VDD monitor, Voltage Regulator, Watchdog Timer, and clock oscillator,
C8051F320/1 devices ar e truly stand-alo ne Sy s tem -on- a- Chip sol uti ons. T he Flas h mem ory can be repr o
grammed in-circuit, prov iding non -volatile data stor age, and also al lowing fiel d upgrades of the 8051 firmware. User software has c omplete control of all peripherals, and may individually shut down an y or all
peripherals for power savings.
Table 1.1 for specific product feature selection.
-
The on-chip Silicon Labs 2-Wire (C2) Development Interface allows non-intrusive (uses no on-chip
resources), full speed, in-circuit debugging using the production MCU installed in the final application. This
debug logic supports inspection and modification of memory and registers, setting breakpoints, single
stepping, run and halt commands. All a nalog and digital peripheral s are fully function al while debugging
using C2. The two C2 interface pins can be shared with user functions, allowing in-system debugging with
out occupying package pins.
Each device i s specifi ed for 2.7- to-3.6 V ope ration ove r the industr ial temper ature range (–4 0 to +85 °C).
(Note that 3.0-to-3.6
input signals up to 5
V is required for USB commu nication.) The Port I/O and /RST pins are tolerant of
V. C8051F320/1 are available in a 32-pin LQFP or a 28-pin QFN package.
The C8051F320/1 fami ly utilize s Silico n Labs' pr oprietary CIP-5 1 microcontr oller cor e. The CIP-51 is fully
compatible with the MCS-51™ instruction set; standard 803x/805x assemblers and compilers can be used
to develop software. The CIP-51 core offers all the perip herals included with a standard 8052, including
four 16-bit counter/time rs, a full-duplex UART with extended b aud rate configuration, an enha nced SPI
port, 2304
pins.
1.1.2. Improved Throughput
The CIP-51 employs a pipelined architecture that greatly increases its instruction throughput over the standard 8051 architecture. In a standard 8051, all ins truction s except for MU L and DIV take 12 or 24 syste m
clock cycles to execute wi th a maxi mum sys tem clo ck of 12-t o-24
cutes 70% of its instructions in one or two system clock cycles, with only four instructions taking more than
four system clock cycles.
The CIP-51 has a total of 109 instructions. The table below shows the total number of instructions that
require each execution time.
Number of Instructions265051473121
bytes of on-chip RAM, 128 by te Special Function Reg is ter ( SFR) ad dr ess s pace, a nd 2 5/2 1 I/O
MHz. By contrast, the CIP- 51 core exe-
Clocks to Execute122/333/444/558
1.1.3. Additional Features
The C8051F320/1 SoC family in cludes several key enha ncements to the CIP-51 core and peripher als to
improve performance and ease of use in end applications.
The extended interrupt handler provides 16 interrupt sources into the CIP-51 (as opposed to 7 for the standard 8051), allowing numerous analog and digital peripherals to interrupt the controller. An interrupt driven
system requires less intervention by the MCU, giving it more effective throughput. The extra interrupt
sources are very useful when building multi-tasking, real-time systems.
Nine reset sources are av ailable: power-on reset circuitry (PO R), an on-chip VDD monitor (forces rese t
when power supply vo ltage drops below V
(USB bus reset or a VB US tr an si tio n), a Watchdog Timer, a Missing Clock Detec tor, a voltage leve l d ete ction from Comparator0, a forc ed software reset, an extern al reset pi n, and an err ant Flash read /write protection circuit. Each reset source except for the POR, Reset Inpu t Pin, or Flash error ma y be disabled by
the user in software. The W DT may be permanently enabled in softw are after a power-on reset during
MCU initialization.
The internal oscillator is factory calibrated to 12 MHz ±1.5%, and the internal oscillator period may be user
programmed in ~0.2 5% incremen ts. A clock r ecovery mechani sm allo ws the int ernal osc illator to b e used
with the 4x Clock Multiplier as the USB clock source in Full Speed mode; the internal oscillator can also be
used as the USB clock source in Low Speed mode. External oscillators may also be used with the 4x Clock
Multiplier. An external oscillato r driv e circ uit is also incl uded, a llowin g an ex terna l crys tal, cer amic reso na
tor, capacitor, RC, or CMOS clock source to generate the system clock. The system clock may be configured to use the internal oscill ator, external oscillator, or the Clock Multip lier ou tput divid ed by 2. If desir ed,
the system clock s our ce may be switched on-the-fly between os c illato r sour c es. A n ex te rn al osci ll ato r ca n
be extremely useful in low power appl ications , allowi ng the MCU to run from a slow (pow er saving ) exter
nal clock source, while periodically switching to the internal oscillator as needed.
as given in Table 10.1 on page 104), the USB controller
RST
-
-
18Rev. 1.2
XTAL1
XTAL2
Internal
Oscillator
Clock
Multiplier
External
Oscillator
Drive
Px.x
Px.x
System
Clock
Clock Select
Comparator 0
+
-
Missing
Clock
Detector
(one-
shot)
EN
MCD
Enable
Microcontroller
Extended Interrupt
VDD
C0RSEF
CIP-51
Core
Handler
PCA
WDT
EN
WDT
Enable
Supply
Monitor
+
-
System Reset
Enable
Power On
Reset
Software Reset (SWRSF)
Errant
FLASH
Operation
C8051F320/1
'0'
(wired-OR)
Reset
Funnel
Enable
USB
Controller
VBUS
Transition
/RST
Figure 1.3. On-Chip Clock and Reset
1.2.On-Chip Memory
The CIP-51 has a standa rd 8051 program and data addr ess configuration. It inc ludes 256 bytes of data
RAM, with the upper 128 bytes dual-mapped. Indirect addressing accesses the upper 128 bytes of general
purpose RAM, and direct add ressing acce sses the 128 byte SF R address space. The lower 128 bytes of
RAM are accessible via direct and indirect addressing. The first 32 bytes are addressable as four banks of
general purpose registers, and the next 16 bytes can be byte addressable or bit addressable.
Program memory consists of 16 kB of Flash. This m emory may be r eprogrammed in-s ystem in 512 byte
sectors, and requir es no speci al off-chip progr amming vol tage. See
ory map.
Figure 1.4 for the MCU syst em mem-
Rev. 1.219
C8051F320/1
t
0
PROGRAM/DATA MEMORY
(Flash)
0x3E00
x3DFF
RESERVED
16 K Flash
(In-System
Programm ab le in 512
Byte Sectors)
0xFF
0x80
0x7F
0x30
0x2F
0x20
0x1F
0x00
INTERNAL DATA ADDRESS SPACE
Upper 128 RAM
(Indirect Addressing
(Direct and Indirect
Bit Addressable
General Purp os e
DATA MEMORY (RAM)
Only)
Addressing)
Registers
(Direct Addre ss ing Only)
Special Function
Register's
Lower 128 RAM
(Direct and Indirec
Addressing )
EXTERNAL DATA ADDRESS SPACE
0x0000
0xFFFF
Same 2048 bytes as from
0x0000 to 0x07FF, wrapped
on 2 kB boundaries
0x0800
0x07FF
USB FIFOs
0x0400
0x03FF
0x0000
1024 Bytes
XRAM - 1024 Bytes
(accessable using MOVX
instruction)
Figure 1.4. On-Board Memory Map
1.3.Universal Serial Bus Controller
The Universal Ser ial Bus Co ntroller (USB 0) is a US B 2.0 co mpliant Full or Low Speed function with integrated transceiver and endpoint FIFO RAM. A total of eight en dpoint pipes are available: a bi -directional
control endpoint (Endpoint0) and three pairs of IN/OUT endpoints (Endpoints1-3 IN/OUT).
A 1 k block of XRAM is used as dedicated USB FIFO space. This FIFO space is distributed among
Endpoints0–3; Endpoint1–3 FIFO slots can be c onfigured as IN, OUT, or both IN and OUT (split mode).
The maximum FIFO size is 512 bytes (Endpoint3).
USB0 can be operated as a Full or Low Speed function. On-chip 4x Clock Multiplier and clock recovery circuitry allow both Full and Low Speed options to be implemented with the on-chip precision oscillator as the
USB clock source. An ex ternal oscill ator sourc e can also be used with the 4x Cl ock Multi plier to generat e
the USB clock. The CPU clock source is independent of the USB clock.
20Rev. 1.2
C8051F320/1
The USB Transceiver is USB 2.0 compliant, and includes on-chip matching and pull-up resistors. The pullup resistors can be enabled/disabled in software, and will appear on the D+ or D– pin according to the soft
ware-selected speed setting (Full or Low Speed).
TransceiverSerial Interface Engine (SIE)
-
VDD
D+
Data
Transfer
Control
D-
Endpoint0
IN/OUT
Endpoint1
Endpoint2
Endpoint3
INOUT
INOUT
INOUT
USB FIFOs
(1k RAM)
USB
Control,
Status, and
Interrupt
Registers
CIP-51 Core
Figure 1.5. USB Controller Block Diagram
1.4.Voltage Regulator
C8051F320/1 devices include a 5-to-3 V voltage regulator (REG0). When enabled, the REG0 output
appears on the VDD pin and can be us ed to power external devices. REG 0 can be enabled/disabled by
software.
1.5.On-Chip Debug Circuitry
The C8051F320/1 devices include on-chip Silicon Labs 2-Wire (C2) debug circuitry that provides non-intrusive, full speed, in-circuit debugging of the production part installed in the end application.
Silicon Labs' debugging system supports inspection and modification of memory and registers, breakpoints, and single stepping. No additi onal target RAM , progra m memory, timers, or communication s channels are required. A ll th e digital and analog peri pher a ls ar e func ti ona l a nd work co rre ctl y whi le deb ugg ing .
All the peripherals (ex cep t for the US B, AD C, a nd S MBu s) are stall ed whe n the MCU is halted, during sin
gle stepping, or at a breakpoint in order to keep them synchronized.
The C8051F320DK development kit provides all the hardware and software necessary to develop application code and pe rform in- circuit debuggin g with the C8051F320/ 1 MCUs. T he kit in cludes software with a
developer's studio and debugger, 8051 assembler and linker, evaluation ‘C’ compiler, and a debug
adapter. It also has a target application board with the C8051F320 MCU installed, the necessary cables for
connection to a PC, and a wall-mount power supply. The development kit c ontents may also be used to
program and debug the de vi ce on the production PCB using the appro priat e c onn ec tio ns for th e pr og ram
ming pins.
The Silicon Labs IDE interf ace is a vas tly superio r developing and debuggi ng configur ation, compared t o
standard MCU emulators that use on-b oard "ICE Chips" and require the MCU in the application board t o
Rev. 1.221
-
-
C8051F320/1
be socketed. Silico n Labs' debug paradigm inc reases ease of use and p reserves the perfor mance of the
precision analog peripherals.
AC/DC
PC
Adapter
Target Board
PWR
SILICON LABORATORIES
MCU
P1.6
Port 2Port 0
Port 4Port 3Port 1
USB
Cable
USB Debug Adapter
USB DEBUG ADAPTER
Silicon Laboratories
StopPower
Run
P3.7RESET
Figure 1.6. Development/In-System Debug Diagram
1.6.Programmable Digital I/O and Crossbar
C8051F320 devices include 25 I/O pins (three byte-wide Ports and one 1-bit-wide Port); C8051F321
devices include 21 I/O pins (two byte-wide Ports, one 4-bit-wide Port, and one 1-bit-wide Port). The
C8051F320/1 Ports behave like typical 8051 Ports with a few enhancements. Each Port pin may be config
ured as an analog inp ut o r a di gital I/ O pin . Pi ns s ele ct ed a s d ig ital I/Os may a ddi tio nal ly be co nfi gured for
push-pull or open-dr a in outp ut. Th e “weak pull-ups” that are fix ed on ty pic al 80 51 dev ices m ay be globally
disabled, providing power savings capabilities.
The Digital Crossbar all ows m apping of internal digital sys tem r eso urces to Port I/O pins ( Se e Fig ur e 1.7).
On-chip counter/tim ers, serial buses, HW inter rupts, comparator outputs, and other d igital signals in the
controller can be configured to appear on the Port I/O pins specified in the Crossbar Control registers. This
allows the user to select the exact mix of general purpose Po rt I/O and digital resources needed fo r the
particular application.
-
22Rev. 1.2
C8051F320/1
Highest
Priority
Lowest
Priority
XBR0, XBR1,
PnSKIP Registers
PnMDOUT,
PnMDIN Registers
Priority
Decoder
(P0.0-P0.7)
(P1.0-P1.7)
(P2.0-P2.7)
(P3.0)
2
P0
4
2
2
2
6
2
8
8
8
8
Digital
Crossbar
8
I/O
Cells
P1
8
I/O
Cells
P2
8
I/O
Cells
P3
1
I/O
Cells
Note: P2.4-P2.7 only available
on the C8051F320
P0.0
P0.7
P1.0
P1.7
P2.0
P2.7
P3.0
UART
SPI
SMBus
CP0
Outputs
CP1
Outputs
SYSCLK
(Internal Dig it al Sign al s)
PCA
T0, T1
P0
P1
P2
(Port Latches)
P3
Figure 1.7. Digital Crossbar Diagram
1.7.Serial P orts
The C8051F320/1 F amily inc ludes an SM Bus/I2C interface, a full-duplex UA RT with enhanced baud rate
configuration, an d an Enhanced S PI interface. Eac h of the serial buses is fully implemented in hardware
and makes extensive use of the CIP-51's interrupts, thus requiring very little CPU intervention.
1.8.Programmable Counter Array
An on-chip Programmable Counter/Timer Array (PCA) is included in addition to the four 16-bit general purpose counter/timers. The PCA consists of a dedicated 16-bit counter/timer time base with five programmable capture/compare modules. The PCA clock is derived from one of six sources: the system clock divided
by 12, the system clock divided by 4, Timer 0 overflows, an External Clock Input (ECI), the system clock, or
the external oscilla tor c lock s ourc e di vi de d by 8 . T he ext er nal cloc k sour c e s ele ct ion is u sef ul for real - tim e
clock functional ity, where the PCA is cl ocked by an ext ernal sou rce while the int ernal osc illator d rives the
system clock.
Each capture/compare module can be configured to operate in one of six modes: Edge-Triggered Capture,
Software Timer, High Speed Output, 8- or 16-bit Pulse Width Modulator, or Frequency Output. Additionally,
Capture/Compare Module 4 offers watchdog timer (WDT) capabilities. Following a system reset, Module 4
is configured and enabled in WDT mode. The PCA Capture/Compare Module I/O and External Clock Input
may be routed to Port I/O via the Digital Crossbar.
Rev. 1.223
C8051F320/1
SYSCLK/12
SYSCLK/4
Timer 0 Overflow
ECI
SYSCLK
External Clock/8
PCA
CLOCK
MUX
16-Bit Counter/Timer
Capture/Compare
Module 0
ECI
CEX0
Capture/Compare
Module 1
CEX1
Capture/Compare
Module 2
CEX2
Capture/Compare
Module 3
CEX3
Capture/Compare
Module 4 / WDT
CEX4
Crossbar
Port I/O
Figure 1.9. PCA Block Diagram
1.9.10-Bit Analog to Digital Converter
The C8051F320/1 devices inclu de an on-chip 10-bit SAR ADC with a 17-channel differential input multiplexer. With a maximum throughput of 200 ksps, th e AD C offers tru e 10 -bit l in eari ty w ith an INL of ±1LSB.
The ADC system includ es a configurable ana log multiplexer that selects both positiv e and negative ADC
inputs. Ports1-3 are available as ADC inpu ts; additional ly, the on-chip Te mperat ure Sens or outpu t and the
power supply voltage (VDD) a re avai lable as ADC inputs. Us er firm ware ma y sh ut down the A DC to s ave
power.
Conversions can be started in six ways: a software command, an overflow of Timer 0, 1, 2, or 3, or an
external convert start signal. This flexibility allows the start of conversion to be triggered by software
events, a periodic sig nal (timer ove rflows), or e xternal HW sig nals. Convers ion completi ons are ind icated
by a status bit and an interrupt (if enable d). The resulting 10-bit data word is latched into the ADC da ta
SFRs upon completion of a conversion.
Window compare registers for the ADC data can be configured to interrupt the controller when ADC data is
either within or o utside of a specified range. Th e ADC can monitor a key v oltage continuously in back
ground mode, but not interrupt the controller unless the converted data is within/outside the specified
range.
C8051F320/1 devices include two on- chip voltage comparators tha t are enabled/disabled and configured
via user software. Port I/O pins may be configured as comparator inputs via a selection mux. Two compar
ator outputs may be routed to a Port pin if desired: a latched out put and/or an unlatch ed (asynchronous)
output. Comparator response tim e is programmable, allowin g the user to select between hig h-speed and
low-power modes. Positive and negative hysteresis are also configurable.
Comparator interrupts may be generated on rising, falling, or both edges. When in IDLE mode, these interrupts may be used as a “wake-up” source. Comparator0 may also be configured as a reset source.
Figure 1.11 shows the Comparator0 block diagram.
-
Rev. 1.225
C8051F320/1
CMX0N1
CMX0N0
CPT0MX
CMX0P1
CMX0P0
P1.0
P1.4
P2.0
P2.4
P1.1
P1.5
P2.1
P2.5
CP0EN
CP0OUT
CP0RIF
CP0FIF
CP0HYP1
CPT0CN
CP0HYP0
CP0HYN1
CP0HYN0
CP0 +
CP0 -
VDD
CP0
Interrupt
CP0
Rising-edg e
Interrupt
Logic
+
-
SET
D
(SYNCHRONIZER)
SET
D
Q
Q
CLR
CLR
Q
Q
Crossbar
GND
CP0
Falling-edge
CP0RIE
CP0FIE
CP0
CP0A
Reset
Decision
Tree
Note: P2.4 and P2.5 availab le
only on C8051F320
Figure 1.11. Comparator0 Block Diagram
CP0RIE
CP0FIE
CPT0MD
CP0MD1
CP0MD0
26Rev. 1.2
C8051F320/1
2.Absolute Maximum Ratings
Table 2.1. Absolute Maximum Ratings
ParameterConditionsMinTypMaxUnits
Ambient temperature under bias
Storage Temperature–65—150°C
Voltage on any Port I/O Pin or /RST with
respect to GND
Voltage on VDD with respect to GND–0.3—4.2V
Maximum Total current through VDD and
GND
Maximum output current sunk by /RST or any
Port pin
Note: Stresses above tho se list ed under “Abs olute Maximum Rating s” may ca use perm anent damage to the devic e.
This is a stress rating only and f unctional operation of the d evices a t those or a ny other c onditions ab ove tho se
indicated in the o peration l istings of this spe cificati on is not implied . Exposur e to max imum rati ng condi tions for
extended periods may affect device reliability.
–55—125°C
–0.3—5.8V
——500mA
——100mA
Rev. 1.227
C8051F320/1
3.Global Electrical Characteristics
Table 3.1. Global Electrical Characteristics
–40 to +85 °C, 25 MHz system clock unless otherwise noted.
ParameterConditionsMinTypMaxUnits
1,2
Digital Supply Voltage
Digital Supply RAM Data
V
RST
-1.5—V
Retention Voltage
SYSCLK (System Clock)
T
(SYSCLK High Ti me)
SYSH
T
(SYSCLK Low Time)
SYSL
Specificed Operating Tem-
3
0—25MHz
18——ns
18——ns
–40—+85°C
perature Range
Digital Supply Current - CPU Active (Normal Mode, fetching instructions from Flash)
IDD
4
VDD = 3.6 V; F = 25 MHz—12.313.6mA
VDD = 3.3 V, F = 24 MHz—10.611.5mA
VDD = 3.3 V, F = 6 MHz—3.2—mA
VDD = 3.3 V, F = 32 kHz—38—uA
VDD = 3.0 V, F = 24 MHz—9.09.8mA
VDD = 3.0 V, F = 6 MHz—2.7—mA
VDD = 3.0 V, F = 32 kHz—32—uA
IDD Supply Sensitivity
4
F = 24 MHz—0.66—%/V
F = 6 MHz—0.63—%/V
4,5
IDD Frequency Sensitivity
VDD = 3.0 V, F < 15 MHz, T = 25 °C—0.45—mA/MHz
VDD = 3.0 V, F > 15 MHz, T = 25 °C—0.26—mA/MHz
VDD = 3.3 V, F < 15 MHz, T = 25 °C—0.53—mA/MHz
VDD = 3.3 V, F > 15 MHz, T = 25 °C—0.29—mA/MHz
Digital Supply Current - CPU and USB Active (USB Transceiver Enabled and Connected to PC)
IDD
4
VDD = 3.3 V, F = 24 MHz, Full Speed—16.8—mA
VDD = 3.0 V, F = 24 MHz, Full Speed—14.4—mA
VDD = 3.3 V, F = 6 MHz, Low Speed—7.2—mA
VDD = 3.0 V, F = 6 MHz, Low Speed—6.0—mA
3.03.6V
Digital Supply Current - CPU Inactive (Idle Mode, not fetching instructions from Flash)
IDD
4
VDD = 3.6 V; F = 25 Mhz—5.86.5mA
VDD = 3.3 V, F = 24 MHz—5.25.9mA
VDD = 3.3 V, F = 6 MHz—1.7—mA
VDD = 3.3 V, F = 32 kHz—14—uA
VDD = 3.0 V, F = 24 MHz—4.65.2mA
VDD = 3.0 V, F = 6 MHz—1.5—mA
VDD = 3.0 V, F = 32 kHz—11—uA
28Rev. 1.2
C8051F320/1
Table 3.1. Global Electrical Characteristics (Continued)
–40 to +85 °C, 25 MHz system clock unless otherwise noted.
ParameterConditionsMinTypMaxUnits
IDD Supply Sensitivity
IDD Frequency Sensitivity
4
4,6
VDD = 3.0 V, F < 1 MHz, T = 25 °C—0.25—mA/MHz
VDD = 3.0 V, F > 1 MHz, T = 25 °C—0.17—mA/MHz
VDD = 3.3 V, F < 1 MHz, T = 25 °C—0.29—mA/MHz
VDD = 3.3 V, F > 1 MHz, T = 25 °C—0.20—mA/MHz
Digital Supply Current
(Stop Mode)
Notes:
1. Given in Table 10.1, “Reset Electrical Characteristics,” on page 104.
2. USB requires a minimum supply voltage of 3.0 V.
3. SYSCLK must be at least 32 kHz to enable debugging.
4. Based on device characterization data; Not production tested.
5. IDD can be estimated for frequencies < 15 MHz by simply multiplying the frequency of interest by the
frequency sensitivity number for that range. When using these numbers to estimate IDD for >15
estimate should b e the cur rent at 24
number. For example: VDD
20 MHz) x 0.26 mA/MHz = 7.96 mA.
6. Idle IDD can be estimated for frequencies < 1 MHz by simply multiplying the frequency of interest by the
frequency sensitivity number for that range. When using these numbers to estimate Idle IDD for >1
estimate should b e the cur rent at 24
number. For example: VDD
5 MHz) x 0.17 mA/MHz = 1.37 mA.
= 3.0 V; F = 20 MHz, IDD = 9.0 mA – (24 MHz –
= 3.0 V; F = 5 MHz, Idle IDD = 4.6 mA – (24 MHz –
F = 24 MHz—0.47—%/V
F = 6 MHz—0.50—%/V
Oscillator not running,
Monitor disabled
V
DD
MHz minus the d if fere nce i n curre nt ind icated by th e frequ ency sens itivit y
MHz minus the d if fere nce i n curre nt ind icated by th e frequ ency sens itivit y
—<0.1—uA
MHz, the
MHz, the
Table 3.2. Index to Electrical Characteristics Tables
Peripheral Electrical CharacteristicsPage #
ADC0 Electrical Characteristics
Voltage Reference Electrical Characteristics
Comparator Electrical Characteristics
Voltage Regulator Electrical Characteristics
Reset Electrical Characteristics
Flash Electrical Characteristics
Internal Oscillato r Elec tri cal Char ac teri st ic s
Port I/O DC Electrical Characteristics
53
55
65
67
104
106
124
137
Rev. 1.229
C8051F320/1
4.Pinout and Package Definitions
Table 4.1. Pin Definitions for the C8051F320/1
Name
VDD66
GND33Ground.
/RST/
C2CK
P3.0/
C2D
REGIN
VBUS88D In
D+44D I/OUSB D+.
D-55D I/OUSB D–.
P0.022D I/OPort 0.0. See Section 14 for a complete description of Port 0.
P0.111D I/OPort 0.1.
P0.2/
Pin Numbers
‘F320‘F321
99
1010
77
TypeDescription
Power In
Power
Out
D I/O
D I/O
D I/O
D I/O
Power In 5 V Regulator Input. This pin is the input to the on-chip volt-
D I/O
2.7-3.6 V Power Supply Voltage Input.
3.3 V Voltage Regulator Output. See Section 8.
Device Reset. Open-drain output of internal POR or VDD
monitor. An external source can initiate a system reset by
driving this pin low for at least 15
Clock signal for the C2 Debug Interface.
Port 3.0. See Section 14 for a complete description.
Bi-directional data signal for the C2 Debug Interface.
age regulator.
VBUS Sense Input. This pin should be connected to the
VBUS signal of a USB network. A 5
cates a USB network connection.
Port 0.2.
µs. S ee Section 10.
V signal on this pin indi-
3228
XTAL1
P0.3/
3127
XTAL2
P0.43026D I/OPort 0.4.
P0.52925D I/OPort 0.5.
P0.6/
2824
CNVSTR
P0.7/
2723
VREF
P1.02622
30Rev. 1.2
A In
D I/O
A I/O or
D In
D I/O
A I/O
D I/O or
A In
External Clock Input. This pin is the external oscillator return
for a crystal or resonator. See
Port 0.3.
External Clock Output. This pin is the excitation driver for an
external crystal or resonator, or an external clock input for
CMOS, capacitor, or RC oscillator configurations. See
tion 13.
Port 0.6.
ADC0 External Convert Start Input. See Section 5.
Port 0.7.
External VREF input or output. See Section 6.
Port 1.0. See Section 14 for a complete description of Port 1.
Section 13.
Sec-
C8051F320/1
Table 4.1. Pin Definitions for the C8051F320/1 (Continued)
Name
P1.12521
P1.22420
P1.32319
P1.42218
P1.52117
P1.62016
P1.71915
P2.01814
P2.11713
P2.21612
P2.31511
P2.414
P2.513
P2.612
P2.711
Pin Numbers
‘F320‘F321
TypeDescription
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
D I/O or
A In
Port 1.1.
Port 1.2.
Port 1.3.
Port 1.4.
Port 1.5.
Port 1.6.
Port 1.7.
Port 2.0. See Section 14 for a complete description of Port 2.
1. All dimensions shown are in millimeters (mm) unless otherwise noted.
2. Dimensioning and Tolerancing per ANSI Y14.5M-1994.
3. This drawing conforms to JEDEC outline MO-243, variation VHHD except for custom features D2,
E2, L, Z, and Y which are toleranced per supplier designation.
4. Recommended card reflow profile is per the JEDEC/ IPC J-STD-02 0C speci fication for Small Body
Components.
Table 4.3. QFN-28 Package Dimensions
Rev. 1.235
C8051F320/1
Figure 4.5. Typical QFN-28 Landing Diagram
36Rev. 1.2
C8051F320/1
Figure 4.6. QFN-28 Solder Paste Recommendation
Rev. 1.237
C8051F320/1
5.10-Bit ADC (ADC0)
The ADC0 subsystem for the C8 051F3 20/1 co nsists of two anal og mult iplex ers (refe rred to coll ectivel y as
AMUX0) with 17 total input selections, and a 200
integrated track-and- hold and prog rammable window de tector. The AMUX0, data conversion modes, an d
window detector are all configurable under so ftware control via the Special Function Regi sters shown in
Figure 5.1. ADC0 operates in both Sin gle-ended and Differential modes, and may be configured to measure P1.0-P3.0, the Temperature Sensor output, or VDD with respect to P1.0 -P3.0, VREF, or GND. The
ADC0 subsystem is enabled only when the AD0EN bit in the ADC0 Control register (ADC0C N) is set to
logic
1. The ADC0 subsystem is in low power shutdown when this bit is logic 0.
ksps, 10-bit successive-approximation-register ADC with
P2.4-2.7
available on
C8051F320
Temp
Sensor
P2.4-2.7
availabl e o n
C8051F320
P1.0
P1.7
P2.0
P2.7
P3.0
VDD
P1.0
P1.7
P2.0
P2.7
P3.0
VREF
GND
19-to-1
AMUX
AMX0P
AMX0P4
AMX0P3
AMX0P2
AMX0P1
AMX0P0
VDD
(+)
10-Bit
AD0EN
ADC0CN
AD0TM
AD0INT
AD0BUSY
SAR
19-to-1
AMUX
AMX0N
AMX0N4
(-)
AD0SC2
AD0SC3
AMX0N3
AMX0N2
AD0SC4
AMX0N1
AMX0N0
ADC0CF
AD0SC1
AD0SC0
AD0LJST
ADC
ADC0LTH
ADC0GTH ADC0GTL
REF
SYSCLK
ADC0LTL
Figure 5.1. ADC0 Functional Block Diagram
AD0CM1
AD0CM2
AD0WINT
Start
Conversion
AD0CM0
000AD0BUSY (W)
Timer 0 Overflow
001
Timer 2 Overflow
010
Timer 1 Overflow
011
100
CNVSTR Input
101Timer 3 Overflow
ADC0L
ADC0H
AD0WINT
Window
Compare
32
Logic
38Rev. 1.2
C8051F320/1
5.1.Analog Multiplexer
AMUX0 selects the positiv e and negative inpu ts to the ADC. Any of the foll owing may be selec ted as the
positive input: P 1.0-P3.0, t he on-chip temperature s ensor, or the positive power sup ply (V
following may be selecte d as the negative input: P1.0-P3. 0, VREF, or GND. When GND is selected as
the negative input, ADC0 operates in Single-ended Mode; all other times, ADC0 operates in Differ
ential Mode. The ADC0 inpu t cha nnels are s elec ted in the AMX0 P and AMX 0N r egist ers as des cribed in
Figure 5.2 and Figure 5.2.
The conversion code forma t differs between Single-ended and Differen tial modes. The registers ADC0 H
and ADC0L contain the high and low bytes of the ou tput conver sion cod e from the ADC at the comple tion
of each conversion. Data can be right-justified or left-justified, depending on the setting of the AD0LJST bit
(ADC0CN.0). When in Single-ended Mode, conversion codes are represented as 10-bit unsigned integers.
Inputs are measured from ‘ 0’ to VREF x 1 023/1024. Exampl e codes are sho wn below for bo th right-justi
fied and left-justified data. Unused bits in the ADC0H and ADC0L registers are set to ‘0’.
). Any of the
DD
-
-
Input Voltage
(Single-Ended)
VREF x 1023/10240x03FF0xFFC0
VREF x 512/10240x02000x8000
VREF x 256/10240x01000x4000
00x00000x0000
When in Differential Mo de, conversi on codes are r epresented as 10-bit signe d 2’s complement numbers.
Inputs are measured from –V RE F to VRE F x 511/512. Example co des a re s how n be lo w fo r both r ight- ju s
tified and left-justified data. For right-justified data, the unused MSBs of ADC0H are a sign-extension of the
data word. For left-justified data, the unused LSBs in the ADC0L register are set to ‘0’.
Input Voltage
(Differential)
VREF x 511/5120x01FF0x7FC0
VREF x 256/5120x01000x4000
00x00000x0000
–VREF x 256/5120xFF000xC000
–VREF 0xFE000x8000
Important Note About ADC0 Input Configuration: Port pins selected as ADC0 inputs s hould be c onfigured as analog inpu ts, and should be skipped by the Di gital Crossbar. To con figure a Por t pin for analog
input, set to ‘0’ the corresp onding b it in r egister Pn MDIN (for n = 0,1,2,3 ). To force the Crossbar to skip a
Port pin, set to ‘1’ the corresponding bit in register PnSKIP (for n = 0,1,2). See
put” on page 125 for more Port I/O configuration details.
Right-Justified ADC0H:ADC0L
(AD0LJST = 0)
Right-Justified ADC0H:ADC0L
(AD0LJST = 0)
Left-Justified ADC0H:ADC0L
(AD0LJST = 1)
Left-Justified ADC0H:ADC0L
(AD0LJST = 1)
Section “14. Port Input/Out-
-
Rev. 1.239
C8051F320/1
5.2.Temperature Sensor
The temperature sensor transfer function is shown in Figure 5.2. The output voltage (V
ADC input when th e temperatur e sensor is selected by bits AM X0P4-0 in register AM X0P. Values for the
Offset and Slope parameters can be found in
V
= (Gain x TempC) + Offset
TEMP
Temp
= (V
C
Table 5.1.
- Offset) / Gain
TEMP
) is the positive
TEMP
Gain (V / deg C)
Voltage
Offset (V at 0 Celsius)
Temperature
Figure 5.2. Temperature Sensor Transfer Function
The uncalibrated temperat ure sen sor output is extremel y linear and suitable for relativ e temper ature measurements (see Table 5.1 for linearity specifications). For absolute temperature measurements, offset and/
or gain calibration is recommended. Typically a 1-point (offset) calibration includes the following steps:
Step 1. Control/measure the ambient temperature (this temperature must be known).
Step 2. Power the device, and delay for a few seconds to allow for self-heating.
Step 3. Perform an ADC conversion with the temperature sensor selected as the positive input
and GND selected as the negative input.
Step 4. Calculate the offset characteristics, and store this value in non-volatile memory for use
with subsequent temperature sensor measurements.
Figure 5.3 shows the typical temperature sensor error assuming a 1-point calibration at 25 °C. Note that
parameters which affect ADC measurement, in particular the voltage reference value, will also
affect temperature measurement.
40Rev. 1.2
C8051F320/1
0
0
0
0
0
5.0
0
4.0
0
3.0
0
2.0
0
1.0
0
0.0
0
-40.00-20.00
-1.00
Error (degrees C)
-2.00
-3.00
-4.00
-5.00
0.0
0
20.0
0
Temperature (degrees C)
40.0
0
60.0
0
80.0
0
5.0
0
4.0
0
3.0
0
2.0
0
1.0
0
0.0
0
-1.0
-2.0
-3.0
-4.0
-5.0
Figure 5.3. Temperature Sensor Error with 1-Point Calibration (VREF = 2.40 V)
Rev. 1.241
C8051F320/1
5.3.Modes of Operation
ADC0 has a maximum c onversion s peed of 200 ksps. The ADC0 conversion clock is a divided version of
the system clock, determined by the AD0SC bits in the ADC0CF register (system clock divided by
(AD0SC
5.3.1. Starting a Conversion
A conversion can be initia ted in one of fiv e ways, depen ding on the program med states of the ADC0 Start
of Conversion Mode bits (AD0CM2–0) in register ADC0CN. Conversions may be initiated by one of the fol
lowing:
Writing a ‘1’ to AD0BUSY p rovides software contr ol of ADC0 whereby conversions are perfor med "ondemand". During conversion, the AD0BUSY bit is set to logic 1 and reset to logic 0 when the conversion is
complete. The falling edge of A D0BUSY trigger s an inter rupt (wh en enab led) a nd sets the ADC0 i nterrup t
flag (AD0INT). Note: When polling for ADC conversion completions, the ADC0 interrupt flag (AD0INT)
should be used. Converted data is available in the ADC0 data registers, ADC0H:ADC0L, when bit AD0INT
is logic 1. Note that when Timer 2 or Timer 3 overflows are used as the conversion source, Low Byte over
flows are used if Timer 2/3 is in 8-bit mode; High byte overflows are used if Timer 2/3 is in 16-bit mode. See
Section “19. Timers” on page 209 for timer configuration.
+ 1) for 0 ≤ AD0SC ≤ 31).
-
1. Writing a ‘1’ to the AD0BUSY bit of register ADC0CN
2. A Timer 0 overflow (i.e., timed continuous conversions)
3. A Timer 2 overflow
4. A Timer 1 overflow
5. A rising edge on the CNVSTR input signal (pin P0.6)
6. A Timer 3 overflow
-
Important Note About Using CNVSTR: The CNVSTR input pin also functions as Port pin P0.6. When the
CNVSTR input is used as the ADC0 c onversion source, P ort pin P0.6 should be skipped by th e Digital
Crossbar. To configure the Crossbar to skip P0.6 , set to ‘1’ Bit6 i n register P 0SKIP. See
Input/Output” on page 125 for details on Port I/O configuration.
Section “14. Port
42Rev. 1.2
C8051F320/1
(
5.3.2. Tracking Modes
The AD0TM bit in register ADC0CN controls the ADC0 track-and-hold mode. In its default state, the ADC0
input is continuous ly tracked, except when a conversion is in prog ress. When the AD0TM bit is logic 1,
ADC0 operates in low-power track-and-ho ld mode. In this mode, ea ch convers ion is preceded by a trac k
ing period of 3 SAR clo cks (after the start-of-c onversion sig nal). When th e CNVSTR signal is used to initiate conversions in l ow-power tracking mode, A DC0 tr ack s o nly wh en CNV S TR is lo w; co nv er sion begi ns
on the rising edge of CNVSTR (see
is in low power standby or sleep mo des. Low -power tr ack-and- hold mode i s also u seful wh en AMUX settings are frequently ch anged, due to the settling time requirements descr ibed in Section “5.3.3. Settling
Time Requirements” on page 44.
CNVSTR
(AD0CM[2:0] = 100)
Figure 5.4). Tracking can also be disabled (shutdown) when the device
A. ADC0 Timing for External Trigger Source
-
SAR Clocks
AD0TM = 1
Write '1' to AD0BUSY,
Timer 0, Timer 2,
Timer 1, Timer 3 Overflow
AD0CM[2:0] = 000, 001,010
011, 101)
SAR
Clocks
AD0TM = 1
SAR
Clocks
AD0TM = 0
Low Power
or Convert
Track or ConvertConvertTrackAD0TM = 0
123456789
TrackConvert
10 11
B. ADC0 Timing for Internal Trigger Source
Low Power
or Convert
Track or
Convert
123456789101112
TrackConvertLow Power Mode
123456789
ConvertTrack
10
11
13 14
12 13 14
15 16 17
12 13 14
Low Power
Mode
Figure 5.4. 10-Bit ADC Track and Conversion Example Timing
Rev. 1.243
C8051F320/1
5.3.3. Settling Time Requirements
When the ADC0 input confi guration is changed (i.e., a di fferent AMUX0 selection is made), a minimum
tracking time is required before an accurate conversion can be performed. This tracking time is determined
by the AMUX0 resistance, the A DC0 sa mpl in g ca pacitanc e, any ex ter nal sou rce re sis tance, and the acc u
racy required for the conv ersion. Note that in low-power tracking mode, th ree SAR clocks are used for
tracking at the start of every conve rsi on. F or mos t app li ca tio ns, these three SAR clocks will meet th e min i
mum tracking time requirements.
Figure 5.5 shows the equivalent A DC0 input circ uits for both D ifferential and S ingle-ended modes. Noti ce
that the equivalent time c onstant f or both inp ut circu its is the same . The req uired ADC0 settling time for a
given settling accuracy (SA) may be approximated by
Sensor output or VDD with respec t to GND, R
TOTAL
settling time requirements.
Equation 5.1. ADC0 Settling Time Requirements
n
2
⎛⎞
t
Where:
SA is the settling accuracy, given as a fraction of an LSB (for example, 0.25 to settle within 1/4 LSB)
t is the required settling time in seconds
R
n is the ADC resolution in bits (10).
is the sum of the AMUX0 resistance and any external source resistance.
Note that when GND is selected as the Negative Input, ADC0 operates in Single-ended
mode. For all other Negative Input selections, ADC0 operates in Differential mode.
*Note: Only applies to C8051F320; selection RESERVED on
C8051F321 devices.
0xBA
46Rev. 1.2
C8051F320/1
A
SYSCLK
SAR
1
SFR Definition 5.3. ADC0CF: ADC0 Configuration
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
AD0SC4AD0SC3AD0SC2AD0SC1AD0SC0 AD0LJST--11111000
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
0xBC
Bits7–3: AD0SC4–0: ADC0 SAR Conversion Clock Period Bits.
SAR Conversion clock is derived from system clock by the following equation, where
AD0SC refers to the 5-bit value held in bits AD0SC4-0. SAR Conversion clock requirements
are given in Table 5.1.
D0SC
Bit2:AD0LJST: ADC0 Left Justify Select.
0: Data in ADC0H:ADC0L registers are right-justified.
1: Data in ADC0H:ADC0L registers are left-justified.
Bits1–0: UNUSED. Read = 00b; Write = don’t care.
--------------------- -
CLK
–=
SFR Definition 5.4. ADC0H: ADC0 Data Word MSB
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
00000000
Bit7Bit6Bit5Bit4Bit3Bi t2Bit1Bit0SFR Address:
Bits7–0: ADC0 Data Word High-Order Bits.
For AD0LJST = 0: Bits 7-2 are the sign extension of Bit1. Bits 1–0 are the upper 2 bits of the
10-bit ADC0 Data Word.
For AD0LJST = 1: Bits 7–0 are the most-significant bits of the 10-bit ADC0 Data Word.
0xBE
SFR Definition 5.5. ADC0L: ADC0 Data Word LSB
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
00000000
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
0xBD
Bits7–0: ADC0 Data Word Low-Order Bits.
For AD0LJST = 0: Bits 7–0 are the lower 8 bits of the 10-bit Data Word.
For AD0LJST = 1: Bits 7–6 are the lower 2 bits of the 10-bit Data Word. Bits 5–0 will always
read ‘0’.
0: ADC0 Disabled. ADC0 is in low-power shutdown.
1: ADC0 Enabled. ADC0 is active and ready for data conversions.
Bit6:AD0TM: ADC0 Track Mode Bit.
0: Normal Track Mode: When ADC0 is enabled, tracking is continuous unless a conversion
is in progress.
1: Low-power Track Mode: Tracking Defined by AD0CM2-0 bits (see below).
0: ADC0 has not completed a data conversion since the last time AD0INT was cleared.
1: ADC0 has completed a data conversion.
Bit4:AD0BUSY: A DC0 Busy Bit.
Read:
0: ADC0 conversion is complete or a conversion is not currently in progress. AD0INT is set
to logic 1 on the falling edge of AD0BUSY.
1: ADC0 conversion is in progress.
Write:
0: No Effect.
1: Initiates ADC0 Conversion if AD0CM2–0 = 000b
Bit3:AD0WINT: ADC0 Window Compare Interrupt Flag.
0: ADC0 Window Comparison Data match has not occurred since this flag was last cleared.
1: ADC0 Window Comparison Data match has occurred.
Bits2–0: AD0CM2–0: ADC0 Start of Conversion Mode Select.
When AD0TM = 0:
000: ADC0 conversion initiated on every write of ‘1’ to AD0BUSY.
001: ADC0 conversion initiated on overflow of Timer 0.
010: ADC0 conversion initiated on overflow of Timer 2.
011: ADC0 conversion initiated on overflow of Timer 1.
100: ADC0 conversion initiated on rising edge of external CNVSTR.
101: ADC0 conversion initiated on overflow of Timer 3.
11x: Reserved.
When AD0TM = 1:
000: Tracking initiated on write of ‘1’ to AD0BUSY and lasts 3 SAR clocks, followed by conversion.
001: Tracking initiated on overflow of Timer 0 and lasts 3 SAR clocks, followed by conversion.
010: Tracking initiated on overflow of Timer 2 and lasts 3 SAR clocks, followed by conversion.
011: Tracking initiated on overflow of Timer 1 and lasts 3 SAR clocks, followed by conversion.
100: ADC0 tracks only when CNVSTR input is logic low; conversion starts on rising CNVSTR
edge.
101: Tracking initiated on overflow of Timer 3 and lasts 3 SAR clocks, followed by conversion.
11x: Reserved.
0xE8
48Rev. 1.2
C8051F320/1
5.4.Programmable Window Detector
The ADC Programm able Window Detector continuously com pares the ADC0 conversi on results to userprogrammed limits, and noti fies the s ystem when a de sired cond ition is dete cted. Thi s is espec ially effec
tive in an interr upt-driven system, saving code space and CPU bandwidth while delivering fast er system
response times. The win dow detector interrupt flag (AD0WINT in register ADC0C N) can also be used in
polled mode. The ADC0 Greater-Than (ADC0GTH, ADC0GTL) and Less-Than (ADC0LTH, ADC0LTL) reg
isters hold the compariso n values. The window detec tor flag can be programme d to indicate when mea sured data is inside or outside of the user-progr ammed limits, depending on the contents of the ADC0
Less-Than and ADC0 Greater-Than registers.
The Window Detector registers must be w ritten with t he same f ormat (left/ right justi fied, si gned/unsign ed)
as that of the current ADC configuration (left/right justified, single-ended/differential).
SFR Definition 5.7. ADC0GTH: ADC0 Greater-Than Data High Byte
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
11111111
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
0xC4
-
-
Bits7–0: High byte of ADC0 Greater-Than Data Word.
SFR Definition 5.8. ADC0GTL: ADC0 Greater-Than Data Low Byte
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Addres s:
Bits7–0: Low byte of ADC0 Greater-Than Data Word.
11111111
0xC3
Rev. 1.249
C8051F320/1
SFR Definition 5.9. ADC0LTH: ADC0 Less-Than Data High Byte
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
Bits7–0: High byte of ADC0 Less-Than Data Word.
SFR Definition 5.10. ADC0LTL: ADC0 Less-Than Data Low Byte
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
00000000
0xC6
00000000
0xC5
Bits7–0: Low byte of ADC0 Less-Than Data Word.
50Rev. 1.2
C8051F320/1
5.4.1. Window Detector In Single-Ended Mode
Figure 5.6 shows two example window comparisons for right-justified, single-ended data, with
ADC0LTH:ADC0LTL = 0x0080 ( 128d) and ADC0GTH:ADC0GTL = 0x0040 (64d). In single-ended mode ,
the input voltage can range from ‘0’ to VREF * (1023/1 024) with respec t to GND, and is re presented by a
10-bit unsigned integer v alue. In the left example, an AD0WINT interrupt will be generated if the ADC0
conversion word (ADC0H:ADC0L) is within the range defined by ADC0GTH:ADC0GTL and
ADC0LTH:ADC0LTL (if
will be generated if the ADC0 conversion word is outside of the range defined by the ADC0GT and
ADC0LT registers (if
ple using left-justified data with equivalent ADC0GT and ADC0LT register settings.
Input Voltage
(Px.x - GND)
VREF x (1023/1024)
0x0040 < ADC0H:ADC0L < 0x0080). In the right example, and AD0WINT interrupt
ADC0H:ADC0L < 0x0040 or ADC0H:ADC0L > 0x0080). Figure 5.7 shows an exam-
ADC0H:ADC0LADC0H:ADC0L
Input Voltage
(Px.x - GND)
0x03FF
VREF x (1023/1024)
0x03FF
VREF x (128/1024)
VREF x (64/1024)
0
0x0081
0x0080
0x007F
0x0041
0x0040
0x003F
0x0000
AD0WINT
not affected
ADC0LTH:ADC0LTL
ADC0GTH:ADC0GTL
AD0WINT
not affected
AD0WINT=1
VREF x (128/1024)
VREF x (64/1024)
0
0x0081
0x0080
0x007F
0x0041
0x0040
0x003F
0x0000
ADC0GTH:ADC0GTL
AD0WINT
not affected
ADC0LTH:ADC0LTL
AD0WINT=1
AD0WINT=1
Figure 5.6. ADC Window Compare Example: Right-Justified Single-Ended Data
ADC0H:ADC0LADC0H:ADC0L
Input Voltage
(Px.x - GND)
VREF x (1023/1024)
VREF x (128/1024)
VREF x (64/1024)
0xFFC0
0x2040
0x2000
0x1FC0
0x1040
0x1000
0x0FC0
AD0WINT
not affected
ADC0LTH:ADC0LTL
ADC0GTH:ADC0GTL
AD0WINT=1
Input Voltage
(Px.x - GND)
VREF x (1023/1024)
VREF x (128/1024)
VREF x (64/1024)
0xFFC0
0x2040
0x2000
0x1FC0
0x1040
0x1000
0x0FC0
ADC0GTH:ADC0GTL
AD0WINT
not affected
ADC0LTH:ADC0LTL
AD0WINT=1
AD0WINT
not affected
0
0x0000
0
0x0000
AD0WINT=1
Figure 5.7. ADC Window Compare Example: Left-Justified Single-Ended Data
Rev. 1.251
C8051F320/1
5.4.2. Window Detector In Differential Mode
Figure 5.8 shows two example window comparisons for right-justified, differential data, with
ADC0LTH:ADC0LTL = 0x004 0 (+64d) and ADC0GTH:ADC0GTH = 0xFFFF (-1d). In differential mode, the
measurable voltage between the input pins is between -VREF and VREF*(511/512). Output codes are rep
resented as 10-bit 2’s complement sign ed in tege rs. In the le ft exampl e, an AD0WINT interrupt will be generated if the ADC0 co nv ersi on wor d (ADC0H :ADC0L) is within the rang e d efin ed by A DC0GTH:ADC0GTL
and ADC0LTH:ADC0LTL (if
0xFFFF (-1d) < ADC0H:ADC0L < 0x0040 (64d)). In the right example, an
AD0WINT interrupt will be ge nerated if the ADC0 co nversion word is outside of the range defined by the
ADC0GT and ADC0LT registers (if
ADC0H:ADC0L < 0xFFFF (-1d) or ADC0H:ADC0L > 0x0040 (+64d)).
Figure 5.9 shows an example using left-justi fied data with equivalent ADC0 GT and ADC0LT register settings.
ADC0H:ADC0LADC0H:ADC0L
Input Voltage
(Px.x - Px.x)
VREF x (511/512)
0x01FF
Input Voltage
(Px.x - Px.x)
VREF x (511/512)
0x01FF
-
VREF x (64/512)
VREF x (-1/512)
-VREF
0x0041
0x0040
0x003F
0x0000
0xFFFF
0xFFFE
0x0200
AD0WINT
not affected
ADC0LTH:ADC0LTL
AD0WINT=1
ADC0GTH:ADC0GTL
AD0WINT
not affected
VREF x (64/512)
VREF x (-1/512)
-VREF
0x0041
0x0040
0x003F
0x0000
0xFFFF
0xFFFE
0x0200
ADC0GTH:ADC0GTL
AD0WINT
not affected
ADC0LTH:ADC0LTL
AD0WINT=1
AD0WINT=1
Figure 5.8. ADC Window Compare Example: Right-Justified Differential Data
ADC0H:ADC0LADC0H:ADC0L
Input Voltage
(Px.x - Px.x)
VREF x (511/512)
VREF x (64/512)
VREF x (-1/512)
0x7FC0
0x1040
0x1000
0x0FC0
0x0000
0xFFC0
0xFF80
AD0WINT
not affected
ADC0LTH:ADC0LTL
AD0WINT=1
ADC0GTH:ADC0GTL
Input Voltage
(Px.x - Px.y)
VREF x (511/512)
VREF x (64/512)
VREF x (-1/512)
0x7FC0
0x1040
0x1000
0x0FC0
0x0000
0xFFC0
0xFF80
ADC0GTH:ADC0GTL
AD0WINT
not affected
ADC0LTH:ADC0LTL
AD0WINT=1
AD0WINT
not affected
-VREF
0x8000
-VREF
0x8000
Figure 5.9. ADC Window Compare Example: Left-Justified Differential Data
52Rev. 1.2
AD0WINT=1
C8051F320/1
Table 5.1. ADC0 Electrical Characteristics
VDD = 3.0 V, VREF = 2.40 V, –40 to +85 °C unless otherwise specified.
ParameterConditionsMinTypMaxUnits
DC Accuracy
Resolution10bits
Integral Nonlinearity—±0.5±1LSB
Differential NonlinearityGuaranteed Monotonic—±0.5±1LSB
Offset Error–15015LSB
Full Scale Error–15–115LSB
Offset Temperature Coefficient—10—ppm/°C
Dynamic Performance (10 kHz sine-wave Single-ended input, 1 dB below Full Scale, 200 ksps)
Signal-to-Noise Plus Distortion5355.5—dB
Total Harmonic DistortionUp to the 5th harmonic—–67—dB
Spurious-Free Dynamic Range—78—dB
Conversion Rate
SAR Conversion Clock——3MHz
Conversion Time in SAR Clocks10——clocks
Track/Hold Acquisit ion Time300——ns
Throughput Rate——200ksps
Analog Inputs
ADC Input Voltage RangeSingle Ended (AIN+ – GND)
Differential (AIN+ – AIN–)
Absolute Pin Voltage with respect
to GND
Input Capacitance—5—pF
Temperature Sensor———
Linearity
Gain
Offset
Power Specifications
Power Supply Current
(VDD supplied to ADC0)
Power Supply R eje ct i on—±0.3mV/V
Notes:
1
2
1,2
1. Includes ADC offset, gain, and linearity variations.
2. Represents one standard deviation from the mean.
Single Ended or Differential0—VDDV
(Temp = 0 °C)—0.776
Operating Mode, 200 ksps—400900µA
0
–VREF
—±0.1—°C
—2.86—mV/°C
—VREF
VREF
—mV
±8.5
V
V
Rev. 1.253
C8051F320/1
6.Voltage Reference
The Voltage reference MUX on C8051 F320/1 d evic es is confi gurable to use an exte rnally conne cted voltage reference, the internal reference voltage generator, or the power supply voltage VDD (see Figure 6.1).
The REFSL bit in the Referenc e Control regi ster (REF0CN ) selects the refer ence source. F or the inter nal
reference or an external sour ce, REFSL should be set to ‘0’; For VDD as the reference source, REFSL
should be set to ‘1’.
The BIASE bit enables the int ernal ADC bias ge nerator, which is used by th e ADC and Internal O scill ator.
This enable is forc ed to logic 1 wh en either of the afor ementioned periph erals is enabl ed. The ADC bias
generator may be enabled manually by writing a ‘1’ to the BIASE bit in register REF0CN; see
REF0CN register details. The Reference bias gene rator (see Figure 6.1) is used by the Internal Voltage
Reference, Temperature Sensor, and Clock Multiplier. The Reference bias is aut omatically enabled when
any of the aforementioned per ipherals are enabl ed. The electrical specification s for the voltage referenc e
and bias circuits are given in
Table 6.1.
Important Note About the VREF Input: Port pin P0.7 is used as the external VREF input. When using an
external voltage reference, P0.7 should be configured as analog input and skipped by the Digital Crossbar.
To con figure P0.7 as analog input, set to ‘0’ Bit7 in register P0MDIN. To configure the Crossbar to sk ip
P0.7, set to ‘1’ Bi t7 in reg ister P0SKI P. Refer to
Section “14. Port Input/Output” on page 125 for complete
Port I/O configuration details.
Figure 6.1 for
The temperature sensor connects to the ADC0 posit ive input multiplex er (see Section “5.1. Analog Multiplexer” on page 39 for details). The TEMPE bit in register REF0CN enables/disables the temperature sensor. While disabled, the temperature sensor defaults to a high impedance state and any ADC0
measurements performed on the sensor result in meaningless data.
REF0CN
BIASE
REFSL
REFBE
TEMPE
AD0EN
To ADC,
Internal Oscillator
To Analog Mux
VREF
(to ADC)
To Clock Multiplier,
Temp Sensor
VDD
GND
R1
External
Voltage
Reference
Circuit
VREF
VDD
0
1
TEMPE
IOSCEN
CLKMUL
Enable
REFBE
EN
EN
EN
ADC Bias
Temp Sensor
Reference
Bias
Internal
Reference
Figure 6.1. Voltage Reference Functional Block Diagram
This bit selects the source for the internal voltage reference.
0: VREF pin used as voltage reference.
1: VDD used as voltage reference.
Bit2:TEMPE: Temperature Sensor Enable Bit.
0: Internal Temperature Sensor off.
1: Internal Temperature Sensor on.
Bit1:BIASE: Internal Analog Bias Generator Enable Bit.
0: Internal Bias Generator off.
1: Internal Bias Generator on.
Bit0:REFBE: Internal Reference Buffer Enable Bit.
0: Internal Reference Buffer disabled.
1: Internal Reference Buffer enabled. Internal voltage reference driven on the VREF pin.
0xD1
Table 6.1. Voltage Reference Electrical Charac te rist ic s
VDD = 3.0 V; –40 to +85 °C unless otherwise specified.
ParameterConditionsMinTypMaxUnits
Internal Reference (REFBE = 1)
Output Voltage25 °C ambient2.382.442.50V
VREF Short-Circuit Current10mA
VREF Temperature Coeffi-
cient
Load RegulationLoad = 0 to 200 µA to GND1.5ppm/µA
VREF Turn-on Time 14.7 µF tantalum, 0.1 µF ceramic bypass2ms
VREF Turn-on Time 20.1 µF ceramic bypass20µs
VREF Turn-on Time 3no bypass cap10µs
Power Supply R eje ct i on140ppm/V
External Reference (REFBE = 0)
Input Voltage Range0VDD V
Input CurrentSample Rate = 200 ksps; VREF = 3.0 V12µA
C8051F320/1 devices i nclude tw o on-chip programmab le voltage Co mparators: Comparator0 is shown in
Figure 7.1; Comparator1 is shown in Figure 7.2. The two Comparators operate identi cally with the following exceptions: (1) Their input selections differ as shown in Figure 7.1 and Figure 7.2; (2) Comparator0 can
be used as a reset source.
Each Comparator offers programmable response time and hysteresis, an analog input multiplexer, and two
outputs that are optionally av ailable at the Port pins: a synchronous “ latched” output (CP0, CP1), or an
asynchronous “ra w” output (CP0A, CP1A). The asyn chronous signal is availabl e even when the system
clock is not active. This allows the Comparators to operate and generate an output with the device in
STOP mode. When assigned to a Port pin, the Comparator ou tputs may be configured as open drain or
push-pull (see
reset source (see Section “10.5. Comparator0 Reset” on page 101).
The Comparator0 inputs are selected in the CPT0MX register (Fi gure 7.2). The CMX0P1–CMX0P0 b its
select the Comparato r0 po si ti ve in put ; th e CMX0N1–CMX0N0 bits selec t the Com parator 0 ne gati ve i npu t.
The Comparator1 inputs are selected in the CPT1MX register (
select the Comparator1 positive input; the CMX1N1–CMX1N0 bits select the Comparator1 negative input.
Important Note About Comparator Inputs: The Port pins selected as Comparator inputs should be configured as analog inputs in their associated Port configuration register, and configured to be skipped by the
Crossbar (for details on Port configuration, see
Section “14.2. Port I/O I nitialization” on page 129). Comparator 0 may also be used as a
Figure 7.5). The C MX1P1–CMX1P0 bits
Section “14.3. General Purpose Port I/O” on page 131).
CMX0N1
CMX0N0
CPT0MX
CMX0P1
CMX0P0
Note: P2.4 and P2.5 available
only on C8051F320
P1.0
P1.4
P2.0
P2.4
P1.1
P1.5
P2.1
P2.5
CP0EN
CP0OUT
CP0RIF
CP0FIF
CP0HYP1
CPT0CN
CP0HYP0
CP0HYN1
CP0HYN0
CP0 +
CP0 -
CPT0MD
CP0RIE
CP0FIE
CP0MD1
CP0MD0
VDD
CP0
Interrupt
CP0
Rising-edge
Interrupt
+
-
GND
Reset
Decision
Tree
SET
SET
D
D
Q
Q
CLR
CLR
(SYNCHRONIZER)
Q
Q
Crossbar
Logic
CP0
Falling-edge
CP0RIE
CP0FIE
CP0
CP0A
Figure 7.1. Comparator0 Functional Block Diagram
56Rev. 1.2
C8051F320/1
Comparator outputs can be polled in software, used as an interrupt source , and/or routed to a Port pin.
When routed to a Port pin, C omparator outp uts are ava ilable as ynch ronou s or sync hronous to the syste m
clock; the asyn chro nous output is avai labl e ev en in STOP m ode ( with no s ystem cloc k a ctive) . Whe n di s
abled, the Comparator output (if assigned to a Port I/O pin via the Crossbar) defaults to the logic low state,
and supply current falls to less than 100
for details on configuring Comparator outputs via the digital Crossbar. Comparator inputs can be externally
driven from –0.25
V to (VDD) + 0.25 V without damage or upset. The complete Comparator electrical spec-
ifications are given in Table 7.1.
Comparator response time may be c onfigured in software via the C PTnMD registers (see Figure 7.3 and
Figure 7.6). Selecting a longer response time reduces the Comparator supply current. See Table 7.1 for
complete timing and supply current specifications.
CP1EN
CP1OUT
CP1RIF
CP1FIF
CMX1N1
CMX1N0
CPT1MX
CMX1P1
CMX1P0
P1.2
P1.6
P2.2
P2.6
P1.3
P1.7
P2.3
P2.7
CP1HYP1
CPT1CN
CP1HYP0
CP1HYN1
CP1HYN0
nA. See Section “1 4.1. Priority Crossb ar Decoder” on page 127
VDD
CP1
Interrupt
CP1 +
CP1 -
CP1
Rising-edge
Interrupt
Logic
+
-
GND
SET
SET
Q
D
D
Q
CLR
CLR
(SYNCHRONIZER)
Q
Q
Crossbar
CP1
Falling-edge
CP1RIE
CP1FIE
CP1
CP1A
-
Note: P2.6 and P2.7 available
only on C8051F320
Figure 7.2. Comparator1 Functional Block Diagram
CP1RIE
CP1FIE
CPT1MD
CP1MD1
CP1MD0
Rev. 1.257
C8051F320/1
CP0+
VIN+
CP0-
VIN-
CIRCUIT CONFIGURATION
Positive Hysteresis Voltage
(Programmed with CP0HYP Bits)
VIN-
INPUTS
VIN+
OUTPUT
V
OL
Positive Hysteresis
Disabled
Figure 7.3. Comparator Hysteresis Plot
+
CP0
_
V
OH
OUT
Maximum
Positive Hysteresis
Negative Hysteresis
Disabled
Negative Hysteresis Voltag e
(Programmed by CP0HYN Bits)
Maximum
Negative Hysteresis
Comparator hysteresis is program med using Bi ts3–0 in the Comparator Contr ol Reg ister CPTnCN (shown
in
Figure 7.1 and Figure 7.4). The amount of negative hy steresis vol tage is determin ed by the setti ngs of
the CPnHYN bits. As shown in Figure 7.3, settings of 20, 10 or 5 mV of negative hysteresis can be
programmed, or negativ e hys ter es is ca n be di sa bled. In a similar way, the amount of positive hysteresis is
determined by the setting the CPnHYP bits.
Comparator interrupts can be generated on both rising-edge and falling-edge output transitions. (For Interrupt enable and priority control, see Section “9.3. Interrupt Handler” on page 86.) The CPnFIF flag is set to
‘1’ upon a Comparator fallin g-edge, and the CPnRIF flag is set to ‘1’ upo n the Comparator rising-edge.
Once set, these bits remain set until cleared by software. The output state of the Comparator can be
obtained at any time by read ing the CPn OUT bit. The Com parator is enable d by setti ng the CPnEN bit to
‘1’, and is disabled by clearing this bit to ‘0’.
C8051F320/1 devices include a 5-to-3 V voltage regulator (REG0). When enabled, the REG0 output
appears on the VDD pin and can be us ed to power external devices. REG 0 can be enabled/disabled by
software using bit REGEN in register REG0CN. See
Note that the VBUS signal mus t be connec ted to the VBUS pin when us ing the dev ice in a USB ne twork.
The VBUS signal should only be connected to the REGIN pin when operating the device as a bus-powered
function. REG0 configuration options are shown in
The input (VREGIN) and outpu t (V DD) of the vo ltage r egul ato r shou ld both be pro tec ted by add ing decoupling and bypass capacitors on each pin to ground. Suggested values for the two capacitors are
4.7
µF + 0.1 µF. These capacitors will increase noise immunity and stabilize the voltage supply.
Table 8.1 for REG0 electrical characteristics.
Figure 8.2–Figure 8.5.
REG0
V
DD
4.7 µF
0.1 µF
V
V
REGIN
DD
4.7 µF0.1 µF
Figure 8.1. External Capacitors for Voltage Regulator Input/Output
8.1.Regulator Mode Selection
REG0 offers a low power mode int ended for use when the d evice is in suspend mode. In this low power
mode, the REG0 output remains as specified; however the REG0 dynamic performance (response time) is
degraded. See
selection is controlled via the REGMOD bit in register REG0CN.
Table 8.1 for normal and low po wer mode s upply cu rrent specific ations. The REG0 mod e
8.2.VBUS Detection
When the USB Function Controller is used (see section Section “15. Universal Serial Bus Controller
(USB)” on page 138), the VBUS signal should be con nected to the VBUS pin. The V BSTAT bit (register
REG0CN) indicates th e cur rent l ogic leve l of the VB US s ignal. If enabl ed, a VBUS interr upt wi ll be gener ated when the VBUS signa l matches the polarity selected by the V BPOL bit in register REG0CN. The
VBUS interrupt is level-sensitive, and has no associated interrupt pending flag. The VBUS interrupt will be
active as long as the VBUS signa l matc he s the pola ri ty sel ec ted by VB PO L. S ee
parameters.
66Rev. 1.2
Table 8.1 for VBUS input
C8051F320/1
Important Note: When USB is selected as a reset so urce, a system reset will be generat ed when the
VBUS signal matches the polarity selected by the VBPOL bit. See
for details on selecting USB as a reset source.
Table 8.1. Voltage Regulator Electrical Specifications
VDD = 3.0 V; –40 to +85 °C unless otherwise specified.
ParameterConditionsMinTypMaxUnits
Input Voltage Range*4.0*5.25V
Section “10. Reset Sources” on page 98
Dropout Voltage (VDO)
IDD = 1 mA
IDD = 100 mA
—10
1000
—mV
Output VoltageOutput Current = 1 to 100 mA3.03.33.6V
VBUS Detection Input Threshold1.01.84.0V
Bias Current
*Note: The minimum input voltage is 4.0 V or VDD + VDO(max load), whichever is greater.
From VBUS
Normal Mode (REGMOD = ‘0’)
Low Power Mode (REGMOD = ‘1’)
C8051F320/1
VBUS
REGIN
5V In
Voltage Regulator (REG0)
VBUS Sense
3V Out
—95
66
211
170
µA
To 3V
Power Net
VDD
Figure 8.2. REG0 Configuration: USB Bus-Powered
Rev. 1.267
Device
Power Net
C8051F320/1
C8051F320/1
From VBUS
From 5V
Power Net
To 3V
Power Net
Figure 8.3. REG0 Configuration: USB Self-Powered
From VBUS
VBUS
REGIN
VDD
VBUS
C8051F320/1
5V In
VBUS Sense
Voltage Regulator (REG0)
3V Out
Device
Power Net
VBUS Sense
From 3V
Power Net
REGIN
VDD
5V In
Voltage Regulator (REG0)
3V Out
Device
Power Net
Figure 8.4. REG0 Configuration: USB Self-Powered, Regulator Disabled
68Rev. 1.2
VBUS
C8051F320/1
C8051F320/1
VBUS Sense
From 5V
Power Net
To 3V
Power Net
REGIN
VDD
5V In
Voltage Regulator (REG0)
3V Out
Device
Power Net
Figure 8.5. REG0 Configuration: No USB Connection
SFR Definition 8.1. REG0CN: Voltage Regulator Control
0: VBUS signal currently absent (device not attached to USB network).
1: VBUS signal currently present (device attached to USB network).
Bit5: VBPOL: VBUS Interrupt Polarity Select.
This bit selects the VBUS interrupt polarity.
0: VBUS interrupt active when VBUS is low.
1: VBUS interrupt active when VBUS is high.
Bit4:REGMOD: Voltage Regulator Mode Select.
This bit selects the Voltage Regulator mode. When REGMOD is set to ‘1’, the voltage regu-
lator operates in low power (suspend) mode.
0: USB0 Voltage Regulator in normal mode.
1: USB0 Voltage Regulator in low power mode.
Bits3–0: Reserved. Read = 0000b. Must Write = 0000b.
Rev. 1.269
C8051F320/1
- Fully Compatible with MCS-51 Instruction
- 25 Port I/O ('F320) / 21 Port I/O ('F321)
9.CIP-51 Microcontroller
The MCU system controller core is the CIP-51 microcontroller. The CIP-51 is fully compatible with the
MCS-51™ instructio n set; standard 803x/805x assemblers and comp ilers can be used to develop soft
ware. The MCU family has a superset of all the p eripherals included with a standard 8051. Included are
four 16-bit counter/timer s (see d escription in
in Section 17), an Enhanced SPI (see description in Section 18), 256 bytes of internal RAM, 128 byte Spe cial Function Regist er (SFR) address space (Sectio n 9.2.6), and 25 Port I/O (see desc ription in Section
14). The CIP-51 also includes on-chip debug hardware (see description in Section 21), and interfaces
directly with the analog and di gital subsystems provid ing a complete data acquisition or control-syste m
solution in a single integrated circuit.
The CIP-51 Microcont roller core implements the standard 8 051 organization and peripher als as well as
additional custom per ipherals and functions to exten d its capability (see
The CIP-51 includes the following features:
Section 19), an enha nced full- duplex U ART (see desc riptio n
Figure 9.1 for a block diagram).
-
Set
- 25 MIPS Peak Throughput with 25 MHz
Clock
- 0 to 25 MHz Clock Frequency
- 256 Bytes of Internal RAM
ACCUMULATOR
PSW
DATA BUS
PROGRAM COUNTER (PC)
PRGM. ADDRESS REG.
CONTROL
RESET
CLOCK
STOP
IDLE
D8
D8
DATA POINTER
PC INCREMENTER
LOGIC
POWER CONTROL
REGISTER
D8
TMP1TMP2
BUFFER
PIPELINE
ALU
D8
DATA BUS
D8
DATA BUS
D8
D8
DATA BU S
D8
- Extended Interrupt Handler
- Reset Input
- Power Management Modes
- On-chip Debug Logic
- Program and Da ta Memory Security
B REGISTER
ADDRESS
REGISTER
D8
INTERFACE
D8
A16
INTERFACE
D8
INTERRUPT
INTERFACE
D8
D8
SRAM
D8
SFR
BUS
MEMORY
D8
STACK POINT ER
SRAM
(256 X 8)
D8
SFR_ADDRESS
SFR_CONTROL
SFR_WRITE_DATA
SFR_READ_DATA
MEM_ADDRESS
MEM_CONTROL
MEM_WRITE_DATA
MEM_READ_DATA
SYSTEM_IRQs
EMULATION_IRQ
70Rev. 1.2
Figure 9.1. CIP-51 Block Diagram
C8051F320/1
Performance
The CIP-51 employs a pipelined architecture that greatly increases its instruction throughput over the standard 8051 architecture. In a standard 8051, all ins truction s except for MU L and DIV take 12 or 24 syste m
clock cycles to ex ecute, and usually have a maximum syst em clock of 12
core executes 70% of its instructions in one or two system clock cycles , with no instructi ons taking more
than eight system clock cycles.
With the CIP-51's maximum system clock at 25 MHz, it has a peak throughput of 25 MIPS. The CIP-51 has
a total of 109 instructions. The table below shows the total number of instructions that for execution time.
Clocks to Execute122/333/444/558
Number of Instructions265051473121
Programming and Debugging Support
In-system programming of the Flash program memory and communicat ion with on-chip debug support
logic is accompl ished via the Sil icon Labs 2-Wi re Development Int erface (C2). Note that the re-prog ram
mable Flash can also be read an d changed a s ingle byte at a time by the application so ftware using the
MOVC and MOVX instructi ons. This featur e allows pr ogram memory to be used for non-vola tile data stor
age as well as updating program code under software control.
MHz. By contrast, the CIP-51
-
-
The on-chip debug support logic facilitates full speed in-circuit debugging, allowing the setting of hardware
breakpoints, starting, sto pping and single stepping through program e xecution (including interrupt servic e
routines), examination of the program's c all stack, and rea ding/writin g the contents of regis ters and m em
ory. This method of on-chip debuggi ng is completely non-intrusive, requiring no RAM, Stack, timers, or
other on-chip resources. C2 details can be found in
The CIP-51 is supported by development tools from Silicon Labs and third party vendors. Silicon Labs provides an integrated d evelopment environment ( IDE ) in cl ud ing edit or, macro assemble r, debugger and programmer. The IDE's debugger and programmer interface to the CIP-51 via the C2 interface to provide fast
and efficient in-system device pr ogramming an d debug ging. Thir d party macro assembl ers and C co mpil
ers are also available.
Section “21. C2 Interface” on page 245.
9.1.Instruction Set
The instruction set of the CIP-51 System Controller is fully compatible with the standard MCS-51™ instruction set. Standard 8051 development to ols can be used to develop software for the CIP-51. All CIP-51
instructions are th e binary and functional equivale nt of their MCS-51™ counter parts, including opcodes,
addressing modes and effect on PSW flags. However, instruction timing is different than tha t of the stan
dard 8051.
9.1.1. Instruction and CPU Timing
In many 8051 implementations, a distinction is made between machine cycles and clock cycles, with
machine cycles varying from 2 to 12 clock cycles in length. However, the CIP-51 implementation is based
solely on clock cycle timing. All instruction timings are specified in terms of clock cycles.
-
-
-
Due to the pipelined archite cture of the CIP-51, most instructions execute in the same number of clock
cycles as there a re program bytes in the instruction. Condi tional branch inst ructions take one less clock
cycle to complete when th e branch is not taken as opp osed to when the branch i s taken.
CIP-51 Instruction Set Sum mary, whi ch includes the mnemonic, number of byte s, and number of clock
cycles for each instruction.
Rev. 1.271
Table 9.1 is the
C8051F320/1
9.1.2. MOVX Instruction and Program Memory
The MOVX instruct ion i s typ ic ally us ed to ac ce ss external data memory (Note: the C8051F320/ 1 d oes not
support off-chip data or program m emory). In the CIP-51, the M OVX write in structi on is used to ac cesses
external RAM (XRAM) and the on-chip program memory space impleme nted as re-programmable Flas h
memory. The Flash access feature provides a mechanism for the CIP-51 to update program code and use
the program memory space for non-volatile data storage. Refer to
page 105 for further details.
Table 9.1. CIP-51 Instruction Set Summary
Section “11. Flash Memory” on
MnemonicDescriptionBytes
Arithmetic Operations
ADD A, RnAdd register to A11
ADD A, directAdd direct byte to A22
ADD A, @RiAdd indirect RAM to A12
ADD A, #dataAdd immediate to A22
ADDC A, RnAdd register to A with carry11
ADDC A, directAdd direct byte to A with carry22
ADDC A, @RiAdd indirect RAM to A with carry12
ADDC A, #dataAdd immediate to A with carry22
SUBB A, RnSubtract register from A with borrow11
SUBB A, directSubtract direct byte from A with borrow22
SUBB A, @RiSubtract indirect RAM from A with borrow12
SUBB A, #dataSubtract immediate from A with borrow22
INC AIncrement A11
INC RnIncrement register11
INC directIncrement direct byte22
INC @RiIncrement indirect RAM12
DEC ADecrement A11
DEC RnDecrement register11
DEC directDecrement direct byte22
DEC @RiDecrement indirect RAM12
INC DPTRIncrement Data Pointer11
MUL ABMultiply A and B14
DIV ABDivide A by B18
DA ADecimal adjust A11
Logical Operations
ANL A, RnAND Register to A11
ANL A, directAND direct byte to A22
ANL A, @RiAND indirect RAM to A12
ANL A, #dataAND immediate to A22
ANL direct, AAND A to direct byte22
ANL direct, #dataAND immediate to direct byte33
ORL A, RnOR Register to A11
ORL A, directOR direct byte to A22
ORL A, @RiOR indirect RAM to A12
ORL A, #dataOR immediate to A22
Clock
Cycles
72Rev. 1.2
C8051F320/1
Table 9.1. CIP-51 Instruction Set Summary (Continued)
MnemonicDescriptionBytes
ORL direct, AOR A to direct byte22
ORL direct, #dataOR immediate to direct byte33
XRL A, RnExclusive-OR Register to A11
XRL A, directExclusive-OR direct byte to A22
XRL A, @RiExclusive-OR indirect RAM to A12
XRL A, #dataExclusive-OR immediate to A22
XRL direct, AExclusive-OR A to direct byte22
XRL direct, #dataExclusive-OR immediate to direct byte33
CLR AClear A11
CPL AComplement A11
RL ARotate A left11
RLC ARotate A left through Carry11
RR ARotate A right11
RRC ARotate A right through Carry11
SWAP ASwap nibbles of A11
Data Transfer
MOV A, RnMove Register to A11
MOV A, directMove direct byte to A22
MOV A, @RiMove indirect RAM to A12
MOV A, #dataMove imm ediate to A22
MOV Rn, AMove A to Register11
MOV Rn, directMove direct byte to Register22
MOV Rn, #dataMove immediate to Register22
MOV direct, AMove A to direct byte22
MOV direct, RnMove Register to direct byte22
MOV direct, directMove direct byte to direc t byte33
MOV direct, @RiMove indirect RAM to direct byte22
MOV direct, #dataMove immediate to direct byte33
MOV @Ri, AMove A to indirect RAM12
MOV @Ri, directMove direct byte to indirect RAM22
MOV @Ri, #dataMove immediate to indirec t RAM22
MOV DPTR, #data16Load DPTR with 16-bit constant33
MOVC A, @A+DPTRMove code byte relative DPTR to A13
MOVC A, @A+PCMove code byte relative PC to A13
MOVX A, @RiMove external data (8-bit address) to A13
MOVX @Ri, AMove A to external data (8-bit address)13
MOVX A, @DPTRMove external data (16-bit address) to A13
MOVX @DPTR, AMove A to external data (16-bit address)13
PUSH directPush direct byte onto stack22
POP directPop direct byte from stack22
XCH A, RnExchange Register with A11
XCH A, directExchange direct byte with A22
XCH A, @RiExchange indirect RAM with A12
XCHD A, @RiExchange low nibble of indirect RAM with A12
Clock
Cycles
Rev. 1.273
C8051F320/1
Table 9.1. CIP-51 Instruction Set Summary (Continued)
MnemonicDescriptionBytes
Boolean Manipulation
CLR CClear Carry11
CLR bitClear direct bit22
SETB CSet Carry11
SETB bitSet direct bit22
CPL CComplement Carry11
CPL bitComplement direct bit22
ANL C, bitAND direct bit to Carry22
ANL C, /bitAND complement of direct bit to Carry22
ORL C, bitOR direct bit to carry22
ORL C, /bitOR complement of direct bit to Carry22
MOV C, bitMove direct bit to Carry22
MOV bit, CMove Carry to direct bit22
JC relJump if Carry is set22/3
JNC relJump if Carry is not set22/3
JB bit, relJump if direct bit is set33/4
JNB bit, relJump if direct bit is not set33/4
JBC bit, relJump if direct bit is set and clear bit33/4
Program Branching
ACALL addr11Absolute subroutine call23
LCALL addr16Long subroutine call34
RETReturn from subroutine15
RETIReturn from interrupt15
AJMP addr11Absolute jump23
LJMP addr16Long jump34
SJMP relShort jump (relative address)23
JMP @A+DPTRJump indirect relative to DPTR13
JZ relJump if A equals zero22/3
JNZ relJump if A does not equal zero22/3
CJNE A, direct, relCompare direct byte to A and jump if not equal33/4
CJNE A, #data, relCompare immediate to A and jump if not equal33/4
CJNE Rn, #data, rel
CJNE @Ri, #data, rel
DJNZ Rn, relDecrement Register and jump if not zero22/3
DJNZ direct, relDecrement direct byte and jump if not zero33/4
NOPNo operation11
Compare immediate to Register and jump if not
equal
Compare immediate to indirect and jump if not
equal
33/4
34/5
Clock
Cycles
74Rev. 1.2
C8051F320/1
Notes on Registers, Operands and Addressing Modes:
Rn - Register R0-R7 of the currently selected register bank.
@Ri - Data RAM location addressed indirectly through R0 or R1.
rel - 8-bit, signed (two’s complement) offset relative to the first byte of the following instruction. Used by
SJMP and all conditional jumps.
direct - 8-bit internal data location’s address. This could be a direct-access Data RAM location (0x00-
0x7F) or an SFR (0x80-0xFF).
#data - 8-bit constant
#data16 - 16-bit constant
bit - Direct-accessed bit in Data RAM or SFR
addr11 - 11-bit destination address used by ACALL and AJMP. The destination must be within the same
2 kB page of program memory as the first byte of the following instruction.
addr16 - 16-bit destination address used by LCALL and LJMP . The destination may be anywhere within
the 16 kB program memory space.
There is one unused opcode (0xA5) that performs the same function as NOP.
The memory organizat ion of th e CIP- 51 System Contr oller is simila r to tha t of a standa rd 805 1. The re are
two separate memory spaces: program mem ory and data memory. Program and data memory share the
same address space b ut are ac cessed via different in structi on types . The CIP-5 1 memory organiz ation is
shown in
Figure 9.2.
PROGRAM/DATA MEMORY
(Flash)
0x3E00
x3DFF
RESERVED
16 K Flash
(In-System
Programmable in 512
Byte Sectors)
0xFF
0x80
0x7F
0x30
0x2F
0x20
0x1F
0x00
INTERNAL DATA ADDRESS SPACE
(Indirect Addressing
(Direct and Indirect
General Purpose
DATA MEMORY (RAM)
Upper 128 RAM
Only)
Addressing )
Bit Addressable
Registers
Special Function
Register's
(Direct Addressing Only)
Lower 128 RAM
(Direct and Indire c
Addressing)
EXTERNAL DATA ADDRESS SPACE
0x0000
0xFFFF
Same 2048 bytes as from
0x0000 to 0x0 7FF, wrapped
on 2 kB boundaries
0x0800
0x07FF
0x0400
0x03FF
0x0000
Figure 9.2. Memory Map
USB FIFOs
1024 Bytes
XRAM - 1024 Bytes
(accessable using MOVX
instruction)
9.2.1. Program Memory
The CIP-51 core has a 64 k-by te progr am mem ory space. The C8051 F320/ 1 impl ements 16k by tes of th is
program memory space as in-s ystem, re-programmable Flash memory, organized in a contiguous blo ck
from addresses 0x0000 to 0x3FFF. Addresses above 0x3DFF are reserved.
Program memory is normally assumed to be read-only. However, the CIP-51 can write to program memory
by setting the Program Store Write Enable bit (PSCTL.0) and using the MOVX instruction. This feature pro
vides a mechani sm for the CIP-51 t o update prog ram code an d use the program memory space for nonvolatile data storage. Refer to
76Rev. 1.2
Section “11. Flash Memory” on page 105 for further details.
-
C8051F320/1
9.2.2. Data Memory
The CIP-51 includes 25 6 of internal RAM mapped into the da ta memory space from 0x00 through 0xFF.
The lower 128
Either direct or indi re ct add re ss ing may b e us ed to ac ce ss t he lower 128
0x00 through 0x1F are add ressable as four bank s of general purpose regis ters, each bank consi sting of
eight byte-wide register s. The next 16
bytes or as 128
The upper 128 bytes of data memory are acces sible onl y by ind irect add ress ing. T his region oc cupi es the
same address space as the Special Function R egisters (SFR) but is physically separate from the SFR
space. The addressing mode used by an instruction whe n accessing locations above 0x7 F determines
whether the CPU accesses t he uppe r 128
direct addressing will access the SFR space. Instructions using indirect addressing above 0x7F access the
upper 128
9.2.3. General Purpose Registers
The lower 32 bytes of data memory, locations 0x00 through 0x1F, may be addressed as four banks of general-purpose register s. Each bank consists of eight byte-wide regi sters designated R0 through R7. Only
one of these banks may be enabled at a time. Two bits in the program status word, RS0 (PSW.3) and RS1
(PSW.4), select the active register bank (see description of the PSW in
switching when ent ering subrou tines and in terrupt serv ice routines . Indirect addr essing modes use registers R0 and R1 as index registers.
bytes of data memory are used for gene ral purpose registers and scratch pad memory.
bytes of data memory. Locations
bytes, locations 0x20 throu gh 0x2F, may either be addressed as
bit locations accessible with the direct addressing mode.
bytes of data memory space or the SFRs. Instructions that use
bytes of data memory. Figure 9.2 illustrates the data memory organization of the CIP-51.
Figure 9.4). This allows fast context
9.2.4. Bit Addressable Locations
In addition to direct access to data memory organized as bytes, the sixteen data memory locations at 0x20
through 0x2F are also accessib le as 128
0x00 to 0x7F. Bit
0x07. Bit 7 of the byte at 0x2F has bit address 0x7F . A bit access is distinguished from a full byte access by
the type of instruction u sed (bit source or destination operands as opposed to a byte sourc e or destina
tion).
The MCS-51™ assembly lan guage al lows an al ternate notatio n for bit ad dressi ng of the for m XX.B wher e
XX is the byte address and B is the bit position within the byte. For example, the instruction:
MOVC, 22h.3
moves the Boolean value at 0x13 (bit 3 of the byte at location 0x22) into the Carry flag.
0 of the byte at 0 x20 has bit ad dress 0x00 while bi t7 of th e byte at 0x 20 has b it add ress
individually addr essable bits. Each bit has a bit address from
9.2.5. Stack
A programmer's stack can be located anywhere in the 256-b yte data memory. The stack area is designated using the Stack Pointer (SP, 0x81) SFR. The SP will point to the la st location used. T he next value
pushed on the stack is placed a t SP+ 1 and t hen SP is i ncreme nted. A rese t init ializes the s tack pointe r to
location 0x07. Th erefore, th e first value p ushed on th e stack is pla ced at locati on 0x08, whi ch is also the
first register (R0) of regi ster bank 1. Thus , if more than on e register ba nk is to be used, the SP should be
initialized to a location in the data memory not being used for data storage. The stack depth can extend up
to 256
bytes.
-
Rev. 1.277
C8051F320/1
9.2.6. Special Function Registers
The direct-access data memory locations from 0x80 to 0xFF constitute the special function registers
(SFRs). The SFRs provide control an d data exchange wit h the CIP-51's resour ces and periphera ls. The
CIP-51 duplicates the SFRs found in a typical 8051 implementation as well as impleme nting additional
SFRs used to configure and acces s the sub-systems uni que to the MCU. This allows the ad dition of new
functionality while retaining compatibility with the MCS-51™ instruction set.
mented in the CIP-51 System Controller.
The SFR registers are acc essed any time th e direct a ddress ing mod e is used to acces s memor y locati ons
from 0x80 to 0xFF. SFRs with addresses ending in 0x0 or 0 x8 (e.g. P0, TCON, SCON0, IE, etc.) a re bitaddressable as well as byte-addressable. All other SFRs are byte-addressable only. Unoccupied
addresses in the SFR space are reserved for future use. Accessing these areas will have an indeterminate
effect and should be avoided. Refer to the corresponding pages of the datasheet, as indicated in
for a detailed description of each register.
Table 9.2. Special Function Register (SFR) Memory Map
Following are descriptions of SFRs related to the operation of the CIP-51 System Controller. Reserved bits
should not be set to logic
case the reset va lue of the bit wi ll be lo gic
the remaining SFRs are inc lu ded in the secti ons of the datashee t assoc i ated with th eir co r re spondi ng sy s
tem function.
l. Future product versions may use these bits to implement new features in which
0, selecting the fea ture's de fault state. De tailed descripti ons of
SFR Definition 9.1. DPL: Data Pointer Low Byte
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
00000000
Bit7B it6Bit5Bit4B it3Bit2Bit1B it0SFR Address:
0x82
Bits7–0: DPL: Data Pointer Low.
The DPL register is the low byte of the 16-bit DPTR. DPTR is used to access indirectly
addressed memory.
-
82Rev. 1.2
C8051F320/1
SFR Definition 9.2. DPH: Data Pointer High Byte
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
00000000
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
Bits7–0: DPH: Data Pointer High.
The DPH register is the high byte of the 16-bit DPTR. DPTR is used to access indirectly
addressed memory.
SFR Definition 9.3. SP: St a ck Point er
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
00000111
Bit7B it6Bit5Bit4B it3Bit2Bit1Bi t0SFR Address:
0x83
0x81
Bits7–0: SP: Stack Pointer.
The Stack Pointer holds the location of the top of the stack. The stack pointer is incremented
before every PUSH operation. The SP register defaults to 0x07 after reset.
Rev. 1.283
C8051F320/1
SFR Definition 9.4. PSW: Program Status Word
R/WR/WR/WR/WR/WR/WR/WRReset Value
CYACF0RS1RS0OVF1PARITY00000000
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
(bit addressable)
Bit7:CY: Carry Flag.
This bit is set when the last arithmetic operation resulted in a carry (addition) or a borrow
(subtraction). It is cleared to logic 0 by all other arithmetic operations.
Bit6:AC: Auxiliary Carry Flag
This bit is set when the last arithmetic operation resulted in a carry into (addition) or a borrow
from (subtraction) the high order nibble. It is cleared to logic 0 by all other arithmetic operations.
Bit5:F0: User Flag 0.
This is a bit-addressable, general purpose flag for use under software control.
Bits4–3: RS1–RS0: Register Bank Select.
These bits select which register bank is used during register accesses.
This bit is set to 1 under the following circumstances:
• An ADD, ADDC, or SUBB instruction causes a sign-change overflow.
• A MUL instruction results in an overflow (result is greater than 255).
• A DIV instruction causes a divide-by-zero condition.
The OV bit is cleared to 0 by the ADD, ADDC, SUBB, MUL, and DIV instructions in all other
cases.
Bit1:F1: User Flag 1.
This is a bit-addressable, general purpose flag for use under software control.
Bit0:PARITY: Parity Flag.
This bit is set to logic 1 if the sum of the eight bits in the accumulator is odd and cleared if the
sum is even.
84Rev. 1.2
C8051F320/1
SFR Definition 9.5. ACC: Accumulator
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
ACC.7ACC.6ACC.5ACC.4ACC.3ACC.2ACC.1ACC.000000000
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
(bit addressable)
Bits7–0: ACC: Accumulator.
This register is the accumulator for arithmetic operations.
SFR Definition 9.6. B: B Register
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
B.7B.6B.5B.4B.3B.2B.1B.000000000
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
(bit addressable)
0xE0
0xF0
Bits7–0: B: B Register.
This register serves as a second accumulator for certain arithmetic operations.
Rev. 1.285
C8051F320/1
9.3.Interrupt Handler
The CIP-51 includes an extended interrupt system supporting a total of 16 interrupt sources with two priority levels. The alloc ation of interrupt so urces between on- chip peripheral s and external inputs pins va ries
according to the specific version of the device. Each interrupt source has one or more associated interruptpending flag(s) located in an SFR. W hen a per ipher al or ex ternal so urce meets a valid i nterrupt condi tion,
the associated interrupt-pending flag is set to logic
If interrupts are enabled for the source, an interrupt request is generated when the interrupt-pending flag is
set. As soon as executi on o f the current instructi on is co mpl ete , the CPU generates an LCALL t o a p re de
termined address to begin execution of an interrupt service routine (ISR). Each ISR must end with an RETI
instruction, which r eturns program e xecution to the next i nstruction that would have been ex ecuted if the
interrupt request had not occurred. If interrupts are not enabled, the interrupt-pending flag is ignored by the
hardware and program ex ec uti on co nti nue s a s norma l. (The interrupt-pendin g fl ag is s et to logic
less of the interrupt's enable/disable state.)
Each interrupt s ource can be indivi dually enabled or disabled through the use of an as sociated interrup t
enable bit in an SFR (I E-EIE2). However, interrupts must first be globally enabled by setting the EA bi t
(IE.7) to logic
all interrupt sources regardless of the individual interrupt-enable settings.
Note: any instruction which clear s the EA bit should be im mediatel y followed by an instructio n which has
two or more opcode bytes. For example:
1 before the individual interrupt enables are recognized. Setting the EA bit to logic 0 disables
1.
1 regard-
-
// in 'C':
EA = 0; // clear EA bit
EA = 0; // ... followed by another 2-byte opcode
; in assembly:
CLR EA ; clear EA bit
CLR EA ; ... followed by another 2-byte opcode
If an interrupt is pos te d d ur ing the ex ecut ion phase of a "CL R E A" o pc ode ( or an y instruction which cl ea rs
the EA bit), and the instructi on is followed by a singl e-cycle inst ruction, the int errupt may be taken. If the
EA bit is read inside the interrupt service routine, it will return a '0'. When the "CLR EA" opcode is followed
by a multi-cycle instruction, the interrupt will not be taken.
Some interrupt-pending flags are automatically cleared by the hardware when the CPU vectors to the ISR.
However, most are not cleared by the hardware and must be cleared by software before returning from the
ISR. If an interrupt-pending flag remains set after the CPU completes the return-from-interrupt (RETI)
instruction, a new interr upt request will be generated imme diately and the CPU will re-ente r the ISR after
the completion of the next instruction.
9.3.1. MCU Interrupt Sources and Vectors
The MCU supports 16 interrup t sourc es. S oftware can s imula te an i nterrupt by se tting a ny inter rupt-pe nding flag to logic 1. If interrupts are enabled for the flag , an i nterr up t re quest wi ll be ge nerate d and the CPU
will vector to the ISR address assoc iated with the interrupt-pending flag. MCU interrupt sources, ass oci
ated vector addresses, priority order and control bits are summarized in Table 9.4 on page 88. Refer to the
datasheet section as sociated with a particular on-chip peripheral for i nformation regarding valid interrupt
conditions for the peripheral and the behavior of its interrupt-pending flag(s).
-
86Rev. 1.2
C8051F320/1
9.3.2. External Interrupts
The /INT0 and /INT1 ex terna l i nte rrup t s ourc es are c onf igu ra ble as ac tive high or low, edge or level sensitive. The IN0PL (/INT0 Polarity) and IN1PL (/INT1 Polarity) bits in the IT01CF register select active high or
active low; the IT0 a nd IT1 bi ts in TC ON (
edge sensitive. The table below lists the possible configurations.
01Active high, level sensitive01Active high, leve l se nsit i ve
/INT0 and /INT1 are assigned to Port pins as defined in the IT01CF register (see Figure 9.13). Note that
/INT0 and /INT0 Port pin assignments are indep endent of any Crossbar assignments. /INT0 and /INT 1 will
monitor their assigned Port pin s without disturbing the peripheral that was ass igned the Port pin via the
Crossbar. To assign a Po rt pin only to /INT0 and/or /INT1, configure the Crossbar to skip the se lected
pin(s). This is accomplished by setting the associated bit in register XBR0 (see
Crossbar Decoder” on page 127 for complete details on configuring the Crossbar).
Active low, edge sensitive10Active low, edge sensitive
Section “19.1. Timer 0 and Timer 1” on page 209) select level or
Active high, edge sensitive
Section “14.1. Priority
IE0 (TCON.1) and IE1 (TCON.3) serve as the interrupt-pending flags for the /INT0 and /INT1 external
interrupts, respectively. If an /INT0 or /INT1 externa l interrupt is configured as edge-sensitive, the corr e
sponding interrupt-pending flag is automatically cleared by the hardware when the CPU vectors to the ISR.
When configured as lev el sensitive, the interr upt-pending flag remains logic 1 while the input is active as
defined by the corresp ondi ng pol arity bi t (I N0 PL o r IN1P L) ; the fla g rem a in s logi c 0 whi le the input is inac
tive. The external inter rupt source must hold the inpu t active until the interrupt reques t is recognized. It
must then deactivate the interrupt request before execution of the ISR completes or another interrupt
request will be generated.
9.3.3. Interrupt Priorities
Each interrupt source can be individually programmed to one of two priority levels: low or high. A low priority interrupt service routine can be preempted by a high priority interrupt. A high priority interrupt cannot be
preempted. Each interr upt has an as so ci ate d i nterr upt pr iori ty bit in an S F R (IP or EIP 2) us ed to c on fig ur e
its priority level. Low priority is the default. If two interrupts are recognized simultaneously , the interrupt with
the higher priority is servic ed first. If both interrupts have the same priori ty level, a fixed priority order is
used to arbitrate, given in
Table 9.4.
-
-
Rev. 1.287
C8051F320/1
9.3.4. Interrupt Latency
Interrupt response time depends on the state of the CPU when the interrupt occurs. Pending interrupts are
sampled and priority de coded e ach sy stem c lock c ycle. Ther efore , the fas test poss ible res ponse time is 5
system clock cycles: 1
ISR. If an interru pt is pe nding when a RETI is e xecuted, a sin gle i nstruc tion i s execu ted be fore a n LC ALL
is made to service the pen din g interrupt. Therefore, the m aximu m r es pon se time for an i nter rup t (wh en n o
other interrupt is currently being serviced or the new interrupt is of greater priority) occurs when the CPU is
performing an RETI instru cti on fol lo wed by a DIV as the nex t instr uc tio n. In thi s case , the r esp ons e ti me is
18
system clock cycles: 1 clock cycle to detect the interrupt, 5 clock cycles to execute the RETI, 8 clock
cycles to complete the DIV instruction and 4
executing an ISR for an interrupt with equal or higher priority, the new interrupt will not be serviced until the
current ISR completes, including the RETI and following instruction.
Note that the CPU is stalled during Flash write/erase operations and USB FIFO MOVX accesses (see Section “12.2. Accessing USB FIFO Space” on page 113). Interrupt se rvice la tency will be incr eased for inter rupts occuring while the CPU is stalled. The latency for these situations will be determined by the standard
interrupt service procedure (as described above) and the amount of time the CPU is stalled.
clock cycle to de tect t he interru pt and 4 cl ock cycles to compl ete the LCALL to the
clock cycles to exec ute the LCALL to the ISR. If the CPU is
The SFRs used to enable the interrupt sources and set their priority level are described below. Refer to the
datasheet section as sociated with a particular on-chip peripheral for i nformation regarding valid interrupt
conditions for the peripheral and the behavior of its interrupt-pending flag(s).
Rev. 1.289
C8051F320/1
SFR Definition 9.7. IE: Interrupt Enable
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
EAESPI0ET2ES0ET1EX1ET0EX000000000
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
(bit addressable)
Bit7:EA: Enable All Interrupts.
This bit globally enables/disables all interrupts. It overrides the individual interrupt mask settings.
0: Disable all interrupt sources.
1: Enable each interrupt according to its individual mask setting.
Bit6:ESPI0: Enable Serial Peripheral Interface (SPI0) Interrupt.
This bit sets the masking of the SPI0 interrupts.
0: Disable all SPI0 interrupts.
1: Enable interrupt requests generated by SPI0.
Bit5:ET2: Enable Timer 2 Interrupt.
This bit sets the masking of the Timer 2 interrupt.
0: Disable Timer 2 interrupt.
1: Enable interrupt requests generated by the TF2L or TF2H flags.
Bit4:ES0: Enable UART0 Interrupt.
This bit sets the masking of the UART0 interrupt.
0: Disabl e UART0 interrupt.
1: Enable UART0 interrupt.
Bit3:ET1: Enable Timer 1 Interrupt.
This bit sets the masking of the Timer 1 interrupt.
0: Disable all Timer 1 interrupt.
1: Enable interrupt requests generated by the TF1 flag.
Bit2:EX1: Enable External Interrupt 1.
This bit sets the masking of External Interrupt 1.
0: Disable external interrupt 1.
1: Enable interrupt requests generated by the /INT1 input.
Bit1:ET0: Enable Timer 0 Interrupt.
This bit sets the masking of the Timer 0 interrupt.
0: Disable all Timer 0 interrupt.
1: Enable interrupt requests generated by the TF0 flag.
Bit0:EX0: Enable External Interrupt 0.
This bit sets the masking of External Interrupt 0.
0: Disable external interrupt 0.
1: Enable interrupt requests generated by the /INT0 input.
This bit sets the priority of the SPI0 interrupt.
0: SPI0 interrupt set to low priority level.
1: SPI0 interrupt set to high priority level.
Bit5:PT2: Timer 2 Interrupt Priority Control.
This bit sets the priority of the Timer 2 interrupt.
0: Timer 2 interrupt set to low priority level.
1: Timer 2 interrupts set to high priority level.
Bit4:PS0: UART0 Interrupt Priority Control.
This bit sets the priority of the UART0 interrupt.
0: UART0 interrupt set to low priority level.
1: UART0 interrupts set to high priority level.
Bit3:PT1: Timer 1 Interrupt Priority Control.
This bit sets the priority of the Timer 1 interrupt.
0: Timer 1 interrupt set to low priority level.
1: Timer 1 interrupts set to high priority level.
Bit2:PX1: External Interrupt 1 Priority Control.
This bit sets the priority of the External Interrupt 1 interrupt.
0: External Interrupt 1 set to low priority level.
1: External Interrupt 1 set to high priority level.
Bit1:PT0: Timer 0 Interrupt Priority Control.
This bit sets the priority of the Timer 0 interrupt.
0: Timer 0 interrupt set to low priority level.
1: Timer 0 interrupt set to high priority level.
Bit0:PX0: External Interrupt 0 Priority Control.
This bit sets the priority of the External Interrupt 0 interrupt.
0: External Interrupt 0 set to low priority level.
1: External Interrupt 0 set to high priority level.
This bit sets the masking of the ADC0 Conversion Complete interrupt.
0: Disable ADC0 Conversion Complete interrupt.
1: Enable interrupt requests generated by the AD0INT flag.
This bit sets the masking of ADC0 Window Comparison interrupt.
0: Disable ADC0 Window Comparison interrupt.
1: Enable interrupt requests generated by ADC0 Window Compare flag (AD0WINT).
Bit1:EUSB0: Enable USB0 Interrupt.
This bit sets the masking of the USB0 interrupt.
0: Disable all USB0 interrupts.
1: Enable interrupt requests generated by USB0.
Bit0:ESMB0: Enable SMBus (SMB0) Interrupt.
This bit sets the masking of the SMB0 interrupt.
0: Disable all SMB0 interrupts.
1: Enable interrupt requests generated by SMB0.
This bit sets the priority of the Timer 3 interrupt.
0: Timer 3 interrupts set to low priority level.
1: Timer 3 interrupts set to high priority level.
This bit sets the priority of the ADC0 Conversion Complete interrupt.
0: ADC0 Conversion Complete interrupt set to low priority level.
1: ADC0 Conversion Complete interrupt set to high priority level.
This bit sets the priority of the ADC0 Window interrupt.
0: ADC0 Window interrupt set to low priority level.
1: ADC0 Window interrupt set to high priority level.
Bit1:PUSB0: USB0 Interrupt Priority Control.
This bit sets the priority of the USB0 interrupt.
0: USB0 interrupt set to low priority level.
1: USB0 interrupt set to high priority level.
Note: Refer to Figure 19.1 for INT0/1 edge- or level-sensitive interrupt selection.
Bit7:IN1PL: /INT1 Polarity
0: /INT1 input is active low.
1: /INT1 input is active high.
Bits6–4: IN1SL2–0: /INT1 Port Pin Selection Bits
These bits select which Port pin is assigned to /INT1. Note that this pin assignment is independent of the Crossbar; /INT1 will monitor the assigned Port pin without disturbing the
peripheral that has been assigned the Port pin via the Crossbar. The Crossbar will not
assign the Port pin to a peripheral if it is configured to skip the selected pin (accomplished by
setting to ‘1’ the corresponding bit in register P0SKIP).
0: /INT0 interrupt is active low.
1: /INT0 interrupt is active high.
Bits2–0: INT0SL2–0: /INT0 Port Pin Selection Bits
These bits select which Port pin is assigned to /INT0. Note that this pin assignment is independent of the Crossbar. /INT0 will monitor the assigned Port pin without disturbing the
peripheral that has been assigned the Port pin via the Crossbar. The Crossbar will not
assign the Port pin to a peripheral if it is configured to skip the selected pin (accomplished by
setting to ‘1’ the corresponding bit in register P0SKIP).
The CIP-51 core has two software pr ogrammable power management mode s: Idle and Stop. Idle mode
halts the CPU while leaving the perip herals and clocks acti ve. In Stop mode, the CPU is halted, all inter
rupts, are inactive, and the internal oscillator is stopped (analog peripherals remain in their selected states;
the external oscillator is not affected). Since clocks are running in Idle mode, power consumption is depen
dent upon the system clo ck frequency and the number of peripherals left in act ive mode before entering
Idle. Stop mode consumes the le ast power. Figure 1.15 descri bes the Power Control Register (PCO N)
used to control the CIP-51's power management modes.
Although the CIP-51 has Idle and Stop modes built in (as with any standard 8051 arch itecture), power
management of the entire MCU is better accomplished through system clock and individual peripheral
management. Each an alog peripheral can be disab led when not in use and placed in low power mode.
Digital peripherals, suc h as timers or seri al buses, draw l ittle power when the y are not in use. Turning off
the oscillators lowers power consumption considerably; however a reset is required to restart the MCU.
The internal oscillator can be placed in Suspend mode (see Section “13. Oscillators” on page 115). In Suspend mode, the internal oscillator is stopped until a non-idle USB event is detected, or the VBUS input signal matches the polarity selected by the VBPOL bit in register REG0CN (Figure 8.1 on Page 69).
9.4.1. Idle Mode
-
-
Setting the Idle Mode Select bit (PCON.0) causes the CIP-51 to halt the CPU and enter Idle mode as soon
as the instruction that sets the bit completes execution. All in ternal registers and memory mai ntain their
original data. All analog and digital peripherals can remain active during Idle mode.
Idle mode is terminated when an enabled interrupt is asserted or a reset occurs. The assertion of an
enabled interrupt will cau se the Idle Mode Sele ction bit (PCON.0) to be c leared and the CPU to resum e
operation. The pending i nterrupt will be serviced and the next i nstruction to be executed after the return
from interrupt (RETI) wil l be the ins tru ct ion imm edi ate ly follow ing the one that set the Idle Mode Sel ec t bi t.
If Idle mode is terminate d by an internal or exte rnal reset, the C IP-51 performs a nor mal reset sequenc e
and begins program execution at address 0x0000.
If enabled, the Watchdog Timer (WDT) will eventually cause an internal watchdog reset and thereby terminate the Idle mode. This feature protects the system from an unintended permanent shutdown in the event
of an inadvertent write to the P CON register. If this behavior is not de sired, the WDT may be disabled by
software prior to entering the Idle mode if the WDT was initially configured to allow this operation. This pro
vides the opportunity for additi onal power savings, all owing the system to remain in the Idle mode indefinitely, waiting for an external stimulus to wake up the system. Refer to Section “10.6. PCA Watchdog Timer
Reset” on page 101 for more information on the use and configuration of the WDT.
-
9.4.2. Stop Mode
Setting the Stop Mode Select bit (PCON.1) ca uses th e CIP-51 to en ter Stop mode as soon as the in stru ction that sets the bit completes execution. In Stop mode the internal oscillator, CPU, and all digital peripherals are stopped; the state of the external oscillator circuit is not affected. Each analog peripheral (including
the external osci llator circuit) m ay be shut do wn individually prior to enter ing Stop Mode. Stop mode can
only be terminated by an internal or external reset. On reset, the CIP-51 performs the normal reset
sequence and begins program execution at address 0x0000.
If enabled, the Missing Cloc k Detector will cause an internal reset and the reby terminate the Stop mode.
The Missing Clock Detector should be disabled if the CPU is to be put to in STOP mode for longer than the
MCD timeout of 100
96Rev. 1.2
µsec.
C8051F320/1
SFR Definition 9.14. PCON: Power Control
R/WR/WR/WR/WR/WR/WR/WR/WReset Value
GF5GF4GF3GF2GF1GF0STOPIDLE00000000
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0SFR Address:
Bits7–2: GF5–GF0: General Purpose Flags 5–0.
These are general purpose flags for use under software control.
Bit1:STOP: Stop Mode Select.
Setting this bit will place the CIP-51 in Stop mode. This bit will always be read as 0.
1: CPU goes into Stop mode (internal oscillator stopped).
Bit0:IDLE: Idle Mode Select.
Setting this bit will place the CIP-51 in Idle mode. This bit will always be read as 0.
1: CPU goes into Idle mode. (Shuts off clock to CPU, but clock to Timers, Interrupts, Serial
Ports, and Analog Peripherals are still active.)
0x87
Rev. 1.297
C8051F320/1
10. Reset Sources
Reset circuitry all ows the controll er to be easily placed in a pre defined defau lt condition. On e ntry to this
reset state, the following occur:
•CIP-51 halts program execution
•Special Function Registers (SFRs) are initialized to their defined reset values
•External Port pins are forced to a known state
•Interrupts and timers are disabled.
All SFRs are reset to the predefined values noted in the SFR detailed descriptions. The contents of internal
data memory are unaffected durin g a reset; any previously stored data is preserved. How ever, since the
stack pointer SFR is reset, the stack is effectively lost even though the data on the stack is not altered.
The Port I/O latches are reset to 0xFF (all logic ones) in open-drain mode. Weak pull-ups are enabled during and after the reset. For VDD Monito r an d Pow er -On Rese ts, the /RST pi n is d riv en lo w unti l the devi ce
exits the reset state.
On exit from the reset state, the program cou nter (PC) is reset, an d the sy stem c lock def aults to the internal oscillator. Refer to Section “13. Oscillators” on page 115 for information on se lecting and configuring
the system clock sour ce. The Watchdog Timer is enab led wi th the sy stem c lock d ivid ed by 12 as its clock
source (
gram execution begins at location 0x0000.
Section “20.3. Watchdog Timer Mode” on page 236 details the use of the Watchdog Timer). Pro-
XTAL1
XTAL2
Internal
Oscillator
Clock
Multiplier
External
Oscillator
Drive
Px.x
Px.x
System
Clock
Clock Select
Comparator 0
+
-
Missing
Clock
Detector
(oneshot)
EN
MCD
Enable
Microcontroller
Extended Interrupt
C0RSEF
CIP-51
Core
Handler
VDD
PCA
WDT
EN
WDT
Enable
Supply
Monitor
+
-
System Reset
Enable
Power On
Reset
Software Reset (SWRSF)
Errant
FLASH
Operation
'0'
USB
Controller
(wired-OR)
Enable
Reset
Funnel
VBUS
Transition
/RST
Figure 10.1. Reset Sources
98Rev. 1.2
C8051F320/1
t
10.1. Power-On Reset
During power-up, the device is held in a reset state and the /RST pin is driven low until VDD se ttles above
V
. A Power-On Reset del ay (T
RST
typically less than 0.3
ms. Figure 10.2. plots the power-on and VDD monitor reset timing.
PORDelay
On exit from a power-on reset, the PORSF flag (RSTSRC.1) is set by hardware to logic 1. When PORSF is
set, all of the other reset flag s in the RSTSRC Reg ister are indeterm inate (PORS F is cleared by all ot her
resets). Since all resets ca use program execution to begin at the same lo cation (0x0000) software can
read the PORSF flag to determine if a power-up was the cause of reset. The content of internal data mem
ory should be assumed to be undefined after a power-on r eset. The VDD monitor is enabled following a
power-on reset.
Software can force a power-on reset by writing ‘1’ to the PINRSF bit in register RSTSRC.
) occurs before th e device is rele ased from rese t; this delay is
-
VDD
2.70
2.4
2.0
1.0
Logic HIGH
Logic LOW
volts
V
RST
D
D
V
/RST
T
PORDelay
VDD
Power-On
Reset
Monitor
Reset
Figure 10.2. Power-On and VDD Monitor Reset Timing
Rev. 1.299
C8051F320/1
10.2. Power-Fail Reset / VDD Monitor
When a power-down transiti on or power irregularity causes VDD to drop bel ow V
monitor will drive th e /RST pin low and hold the CIP-51 in a reset state (see
returns to a level above V
nal data memory contents are not altered by the power-fail reset, it is impossible to determine if VDD
dropped below the level required for data retention. If the PORSF flag reads ‘1’, the data may no longer be
valid. The VDD moni tor is enabled a fter power-on resets; howe ver its defined state (enabled/disab led) is
not altered by any other reset sour ce. For example, if the VDD monitor is enabled and a software reset is
performed, the VDD monitor will still be enabled after the reset.
Important Note: The VDD monitor must be enabled before it is selected as a rese t source . Selecting th e
VDD monitor as a reset source before it is enabled and stabilized will cause a system reset. The procedure
for configuring the VDD monitor as a reset source is shown below:
Step 1. Enable the VDD monitor (VDM0CN.7 = ‘1’).
Step 2. Wait for the VDD monitor to stabilize (see Table 10.1 for the VDD Monitor turn-on time).
Step 3. Select t he VDD monitor as a reset source (RSTSRC.1 = ‘1’).
See Figure 10.2 for V DD mo nitor timing. See Table 10.1 for complete electrical characteristics of the V DD
monitor.
, the CIP-51 will be released from the reset state. Note that even though inter-
This bit turns the VDD monitor circuit on/off. The VDD Monitor cannot generate system
resets until it is also selected as a reset source in register RSTSRC (Figure 10.2). The VDD
Monitor must be allowed to stabilize before it is selected as a reset source. Selecting the VDD monitor as a reset source before it has stabilized will generate a system reset.
See Table 10.1 for the minimum VDD Monitor turn-on time. The VDD Monitor is enabled following all POR resets.
0: VDD Monitor Disabled.
1: VDD Monitor Enabled.
Bit6: VDDSTAT: VDD Status.
This bit indicates the current power supply status (VDD Monitor output).
0: VDD is at or below the VDD monitor threshold.
1: VDD is above the VDD monitor threshold.