C8051F85x 86x
C8051F85x 86x
Memory
- Up to 8 kB flash
- Flash is in-system programmable in 512-Byte sectors
- Up to 512 Bytes RAM (256 + 256)
On-Chip Debug
- On-chip debug circuitry facilitates full speed, non-intrusive in-
Unique Identifier
- 32-bit unique key for each device
Supply Voltage
- 2.2 to 3.6 V
2 Analog Comparators
- Programmable hysteresis and response time
- Configurable as interrupt or reset source
- Low current
Package Options
- 16-pin SOIC
- 20-pin QFN, 3 x 3 mm
- 24-pin QSOP
- Available in die form
- Qualified to AEC-Q100 Standards
General-Purpose I/O
- Up to 18 pins
- 5 V-Tolerant
- Crossbar-enabled
Temperature Ranges:
- 40 to +125 C (-Ix) and 40 to +85 C (-Gx)
256-512 B RAM
Core LDO
CIP-51
(25 MHz)
Watchdog
UART
I2C / SMBus
Supply Monitor
16-bit CRC
4 x 16-bit Timers
3-Channel PCA
Clock Selection
Clocking / Oscillators
SPI
Analog Peripherals
SAR ADC
(12-bit 200 ksps,10-bit 800 ksps)
Voltage Reference
2 x Low Current Comparators
2-8 kB Flash
Digital Peripherals
Priority Crossbar
Encoder
Communication Peripherals
- UART
- I2C / SMBus
- SPI
C8051F85x/86x
C8051F85x-86x
Table of Contents
1. Electrical Specifications............................................................................................ 8
1.1. Electrical Characteristics ..................................................................................... 8
1.2. Typical Performance Curves ............................................................................. 19
1.2.1. Operating Supply Current ......................................................................... 19
1.2.2. ADC Supply Current.................................................................................. 20
1.2.3. Port I/O Output Drive................................................................................. 21
1.3. Thermal Conditions ........................................................................................... 21
1.4. Absolute Maximum Ratings............................................................................... 22
2. System Overview ..................................................................................................... 23
2.1. Power ............................................................................................................ 25
2.1.1. LDO ....................................................................................................... 25
2.1.2. Voltage Supply Monitor (VMON0)............................................................. 25
2.1.3. Device Power Modes ................................................................................ 25
2.2. I/O
............................................................................................................ 26
2.2.1. General Features ...................................................................................... 26
2.2.2. Crossbar.................................................................................................... 26
2.3. Clocking ............................................................................................................ 27
2.4. Counters/Timers and PWM ............................................................................... 27
2.4.1. Programmable Counter Array (PCA0) ...................................................... 27
2.4.2. Timers (Timer 0, Timer 1, Timer 2 and Timer 3) ....................................... 27
2.4.3. Watchdog Timer (WDT0) .......................................................................... 27
2.5. Communications and other Digital Peripherals ................................................. 28
2.5.1. Universal Asynchronous Receiver/Transmitter (UART0).......................... 28
2.5.2. Serial Peripheral Interface (SPI0) ............................................................. 28
2.5.3. System Management Bus / I2C (SMBus0) ............................................... 28
2.5.4. 16/32-bit CRC (CRC0) .............................................................................. 28
2.6. Analog Peripherals ............................................................................................ 30
2.6.1. 12-Bit Analog-to-Digital Converter (ADC0) ............................................... 30
2.6.2. Low Current Comparators (CMP0, CMP1) ............................................... 30
2.7. Reset Sources ................................................................................................... 31
2.8. On-Chip Debugging........................................................................................... 31
3. Pin Definitions.......................................................................................................... 32
3.1. C8051F850/1/2/3/4/5 QSOP24 Pin Definitions ................................................. 32
3.2. C8051F850/1/2/3/4/5 QFN20 Pin Definitions .................................................... 36
3.3. C8051F860/1/2/3/4/5 SOIC16 Pin Definitions ................................................... 39
4. Ordering Information ............................................................................................... 42
5. QSOP-24 Package Specifications .......................................................................... 45
6. QFN-20 Package Specifications ............................................................................. 47
7. SOIC-16 Package Specifications ............................................................................ 50
8. Memory Organization .............................................................................................. 52
8.1. Program Memory............................................................................................... 53
8.1.1. MOVX Instruction and Program Memory .................................................. 53
8.2. Data Memory ..................................................................................................... 53
Rev. 1.0
C8051F85x-86x
8.2.1. Internal RAM ............................................................................................. 53
8.2.2. External RAM ............................................................................................ 54
8.2.3. Special Function Registers ....................................................................... 55
9. Special Function Register Memory Map................................................................ 56
10. Flash Memory......................................................................................................... 61
10.1. Security Options .............................................................................................. 61
10.2. Programming the Flash Memory ..................................................................... 63
10.2.1. Flash Lock and Key Functions ................................................................ 63
10.2.2. Flash Erase Procedure ........................................................................... 63
10.2.3. Flash Write Procedure ............................................................................ 63
10.3. Non-Volatile Data Storage............................................................................... 64
10.4. Flash Write and Erase Guidelines ................................................................... 64
10.4.1. Voltage Supply Maintenance and the Supply Monitor ............................ 64
10.4.2. PSWE Maintenance ................................................................................ 65
10.4.3. System Clock .......................................................................................... 65
10.5. Flash Control Registers ................................................................................... 66
11. Device Identification and Unique Identifier ......................................................... 68
11.1. Device Identification Registers ........................................................................ 69
12. Interrupts ................................................................................................................ 72
12.1. MCU Interrupt Sources and Vectors................................................................ 72
12.1.1. Interrupt Priorities.................................................................................... 72
12.1.2. Interrupt Latency ..................................................................................... 72
12.2. Interrupt Control Registers .............................................................................. 75
13. Power Management and Internal Regulator ........................................................ 82
13.1. Power Modes................................................................................................... 82
13.1.1. Idle Mode ................................................................................................ 82
13.1.2. Stop Mode............................................................................................... 83
13.2. LDO Regulator................................................................................................. 83
13.3. Power Control Registers.................................................................................. 83
13.4. LDO Control Registers .................................................................................... 84
14. Analog-to-Digital Converter (ADC0)..................................................................... 85
14.1. ADC0 Analog Multiplexer ................................................................................ 86
14.2. ADC Operation ................................................................................................ 88
14.2.1. Starting a Conversion.............................................................................. 88
14.2.2. Tracking Modes....................................................................................... 88
14.2.3. Burst Mode.............................................................................................. 89
14.2.4. Settling Time Requirements.................................................................... 90
14.2.5. Gain Setting ............................................................................................ 91
14.3. 8-Bit Mode ....................................................................................................... 91
14.4. 12-Bit Mode ..................................................................................................... 91
14.5. Power Considerations ..................................................................................... 92
14.6. Output Code Formatting .................................................................................. 94
14.7. Programmable Window Detector..................................................................... 95
14.7.1. Window Detector In Single-Ended Mode ................................................ 95
14.8. Voltage and Ground Reference Options ......................................................... 97
Rev. 1.0
C8051F85x-86x
14.8.1. External Voltage Reference .................................................................... 97
14.8.2. Internal Voltage Reference ..................................................................... 97
14.8.3. Analog Ground Reference ...................................................................... 97
14.9. Temperature Sensor........................................................................................ 98
14.9.1. Calibration ............................................................................................... 98
14.10. ADC Control Registers .................................................................................. 99
15. CIP-51 Microcontroller Core ............................................................................... 113
15.1. Performance .................................................................................................. 113
15.2. Programming and Debugging Support .......................................................... 114
15.3. Instruction Set................................................................................................ 114
15.3.1. Instruction and CPU Timing .................................................................. 114
15.4. CPU Core Registers ...................................................................................... 119
16. Clock Sources and Selection (HFOSC0, LFOSC0, and EXTCLK).................... 125
16.1. Programmable High-Frequency Oscillator .................................................... 125
16.2. Programmable Low-Frequency Oscillator ..................................................... 125
16.2.1. Calibrating the Internal L-F Oscillator.................................................... 125
16.3. External Clock ............................................................................................... 126
16.4. Clock Selection.............................................................................................. 126
16.5. High Frequency Oscillator Control Registers ................................................ 127
16.6. Low Frequency Oscillator Control Registers ................................................. 128
16.7. Clock Selection Control Registers ................................................................. 129
17. Comparators (CMP0 and CMP1)......................................................................... 130
17.1. System Connectivity ...................................................................................... 130
17.2. Functional Description ................................................................................... 133
17.3. Comparator Control Registers....................................................................... 134
18. Cyclic Redundancy Check Unit (CRC0)............................................................. 140
18.1. CRC Algorithm............................................................................................... 140
18.2. Preparing for a CRC Calculation ................................................................... 142
18.3. Performing a CRC Calculation ...................................................................... 142
18.4. Accessing the CRC0 Result .......................................................................... 142
18.5. CRC0 Bit Reverse Feature............................................................................ 142
18.6. CRC Control Registers .................................................................................. 143
19. External Interrupts (INT0 and INT1).................................................................... 149
19.1. External Interrupt Control Registers .............................................................. 150
20. Programmable Counter Array (PCA0)................................................................ 152
20.1. PCA Counter/Timer ....................................................................................... 153
20.2. PCA0 Interrupt Sources................................................................................. 153
20.3. Capture/Compare Modules ........................................................................... 154
20.3.1. Output Polarity ...................................................................................... 154
20.3.2. Edge-Triggered Capture Mode ............................................................. 155
20.3.3. Software Timer (Compare) Mode.......................................................... 156
20.3.4. High-Speed Output Mode ..................................................................... 157
20.3.5. Frequency Output Mode ....................................................................... 158
20.4. PWM Waveform Generation.......................................................................... 159
20.4.1. Edge Aligned PWM ............................................................................... 159
Rev. 1.0
C8051F85x-86x
20.4.2. Center Aligned PWM............................................................................. 161
20.4.3. 8 to11-bit Pulse Width Modulator Modes ............................................. 163
20.4.4. 16-Bit Pulse Width Modulator Mode..................................................... 164
20.5. Comparator Clear Function ........................................................................... 165
20.6. PCA Control Registers .................................................................................. 167
21. Port I/O (Port 0, Port 1, Port 2, Crossbar, and Port Match) .............................. 184
21.1. General Port I/O Initialization......................................................................... 185
21.2. Assigning Port I/O Pins to Analog and Digital Functions............................... 186
21.2.1. Assigning Port I/O Pins to Analog Functions ........................................ 186
21.2.2. Assigning Port I/O Pins to Digital Functions.......................................... 186
21.2.3. Assigning Port I/O Pins to Fixed Digital Functions................................ 187
21.3. Priority Crossbar Decoder ............................................................................. 188
21.4. Port I/O Modes of Operation.......................................................................... 191
21.4.1. Configuring Port Pins For Analog Modes.............................................. 191
21.4.2. Configuring Port Pins For Digital Modes ............................................... 191
21.4.3. Port Drive Strength................................................................................ 192
21.5. Port Match ..................................................................................................... 192
21.6. Direct Read/Write Access to Port I/O Pins .................................................... 192
21.7. Port I/O and Pin Configuration Control Registers.......................................... 193
22. Reset Sources and Supply Monitor ................................................................... 211
22.1. Power-On Reset ............................................................................................ 212
22.2. Power-Fail Reset / Supply Monitor ................................................................ 213
22.3. Enabling the VDD Monitor ............................................................................. 213
22.4. External Reset ............................................................................................... 214
22.5. Missing Clock Detector Reset ....................................................................... 214
22.6. Comparator0 Reset ....................................................................................... 214
22.7. Watchdog Timer Reset.................................................................................. 214
22.8. Flash Error Reset .......................................................................................... 214
22.9. Software Reset .............................................................................................. 214
22.10. Reset Sources Control Registers ................................................................ 215
22.11. Supply Monitor Control Registers................................................................ 216
23. Serial Peripheral Interface (SPI0) ....................................................................... 217
23.1. Signal Descriptions........................................................................................ 218
23.1.1. Master Out, Slave In (MOSI)................................................................. 218
23.1.2. Master In, Slave Out (MISO)................................................................. 218
23.1.3. Serial Clock (SCK) ................................................................................ 218
23.1.4. Slave Select (NSS) ............................................................................... 218
23.2. SPI0 Master Mode Operation ........................................................................ 219
23.3. SPI0 Slave Mode Operation .......................................................................... 221
23.4. SPI0 Interrupt Sources .................................................................................. 221
23.5. Serial Clock Phase and Polarity .................................................................... 221
23.6. SPI Special Function Registers ..................................................................... 223
23.7. SPI Control Registers .................................................................................... 227
24. System Management Bus / I2C (SMBus0) ......................................................... 233
24.1. Supporting Documents .................................................................................. 234
Rev. 1.0
C8051F85x-86x
24.2. SMBus Configuration..................................................................................... 234
24.3. SMBus Operation .......................................................................................... 234
24.3.1. Transmitter vs. Receiver ....................................................................... 235
24.3.2. Arbitration.............................................................................................. 235
24.3.3. Clock Low Extension............................................................................. 235
24.3.4. SCL Low Timeout.................................................................................. 235
24.3.5. SCL High (SMBus Free) Timeout ......................................................... 236
24.4. Using the SMBus........................................................................................... 236
24.4.1. SMBus Configuration Register.............................................................. 236
24.4.2. SMBus Pin Swap .................................................................................. 238
24.4.3. SMBus Timing Control .......................................................................... 238
24.4.4. SMB0CN Control Register .................................................................... 238
24.4.5. Hardware Slave Address Recognition .................................................. 240
24.4.6. Data Register ........................................................................................ 241
24.5. SMBus Transfer Modes................................................................................. 242
24.5.1. Write Sequence (Master) ...................................................................... 242
24.5.2. Read Sequence (Master) ...................................................................... 243
24.5.3. Write Sequence (Slave) ........................................................................ 244
24.5.4. Read Sequence (Slave) ........................................................................ 245
24.6. SMBus Status Decoding................................................................................ 245
24.7. I2C / SMBus Control Registers...................................................................... 251
25. Timers (Timer0, Timer1, Timer2 and Timer3) .................................................... 259
25.1. Timer 0 and Timer 1 ...................................................................................... 261
25.1.1. Mode 0: 13-bit Counter/Timer ............................................................... 262
25.1.2. Mode 1: 16-bit Counter/Timer ............................................................... 263
25.1.3. Mode 2: 8-bit Counter/Timer with Auto-Reload..................................... 264
25.1.4. Mode 3: Two 8-bit Counter/Timers (Timer 0 Only)................................ 265
25.2. Timer 2 and Timer 3 ...................................................................................... 266
25.2.1. 16-bit Timer with Auto-Reload............................................................... 266
25.2.2. 8-bit Timers with Auto-Reload............................................................... 267
25.2.3. Capture Mode ....................................................................................... 268
25.3. Timer Control Registers................................................................................. 269
26. Universal Asynchronous Receiver/Transmitter (UART0) ................................ 289
26.1. Enhanced Baud Rate Generation.................................................................. 289
26.2. Operational Modes ........................................................................................ 291
26.2.1. 8-Bit UART ............................................................................................ 291
26.2.2. 9-Bit UART ............................................................................................ 292
26.3. Multiprocessor Communications ................................................................... 293
26.4. UART Control Registers ................................................................................ 295
27. Watchdog Timer (WDT0) ..................................................................................... 298
27.1. Enabling / Resetting the WDT ....................................................................... 299
27.2. Disabling the WDT......................................................................................... 299
27.3. Disabling the WDT Lockout ........................................................................... 299
27.4. Setting the WDT Interval ............................................................................... 299
27.5. Watchdog Timer Control Registers ............................................................... 300
Rev. 1.0
C8051F85x-86x
28. Revision-Specific Behavior................................................................................. 301
28.1. Revision Identification.................................................................................... 301
28.2. Temperature Sensor Offset and Slope.......................................................... 303
28.3. Flash Endurance ........................................................................................... 303
28.4. Latch-Up Performance .................................................................................. 303
28.5. Unique Identifier ............................................................................................ 303
29. C2 Interface .......................................................................................................... 304
29.1. C2 Pin Sharing .............................................................................................. 304
29.2. C2 Interface Registers................................................................................... 305
Document Change List.............................................................................................. 310
Contact Information................................................................................................... 311
Rev. 1.0
1. Electrical Specifications
1.1. Electrical Characteristics
All electrical parameters in all tables are specified under the conditions listed in Table 1.1, unless stated
otherwise.
Symbol
Min
Typ
Max
Unit
VDD
2.2
3.6
fSYSCLK
25
MHz
40
85
40
125
TA
Test Condition
Symbol
Test Condition
Min
Typ
Max
Unit
4.45
4.85
mA
915
1150
FSYSCLK = 80 kHz3, TA = 25 C
250
290
FSYSCLK = 80 kHz3
250
380
2.05
2.3
mA
550
700
FSYSCLK = 80 kHz3, TA = 25 C
125
130
FSYSCLK = 80 kHz3
125
200
105
120
Internal LDO ON
105
170
0.2
IDD
IDD
IDD
Notes:
1. Currents are additive. For example, where IDD is specified and the mode is not mutually exclusive, enabling the
functions increases supply current by the specified amount.
2. Includes supply current from internal regulator, supply monitor, and High Frequency Oscillator.
3. Includes supply current from internal regulator, supply monitor, and Low Frequency Oscillator.
4. ADC0 always-on power excludes internal reference supply current.
5. The internal reference is enabled as-needed when operating the ADC in burst mode to save power.
Rev. 1.0
Symbol
Test Condition
Min
Typ
Max
Unit
4.45
5.25
mA
915
1600
FSYSCLK = 80 kHz , TA = 25 C
250
290
FSYSCLK = 80 kHz3
250
725
2.05
2.6
mA
550
1000
FSYSCLK = 80 kHz , TA = 25 C
125
130
FSYSCLK = 80 kHz3
125
550
105
120
Internal LDO ON
105
270
0.2
IDD
IDD
IDD
IHFOSC
155
Low-Frequency Oscillator
ILFOSC
Operating at 80 kHz,
TA = 25 C
3.5
IADC
845
1200
425
580
370
185
19
ADC0 Always-on4
IADC
Notes:
1. Currents are additive. For example, where IDD is specified and the mode is not mutually exclusive, enabling the
functions increases supply current by the specified amount.
2. Includes supply current from internal regulator, supply monitor, and High Frequency Oscillator.
3. Includes supply current from internal regulator, supply monitor, and Low Frequency Oscillator.
4. ADC0 always-on power excludes internal reference supply current.
5. The internal reference is enabled as-needed when operating the ADC in burst mode to save power.
Rev. 1.0
Symbol
Test Condition
Min
Typ
Max
Unit
ADC0 Burst Mode, 10-bit single conversions, internal reference, Low power bias
settings
IADC
490
245
23
IADC
530
265
53
950
420
85
680
790
160
210
75
120
CPnMD = 11
0.5
CPnMD = 10
CPnMD = 01
10
CPnMD = 00
25
15
20
IADC
IIREF
ITSENSE
ICMP
IVMON
Notes:
1. Currents are additive. For example, where IDD is specified and the mode is not mutually exclusive, enabling the
functions increases supply current by the specified amount.
2. Includes supply current from internal regulator, supply monitor, and High Frequency Oscillator.
3. Includes supply current from internal regulator, supply monitor, and Low Frequency Oscillator.
4. ADC0 always-on power excludes internal reference supply current.
5. The internal reference is enabled as-needed when operating the ADC in burst mode to save power.
10
Rev. 1.0
Symbol
Test Condition
Min
Typ
Max
Unit
1.85
1.95
2.1
1.4
0.75
1.36
VVDDM
VPOR
tRMP
10
tPOR
10
31
ms
tRST
39
tRSTL
15
tMCD
0.625
1.2
ms
FMCD
7.5
13.5
kHz
tMON
Symbol
Test Condition
Min
Typ
Max
Units
tWRITE
One Byte,
FSYSCLK = 24.5 MHz
19
20
21
Erase Time1,2
tERASE
One Page,
FSYSCLK = 24.5 MHz
5.2
5.35
5.5
ms
VPROG
2.2
3.6
NWE
20k
100k
Cycles
Write Time
1,2
Notes:
1. Does not include sequencing time before and after the write/erase operation, which may be multiple SYSCLK cycles.
2. The internal High-Frequency Oscillator has a programmable output frequency using the OSCICL register, which is
factory programmed to 24.5 MHz. If user firmware adjusts the oscillator speed, it must be between 22 and 25 MHz
during any flash write or erase operation. It is recommended to write the OSCICL register back to its reset value when
writing or erasing flash.
3. Flash can be safely programmed at any voltage above the supply monitor threshold (VVDDM).
4. Data Retention Information is published in the Quarterly Quality and Reliability Report.
Rev. 1.0
11
Symbol
Test Condition
Min
Typ
Max
Unit
fHFOSC
24
24.5
25
MHz
PSSHFOSC
TA = 25 C
0.5
%/V
Temperature Sensitivity
TSHFOSC
VDD = 3.0 V
40
ppm/C
fLFOSC
75
80
85
kHz
PSSLFOSC
TA = 25 C
0.05
%/V
Temperature Sensitivity
TSLFOSC
VDD = 3.0 V
65
ppm/C
Test Condition
Min
Typ
Max
Unit
Symbol
fCMOS
25
MHz
tCMOSH
18
ns
tCMOSL
18
ns
12
Rev. 1.0
Symbol
Test Condition
Nbits
12 Bit Mode
12
Bits
10 Bit Mode
10
Bits
Throughput Rate
(High Speed Mode)
fS
Throughput Rate
(Low Power Mode)
fS
Tracking Time
tTRK
Power-On Time
tPWR
fSAR
Min
Typ
Max
Unit
12 Bit Mode
200
ksps
10 Bit Mode
800
ksps
12 Bit Mode
62.5
ksps
10 Bit Mode
250
ksps
230
ns
450
ns
1.2
6.25
MHz
12.5
MHz
MHz
Conversion Time
tCNV
10-Bit Conversion,
SAR Clock = 12.25 MHz,
System Clock = 24.5 MHz.
1.1
Sample/Hold Capacitor
CSAR
Gain = 1
pF
Gain = 0.5
2.5
pF
CIN
20
pF
RMUX
550
VREF
VDD
Gain = 1
VREF
Gain = 0.5
2xVREF
70
dB
12 Bit Mode
2.3
LSB
10 Bit Mode
0.2
0.6
LSB
12 Bit Mode
0.7
1.9
LSB
10 Bit Mode
0.2
0.6
LSB
VIN
PSRRADC
DC Performance
Integral Nonlinearity
Differential Nonlinearity
(Guaranteed Monotonic)
INL
DNL
Rev. 1.0
13
Symbol
Test Condition
Min
Typ
Max
Unit
EOFF
LSB
LSB
0.004
LSB/C
12 Bit Mode
0.02
0.1
10 Bit Mode
0.06
0.24
TCOFF
EM
Dynamic Performance 10 kHz Sine Wave Input 1dB below full scale, Max throughput, using AGND pin
Signal-to-Noise
SNR
SNDR
THD
SFDR
12 Bit Mode
61
66
dB
10 Bit Mode
53
60
dB
12 Bit Mode
61
66
dB
10 Bit Mode
53
60
dB
12 Bit Mode
71
dB
10 Bit Mode
70
dB
12 Bit Mode
79
dB
10 Bit Mode
74
dB
14
Rev. 1.0
Symbol
Test Condition
Min
Typ
Max
Unit
VREFFS
1.65 V Setting
1.62
1.65
1.68
2.35
2.4
2.45
TCREFFS
50
ppm/C
tREFFS
1.5
PSRRREFFS
400
ppm/V
IEXTREF
Symbol
Test Condition
Min
Typ
Max
Unit
Offset
VOFF
TA = 0 C
757
mV
Offset Error*
EOFF
TA = 0 C
17
mV
Slope
2.85
mV/C
Slope Error*
EM
70
V/C
Linearity
0.5
Turn-on Time
1.8
Rev. 1.0
15
Symbol
Test Condition
Min
Typ
Max
Unit
tRESP0
+100 mV Differential
100
ns
100 mV Differential
150
ns
tRESP3
+100 mV Differential
1.5
100 mV Differential
3.5
CPnHYP = 00
0.4
mV
CPnHYP = 01
mV
CPnHYP = 10
16
mV
CPnHYP = 11
32
mV
CPnHYN = 00
-0.4
mV
CPnHYN = 01
mV
CPnHYN = 10
16
mV
CPnHYN = 11
32
mV
CPnHYP = 00
0.5
mV
CPnHYP = 01
mV
CPnHYP = 10
12
mV
CPnHYP = 11
24
mV
CPnHYN = 00
-0.5
mV
CPnHYN = 01
mV
CPnHYN = 10
12
mV
CPnHYN = 11
24
mV
CPnHYP = 00
0.7
mV
CPnHYP = 01
4.5
mV
CPnHYP = 10
mV
CPnHYP = 11
18
mV
CPnHYN = 00
-0.6
mV
CPnHYN = 01
4.5
mV
CPnHYN = 10
mV
CPnHYN = 11
18
mV
Positive Hysterisis
Mode 0 (CPnMD = 00)
Negative Hysterisis
Mode 0 (CPnMD = 00)
Positive Hysterisis
Mode 1 (CPnMD = 01)
Negative Hysterisis
Mode 1 (CPnMD = 01)
Positive Hysterisis
Mode 2 (CPnMD = 10)
Negative Hysterisis
Mode 2 (CPnMD = 10)
16
HYSCP+
HYSCP-
HYSCP+
HYSCP-
HYSCP+
HYSCP-
Rev. 1.0
Negative Hysteresis
Mode 3 (CPnMD = 11)
Symbol
Test Condition
Min
Typ
Max
Unit
HYSCP+
CPnHYP = 00
1.5
mV
CPnHYP = 01
mV
CPnHYP = 10
mV
CPnHYP = 11
16
mV
CPnHYN = 00
-1.5
mV
CPnHYN = 01
mV
CPnHYN = 10
mV
CPnHYN = 11
16
mV
HYSCP-
VIN
-0.25
VDD+0.25
CCP
7.5
pF
CMRRCP
70
dB
PSRRCP
72
dB
-10
10
mV
3.5
V/C
VOFF
TCOFF
TA = 25 C
Rev. 1.0
17
Symbol
Test Condition
Min
Typ
Max
Unit
VOH
IOH = 3 mA
VDD 0.7
VOL
IOL = 8.5 mA
0.6
VOH
IOH = 1 mA
VDD 0.7
VOL
IOL = 1.4 mA
0.6
VIH
VDD 0.6
VIL
0.6
Pin Capacitance
CIO
pF
IPU
VDD = 3.6
30
20
10
Input Leakage
(Pullups off or Analog)
ILK
1.1
1.1
ILK
150
18
Rev. 1.0
4.5
IdleMode
SupplyCurrent(mA)
4
3.5
3
2.5
2
1.5
1
0.5
0
0
10
15
20
25
OperatingFrequency(MHz)
Figure 1.1. Typical Operating Current Running From 24.5 MHz Internal Oscillator
260
NormalMode
240
IdleMode
SupplyCurrent(A)
220
200
180
160
140
120
100
10
20
30
40
50
60
70
80
OperatingFrequency(kHz)
Figure 1.2. Typical Operating Current Running From 80 kHz Internal Oscillator
Rev. 1.0
19
12bitBurstMode,SingleConversions
1200
1200
InternalReference,NormalBias
1100
1000
InternalReference,LPBias
1000
OtherReference
900
OtherReference
900
SupplyCurrent(A)
SupplyCurrent(A)
InternalReference,NormalBias
1100
InternalReference,LPBias
800
700
600
500
400
800
700
600
500
400
300
300
200
200
100
100
0
0
50
100
150
200
250
300
20
SampleRate(ksps)
40
60
80
100
120
SampleRate(ksps)
Figure 1.3. Typical ADC and Internal Reference Power Consumption in Burst Mode
10bitConversions,NormalBias
10bitConversions,LowPowerBias
950
450
Vdd=3.6V
Vdd=3.0V
430
Vdd=2.2V
SupplyCurrent(A)
SupplyCurrent(A)
Vdd=3.6V
440
Vdd=3.0V
900
850
800
750
Vdd=2.2V
420
410
400
390
380
370
700
360
650
350
100
200
300
400
500
600
700
800
50
150
SampleRate(ksps)
12bitConversions,NormalBias
12bitConversions,LowPowerBias
950
450
Vdd=3.6V
Vdd=3.6V
440
Vdd=3.0V
900
Vdd=3.0V
430
Vdd=2.2V
SupplyCurrent(A)
SupplyCurrent(A)
250
SampleRate(ksps)
850
800
750
Vdd=2.2V
420
410
400
390
380
370
700
360
650
350
25
50
75
100
125
150
175
200
SampleRate(ksps)
10
20
30
40
SampleRate(ksps)
20
Rev. 1.0
50
60
TypicalVOH vs.SourceCurrentinHighDriveMode
TypicalVOH vs.SourceCurrentinLowDriveMode
4
VDD=3.6V
3.5
VDD=3.6V
3.5
VDD=3.3V
VDD=2.7V
VDD=2.7V
VDD=2.2V
2.5
VDD=2.2V
2.5
VOH (V)
VOH (V)
VDD=3.3V
1.5
1.5
0.5
0.5
0
0
10
15
20
25
SourceCurrent(mA)
10
12
14
16
18
SourceCurrent(mA)
TypicalVOL vs.SinkCurrentinLowDriveMode
TypicalVOL vs.SinkCurrentinHighDriveMode
4
VDD=3.6V
VDD=3.6V
3.5
3.5
VDD=3.3V
VDD=2.2V
VDD=2.2V
2.5
VOL (V)
2.5
VOL (V)
VDD=3.3V
VDD=2.7V
VDD=2.7V
1.5
1.5
0.5
0.5
0
0
0
10
15
20
25
30
35
40
45
10
15
20
25
SinkCurrent(mA)
SinkCurrent(mA)
Symbol
Test Condition
Min
Typ
Max
Unit
JA
SOIC-16 Packages
70
C/W
QFN-20 Packages
60
C/W
QSOP-24 Packages
65
C/W
*Note: Thermal resistance assumes a multi-layer PCB with any exposed pad soldered to a PCB pad.
Rev. 1.0
21
Symbol
Test Condition
Min
Max
Unit
TBIAS
55
125
Storage Temperature
TSTG
65
150
Voltage on VDD
VDD
GND0.3
4.2
VIN
GND0.3
5.8
GND0.3
VDD+2.5
IVDD
400
mA
IGND
400
mA
IPIO
-100
100
mA
TJ
40
105
40
125
Note: Exposure to maximum rating conditions for extended periods may affect device reliability.
22
Rev. 1.0
2. System Overview
The C8051F85x/86x device family are fully integrated, mixed-signal system-on-a-chip MCUs. Highlighted
features are listed below. Refer to Table 4.1 for specific product feature selection and part ordering
numbers.
Core:
Pipelined
CIP-51 Core
compatible with standard 8051 instruction set
70% of instructions execute in 1-2 clock cycles
25 MHz maximum operating frequency
Fully
Memory:
2-8
512
Power:
Internal
Power-on
I/O:
All
Clock
Sources:
Low-power
Timers/Counters
3-channel
and PWM:
Programmable Counter Array (PCA) supporting PWM, capture/compare and frequency output
modes
16-bit general-purpose timers
Independent watchdog timer, clocked from low frequency oscillator
4x
Communications
UART
SPI
I
C / SMBus
CRC Unit, supporting automatic CRC of flash at 256-byte boundaries
16-bit
Analog:
12-Bit
2
On-Chip Debugging
With on-chip power-on reset, voltage supply monitor, watchdog timer, and clock oscillator, the C8051F85x/
86x devices are truly standalone system-on-a-chip solutions. The flash memory is reprogrammable incircuit, providing non-volatile data storage and allowing field upgrades of the firmware.
The on-chip debugging interface (C2) allows non-intrusive (uses no on-chip resources), full speed, incircuit 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, and run and halt
commands. All analog and digital peripherals are fully functional while debugging.
Each device is specified for 2.2 to 3.6 V operation, and are available in 20-pin QFN, 16-pin SOIC or 24-pin
QSOP packages. All package options are lead-free and RoHS compliant. The device is available in two
temperature grades: -40 to +85 C or 40 to +125 C. See Table 4.1 for ordering information. A block
diagram is included in Figure 2.1.
Rev. 1.0
23
Power On
Reset
Reset
C2CK/RST
Debug /
Programming
Hardware
CIP-51 8051
Controller Core
Port 0
Drivers
P0.0/VREF
P0.1/AGND
P0.2
P0.3/EXTCLK
P0.4/TX
P0.5/RX
P0.6/CNVSTR
P0.7
Port 1
Drivers
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
Port 2
Driver
P2.0/C2D
P2.1
Digital Peripherals
UART
Timers 0,
1, 2, 3
Priority
Crossbar
Decoder
3-ch PCA
C2D
I2C /
SMBus
SPI
VDD
CRC
Power Net
Independent
Watchdog Timer
GND
SYSCLK
SFR
Bus
Analog Peripherals
Internal
Reference
24.5 MHz
2%
Oscillator
VDD
Low-Freq.
Oscillator
EXTCLK
Crossbar Control
12/10 bit
ADC
CMOS
Oscillator
Input
VREF
A
M
U
X
VDD
Temp
Sensor
+
-+
2 Comparators
System Clock
Configuration
24
Rev. 1.0
2.1. Power
2.1.1. LDO
The C8051F85x/86x devices include an internal regulator to regulate the supply voltage down the core
operating voltage of 1.8 V. This LDO consumes little power, but can be shut down in the power-saving Stop
mode.
2.1.2. Voltage Supply Monitor (VMON0)
The C8051F85x/86x devices include a voltage supply monitor which allows devices to function in known,
safe operating condition without the need for external hardware.
The supply monitor module includes the following features:
Holds
the device in reset if the main VDD supply drops below the VDD Reset threshold.
Description
Normal
Idle
Mode Entrance
Mode Exit
Device reset
Device reset
halted
Peripherals
operate at
full speed
All
Stop
clocks stopped
Core LDO and
(optionally)
comparators still
running
Pins retain state
All
Shutdown
clocks stopped
Core LDO and all
analog circuits shut
down
Pins retain state
In addition, the user may choose to lower the clock speed in Normal and Idle modes to save power when
the CPU requirements allow for lower speed.
Rev. 1.0
25
2.2. I/O
2.2.1. General Features
The C8051F85x/86x ports have the following features:
Push-pull
26
Rev. 1.0
2.3. Clocking
The C8051F85x/86x devices have two internal oscillators and the option to use an external CMOS input at
a pin as the system clock. A programmable divider allows the user to internally run the system clock at a
slower rate than the selected oscillator if desired.
time base.
clock divisor and clock source selection.
Three independently-configurable channels.
8, 9, 10, 11 and 16-bit PWM modes (center or edge-aligned operation).
Output polarity control.
Frequency output mode.
Capture on rising, falling or any edge.
Compare function for arbitrary waveform generation.
Software timer (internal compare) mode.
Can accept hardware kill signal from comparator 0.
Programmable
0 and Timer 1 are standard 8051 timers, supporting backwards-compatibility with firmware
and hardware.
Timer 2 and Timer 3 can each operate as 16-bit auto-reload or two independent 8-bit auto-reload
timers, and include pin or LFO clock capture capabilities.
2.4.3. Watchdog Timer (WDT0)
The watchdog timer includes a 16-bit timer with a programmable reset period. The registers are protected
from inadvertent access by an independent lock and key interface.
The Watchdog Timer has the following features:
Programmable
timeout interval.
from the low frequency oscillator.
Lock-out feature to prevent any modification until a system reset.
Runs
Rev. 1.0
27
mode.
Support for all clock phase and polarity modes.
8-bit programmable clock rate.
Support for multiple masters on the same data lines.
2.5.3. System Management Bus / I2C (SMBus0)
The SMBus interface is a two-wire, bi-directional serial bus compatible with both I2C and SMBus protocols.
The two clock and data signals operate in open-drain mode with external pull-ups to support automatic bus
arbitration.
Reads and writes to the interface are byte-oriented with the SMBus interface autonomously controlling the
serial transfer of the data. Data can be transferred at up to 1/8th of the system clock as a master or slave,
which can be faster than allowed by the SMBus / I2C specification, depending on the clock source used. A
method of extending the clock-low duration is available to accommodate devices with different speed
capabilities on the same bus.
The SMBus interface may operate as a master and/or slave, and may function on a bus with multiple
masters. The SMBus provides control of SDA (serial data), SCL (serial clock) generation and
synchronization, arbitration logic, and start/stop control and generation.
The SMBus module includes the following features:
Standard
28
Rev. 1.0
Byte-level
bit reversal.
CRC of flash contents on one or more 256-byte blocks.
Initial seed selection of 0x0000 or 0xFFFF.
Automatic
Rev. 1.0
29
sources for the positive and negative poles, including VDD, VREF, and I/O pins.
outputs are available: a digital synchronous latched output and a digital asynchronous raw
output.
Programmable hysteresis and response time.
Falling or rising edge interrupt options on the comparator output.
Provide kill signal to PCA module.
Comparator 0 can be used to reset the device.
Two
30
Rev. 1.0
The Port I/O latches are reset to 1 in open-drain mode. Weak pullups are enabled during and after the
reset. For VDD Supply Monitor and power-on resets, the RST pin is driven low until the device exits the
reset state.
On exit from the reset state, the program counter (PC) is reset, and the system clock defaults to the
internal low-power oscillator. The Watchdog Timer is enabled with the Low Frequency Oscillator (LFO0) as
its clock source. Program execution begins at location 0x0000.
Rev. 1.0
31
3. Pin Definitions
3.1. C8051F850/1/2/3/4/5 QSOP24 Pin Definitions
N/C
24
N/C
P0.2
23
P0.3
P0.1 / AGND
22
P0.4
P0.0 / VREF
21
P0.5
GND
20
P0.6
VDD
19
P0.7
24 pin QSOP
(Top View)
RST / C2CK
18
P1.0
C2D / P2.0
17
P1.1
P1.7
16
P1.2
P1.6
10
15
P1.3
P1.5
11
14
P1.4
P2.1
12
13
N/C
32
Type
GND
Ground
VDD
Power
RST /
C2CK
Active-low Reset /
C2 Debug Clock
Rev. 1.0
Analog Functions
Pin Name
Pin Numbers
Crossbar Capability
Analog Functions
Pin Numbers
Crossbar Capability
Pin Name
Type
P0.0
Standard I/O
Yes
P0MAT.0
INT0.0
INT1.0
ADC0.0
CP0P.0
CP0N.0
VREF
P0.1
Standard I/O
Yes
P0MAT.1
INT0.1
INT1.1
ADC0.1
CP0P.1
CP0N.1
AGND
P0.2
Standard I/O
Yes
P0MAT.2
INT0.2
INT1.2
ADC0.2
CP0P.2
CP0N.2
P0.3 /
EXTCLK
Standard I/O /
External CMOS Clock Input
23
Yes
P0MAT.3
EXTCLK
INT0.3
INT1.3
ADC0.3
CP0P.3
CP0N.3
P0.4
Standard I/O
22
Yes
P0MAT.4
INT0.4
INT1.4
ADC0.4
CP0P.4
CP0N.4
P0.5
Standard I/O
21
Yes
P0MAT.5
INT0.5
INT1.5
ADC0.5
CP0P.5
CP0N.5
P0.6
Standard I/O
20
Yes
P0MAT.6
CNVSTR
INT0.6
INT1.6
ADC0.6
CP0P.6
CP0N.6
P0.7
Standard I/O
19
Yes
P0MAT.7
INT0.7
INT1.7
ADC0.7
CP0P.7
CP0N.7
Rev. 1.0
33
34
Analog Functions
Pin Numbers
Crossbar Capability
Pin Name
Type
P1.0
Standard I/O
18
Yes
P1MAT.0
ADC0.8
CP1P.0
CP1N.0
P1.1
Standard I/O
17
Yes
P1MAT.1
ADC0.9
CP1P.1
CP1N.1
P1.2
Standard I/O
16
Yes
P1MAT.2
ADC0.10
CP1P.2
CP1N.2
P1.3
Standard I/O
15
Yes
P1MAT.3
ADC0.11
CP1P.3
CP1N.3
P1.4
Standard I/O
14
Yes
P1MAT.4
ADC0.12
CP1P.4
CP1N.4
P1.5
Standard I/O
11
Yes
P1MAT.5
ADC0.13
CP1P.5
CP1N.5
P1.6
Standard I/O
10
Yes
P1MAT.6
ADC0.14
CP1P.6
CP1N.6
P1.7
Standard I/O
Yes
P1MAT.7
ADC0.15
CP1P.7
CP1N.7
P2.0 /
C2D
Standard I/O /
C2 Debug Data
P2.1
Standard I/O
12
Rev. 1.0
No Connection
Analog Functions
N/C
Type
Pin Numbers
Pin Name
Crossbar Capability
1
13
24
Rev. 1.0
35
RST / C2CK
P0.3
P0.4
P0.5
19
18
17
GND
P1.6
C2D / P2.0
(Top View)
10
16
P0.6
15
P0.7
14
P1.0
13
P1.1
12
GND
11
P1.2
P1.3
VDD
20 pin QFN
P1.4
GND
P1.5
P0.0 / VREF
P0.2
P0.1 / AGND
20
36
Type
GND
Ground
Center
3
12
VDD
Power
RST /
C2CK
Active-low Reset /
C2 Debug Clock
Rev. 1.0
Analog Functions
Pin Name
Pin Numbers
Crossbar Capability
Analog Functions
Pin Numbers
Crossbar Capability
Pin Name
Type
P0.0
Standard I/O
Yes
P0MAT.0
INT0.0
INT1.0
ADC0.0
CP0P.0
CP0N.0
VREF
P0.1
Standard I/O
Yes
P0MAT.1
INT0.1
INT1.1
ADC0.1
CP0P.1
CP0N.1
AGND
P0.2
Standard I/O
20
Yes
P0MAT.2
INT0.2
INT1.2
ADC0.2
CP0P.2
CP0N.2
P0.3
Standard I/O
19
Yes
P0MAT.3
EXTCLK
INT0.3
INT1.3
ADC0.3
CP0P.3
CP0N.3
P0.4
Standard I/O
18
Yes
P0MAT.4
INT0.4
INT1.4
ADC0.4
CP0P.4
CP0N.4
P0.5
Standard I/O
17
Yes
P0MAT.5
INT0.5
INT1.5
ADC0.5
CP0P.5
CP0N.5
P0.6
Standard I/O
16
Yes
P0MAT.6
CNVSTR
INT0.6
INT1.6
ADC0.6
CP0P.6
CP0N.6
P0.7
Standard I/O
15
Yes
P0MAT.7
INT0.7
INT1.7
ADC0.7
CP0P.7
CP0N.7
Rev. 1.0
37
38
Analog Functions
Pin Numbers
Crossbar Capability
Pin Name
Type
P1.0
Standard I/O
14
Yes
P1MAT.0
ADC0.8
CP1P.0
CP1N.0
P1.1
Standard I/O
13
Yes
P1MAT.1
ADC0.9
CP1P.1
CP1N.1
P1.2
Standard I/O
11
Yes
P1MAT.2
ADC0.10
CP1P.2
CP1N.2
P1.3
Standard I/O
10
Yes
P1MAT.3
ADC0.11
CP1P.3
CP1N.3
P1.4
Standard I/O
Yes
P1MAT.4
ADC0.12
CP1P.4
CP1N.4
P1.5
Standard I/O
Yes
P1MAT.5
ADC0.13
CP1P.5
CP1N.5
P1.6
Standard I/O
Yes
P1MAT.6
ADC0.14
CP1P.6
CP1N.6
P2.0 /
C2D
Standard I/O /
C2 Debug Data
Rev. 1.0
16
P0.3
P0.1 / AGND
15
P0.4
P0.0 / VREF
14
P0.5
GND
13
P0.6
VDD
12
P0.7
RST / C2CK
11
P1.0
C2D / P2.0
10
P1.1
P1.3
P1.2
16 pin SOIC
(Top View)
Type
GND
Ground
VDD
Power
RST /
C2CK
Active-low Reset /
C2 Debug Clock
P0.0
Standard I/O
Rev. 1.0
Yes
P0MAT.0
INT0.0
INT1.0
Analog Functions
Pin Name
Pin Numbers
Crossbar Capability
ADC0.0
CP0P.0
CP0N.0
39
40
Analog Functions
Pin Numbers
Crossbar Capability
Pin Name
Type
P0.1
Standard I/O
Yes
P0MAT.1
INT0.1
INT1.1
ADC0.1
CP0P.1
CP0N.1
P0.2
Standard I/O
Yes
P0MAT.2
INT0.2
INT1.2
ADC0.2
CP0P.2
CP0N.2
P0.3 /
EXTCLK
Standard I/O /
External CMOS Clock Input
16
Yes
P0MAT.3
EXTCLK
INT0.3
INT1.3
ADC0.3
CP0P.3
CP0N.3
P0.4
Standard I/O
15
Yes
P0MAT.4
INT0.4
INT1.4
ADC0.4
CP0P.4
CP0N.4
P0.5
Standard I/O
14
Yes
P0MAT.5
INT0.5
INT1.5
ADC0.5
CP0P.5
CP0N.5
P0.6
Standard I/O
13
Yes
P0MAT.6
CNVSTR
INT0.6
INT1.6
ADC0.6
CP1P.0
CP1N.0
P0.7
Standard I/O
12
Yes
P0MAT.7
INT0.7
INT1.7
ADC0.7
CP1P.1
CP1N.1
P1.0
Standard I/O
11
Yes
P1MAT.0
ADC0.8
CP1P.2
CP1N.2
Rev. 1.0
Analog Functions
Pin Numbers
Crossbar Capability
Pin Name
Type
P1.1
Standard I/O
10
Yes
P1MAT.1
ADC0.9
CP1P.3
CP1N.3
P1.2
Standard I/O
Yes
P1MAT.2
ADC0.10
CP1P.4
CP1N.4
P1.3
Standard I/O
Yes
P1MAT.3
ADC0.11
CP1P.5
CP1N.5
P2.0 /
C2D
Standard I/O /
C2 Debug Data
Rev. 1.0
41
4. Ordering Information
C8051 F 850 C G M
Package Type M (QFN), U (QSOP), S (SSOP)
Temperature Grade G (-40 to +85), I (-40 to +125)
Revision
Family and Features 85x and 86x
Memory Type F (Flash)
Silicon Labs 8051 Family
42
Rev. 1.0
RAM (Bytes)
AEC-Q100 Qualified
Temperature Range
C8051F850-C-GM
512
16
15
15
-40 to 85 C
QFN-20
C8051F850-C-GU
512
18
16
16
-40 to 85 C
QSOP-24
C8051F851-C-GM
512
16
15
15
-40 to 85 C
QFN-20
C8051F851-C-GU
512
18
16
16
-40 to 85 C
QSOP-24
C8051F852-C-GM
256
16
15
15
-40 to 85 C
QFN-20
C8051F852-C-GU
256
18
16
16
-40 to 85 C
QSOP-24
C8051F853-C-GM
512
16
15
-40 to 85 C
QFN-20
C8051F853-C-GU
512
18
16
-40 to 85 C
QSOP-24
C8051F854-C-GM
512
16
15
-40 to 85 C
QFN-20
C8051F854-C-GU
512
18
16
-40 to 85 C
QSOP-24
C8051F855-C-GM
256
16
15
-40 to 85 C
QFN-20
C8051F855-C-GU
256
18
16
-40 to 85 C
QSOP-24
C8051F860-C-GS
512
13
12
12
-40 to 85 C
SOIC-16
C8051F861-C-GS
512
13
12
12
-40 to 85 C
SOIC-16
C8051F862-C-GS
256
13
12
12
-40 to 85 C
SOIC-16
C8051F863-C-GS
512
13
12
-40 to 85 C
SOIC-16
C8051F864-C-GS
512
13
12
-40 to 85 C
SOIC-16
C8051F865-C-GS
256
13
12
-40 to 85 C
SOIC-16
Rev. 1.0
Package
43
44
Rev. 1.0
Package
Temperature Range
AEC-Q100 Qualified
RAM (Bytes)
-IM, -IU and -IS extended temperature range devices (-40 to 125 C) are also available.
C8051F85x/86x
5. QSOP-24 Package Specifications
Min
Nom
Max
Dimension
Min
Nom
Max
1.75
A1
0.10
0.25
0.40
1.27
0.20
0.30
0.10
0.25
aaa
0.20
0.635 BSC
8.65 BSC
bbb
0.18
6.00 BSC
ccc
0.10
E1
3.90 BSC
ddd
0.10
Notes:
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-137, variation AE.
4. Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body
Components.
Rev. 1.0
45
C8051F85x/86x
Min
Max
C
E
X
Y
5.20
5.30
0.635 BSC
0.30
1.50
0.40
1.60
Notes:
General
1. All dimensions shown are in millimeters (mm) unless otherwise noted.
2. This land pattern design is based on the IPC-7351 guidelines.
Solder Mask Design
3. All metal pads are to be non-solder mask defined (NSMD). Clearance between the
solder mask and the metal pad is to be 60 m minimum, all the way around the pad.
Stencil Design
4. A stainless steel, laser-cut and electro-polished stencil with trapezoidal walls should
be used to assure good solder paste release.
5. The stencil thickness should be 0.125 mm (5 mils).
6. The ratio of stencil aperture to land pad size should be 1:1 for all perimeter pads.
Card Assembly
7. A No-Clean, Type-3 solder paste is recommended.
8. The recommended card reflow profile is per the JEDEC/IPC J-STD-020
specification for Small Body Components.
46
Rev. 1.0
C8051F85x/86x
6. QFN-20 Package Specifications
Millimeters
Symbol
Min
Nom
Max
Millimeters
Min
Nom
Max
0.70
0.75
0.80
A1
0.00
0.02
0.05
0.3
0.40
0.5
0.20
0.25
0.30
L1
0.00
0.10
0.25
0.30
0.35
aaa
0.05
bbb
0.05
ccc
0.08
D
D2
3.00 BSC
1.6
1.70
1.8
2.53 BSC
0.50 BSC
ddd
0.10
3.00 BSC
eee
0.10
E2
1.6
1.70
1.8
Notes:
1. All dimensions are shown in millimeters unless otherwise noted.
2. Dimensioning and tolerancing per ANSI Y14.5M-1994.
Rev. 1.0
47
C8051F85x/86x
48
Rev. 1.0
C8051F85x/86x
Table 6.2. QFN-20 Landing Diagram Dimensions
Symbol
Millimeters
Min
D
D2
Symbol
Max
Min
2.71 REF
1.60
1.80
2.10
0.34
0.28
0.50 BSC
2.71 REF
f
GD
1.60
1.80
2.53 BSC
2.10
Max
GE
e
E2
Millimeters
0.61 REF
ZE
3.31
ZD
3.31
Notes: General
1. All dimensions shown are in millimeters (mm) unless otherwise noted.
2. Dimensioning and Tolerancing is per the ANSI Y14.5M-1994 specification.
3. This Land Pattern Design is based on IPC-SM-782 guidelines.
4. All dimensions shown are at Maximum Material Condition (MMC). Least Material
Condition (LMC) is calculated based on a Fabrication Allowance of 0.05 mm.
Notes: Solder Mask Design
1. All metal pads are to be non-solder mask defined (NSMD). Clearance between the
solder mask and the metal pad is to be 60 m minimum, all the way around the pad.
Notes: Stencil Design
1. A stainless steel, laser-cut and electro-polished stencil with trapezoidal walls should
be used to assure good solder paste release.
2. The stencil thickness should be 0.125 mm (5 mils).
3. The ratio of stencil aperture to land pad size should be 1:1 for the perimeter pads.
4. A 1.45 x 1.45 mm square aperture should be used for the center pad. This provides
approximately 70% solder paste coverage on the pad, which is optimum to assure
correct component stand-off.
Notes: Card Assembly
1. A No-Clean, Type-3 solder paste is recommended.
2. The recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification
for Small Body Components.
Rev. 1.0
49
C8051F85x/86x
7. SOIC-16 Package Specifications
Min
Nom
Max
Dimension
Min
Nom
Max
1.75
0.40
A1
0.10
0.25
L2
A2
1.25
0.25
0.50
0.31
0.51
0.17
0.25
aaa
0.10
1.27
0.25 BSC
9.90 BSC
bbb
0.20
6.00 BSC
ccc
0.10
E1
3.90 BSC
ddd
0.25
1.27 BSC
Notes:
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 the JEDEC Solid State Outline MS-012, Variation AC.
4. Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body
Components.
50
Rev. 1.0
C8051F85x/86x
Feature
(mm)
C1
E
X1
Y1
5.40
1.27
0.60
1.55
Notes:
General
1. All dimensions shown are in millimeters (mm) unless otherwise noted.
2. This Land Pattern Design is based on IPC-7351 pattern SOIC127P600X165-16N for Density
Level B (Median Land Protrusion).
3. All feature sizes shown are at Maximum Material Condition (MMC) and a card fabrication
tolerance of 0.05 mm is assumed.
Rev. 1.0
51
8. Memory Organization
The memory organization of the CIP-51 System Controller is similar to that of a standard 8051. There are
two separate memory spaces: program memory and data memory. Program and data memory share the
same address space but are accessed via different instruction types. The memory organization of the
C8051F85x/86x device family is shown in Figure 8.1.
PROGRAM/DATA MEMORY
(FLASH)
0x1FFF
0x80
0x7F
Special Function
Registers
(Direct Addressing Only)
32 Bit-Addressable Bytes
32 General Purpose Registers
8 kB FLASH
(In-System
Programmable in 512
Byte Sectors)
0x0100
0x00FF
XRAM - 256 Bytes
0x0000
0x0000
52
Rev. 1.0
0x1FFF
0x1FFE
0x1E00
C8051F851/4
C8051F861/4
Lock Byte
Lock Byte Page
0x0FFF
0x0FFE
0x0E00
C8051F852/5
C8051F862/5
Lock Byte
0x07FF
0x07FE
0x0600
0x0000
0x0000
Rev. 1.0
53
The upper 128 bytes of data memory are accessible only by indirect addressing. This region occupies the
same address space as the Special Function Registers (SFR) but is physically separate from the SFR
space. The addressing mode used by an instruction when accessing locations above 0x7F determines
whether the CPU accesses the upper 128 bytes of data memory space or the SFRs. Instructions that use
direct addressing will access the SFR space. Instructions using indirect addressing above 0x7F access the
upper 128 bytes of data memory. Figure 8.1 illustrates the data memory organization of the C8051F85x/
86x.
Revision C C8051F852/5 and C8051F862/5 devices implement the upper four bytes of internal RAM as a
32-bit Unique Identifier. More information can be found in Device Identification and Unique Identifier on
page 68.
8.2.1.1. General Purpose Registers
The lower 32 bytes of data memory, locations 0x00 through 0x1F, may be addressed as four banks of
general-purpose registers. Each bank consists of eight byte-wide registers designated R0 through R7.
Only one of these banks may be enabled at a time. Two bits in the program status word (PSW) register,
RS0 and RS1, select the active register bank. This allows fast context switching when entering subroutines
and interrupt service routines. Indirect addressing modes use registers R0 and R1 as index registers.
8.2.1.2. 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 accessible as 128 individually addressable bits. Each bit has a bit address from
0x00 to 0x7F. Bit 0 of the byte at 0x20 has bit address 0x00 while bit7 of the byte at 0x20 has bit address
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 used (bit source or destination operands as opposed to a byte source or
destination).
The MCS-51 assembly language allows an alternate notation for bit addressing of the form XX.B where
XX is the byte address and B is the bit position within the byte. For example, the instruction:
MOV
C, 22.3h
moves the Boolean value at 0x13 (bit 3 of the byte at location 0x22) into the Carry flag.
8.2.1.3. Stack
A programmer's stack can be located anywhere in the 256-byte data memory. The stack area is
designated using the Stack Pointer (SP) SFR. The SP will point to the last location used. The next value
pushed on the stack is placed at SP+1 and then SP is incremented. A reset initializes the stack pointer to
location 0x07. Therefore, the first value pushed on the stack is placed at location 0x08, which is also the
first register (R0) of register bank 1. Thus, if more than one register bank 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.
8.2.2. External RAM
On devices with 512 bytes total RAM, there are 256 bytes of on-chip RAM mapped into the external data
memory space. All of these address locations may be accessed using the external move instruction
(MOVX) and the data pointer (DPTR), or using MOVX indirect addressing mode. Note: The 16-bit MOVX
instruction is also used for writes to the flash memory. See Section 10. Flash Memory on page 61 for
details. The MOVX instruction accesses XRAM by default.
For a 16-bit MOVX operation (@DPTR), the upper 8 bits of the 16-bit external data memory address word
are "don't cares". As a result, addresses 0x0000 through 0x00FF are mapped modulo style over the entire
64 k external data memory address range. For example, the XRAM byte at address 0x0000 is shadowed
at addresses 0x0100, 0x0200, 0x0300, 0x0400, etc.
Revision C C8051F850/1/3/4 and C8051F860/1/3/4 devices implement the upper four bytes of external
RAM as a 32-bit Unique Identifier. More information can be found in Device Identification and Unique
Identifier on page 68.
54
Rev. 1.0
Rev. 1.0
55
SPI0CN
PCA0L
PCA0H
F0
P0MDIN
P1MDIN
E8 ADC0CN0
PCA0CPL0 PCA0CPH0
EIP1
XBR2
IT01CF
P0MAT
P0MASK
VDM0CN
PRTDRV
PCA0PWM
P1MAT
P1MASK
RSTSRC
EIE1
E0
ACC
XBR0
D8
PCA0CN
PCA0MD
CRC0IN
CRC0DAT
ADC0PWR
D0
PSW
REF0CN
CRC0AUTO CRC0CNT
P0SKIP
P1SKIP
SMB0ADM
SMB0ADR
C8
TMR2CN
REG0CN
TMR2RLL
TMR2RLH
TMR2L
TMR2H
CRC0CN
CRC0FLIP
C0
SMB0CN
SMB0CF
SMB0DAT
ADC0GTL
ADC0GTH
ADC0LTL
ADC0LTH
OSCICL
B8
IP
ADC0TK
ADC0MX
ADC0CF
ADC0L
ADC0H
CPT1CN
B0
OSCLCN
ADC0CN1
ADC0AC
DEVICEID
REVID
FLKEY
A8
IE
CLKSEL
CPT1MX
CPT1MD
SMB0TC
DERIVID
A0
P2
SPI0CFG
SPI0CKR
SPI0DAT
P0MDOUT
P1MDOUT
P2MDOUT
98
SCON0
SBUF0
CPT0CN
PCA0CLR
CPT0MD
PCA0CENT
CPT0MX
90
P1
TMR3CN
TMR3RLL
TMR3RLH
TMR3L
TMR3H
PCA0POL
WDTCN
88
TCON
TMOD
TL0
TL1
TH0
TH1
CKCON
PSCTL
80
P0
SP
DPL
DPH
PCON
0(8)
1(9)
2(A)
3(B)
4(C)
5(D)
6(E)
7(F)
(bit addressable)
Address
Register Description
Page
ACC
0xE0
Accumulator
122
ADC0AC
0xB3
102
ADC0CF
0xBC
ADC0 Configuration
101
ADC0CN0
0xE8
ADC0 Control 0
99
ADC0CN1
0xB2
ADC0 Control 1
100
ADC0GTH
0xC4
107
ADC0GTL
0xC3
108
ADC0H
0xBE
105
56
Rev. 1.0
Address
Register Description
Page
ADC0L
0xBD
106
ADC0LTH
0xC6
109
ADC0LTL
0xC5
110
ADC0MX
0xBB
111
ADC0PWR
0xDF
103
ADC0TK
0xB9
104
0xF0
B Register
123
CKCON
0x8E
Clock Control
269
CLKSEL
0xA9
Clock Selection
129
CPT0CN
0x9B
Comparator 0 Control
134
CPT0MD
0x9D
Comparator 0 Mode
135
CPT0MX
0x9F
136
CPT1CN
0xBF
Comparator 1 Control
137
CPT1MD
0xAB
Comparator 1 Mode
138
CPT1MX
0xAA
139
CRC0AUTO
0xD2
146
CRC0CN
0xCE
CRC0 Control
143
CRC0CNT
0xD3
147
CRC0DAT
0xDE
145
CRC0FLIP
0xCF
148
CRC0IN
0xDD
144
DERIVID
0xAD
Derivative Identification
70
DEVICEID
0xB5
Device Identification
69
DPH
0x83
120
DPL
0x82
119
EIE1
0xE6
78
EIP1
0xF3
80
FLKEY
0xB7
67
Rev. 1.0
57
Address
Register Description
Page
IE
0xA8
Interrupt Enable
75
IP
0xB8
Interrupt Priority
77
IT01CF
0xE4
150
OSCICL
0xC7
127
OSCLCN
0xB1
128
P0
0x80
199
P0MASK
0xFE
Port 0 Mask
197
P0MAT
0xFD
Port 0 Match
198
P0MDIN
0xF1
200
P0MDOUT
0xA4
201
P0SKIP
0xD4
Port 0 Skip
202
P1
0x90
205
P1MASK
0xEE
Port 1 Mask
203
P1MAT
0xED
Port 1 Match
204
P1MDIN
0xF2
206
P1MDOUT
0xA5
207
P1SKIP
0xD5
Port 1 Skip
208
P2
0xA0
209
P2MDOUT
0xA6
210
PCA0CENT
0x9E
177
PCA0CLR
0x9C
170
PCA0CN
0xD8
PCA Control
167
PCA0CPH0
0xFC
175
PCA0CPH1
0xEA
181
PCA0CPH2
0xEC
183
PCA0CPL0
0xFB
174
PCA0CPL1
0xE9
180
PCA0CPL2
0xEB
182
58
Rev. 1.0
Address
Register Description
Page
PCA0CPM0
0xDA
171
PCA0CPM1
0xDB
178
PCA0CPM2
0xDC
179
PCA0H
0xFA
173
PCA0L
0xF9
172
PCA0MD
0xD9
PCA Mode
168
PCA0POL
0x96
176
PCA0PWM
0xF7
169
PCON
0x87
Power Control
83
PRTDRV
0xF6
196
PSCTL
0x8F
66
PSW
0xD0
124
REF0CN
0xD1
112
REG0CN
0xC9
84
REVID
0xB6
Revision Identification
71
RSTSRC
0xEF
Reset Source
215
SBUF0
0x99
297
SCON0
0x98
295
SMB0ADM
0xD6
257
SMB0ADR
0xD7
256
SMB0CF
0xC1
SMBus0 Configuration
251
SMB0CN
0xC0
SMBus0 Control
254
SMB0DAT
0xC2
SMBus0 Data
258
SMB0TC
0xAC
253
SP
0x81
Stack Pointer
121
SPI0CFG
0xA1
SPI0 Configuration
227
SPI0CKR
0xA2
231
SPI0CN
0xF8
SPI0 Control
229
Rev. 1.0
59
Address
SPI0DAT
0xA3
SPI0 Data
232
TCON
0x88
271
TH0
0x8C
275
TH1
0x8D
276
TL0
0x8A
273
TL1
0x8B
274
TMOD
0x89
272
TMR2CN
0xC8
Timer 2 Control
277
TMR2H
0xCD
282
TMR2L
0xCC
281
TMR2RLH
0xCB
280
TMR2RLL
0xCA
279
TMR3CN
0x91
Timer 3 Control
283
TMR3H
0x95
288
TMR3L
0x94
287
TMR3RLH
0x93
286
TMR3RLL
0x92
285
VDM0CN
0xFF
216
WDTCN
0x97
300
XBR0
0xE1
193
XBR1
0xE2
194
XBR2
0xE3
195
60
Register Description
Page
Rev. 1.0
11111101b
1s Complement:
00000010b
C2 Debug
Interface
a locked page
Permitted
Permitted
Permitted
Not Permitted
Permitted
Permitted
Permitted
N/A
Not Permitted
Permitted
Rev. 1.0
61
Permitted
Permitted
N/A
Not Permitted
Permitted
Permitted
Permitted
N/A
C2 Device Erase
Only
Not Permitted
Not Permitted
Not Permitted
C2 Device EraseErases all flash pages including the page containing the Lock Byte.
Flash Error Reset Not permitted; Causes Flash Error Device Reset (FERROR bit in RSTSRC is '1' after reset).
- All prohibited operations that are performed via the C2 interface are ignored (do not cause device reset).
- Locking any flash page also locks the page containing the Lock Byte.
- Once written to, the Lock Byte cannot be modified except by performing a C2 Device Erase.
- If user code writes to the Lock Byte, the Lock does not take effect until the next device reset.
62
Rev. 1.0
Rev. 1.0
63
page.
8. Clear the PSWE bit.
Steps 57 must be repeated for each byte to be written. After flash writes are complete, PSWE should be
cleared so that MOVX instructions do not target program memory.
64
Rev. 1.0
Detector or Comparator, for example, and instructions which force a Software Reset. A global
search on "RSTSRC" can quickly verify this.
10.4.2. PSWE Maintenance
7. Reduce the number of places in code where the PSWE bit (in register PSCTL) is set to a 1. There
should be exactly one routine in code that sets PSWE to a '1' to write flash bytes and one routine in
code that sets PSWE and PSEE both to a '1' to erase flash pages.
8. Minimize the number of variable accesses while PSWE is set to a 1. Handle pointer address
updates and loop variable maintenance outside the "PSWE = 1;... PSWE = 0;" area. Code
examples showing this can be found in AN201: Writing to Flash From Firmware", available from
the Silicon Laboratories web site.
9. Disable interrupts prior to setting PSWE to a '1' and leave them disabled until after PSWE has
been reset to 0. Any interrupts posted during the flash write or erase operation will be serviced in
priority order after the flash operation has been completed and interrupts have been re-enabled by
software.
10. Make certain that the flash write and erase pointer variables are not located in XRAM. See your
compiler documentation for instructions regarding how to explicitly locate variables in different
memory areas.
11. Add address bounds checking to the routines that write or erase flash memory to ensure that a
routine called with an illegal address does not result in modification of the flash.
10.4.3. System Clock
12. If operating from an external crystal-based source, be advised that crystal performance is
susceptible to electrical interference and is sensitive to layout and to changes in temperature. If the
system is operating in an electrically noisy environment, use the internal oscillator or use an
external CMOS clock.
13. If operating from the external oscillator, switch to the internal oscillator during flash write or erase
operations. The external oscillator can continue to run, and the CPU can switch back to the
external oscillator after the flash operation has completed.
Additional flash recommendations and example code can be found in AN201: Writing to Flash From
Firmware", available from the Silicon Laboratories website.
Rev. 1.0
65
Name
Reserved
PSEE
PSWE
Type
RW
RW
Reset
Name
7:2
Reserved
PSEE
Function
Must write reset value.
Program Store Erase Enable.
Setting this bit (in combination with PSWE) allows an entire page of flash program memory to be erased. If this bit is logic 1 and flash writes are enabled (PSWE is logic 1), a
write to flash memory using the MOVX instruction will erase the entire page that contains
the location addressed by the MOVX instruction. The value of the data byte written does
not matter.
0: Flash program memory erasure disabled.
1: Flash program memory erasure enabled.
PSWE
66
Rev. 1.0
Name
FLKEY
Type
RW
Reset
Name
7:0
FLKEY
Function
Flash Lock and Key Register.
Write:
This register provides a lock and key function for flash erasures and writes. Flash writes
and erases are enabled by writing 0xA5 followed by 0xF1 to the FLKEY register. Flash
writes and erases are automatically disabled after the next write or erase is complete. If
any writes to FLKEY are performed incorrectly, or if a flash write or erase operation is
attempted while these operations are disabled, the flash will be permanently locked from
writes or erasures until the next device reset. If an application never writes to flash, it can
intentionally lock the flash by writing a non-0xA5 value to FLKEY from software.
Read:
When read, bits 1-0 indicate the current flash lock state.
00: Flash is write/erase locked.
01: The first key code has been written (0xA5).
10: Flash is unlocked (writes/erases allowed).
11: Flash writes/erases are disabled until the next reset.
Rev. 1.0
67
68
Device
Memory Segment
Addresses
C8051F850
C8051F851
C8051F853
C8051F854
C8051F860
C8051F861
C8051F863
C8051F864
XRAM
C8051F852
C8051F855
C8051F862
C8051F865
RAM (indirect)
Rev. 1.0
Name
DEVICEID
Type
Reset
Name
7:0
DEVICEID
Function
Device ID.
This read-only register returns the 8-bit device ID: 0x30 (C8051F85x/86x).
Rev. 1.0
69
Name
DERIVID
Type
Reset
Name
7:0
DERIVID
Function
Derivative ID.
This read-only register returns the 8-bit derivative ID, which can be used by firmware to
identify which device in the product family the code is executing on. The {R} tag in the
part numbers below indicates the device revision letter in the ordering code.
0xD0: C8051F850-{R}-GU
0xD1: C8051F851-{R}-GU
0xD2: C8051F852-{R}-GU
0xD3: C8051F853-{R}-GU
0xD4: C8051F854-{R}-GU
0xD5: C8051F855-{R}-GU
0xE0: C8051F860-{R}-GS
0xE1: C8051F861-{R}-GS
0xE2: C8051F862-{R}-GS
0xE3: C8051F863-{R}-GS
0xE4: C8051F864-{R}-GS
0xE5: C8051F865-{R}-GS
0xF0: C8051F850-{R}-GM
0xF1: C8051F851-{R}-GM
0xF2: C8051F852-{R}-GM
0xF3: C8051F853-{R}-GM
0xF4: C8051F854-{R}-GM
0xF5: C8051F855-{R}-GM
70
Rev. 1.0
Name
REVID
Type
Reset
Name
7:0
REVID
Function
Revision ID.
This read-only register returns the 8-bit revision ID.
00000000: Revision A
00000001: Revision B
00000010: Revision C
00000011-11111111: Reserved.
Rev. 1.0
71
12. Interrupts
The C8051F85x/86x includes an extended interrupt system supporting multiple interrupt sources with two
priority levels. The allocation of interrupt sources between on-chip peripherals and external input pins
varies according to the specific version of the device. Each interrupt source has one or more associated
interrupt-pending flag(s) located in an SFR. When a peripheral or external source meets a valid interrupt
condition, the associated interrupt-pending flag is set to logic 1.
If interrupts are enabled for the source, an interrupt request is generated when the interrupt-pending flag is
set. As soon as execution of the current instruction is complete, the CPU generates an LCALL to a
predetermined address to begin execution of an interrupt service routine (ISR). Each ISR must end with an
RETI instruction, which returns program execution to the next instruction that would have been executed if
the interrupt request had not occurred. If interrupts are not enabled, the interrupt-pending flag is ignored by
the hardware and program execution continues as normal. The interrupt-pending flag is set to logic 1
regardless of the interrupt's enable/disable state.
Each interrupt source can be individually enabled or disabled through the use of an associated interrupt
enable bit in an SFR (IE and EIE1). However, interrupts must first be globally enabled by setting the EA bit
in the IE register to logic 1 before the individual interrupt enables are recognized. Setting the EA bit to logic
0 disables all interrupt sources regardless of the individual interrupt-enable settings.
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 interrupt request will be generated immediately and the CPU will re-enter the ISR after
the completion of the next instruction.
72
Rev. 1.0
cycles to complete the DIV instruction and 4 clock cycles to execute the LCALL to the ISR. If the CPU is
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. If more than one interrupt is pending
when the CPU exits an ISR, the CPU will service the next highest priority interrupt that is pending.
Rev. 1.0
73
Interrupt Source
Interrupt
Vector
Bit addressable?
Cleared by HW?
Reset
0x0000
Top
None
N/A
N/A
Always Enabled
0x0003
IE0 (TCON.1)
EX0 (IE.0)
Timer 0 Overflow
0x000B
TF0 (TCON.5)
ET0 (IE.1)
0x0013
IE1 (TCON.3)
EX1 (IE.2)
Timer 1 Overflow
0x001B
TF1 (TCON.7)
ET1 (IE.3)
UART0
0x0023
RI (SCON0.0)
TI (SCON0.1)
ES0 (IE.4)
Timer 2 Overflow
0x002B
TF2H (TMR2CN.7)
TF2L (TMR2CN.6)
ET2 (IE.5)
SPI0
0x0033
SPIF (SPI0CN.7)
WCOL (SPI0CN.6)
MODF (SPI0CN.5)
RXOVRN (SPI0CN.4)
ESPI0 (IE.6)
SMB0
0x003B
SI (SMB0CN.0)
ESMB0 (EIE1.0)
Port Match
0x0043
None
N/A
N/A
EMAT (EIE1.1)
0x004B
ADWINT (ADC0CN.3)
EWADC0 (EIE1.2)
0x0053
10
ADINT (ADC0CN.5)
EADC0 (EIE1.3)
Programmable Counter
Array
0x005B
11
CF (PCA0CN.7)
CCFn (PCA0CN.n)
COVF (PCA0PWM.6)
EPCA0 (EIE1.4)
Comparator0
0x0063
12
CPFIF (CPT0CN.4)
CPRIF (CPT0CN.5)
ECP0 (EIE1.5)
Comparator1
0x006B
13
CPFIF (CPT1CN.4)
CPRIF (CPT1CN.5)
ECP1 (EIE1.6)
Timer 3 Overflow
0x0073
14
TF3H (TMR3CN.7)
TF3L (TMR3CN.6)
ET3 (EIE1.7)
74
Rev. 1.0
Name
EA
ESPI0
ET2
ES0
ET1
EX1
ET0
EX0
Type
RW
RW
RW
RW
RW
RW
RW
RW
Reset
Name
EA
Function
Enable All Interrupts.
Globally enables/disables all interrupts and overrides individual interrupt mask settings.
0: Disable all interrupt sources.
1: Enable each interrupt according to its individual mask setting.
ESPI0
ET2
ES0
ET1
EX1
ET0
Rev. 1.0
75
Name
EX0
Function
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.
76
Rev. 1.0
Name
Reserved
PSPI0
PT2
PS0
PT1
PX1
PT0
PX0
Type
RW
RW
RW
RW
RW
RW
RW
Reset
Name
Reserved
PSPI0
Function
Must write reset value.
Serial Peripheral Interface (SPI0) Interrupt Priority Control.
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.
PT2
PS0
PT1
PX1
PT0
PX0
Rev. 1.0
77
Name
ET3
ECP1
ECP0
EPCA0
EADC0
EWADC0
EMAT
ESMB0
Type
RW
RW
RW
RW
RW
RW
RW
RW
Reset
Name
ET3
Function
Enable Timer 3 Interrupt.
This bit sets the masking of the Timer 3 interrupt.
0: Disable Timer 3 interrupts.
1: Enable interrupt requests generated by the TF3L or TF3H flags.
ECP1
ECP0
EPCA0
EADC0
EWADC0
EMAT
78
Rev. 1.0
Name
ESMB0
Function
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.
Rev. 1.0
79
Name
PT3
PCP1
PCP0
PPCA0
PADC0
PWADC0
PMAT
PSMB0
Type
RW
RW
RW
RW
RW
RW
RW
RW
Reset
Name
PT3
Function
Timer 3 Interrupt Priority Control.
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.
PCP1
PCP0
PPCA0
PADC0
PWADC0
PMAT
80
Rev. 1.0
Name
PSMB0
Function
SMBus (SMB0) Interrupt Priority Control.
This bit sets the priority of the SMB0 interrupt.
0: SMB0 interrupt set to low priority level.
1: SMB0 interrupt set to high priority level.
Rev. 1.0
81
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 PCON register. If this behavior is not desired, the WDT may be
disabled by software prior to entering the Idle mode if the WDT was initially configured to allow this
operation. This provides the opportunity for additional power savings, allowing the system to remain in the
Idle mode indefinitely, waiting for an external stimulus to wake up the system.
82
Rev. 1.0
Name
GF
STOP
IDLE
Type
RW
RW
RW
Reset
Name
7:2
GF
Function
General Purpose Flags 5-0.
These are general purpose flags for use under software control.
STOP
IDLE
Rev. 1.0
83
Name
Reserved
STOPCF
Reserved
Type
RW
Reset
Name
Function
7:4
Reserved
STOPCF
2:0
84
Reserved
Rev. 1.0
ADC0
Input
Selection
Control /
Configuration
P0 Pins (8)
Greater
Than
Less
Than
Window Compare
ADWINT
(Window Interrupt)
P1 Pins (8)
0.5x 1x
gain
VDD
SAR Analog to
Digital Converter
Accumulator
GND
ADC0
ADINT
(Interrupt Flag)
Internal LDO
Temp
Sensor
Internal LDO
VDD
VREF
Timer 2 Overflow
Timer 3 Overflow
CNVSTR (External Pin)
Trigger
Selection
Reference
Selection
Device Ground
AGND
SYSCLK
Clock
Divider
SAR clock
Rev. 1.0
85
Signal Name
00000
ADC0.0
P0.0
P0.0
P0.0
00001
ADC0.1
P0.1
P0.1
P0.1
00010
ADC0.2
P0.2
P0.2
P0.2
00011
ADC0.3
P0.3
P0.3
P0.3
00100
ADC0.4
P0.4
P0.4
P0.4
00101
ADC0.5
P0.5
P0.5
P0.5
00110
ADC0.6
P0.6
P0.6
P0.6
00111
ADC0.7
P0.7
P0.7
P0.7
01000
ADC0.8
P1.0
P1.0
P1.0
01001
ADC0.9
P1.1
P1.1
P1.1
01010
ADC0.10
P1.2
P1.2
P1.2
01011
ADC0.11
P1.3
P1.3
P1.3
01100
ADC0.12
P1.4
P1.4
Reserved
01101
ADC0.13
P1.5
P1.5
Reserved
01110
ADC0.14
P1.6
P1.6
Reserved
01111
ADC0.15
P1.7
Reserved
Reserved
10000
Temp Sensor
10001
LDO
10010
VDD
10011
GND
10100-11111
None
No connection
86
Rev. 1.0
Important note about ADC0 input configuration: Port pins selected as ADC0 inputs should be configured as
analog inputs, and should be skipped by the crossbar. To configure a Port pin for analog input, set to 0 the
corresponding bit in register PnMDIN and disable the digital driver (PnMDOUT = 0 and Port Latch = 1). To
force the crossbar to skip a Port pin, set to 1 the corresponding bit in register PnSKIP.
Rev. 1.0
87
88
Rev. 1.0
9 10 11 12 13 14
SAR Clocks
ADTM=1
ADTM=0
Low Power
or Convert
Track
Track or Convert
Convert
Low Power
Mode
Convert
Track
9 10 11 12 13 14 15 16 17 18
SAR
Clocks
ADTM=1
Low Power
or Convert
Track
1
Convert
5
9 10 11 12 13 14
SAR
Clocks
ADTM=0
Track or
Convert
Convert
Track
Figure 14.2. 10-Bit ADC Track and Conversion Example Timing (ADBMEN = 0)
14.2.3. Burst Mode
Burst Mode is a power saving feature that allows ADC0 to remain in a low power state between
conversions. When Burst Mode is enabled, ADC0 wakes from a low power state, accumulates 1, 4, 8, 16,
32, or 64 samples using the internal low-power high-frequency oscillator, then re-enters a low power state.
Since the Burst Mode clock is independent of the system clock, ADC0 can perform multiple conversions
then enter a low power state within a single system clock cycle, even if the system clock is slow (e.g.
80 kHz).
Burst Mode is enabled by setting ADBMEN to logic 1. When in Burst Mode, ADEN controls the ADC0 idle
power state (i.e. the state ADC0 enters when not tracking or performing conversions). If ADEN is set to
logic 0, ADC0 is powered down after each burst. If ADEN is set to logic 1, ADC0 remains enabled after
each burst. On each convert start signal, ADC0 is awakened from its Idle Power State. If ADC0 is powered
down, it will automatically power up and wait the programmable Power-Up Time controlled by the ADPWR
bits. Otherwise, ADC0 will start tracking and converting immediately. Figure 14.3 shows an example of
Burst Mode Operation with a slow system clock and a repeat count of 4.
When Burst Mode is enabled, a single convert start will initiate a number of conversions equal to the repeat
count. When Burst Mode is disabled, a convert start is required to initiate each conversion. In both modes,
the ADC0 End of Conversion Interrupt Flag (ADINT) will be set after repeat count conversions have been
accumulated. Similarly, the Window Comparator will not compare the result to the greater-than and lessthan registers until repeat count conversions have been accumulated.
Rev. 1.0
89
In Burst Mode, tracking is determined by the settings in ADPWR and ADTK. Settling time requirements
may need adjustment in some applications. Refer to 14.2.4. Settling Time Requirements on page 90 for
more details.
Notes:
Setting
ADTM to 1 will insert an additional 4 SAR clocks of tracking before each conversion,
regardless of the settings of ADPWR and ADTK.
When using Burst Mode, care must be taken to issue a convert start signal no faster than once
every four SYSCLK periods. This includes external convert start signals. The ADC will ignore
convert start signals which arrive before a burst is finished.
S yste m C lo ck
C o n ve rt S ta rt
ADTM = 1
ADEN = 0
P o w e re d
Down
P o w e r-U p
a n d T ra ck
T
4
ADTM = 0
ADEN = 0
P o w e re d
Down
P o w e r-U p
a n d T ra ck
T
4
ADPW R
T
4
T
4
P o w e re d
Down
P o w e re d
Down
P o w e r-U p
a n d T ra ck
T C ..
P o w e r-U p
a n d T ra ck
T C ..
ADTK
T = T ra ckin g se t b y A D T K
T 4 = T ra ckin g se t b y A D T M (4 S A R clo cks )
C = C o n ve rtin g
Figure 14.3. Burst Mode Tracking Example with Repeat Count Set to 4
14.2.4. Settling Time Requirements
A minimum amount of tracking time is required before each conversion can be performed, to allow the
sampling capacitor voltage to settle. This tracking time is determined by the AMUX0 resistance, the ADC0
sampling capacitance, any external source resistance, and the accuracy required for the conversion. Note
that when ADTM is set to 1, four SAR clocks are used for tracking at the start of every conversion. Large
external source impedance will increase the required tracking time.
Figure 14.4 shows the equivalent ADC0 input circuit. The required ADC0 settling time for a given settling
accuracy (SA) may be approximated by Equation 14.1. When measuring any internal source, RTOTAL
reduces to RMUX. See the electrical specification tables for ADC0 minimum settling time requirements as
well as the mux impedance and sampling capacitor values.
2
t = ln ------- R TOTAL C SAMPLE
SA
Equation 14.1. ADC0 Settling Time Requirements
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
RTOTAL is the sum of the AMUX0 resistance and any external source resistance.
90
Rev. 1.0
P0.x
R MUX
C SAMPLE
RCInput= R MUX * C SAMPLE
Note: The value of CSAMPLE depends on the PGA Gain. See electrical specifications for details.
Rev. 1.0
91
needed, it is recommended that AD12SM be set to 1 and ADTK to 0x3F, and that the ADC be placed in
always-on mode (ADEN = 1). For sample rates under 180 ksps, or when accumulating multiple samples,
AD12SM should normally be cleared to 0, and ADTK should be configured to provide the appropriate
settling time for the subsequent conversions.
Table 14.2. ADC0 Optimal Power Configuration (8- and 10-bit Mode)
Required
Throughput
325-800 ksps
Any
Always-On
(ADEN = 1
ADBMEN = 0)
12.25 MHz
(ADSC = 1)
ADC0PWR = 0x40
ADC0TK = N/A
ADRPT = 0
0-325 ksps
External
Burst Mode
(ADEN = 0
ADBMEN = 1)
12.25 MHz
(ADSC = 1)
ADC0PWR = 0x44
ADC0TK = 0x3A
ADRPT = 0
250-325 ksps
Internal
Burst Mode
(ADEN = 0
ADBMEN = 1)
12.25 MHz
(ADSC = 1)
ADC0PWR = 0x44
ADC0TK = 0x3A
ADRPT = 0
200-250 ksps
Internal
Always-On
(ADEN = 1
ADBMEN = 0)
4.08 MHz
(ADSC = 5)
ADC0PWR = 0xF0
ADC0TK = N/A
ADRPT = 0
0-200 ksps
Internal
Burst Mode
(ADEN = 0
ADBMEN = 1)
4.08 MHz
(ADSC = 5)
ADC0PWR = 0xF4
ADC0TK = 0x34
ADRPT = 0
Notes:
1. For always-on configuration, ADSC settings assume SYSCLK is the internal 24.5 MHz high-frequency oscillator.
Adjust ADSC as needed if using a different source for SYSCLK.
2. ADRPT reflects the minimum setting for this bit field. When using the ADC in Burst Mode, up to 64 samples may be
auto-accumulated per conversion start by adjusting ADRPT.
92
Rev. 1.0
Any
Always-On +
Burst Mode
(ADEN = 1
ADBMEN = 1)
12.25 MHz
(ADSC = 1)
ADC0PWR = 0x40
ADC0TK = 0xBF
ADRPT = 1
125-180 ksps
Any
Always-On +
Burst Mode
(ADEN = 1
ADBMEN = 1)
12.25 MHz
(ADSC = 1)
ADC0PWR = 0x40
ADC0TK = 0x3A
ADRPT = 1
0-125 ksps
External
Burst Mode
(ADEN = 0
ADBMEN = 1)
12.25 MHz
(ADSC = 1)
ADC0PWR = 0x44
ADC0TK = 0x3A
ADRPT = 1
50-125 ksps
Internal
Burst Mode
(ADEN = 0
ADBMEN = 1)
12.25 MHz
(ADSC = 1)
ADC0PWR = 0x44
ADC0TK = 0x3A
ADRPT = 1
0-50 ksps
Internal
Burst Mode
(ADEN = 0
ADBMEN = 1)
4.08 MHz
(ADSC = 5)
ADC0PWR = 0xF4
ADC0TK = 0x34
ADRPT = 1
180-200 ksps
Note: ADRPT reflects the minimum setting for this bit field. When using the ADC in Burst Mode, up to 64 samples may be
auto-accumulated per conversion trigger by adjusting ADRPT.
For applications where burst mode is used to automatically accumulate multiple results, additional supply
current savings can be realized. The length of time the ADC is active during each burst contains power-up
time at the beginning of the burst as well as the conversion time required for each conversion in the burst.
The power-on time is only required at the beginning of each burst. When compared with single-sample
bursts to collect the same number of conversions, multi-sample bursts will consume significantly less
power. For example, performing an eight-cycle burst of 10-bt conversions consumes about 61% of the
power required to perform those same eight samples in single-cycle bursts. For 12-bit conversions, an
eight-cycle burst results in about 85% of the equivalent single-cycle bursts. Figure 14.5 shows this
relationship for the different burst cycle lengths.
See the Electrical Characteristics chapter for details on power consumption and the maximum clock
frequencies allowed in each mode.
Rev. 1.0
93
10BitBurstModePower
12BitBurstModePower
100%
AverageCurrentComparedtoSingleCycle
AverageCurrentComparedtoSingleCycle
100%
95%
90%
85%
80%
75%
70%
65%
60%
55%
50%
98%
96%
94%
92%
90%
88%
86%
84%
82%
80%
16
32
64
NumberofCyclesAccumulatedinBurst
NumberofCyclesAccumulatedinBurst
Right-Justified
Left-Justified
VREF x 1023/1024
0x03FF
0xFFC0
VREF x 512/1024
0x0200
0x8000
VREF x 256/1024
0x0100
0x4000
0x0000
0x0000
When the repeat count is greater than 1, the output conversion code represents the accumulated result of
the conversions performed and is updated after the last conversion in the series is finished. Sets of 4, 8,
16, 32, or 64 consecutive samples can be accumulated and represented in unsigned integer format. The
repeat count can be selected using the ADRPT bits in the ADC0AC register. When a repeat count is higher
than 1, the ADC output must be right-justified (ADSJST = 0xx); unused bits in the ADC0H and ADC0L
registers are set to 0. The example below shows the right-justified result for various input voltages and
repeat counts. Notice that accumulating 2n samples is equivalent to left-shifting by n bit positions when all
samples returned from the ADC have the same value.
Input Voltage
Repeat Count = 4
Repeat Count = 16
Repeat Count = 64
VREF x 1023/1024
0x0FFC
0x3FF0
0xFFC0
VREF x 512/1024
0x0800
0x2000
0x8000
VREF x 511/1024
0x07FC
0x1FF0
0x7FC0
0x0000
0x0000
0x0000
94
Rev. 1.0
16
The ADSJST bits can be used to format the contents of the 16-bit accumulator. The accumulated result
can be shifted right by 1, 2, or 3 bit positions. Based on the principles of oversampling and averaging, the
effective ADC resolution increases by 1 bit each time the oversampling rate is increased by a factor of 4.
The example below shows how to increase the effective ADC resolution by 1, 2, and 3 bits to obtain an
effective ADC resolution of 11-bit, 12-bit, or 13-bit respectively without CPU intervention.
Input Voltage
Repeat Count = 4
Repeat Count = 16
Repeat Count = 64
Shift Right = 1
Shift Right = 2
Shift Right = 3
11-Bit Result
12-Bit Result
13-Bit Result
VREF x 1023/1024
0x07F7
0x0FFC
0x1FF8
VREF x 512/1024
0x0400
0x0800
0x1000
VREF x 511/1024
0x03FE
0x04FC
0x0FF8
0x0000
0x0000
0x0000
Rev. 1.0
95
ADC0H:ADC0L
ADC0H:ADC0L
Input Voltage
(Px.x - GND)
VREF x (1023/
1024)
Input Voltage
(Px.x - GND)
VREF x (1023/
1024)
0x03FF
0x03FF
ADWINT
not affected
ADWINT=1
0x0081
VREF x (128/1024)
0x0080
0x007F
0x0081
ADC0LTH:ADC0LTL
VREF x (128/1024)
0x0080
0x007F
ADWINT=1
VREF x (64/1024)
0x0041
0x0040
ADC0GTH:ADC0GTL
VREF x (64/1024)
0x003F
0x0041
0x0040
ADC0GTH:ADC0GTL
ADWINT
not affected
ADC0LTH:ADC0LTL
0x003F
ADWINT=1
ADWINT
not affected
0x0000
0x0000
ADC0H:ADC0L
Input Voltage
(Px.x - GND)
VREF x (1023/
1024)
Input Voltage
(Px.x - GND)
VREF x (1023/
1024)
0xFFC0
0xFFC0
ADWINT
not affected
ADWINT=1
0x2040
VREF x (128/1024)
0x2000
0x1FC0
0x2040
ADC0LTH:ADC0LTL
VREF x (128/1024)
0x2000
0x1FC0
ADWINT=1
0x1040
VREF x (64/1024)
0x1000
0x1040
ADC0GTH:ADC0GTL
VREF x (64/1024)
0x0FC0
0x1000
ADC0GTH:ADC0GTL
ADWINT
not affected
ADC0LTH:ADC0LTL
0x0FC0
ADWINT=1
ADWINT
not affected
0
0x0000
0x0000
96
Rev. 1.0
Rev. 1.0
97
Voltage
Slope (V / deg C)
Offset (V at 0 Celsius)
Temperature
Figure 14.8. Temperature Sensor Transfer Function
14.9.1. Calibration
The uncalibrated temperature sensor output is extremely linear and suitable for relative temperature
measurements. For absolute temperature measurements, offset and/or gain calibration is recommended.
Typically a 1-point (offset) calibration includes the following steps:
1. Control/measure the ambient temperature (this temperature must be known).
2. Power the device, and delay for a few seconds to allow for self-heating.
3. Perform an ADC conversion with the temperature sensor selected as the ADC input.
4. Calculate the offset characteristics, and store this value in non-volatile memory for use with
subsequent temperature sensor measurements.
98
Rev. 1.0
Name
ADEN
ADBMEN
ADINT
ADBUSY
ADWINT
ADCM
Type
RW
RW
RW
RW
RW
RW
Reset
Name
ADEN
Function
Enable.
0: ADC0 Disabled (low-power shutdown).
1: ADC0 Enabled (active and ready for data conversions).
ADBMEN
ADINT
ADBUSY
ADC Busy.
Writing 1 to this bit initiates an ADC conversion when ADC0CM = 000. This bit should not
be polled to indicate when a conversion is complete. Instead, the ADINT bit should be
used when polling for conversion completion.
ADWINT
2:0
ADCM
Rev. 1.0
99
Name
Reserved
ADCMBE
Type
RW
Reset
Name
Function
7:1
Reserved
ADCMBE
100
Rev. 1.0
Name
ADSC
AD8BE
ADTM
ADGN
Type
RW
RW
RW
RW
Reset
Name
7:3
ADSC
Function
SAR Clock Divider.
This field sets the ADC clock divider value. It should be configured to be as close to the
maximum SAR clock speed as the datasheet will allow. The SAR clock frequency is
given by the following equation:
F ADCCLK
F CLKSAR = -----------------------ADSC + 1
FADCCLK is equal to the selected SYSCLK when ADBMEN is 0 and the high-frequency
oscillator when ADBMEN is 1.
2
AD8BE
ADTM
Track Mode.
Selects between Normal or Delayed Tracking Modes.
0: Normal Track Mode. When ADC0 is enabled, conversion begins immediately following
the start-of-conversion signal.
1: Delayed Track Mode. When ADC0 is enabled, conversion begins 4 SAR clock cycles
following the start-of-conversion signal. The ADC is allowed to track during this time.
ADGN
Gain Control.
0: The on-chip PGA gain is 0.5.
1: The on-chip PGA gain is 1.
Rev. 1.0
101
Name
AD12BE
ADAE
ADSJST
ADRPT
Type
RW
RW
RW
RW
Reset
Name
AD12BE
Function
12-Bit Mode Enable.
Enables 12-bit Mode. In 12-bit mode, the ADC throughput is reduced by a factor of 4.
0: 12-bit Mode Disabled.
1: 12-bit Mode Enabled.
ADAE
Accumulate Enable.
Enables multiple conversions to be accumulated when burst mode is disabled.
0: ADC0H:ADC0L contain the result of the latest conversion when Burst Mode is disabled.
1: ADC0H:ADC0L contain the accumulated conversion results when Burst Mode is disabled. Software must write 0x0000 to ADC0H:ADC0L to clear the accumulated result.
5:3
ADSJST
2:0
ADRPT
Repeat Count.
Selects the number of conversions to perform and accumulate in Burst Mode. This bit
field must be set to 000 if Burst Mode is disabled.
000: Perform and Accumulate 1 conversion (not used in 12-bit mode).
001: Perform and Accumulate 4 conversions (1 conversion in 12-bit mode).
010: Perform and Accumulate 8 conversions (2 conversions in 12-bit mode).
011: Perform and Accumulate 16 conversions (4 conversions in 12-bit mode).
100: Perform and Accumulate 32 conversions (8 conversions in 12-bit mode).
101: Perform and Accumulate 64 conversions (16 conversions in 12-bit mode).
110-111: Reserved.
102
Rev. 1.0
Name
ADBIAS
ADMXLP
ADLPM
ADPWR
Type
RW
RW
RW
RW
Reset
Name
7:6
ADBIAS
Function
Bias Power Select.
This field can be used to adjust the ADC's power consumption based on the conversion
speed. Higher bias currents allow for faster conversion times.
00: Select bias current mode 0. Recommended to use modes 1, 2, or 3.
01: Select bias current mode 1 (SARCLK <= 16 MHz).
10: Select bias current mode 2.
11: Select bias current mode 3 (SARCLK <= 4 MHz).
ADMXLP
ADLPM
3:0
ADPWR
ADPWR
T PWRTIME = 8-----------------------------F HFOSC
Rev. 1.0
103
Name
AD12SM
Reserved
ADTK
Type
RW
RW
RW
Reset
Name
AD12SM
Function
12-Bit Sampling Mode.
This bit controls the way that the ADC samples the input when in 12-bit mode. When the
ADC is configured for multiple 12-bit conversions in burst mode, the AD12SM bit should
be cleared to 0.
0: The ADC will re-track and sample the input four times during a 12-bit conversion.
1: The ADC will sample the input once at the beginning of each 12-bit conversion. The
ADTK field can be set to 63 to maximize throughput.
Reserved
5:0
ADTK
ADTKT BMTK = 64
--------------------------F HFOSC
The Burst Mode track delay is not inserted prior to the first conversion. The required
tracking time for the first conversion should be defined with the ADPWR field.
104
Rev. 1.0
Name
ADC0H
Type
RW
Reset
Name
7:0
ADC0H
Function
Data Word High Byte.
When read, this register returns the most significant byte of the 16-bit ADC0 accumulator
formatted according to the settings in ADSJST. The register may also be written to set
the upper byte of the 16-bit ADC0 accumulator.
Note: If accumulator shifting is enabled, the most significant bits of the value read will be zeros. This register should not be
written when the SYNC bit is set to 1.
Rev. 1.0
105
Name
ADC0L
Type
RW
Reset
Name
7:0
ADC0L
Function
Data Word Low Byte.
When read, this register returns the least significant byte of the 16-bit ADC0 accumulator, formatted according to the settings in ADSJST. The register may also be written, to
set the lower byte of the 16-bit ADC0 accumulator.
Note: If Accumulator shifting is enabled, the most significant bits of the value read will be zeros. This register should not be
written when the SYNC bit is set to 1.
106
Rev. 1.0
Name
ADC0GTH
Type
RW
Reset
Name
7:0
ADC0GTH
Function
Greater-Than High Byte.
Most Significant Byte of the 16-bit Greater-Than window compare register.
Rev. 1.0
107
Name
ADC0GTL
Type
RW
Reset
Name
7:0
ADC0GTL
Function
Greater-Than Low Byte.
Least Significant Byte of the 16-bit Greater-Than window compare register.
108
Rev. 1.0
Name
ADC0LTH
Type
RW
Reset
Name
7:0
ADC0LTH
Function
Less-Than High Byte.
Most Significant Byte of the 16-bit Less-Than window compare register.
Rev. 1.0
109
Name
ADC0LTL
Type
RW
Reset
Name
7:0
ADC0LTL
Function
Less-Than Low Byte.
Least Significant Byte of the 16-bit Less-Than window compare register.
110
Rev. 1.0
Name
Reserved
ADC0MX
Type
RW
Reset
Name
Function
7:5
Reserved
4:0
ADC0MX
Rev. 1.0
111
Name
IREFLVL
Reserved
GNDSL
REFSL
TEMPE
Reserved
Type
RW
RW
RW
RW
Reset
Name
IREFLVL
Function
Internal Voltage Reference Level.
Sets the voltage level for the internal reference source.
0: The internal reference operates at 1.65 V nominal.
1: The internal reference operates at 2.4 V nominal.
Reserved
GNDSL
4:3
REFSL
TEMPE
1:0
112
Reserved
Rev. 1.0
Reset
Input
Power Management Modes
On-chip Debug Logic
Program and Data Memory Security
15.1. Performance
The CIP-51 employs a pipelined architecture that greatly increases its instruction throughput over the
standard 8051 architecture. The CIP-51 core executes 70% of its instructions in one or two system clock
cycles, with no instructions taking more than eight system clock cycles.
D8
D8
ACCUMULATOR
STACK POINTER
TMP1
TMP2
SRAM
ADDRESS
REGISTER
PSW
D8
D8
D8
ALU
SRAM
D8
DATA BUS
B REGISTER
D8
D8
D8
DATA BUS
DATA BUS
SFR_ADDRESS
BUFFER
D8
D8
DATA POINTER
D8
SFR
BUS
INTERFACE
SFR_CONTROL
SFR_WRITE_DATA
SFR_READ_DATA
DATA BUS
PC INCREMENTER
MEM_ADDRESS
D8
MEM_CONTROL
A16
MEMORY
INTERFACE
MEM_WRITE_DATA
MEM_READ_DATA
PIPELINE
RESET
D8
CONTROL
LOGIC
SYSTEM_IRQs
CLOCK
D8
STOP
IDLE
POWER CONTROL
REGISTER
INTERRUPT
INTERFACE
EMULATION_IRQ
D8
2/3
Rev. 1.0
3/4
4/5
113
Number of Instructions
26
50
14
114
Rev. 1.0
Description
Bytes
Clock
Cycles
Arithmetic Operations
ADD A, Rn
Add register to A
ADD A, direct
ADD A, @Ri
ADD A, #data
Add immediate to A
ADDC A, Rn
ADDC A, direct
ADDC A, @Ri
ADDC A, #data
SUBB A, Rn
SUBB A, direct
SUBB A, @Ri
SUBB A, #data
INC A
Increment A
INC Rn
Increment register
INC direct
INC @Ri
DEC A
Decrement A
DEC Rn
Decrement register
DEC direct
DEC @Ri
INC DPTR
MUL AB
Multiply A and B
DIV AB
Divide A by B
DA A
Decimal adjust A
Logical Operations
ANL A, Rn
AND Register to A
ANL A, direct
ANL A, @Ri
ANL A, #data
AND immediate to A
ANL direct, A
ORL A, Rn
OR Register to A
ORL A, direct
OR direct byte to A
ORL A, @Ri
OR indirect RAM to A
ORL A, #data
OR immediate to A
ORL direct, A
OR A to direct byte
Rev. 1.0
115
Description
Bytes
Clock
Cycles
XRL A, Rn
Exclusive-OR Register to A
XRL A, direct
XRL A, @Ri
XRL A, #data
Exclusive-OR immediate to A
XRL direct, A
CLR A
Clear A
CPL A
Complement A
RL A
Rotate A left
RLC A
RR A
Rotate A right
RRC A
SWAP A
Swap nibbles of A
Data Transfer
MOV A, Rn
Move Register to A
MOV A, direct
MOV A, @Ri
MOV A, #data
Move immediate to A
MOV Rn, A
Move A to Register
MOV direct, A
MOV direct, Rn
MOV @Ri, A
MOVC A, @A+DPTR
MOVC A, @A+PC
MOVX A, @Ri
MOVX @Ri, A
MOVX A, @DPTR
MOVX @DPTR, A
PUSH direct
POP direct
116
Rev. 1.0
Description
Bytes
Clock
Cycles
XCH A, Rn
XCH A, direct
XCH A, @Ri
XCHD A, @Ri
Boolean Manipulation
CLR C
Clear Carry
CLR bit
SETB C
Set Carry
SETB bit
CPL C
Complement Carry
CPL bit
ANL C, bit
ANL C, /bit
ORL C, bit
ORL C, /bit
MOV C, bit
MOV bit, C
JC rel
2/3
JNC rel
2/3
JB bit, rel
3/4
3/4
3/4
Program Branching
ACALL addr11
LCALL addr16
RET
RETI
AJMP addr11
Absolute jump
LJMP addr16
Long jump
SJMP rel
JMP @A+DPTR
JZ rel
2/3
JNZ rel
2/3
3/4
3/4
3/4
4/5
2/3
Rev. 1.0
117
Description
Bytes
Clock
Cycles
3/4
NOP
No operation
118
Rev. 1.0
Name
DPL
Type
RW
Reset
Name
7:0
DPL
Function
Data Pointer Low.
The DPL register is the low byte of the 16-bit DPTR. DPTR is used to access indirectly
addressed flash memory or XRAM.
Rev. 1.0
119
Name
DPH
Type
RW
Reset
Name
7:0
DPH
Function
Data Pointer High.
The DPH register is the high byte of the 16-bit DPTR. DPTR is used to access indirectly
addressed flash memory or XRAM.
120
Rev. 1.0
Name
SP
Type
RW
Reset
Name
7:0
SP
Function
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.0
121
Name
ACC
Type
RW
Reset
Name
7:0
ACC
Function
Accumulator.
This register is the accumulator for arithmetic operations.
122
Rev. 1.0
Name
Type
RW
Reset
Name
7:0
Function
B Register.
This register serves as a second accumulator for certain arithmetic operations.
Rev. 1.0
123
Name
CY
AC
F0
Type
RW
RW
RW
Reset
RS
OV
F1
PARITY
RW
RW
RW
Name
CY
Function
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.
AC
F0
User Flag 0.
This is a bit-addressable, general purpose flag for use under software control.
4:3
RS
OV
Overflow Flag.
This bit is set to 1 under the following circumstances:
1. An ADD, ADDC, or SUBB instruction causes a sign-change overflow.
2. A MUL instruction results in an overflow (result is greater than 255).
3. 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.
F1
User Flag 1.
This is a bit-addressable, general purpose flag for use under software control.
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.
124
Rev. 1.0
Clock Control
High Frequency
24.5 MHz
Oscillator
Low Frequency
80 kHz
Oscillator
Programmable
Divider:
1, 2, 4...128
SYSCLK
To core and
peripherals
External Clock
Input (EXTCLK)
Rev. 1.0
125
126
Rev. 1.0
Name
OSCICL
Type
RW
Reset
Name
7:0
OSCICL
Function
Oscillator Calibration Bits.
These bits determine the internal oscillator period. When set to 00000000b, the oscillator
operates at its fastest setting. When set to 11111111b, the oscillator operates at its slowest setting. The reset value is factory calibrated to generate an internal oscillator frequency of 24.5 MHz.
Rev. 1.0
127
Name
OSCLEN
OSCLRDY
OSCLF
OSCLD
Type
RW
RW
RW
Reset
Name
OSCLEN
Function
Internal L-F Oscillator Enable.
This bit enables the internal low-frequency oscillator. Note that the low-frequency oscillator is automatically enabled when the watchdog timer is active.
0: Internal L-F Oscillator Disabled.
1: Internal L-F Oscillator Enabled.
OSCLRDY
5:2
OSCLF
1:0
OSCLD
Note: OSCLRDY is only set back to 0 in the event of a device reset or a change to the OSCLD bits.
128
Rev. 1.0
Name
Reserved
CLKDIV
Reserved
CLKSL
Type
RW
RW
Reset
Name
Function
Reserved
6:4
CLKDIV
3:2
Reserved
1:0
CLKSL
Rev. 1.0
129
CMPn
Positive Input
Selection
Programmable
Hysteresis
Internal LDO
CPnA
(asynchronous)
CPn+
CPn
(synchronous)
CPn-
SYSCLK
GND
Negative Input
Selection
Programmable
Response Time
130
Rev. 1.0
Signal Name
0000
CP0P.0
P0.0
P0.0
P0.0
0001
CP0P.1
P0.1
P0.1
P0.1
0010
CP0P.2
P0.2
P0.2
P0.2
0011
CP0P.3
P0.3
P0.3
P0.3
0100
CP0P.4
P0.4
P0.4
P0.4
0101
CP0P.5
P0.5
P0.5
P0.5
0110
CP0P.6
P0.6
P0.6
Reserved
0111
CP0P.7
P0.7
P0.7
Reserved
1000
LDO
1001-1111
None
No connection
Signal Name
0000
CP0N.0
P0.0
P0.0
P0.0
0001
CP0N.1
P0.1
P0.1
P0.1
0010
CP0N.2
P0.2
P0.2
P0.2
0011
CP0N.3
P0.3
P0.3
P0.3
0100
CP0N.4
P0.4
P0.4
P0.4
0101
CP0N.5
P0.5
P0.5
P0.5
0110
CP0N.6
P0.6
P0.6
Reserved
0111
CP0N.7
P0.7
P0.7
Reserved
1000
GND
GND
1001-1111
None
No connection
Rev. 1.0
131
Signal Name
0000
CP1P.0
P1.0
P1.0
P0.6
0001
CP1P.1
P1.1
P1.1
P0.7
0010
CP1P.2
P1.2
P1.2
P1.0
0011
CP1P.3
P1.3
P1.3
P1.1
0100
CP1P.4
P1.4
P1.4
P1.2
0101
CP1P.5
P1.5
P1.5
P1.3
0110
CP1P.6
P1.6
P1.6
Reserved
0111
CP1P.7
P1.7
Reserved
Reserved
1000
LDO
1001-1111
None
No connection
Signal Name
0000
CP1N.0
P1.0
P1.0
P0.6
0001
CP1N.1
P1.1
P1.1
P0.7
0010
CP1N.2
P1.2
P1.2
P1.0
0011
CP1N.3
P1.3
P1.3
P1.1
0100
CP1N.4
P1.4
P1.4
P1.2
0101
CP1N.5
P1.5
P1.5
P1.3
0110
CP1N.6
P1.6
P1.6
Reserved
0111
CP1N.7
P1.7
Reserved
Reserved
1000
GND
GND
1001-1111
None
No connection
132
Rev. 1.0
Positive programmable
hysteresis (CPHYP)
CPnCPn+
Negative programmable
hysteresis (CPHYN)
CP0 (out)
Rev. 1.0
133
Name
CPEN
CPOUT
CPRIF
CPFIF
CPHYP
CPHYN
Type
RW
RW
RW
RW
RW
Reset
Name
CPEN
Function
Comparator 0 Enable Bit.
0: Comparator Disabled.
1: Comparator Enabled.
CPOUT
CPRIF
CPFIF
3:2
CPHYP
1:0
CPHYN
134
Rev. 1.0
Name
CPLOUT
Reserved
CPRIE
CPFIE
Reserved
CPMD
Type
RW
RW
RW
RW
Reset
Name
CPLOUT
Function
Comparator 0 Latched Output Flag.
This bit represents the comparator output value at the most recent PCA counter overflow.
0: Comparator output was logic low at last PCA overflow.
1: Comparator output was logic high at last PCA overflow.
Reserved
CPRIE
CPFIE
3:2
Reserved
1:0
CPMD
Rev. 1.0
135
Name
CMXN
CMXP
Type
RW
RW
Reset
Name
7:4
CMXN
Function
Comparator 0 Negative Input MUX Selection.
0000: External pin CP0N.0
0001: External pin CP0N.1
0010: External pin CP0N.2
0011: External pin CP0N.3
0100: External pin CP0N.4
0101: External pin CP0N.5
0110: External pin CP0N.6
0111: External pin CP0N.7
1000: GND
1001-1111: Reserved.
3:0
CMXP
136
Rev. 1.0
Name
CPEN
CPOUT
CPRIF
CPFIF
CPHYP
CPHYN
Type
RW
RW
RW
RW
RW
Reset
Name
CPEN
Function
Comparator 1 Enable Bit.
0: Comparator Disabled.
1: Comparator Enabled.
CPOUT
CPRIF
CPFIF
3:2
CPHYP
1:0
CPHYN
Rev. 1.0
137
Name
CPLOUT
Reserved
CPRIE
CPFIE
Reserved
CPMD
Type
RW
RW
RW
RW
Reset
Name
CPLOUT
Function
Comparator 1 Latched Output Flag.
This bit represents the comparator output value at the most recent PCA counter overflow.
0: Comparator output was logic low at last PCA overflow.
1: Comparator output was logic high at last PCA overflow.
Reserved
CPRIE
CPFIE
3:2
Reserved
1:0
CPMD
138
Rev. 1.0
Name
CMXN
CMXP
Type
RW
RW
Reset
Name
7:4
CMXN
Function
Comparator 1 Negative Input MUX Selection.
0000: External pin CP1N.0
0001: External pin CP1N.1
0010: External pin CP1N.2
0011: External pin CP1N.3
0100: External pin CP1N.4
0101: External pin CP1N.5
0110: External pin CP1N.6
0111: External pin CP1N.7
1000: GND
1001-1111: Reserved.
3:0
CMXP
Rev. 1.0
139
CRC0
CRC0IN
Flash
Memory
Automatic
flash read
control
CRC0FLIP
Seed
(0x0000 or
0xFFFF)
byte-level bit
reversal
Hardware CRC
Calculation
Unit
8
CRC0DAT
140
Rev. 1.0
Table 18.1 lists several input values and the associated outputs using the 16-bit CRC algorithm:
Output
0x63
0xBD35
0x8C
0xB1F4
0x7D
0x4ECA
0x6CF6
0xB166
Rev. 1.0
141
CRC0FLIP
(write)
CRC0FLIP
(read)
Figure 18.2. Bit Reversal
142
Rev. 1.0
Name
Reserved
CRCINIT
CRCVAL
Reserved
CRCPNT
Type
RW
RW
RW
Reset
Name
Function
7:4
Reserved
CRCINIT
CRCVAL
Reserved
CRCPNT
Note: Upon initiation of an automatic CRC calculation, the three cycles following a write to CRC0CN that initiate a CRC
operation must only contain instructions which execute in the same number of cycles as the number of bytes in the
instruction. An example of such an instruction is a 3-byte MOV that targets the CRC0FLIP register. When programming
in C, the dummy value written to CRC0FLIP should be a non-zero value to prevent the compiler from generating a 2byte MOV instruction.
Rev. 1.0
143
Name
CRC0IN
Type
RW
Reset
Name
7:0
CRC0IN
Function
CRC Data Input.
Each write to CRCIN results in the written data being computed into the existing CRC
result according to the CRC algorithm.
144
Rev. 1.0
Name
CRC0DAT
Type
RW
Reset
Name
7:0
CRC0DAT
Function
CRC Data Output.
Each read or write performed on CRC0DAT targets the CRC result bits pointed to by the
CRC0 Result Pointer (CRC0PNT bits in CRC0CN).
Note: CRC0DAT may not be valid for one cycle after setting the CRC0INIT bit in the CRC0CN register to 1. Any time
CRC0INIT is written to 1 by firmware, at least one instruction should be performed before reading CRC0DAT.
Rev. 1.0
145
Name
AUTOEN
Reserved
CRCST
Type
RW
RW
Reset
Name
AUTOEN
Function
Automatic CRC Calculation Enable.
When AUTOEN is set to 1, any write to CRC0CN will initiate an automatic CRC starting
at flash sector CRCST and continuing for CRCCNT sectors.
Reserved
5:0
CRCST
146
Rev. 1.0
Name
CRCDN
Reserved
CRCCNT
Type
RW
Reset
Name
CRCDN
Function
Automatic CRC Calculation Complete.
Set to 0 when a CRC calculation is in progress. Code execution is stopped during a CRC
calculation; therefore, reads from firmware will always return 1.
6:5
Reserved
4:0
CRCCNT
Rev. 1.0
147
Name
CRC0FLIP
Type
RW
Reset
Name
7:0
CRC0FLIP
Function
CRC0 Bit Flip.
Any byte written to CRC0FLIP is read back in a bit-reversed order, i.e., the written LSB
becomes the MSB. For example:
If 0xC0 is written to CRC0FLIP, the data read back will be 0x03.
If 0x05 is written to CRC0FLIP, the data read back will be 0xA0.
148
Rev. 1.0
IN1PL
IT0
IN0PL
INT0 Interrupt
INT1 Interrupt
INT0 and INT1 are assigned to port pins as defined in the IT01CF register. Note that INT0 and INT1 port
pin assignments are independent of any crossbar assignments. INT0 and INT1 will monitor their assigned
port pins without disturbing the peripheral that was assigned the port pin via the crossbar. To assign a port
pin only to INT0 and/or INT1, configure the crossbar to skip the selected pin(s).
IE0 and IE1 in the TCON register serve as the interrupt-pending flags for the INT0 and INT1 external
interrupts, respectively. If an INT0 or INT1 external interrupt is configured as edge-sensitive, the
corresponding interrupt-pending flag is automatically cleared by the hardware when the CPU vectors to the
ISR. When configured as level sensitive, the interrupt-pending flag remains logic 1 while the input is active
as defined by the corresponding polarity bit (IN0PL or IN1PL); the flag remains logic 0 while the input is
inactive. The external interrupt source must hold the input active until the interrupt request is recognized. It
must then deactivate the interrupt request before execution of the ISR completes or another interrupt
request will be generated.
Rev. 1.0
149
Name
IN1PL
IN1SL
IN0PL
IN0SL
Type
RW
RW
RW
RW
Reset
Name
IN1PL
Function
INT1 Polarity.
0: INT1 input is active low.
1: INT1 input is active high.
6:4
IN1SL
IN0PL
INT0 Polarity.
0: INT0 input is active low.
1: INT0 input is active high.
150
Rev. 1.0
Name
2:0
IN0SL
Function
INT0 Port Pin Selection Bits.
These bits select which Port pin is assigned to INT0. 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.
000: Select P0.0
001: Select P0.1
010: Select P0.2
011: Select P0.3
100: Select P0.4
101: Select P0.5
110: Select P0.6
111: Select P0.7
Rev. 1.0
151
PCA0
SYSCLK
SYSCLK / 4
SYSCLK / 12
Timer 0 Overflow
PCA Counter
EXTCLK / 8
Sync
L-F Oscillator / 8
Sync
ECI
Sync
Control /
Configuration
Interrupt
Logic
SYSCLK
Channel 2
Mode
Control1
Channel
Capture
Mode
/ Compare
Control
Channel 0
CEX2
Output
Drive
Logic
CEX0
Capture
Mode
/ Compare
Control
Capture / Compare
Comparator 0 Output
Polarity Select
Comparator
Clear Enable
152
Rev. 1.0
CEX1
CPS1
CPS0
Timebase
Timer 0 overflow
System clock
Reserved
Rev. 1.0
153
Table 20.2. PCA0CPM and PCA0PWM Bit Settings for PCA Capture/Compare Modules
Operational Mode
PCA0CPMn
PCA0PWM
Bit Number 7 6 5 4 3 2 1 0 7 6 5 43
20
X X 1 0 0 0 0 A 0 X B XX
XXX
X X 0 1 0 0 0 A 0 X B XX
XXX
X X 1 1 0 0 0 A 0 X B XX
XXX
Software Timer
X C 0 0 1 0 0 A 0 X B XX
XXX
X C 0 0 1 1 0 A 0 X B XX
XXX
Frequency Output
X C 0 0 0 1 1 A 0 X B XX
XXX
0 C 0 0 E 0 1 A 0 X B XX
000
0 C 0 0 E 0 1 A D X B XX
001
0 C 0 0 E 0 1 A D X B XX
010
0 C 0 0 E 0 1 A D X B XX
011
1 C 0 0 E 0 1 A 0 X B XX
XXX
Notes:
1. X = Dont Care (no functional difference for individual module if 1 or 0).
2. A = Enable interrupts for this module (PCA interrupt triggered on CCFn set to 1).
3. B = Enable 8th - 11th bit overflow interrupt (Depends on setting of CLSEL).
4. C = When set to 0, the digital comparator is off. For high speed and frequency output modes, the associated pin will not
toggle. In any of the PWM modes, this generates a 0% duty cycle (output = 0).
5. D = Selects whether the Capture/Compare register (0) or the Auto-Reload register (1) for the associated channel is
accessed via addresses PCA0CPHn and PCA0CPLn.
6. E = When set, a match event will cause the CCFn flag for the associated channel to be set.
7. All modules set to 8, 9, 10 or 11-bit PWM mode use the same cycle length setting.
154
Rev. 1.0
CAPPn
PCA0CPLn
PCA0CPHn
Capture
CEXn
CAPNn
PCA Clock
PCA0L
PCA0H
Rev. 1.0
155
PCA0CPLn
PCA0CPHn
ECOMn
(Compare Enable)
PCA Clock
16-bit Comparator
PCA0L
match
PCA0H
156
Rev. 1.0
CCFn
(Interrupt Flag)
PCA0CPLn
PCA0CPHn
ECOMn
(Compare Enable)
16-bit Comparator
match
CCFn
(Interrupt Flag)
Toggle
CEXn
PCA Clock
PCA0L
PCA0H
TOGn (Toggle Enable)
Rev. 1.0
157
F PCA
F CEXn = ---------------------------------------2 PCA0CPHn
Note: A value of 0x00 in the PCA0CPHn register is equal to 256 for this equation.
Equation 20.1. Square Wave Frequency Output
Where FPCA is the frequency of the clock selected by the CPS20 bits in the PCA mode register,
PCA0MD. The lower byte of the capture/compare module is compared to the PCA counter low byte; on a
match, n is toggled and the offset held in the high byte is added to the matched value in PCA0CPLn.
Frequency Output Mode is enabled by setting the ECOMn, TOGn, and PWMn bits in the PCA0CPMn
register. Note that the MATn bit should normally be set to 0 in this mode. If the MATn bit is set to 1, the
CCFn flag for the channel will be set when the 16-bit PCA0 counter and the 16-bit capture/compare
register for the channel are equal.
PCA0CPLn
8-bit Adder
PCA0CPHn
Adder
Enable
Toggle
ECOMn
(Compare Enable)
8-bit
Comparator
match
CEXn
PCA Clock
PCA0L
158
Rev. 1.0
0x0000
0x0001
0x0002
Capture / Compare
(PCA0CP0)
0x0003
0x0004
0x0005
0x0001
Output (CEX0)
match edge
Capture / Compare
(PCA0CP1)
0x0005
Output (CEX1)
overflow edge
match edge
Rev. 1.0
159
disable the comparison, and prevent the match edge from occuring. Note that although the PCA0CPn
compare register determines the duty cycle, it is not always appropriate for firmware to update this register
directly. See the sections on 8 to 11-bit and 16-bit PWM mode for additional details on adjusting duty cycle
in the various modes.
160
Rev. 1.0
Counter (PCA0L)
0xFB
0xFC
0xFD
0xFE
0xFF
Capture / Compare
(PCA0CPL0)
0x00
0x01
0x02
0x03
0x04
0x01
center
Output (CEX0)
up edge
down edge
Capture / Compare
(PCA0CPL1)
0x04
center
Output (CEX1)
down edge
up edge
Rev. 1.0
161
Equation 20.4 describes the duty cycle when CEXnPOL in the PCA0POL regsiter is cleared to 0.
Equation 20.5 describes the duty cycle when CEXnPOL in the PCA0POL regsiter is set to 1. The
equations are true only when the lowest N bits of the PCA0CPn register are not all 0s or all 1s. With
CEXnPOL equal to zero, 100% duty cycle is produced when the lowest N bits of PCA0CPn are all 0, and
0% duty cycle is produced when the lowest N bits of PCA0CPn are all 1. For a given PCA resolution, the
unused high bits in the PCA0 counter and the PCA0CPn compare registers are ignored, and only the used
bits of the PCA0CPn register determine the duty cycle.
Note that although the PCA0CPn compare register determines the duty cycle, it is not always appropriate
for firmware to update this register directly. See the sections on 8 to 11-bit and 16-bit PWM mode for
additional details on adjusting duty cycle in the various modes.
Equation 20.4. N-bit Center-Aligned PWM Duty Cycle With CEXnPOL = 0 (N = PWM resolution)
162
Rev. 1.0
Rev. 1.0
163
164
Rev. 1.0
CEXn (CPCEn = 0)
Comparator0 Output
(CPCPOL = 0)
CEXn (CPCEn = 1)
CEXn (CPCEn = 0)
Comparator0 Output
(CPCPOL = 1)
CEXn (CPCEn = 1)
CEXn (CPCEn = 0)
Comparator0 Output
(CPCPOL = 0)
CEXn (CPCEn = 1)
Rev. 1.0
165
CEXn (CPCEn = 0)
Comparator0 Output
(CPCPOL = 1)
CEXn (CPCEn = 1)
166
Rev. 1.0
Name
CF
CR
Type
RW
RW
Reset
Reserved
CCF2
CCF1
CCF0
RW
RW
RW
Name
CF
Function
PCA Counter/Timer Overflow Flag.
Set by hardware when the PCA Counter/Timer overflows from 0xFFFF to 0x0000. When
the Counter/Timer Overflow (CF) interrupt is enabled, setting this bit causes the CPU to
vector to the PCA interrupt service routine. This bit is not automatically cleared by hardware and must be cleared by software.
CR
5:3
Reserved
CCF2
CCF1
CCF0
Rev. 1.0
167
Name
CIDL
Reserved
CPS
ECF
Type
RW
RW
RW
Reset
Name
CIDL
Function
PCA Counter/Timer Idle Control.
Specifies PCA behavior when CPU is in Idle Mode.
0: PCA continues to function normally while the system controller is in Idle Mode.
1: PCA operation is suspended while the system controller is in Idle Mode.
6:4
Reserved
3:1
CPS
ECF
168
Rev. 1.0
Name
ARSEL
ECOV
COVF
Reserved
CLSEL
Type
RW
RW
RW
RW
Reset
Name
ARSEL
Function
Auto-Reload Register Select.
This bit selects whether to read and write the normal PCA capture/compare registers
(PCA0CPn), or the Auto-Reload registers at the same SFR addresses. This function is
used to define the reload value for 9 to 11-bit PWM modes. In all other modes, the AutoReload registers have no function.
0: Read/Write Capture/Compare Registers at PCA0CPHn and PCA0CPLn.
1: Read/Write Auto-Reload Registers at PCA0CPHn and PCA0CPLn.
ECOV
COVF
4:3
Reserved
2:0
CLSEL
Rev. 1.0
169
Name
CPCPOL
Type
RW
Reset
Reserved
CPCE2
CPCE1
CPCE0
RW
RW
RW
Name
CPCPOL
Function
Comparator Clear Polarity.
Selects the polarity of the comparator result that will clear the PCA channel(s).
0: PCA channel(s) will be cleared when comparator result goes logic low.
1: PCA channel(s) will be cleared when comparator result goes logic high.
6:3
Reserved
CPCE2
CPCE1
CPCE0
170
Rev. 1.0
Name
PWM16
ECOM
CAPP
CAPN
MAT
TOG
PWM
ECCF
Type
RW
RW
RW
RW
RW
RW
RW
RW
Reset
Name
PWM16
Function
16-bit Pulse Width Modulation Enable.
This bit enables 16-bit mode when Pulse Width Modulation mode is enabled.
0: 8 to 11-bit PWM selected.
1: 16-bit PWM selected.
ECOM
CAPP
CAPN
MAT
TOG
PWM
ECCF
Rev. 1.0
171
Name
PCA0L
Type
RW
Reset
Name
7:0
PCA0L
Function
PCA Counter/Timer Low Byte.
The PCA0L register holds the low byte (LSB) of the 16-bit PCA Counter/Timer.
172
Rev. 1.0
Name
PCA0H
Type
RW
Reset
Name
7:0
PCA0H
Function
PCA Counter/Timer High Byte.
The PCA0H register holds the high byte (MSB) of the 16-bit PCA Counter/Timer. Reads
of this register will read the contents of a snapshot register, whose contents are updated
only when the contents of PCA0L are read.
Rev. 1.0
173
Name
PCA0CPL0
Type
RW
Reset
Name
Function
Note: A write to this register will clear the modules ECOM bit to a 0.
174
Rev. 1.0
Name
PCA0CPH0
Type
RW
Reset
Name
Function
Note: A write to this register will set the modules ECOM bit to a 1.
Rev. 1.0
175
Name
Reserved
CEX2POL
CEX1POL
CEX0POL
Type
RW
RW
RW
Reset
Name
Function
7:3
Reserved
CEX2POL
CEX1POL
CEX0POL
176
Rev. 1.0
Name
Reserved
CEX2CEN
CEX1CEN
CEX0CEN
Type
RW
RW
RW
Reset
Name
Function
7:3
Reserved
CEX2CEN
CEX1CEN
CEX0CEN
Rev. 1.0
177
Name
PWM16
ECOM
CAPP
CAPN
MAT
TOG
PWM
ECCF
Type
RW
RW
RW
RW
RW
RW
RW
RW
Reset
Name
PWM16
Function
16-bit Pulse Width Modulation Enable.
This bit enables 16-bit mode when Pulse Width Modulation mode is enabled.
0: 8 to 11-bit PWM selected.
1: 16-bit PWM selected.
ECOM
CAPP
CAPN
MAT
TOG
PWM
ECCF
178
Rev. 1.0
Name
PWM16
ECOM
CAPP
CAPN
MAT
TOG
PWM
ECCF
Type
RW
RW
RW
RW
RW
RW
RW
RW
Reset
Name
PWM16
Function
16-bit Pulse Width Modulation Enable.
This bit enables 16-bit mode when Pulse Width Modulation mode is enabled.
0: 8 to 11-bit PWM selected.
1: 16-bit PWM selected.
ECOM
CAPP
CAPN
MAT
TOG
PWM
ECCF
Rev. 1.0
179
Name
PCA0CPL1
Type
RW
Reset
Name
Function
Note: A write to this register will clear the modules ECOM bit to a 0.
180
Rev. 1.0
Name
PCA0CPH1
Type
RW
Reset
Name
Function
Note: A write to this register will set the modules ECOM bit to a 1.
Rev. 1.0
181
Name
PCA0CPL2
Type
RW
Reset
Name
Function
Note: A write to this register will clear the modules ECOM bit to a 0.
182
Rev. 1.0
Name
PCA0CPH2
Type
RW
Reset
Name
Function
Note: A write to this register will set the modules ECOM bit to a 1.
Rev. 1.0
183
21. Port I/O (Port 0, Port 1, Port 2, Crossbar, and Port Match)
Digital and analog resources on the C8051F85x/86x family are externally available on the devices multipurpose I/O pins. Port pins P0.0-P1.7 can be defined as general-purpose I/O (GPIO), assigned to one of
the internal digital resources through the crossbar, or assigned to an analog function. Port pins P2.0 and
P2.1 can be used as GPIO. Port pin P2.0 is shared with the C2 Interface Data signal (C2D). The designer
has complete control over which functions are assigned, limited only by the number of physical I/O pins.
This resource assignment flexibility is achieved through the use of a priority crossbar decoder. Note that
the state of a port I/O pin can always be read in the corresponding port latch, regardless of the crossbar
settings.
The crossbar assigns the selected internal digital resources to the I/O pins based on the Priority Decoder
(Figure 21.2 and Figure 21.3). The registers XBR0, XBR1 and XBR2 are used to select internal digital
functions.
The port I/O cells are configured as either push-pull or open-drain in the Port Output Mode registers
(PnMDOUT, where n = 0,1). Additionally, each bank of port pins (P0, P1, and P2) has two selectable drive
strength settings.
2
UART0
4
Priority Crossbar
Decoder
SPI0
2
SMBus0
Port 0
Control
&
Config
P0.0 / VREF
P0.1 / AGND
P0.2
P0.3 / EXTCLK
P0.4
P0.5
P0.6 / CNVSTR
P0.7
Port 1
Control
&
Config
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
Port 2
Control
&
Config
P2.0 / C2D
P2.1
CMP0 Out
2
CMP1 Out
1
SYSCLK
3
PCA (CEXn)
ADC0 In
1
PCA (ECI)
CMP0/1 In
1
Timer 0
Port Match
1
Timer 1
INT0 / INT1
1
Timer 2
184
Rev. 1.0
Rev. 1.0
185
Potentially Assignable
Port Pins
ADC Input
P0.0 - P1.7
ADC0MX, PnSKIP,
PnMDIN
Comparator0 Input
P0.0 - P1.7
CPT0MX, PnSKIP,
PnMDIN
Comparator1 Input
P0.0 - P1.7
CPT1MX, PnSKIP,
PnMDIN
P0.0
REF0CN, PnSKIP,
PnMDIN
P0.1
REF0CN, PnSKIP,
PnMDIN
UART0, SPI0, SMBus0, CP0, CP0A, Any port pin available for assignment by the
CP1, CP1A, SYSCLK, PCA0 (CEX0- crossbar. This includes P0.0 - P1.7 pins which
2 and ECI), T0, T1 or T2.
have their PnSKIP bit set to 0.
Note: The crossbar will always assign UART0
pins to P0.4 and P0.5.
Any pin used for GPIO
186
P0.0 - P2.1
Rev. 1.0
P0SKIP, P1SKIP,
P2SKIP
External Interrupt 0
P0.0 - P0.7
IT01CF
External Interrupt 1
P0.0 - P0.7
IT01CF
P0.6
ADC0CN
P0.3
OSCXCN
P0.0 - P1.7
P0MASK, P0MAT
P1MASK, P1MAT
Port Match
Rev. 1.0
187
EXTCLK
VREF
QFN-20 Package
CNVSTR
SOIC-16 Package
P2
4
1
N/A
P1
4
C2D
N/A
N/A
N/A
P0
0
N/A
Port
Pin Number
QSOP-24 Package
UART0-TX
UART0-RX
SPI0-SCK
SPI0-MISO
SPI0-MOSI
SPI0-NSS*
SMB0-SDA
SMB0-SCL
CMP0-CP0
CMP0-CP0A
CMP1-CP1
CMP1-CP1A
SYSCLK
PCA0-CEX0
PCA0-CEX1
PCA0-CEX2
PCA0-ECI
Timer0-T0
Timer1-T1
Timer2-T2
Pin Skip Settings
P0SKIP
P1SKIP
The crossbar peripherals are assigned in priority order from top to bottom.
These boxes represent Port pins which can potentially be assigned to a peripheral.
Special Function Signals are not assigned by the crossbar. When these signals are
enabled, the Crossbar should be manually configured to skip the corresponding port pins.
Pins can be skipped by setting the corresponding bit in PnSKIP to 1.
* NSS is only pinned out when the SPI is in 4-wire mode.
188
Rev. 1.0
Registers XBR0, XBR1 and XBR2 are used to assign the digital I/O resources to the physical I/O port pins.
Note that when the SMBus is selected, the crossbar assigns both pins associated with the SMBus (SDA
and SCL); when UART0 is selected, the crossbar assigns both pins associated with UART0 (TX and RX).
UART0 pin assignments are fixed for bootloading purposes: UART0 TX is always assigned to P0.4;
UART0 RX is always assigned to P0.5. Standard port I/Os appear contiguously after the prioritized
functions have been assigned.
Figure 21.3 shows an example of the resulting pin assignments of the device with UART0 and SPI0
enabled and the EXTCLK (P0.3) pin skipped (P0SKIP = 0x08). UART0 is the highest priority and it will be
assigned first. The UART0 pins can only appear on P0.4 and P0.5, so that is where it is assigned. The
next-highest enabled peripheral is SPI0. P0.0, P0.1 and P0.2 are free, so SPI0 takes these three pins. The
fourth pin, NSS, is routed to P0.6 because P0.3 is skipped and P0.4 and P0.5 are already occupied by the
UART. The other pins on the device are available for use as general-purpose digital I/O or analog
functions.
EXTCLK
VREF
QFN-20 Package
CNVSTR
SOIC-16 Package
P2
4
1
N/A
P1
4
C2D
N/A
N/A
N/A
P0
0
N/A
Port
Pin Number
QSOP-24 Package
UART0-TX
UART0-RX
SPI0-SCK
SPI0-MISO
SPI0-MOSI
SPI0-NSS*
SMB0-SDA
SMB0-SCL
CMP0-CP0
CMP0-CP0A
CMP1-CP1
CMP1-CP1A
SYSCLK
PCA0-CEX0
PCA0-CEX1
PCA0-CEX2
PCA0-ECI
Timer0-T0
Timer1-T1
Timer2-T2
Pin Skip Settings
P0SKIP
P1SKIP
The crossbar peripherals are assigned in priority order from top to bottom.
These boxes represent Port pins which can potentially be assigned to a peripheral.
Special Function Signals are not assigned by the crossbar. When these signals are
enabled, the Crossbar should be manually configured to skip the corresponding port pins.
Pins can be skipped by setting the corresponding bit in PnSKIP to 1.
* NSS is only pinned out when the SPI is in 4-wire mode.
Rev. 1.0
189
Note: The SPI can be operated in either 3-wire or 4-wire modes, pending the state of the NSSMD1
NSSMD0 bits in register SPI0CN. According to the SPI mode, the NSS signal may or may not be routed to
a port pin. The order in which SMBus pins are assigned is defined by the SWAP bit in the SMB0TC
register.
190
Rev. 1.0
Rev. 1.0
191
VDD
XBARE
(Crossbar
Enable)
VDD
(WEAK)
PORT
PAD
Px.x Output
Logic Value
(Port Latch or
Crossbar)
PxMDIN.x
(1 for digital)
(0 for analog)
To/From Analog
Peripheral
GND
192
Rev. 1.0
Name
SYSCKE
CP1AE
CP1E
CP0AE
CP0E
SMB0E
SPI0E
URT0E
Type
RW
RW
RW
RW
RW
RW
RW
RW
Reset
Name
SYSCKE
Function
SYSCLK Output Enable.
0: SYSCLK unavailable at Port pin.
1: SYSCLK output routed to Port pin.
CP1AE
CP1E
CP0AE
CP0E
SMB0E
SPI0E
URT0E
Rev. 1.0
193
Name
6
Reserved
T2E
T1E
T0E
ECIE
PCA0ME
RW
Type
RW
RW
RW
RW
RW
Reset
Name
7:6
Reserved
T2E
Function
Must write reset value.
T2 Enable.
0: T2 unavailable at Port pin.
1: T2 routed to Port pin.
T1E
T1 Enable.
0: T1 unavailable at Port pin.
1: T1 routed to Port pin.
T0E
T0 Enable.
0: T0 unavailable at Port pin.
1: T0 routed to Port pin.
ECIE
1:0
PCA0ME
194
Rev. 1.0
Name
WEAKPUD
XBARE
Reserved
Type
RW
RW
Reset
Name
WEAKPUD
Function
Port I/O Weak Pullup Disable.
0: Weak Pullups enabled (except for Ports whose I/O are configured for analog mode).
1: Weak Pullups disabled.
XBARE
Crossbar Enable.
0: Crossbar disabled.
1: Crossbar enabled.
5:0
Reserved
Rev. 1.0
195
Name
Reserved
P2DRV
P1DRV
P0DRV
Type
RW
RW
RW
Reset
Name
Function
7:3
Reserved
P2DRV
P1DRV
P0DRV
196
Rev. 1.0
Name
P0MASK
Type
RW
Reset
Name
7:0
P0MASK
Function
Port 0 Mask Value.
Selects P0 pins to be compared to the corresponding bits in P0MAT.
0: P0.x pin logic value is ignored and will cause a port mismatch event.
1: P0.x pin logic value is compared to P0MAT.x.
Rev. 1.0
197
Name
P0MAT
Type
RW
Reset
Name
7:0
P0MAT
Function
Port 0 Match Value.
Match comparison value used on P0 pins for bits in P0MASK which are set to 1.
0: P0.x pin logic value is compared with logic LOW.
1: P0.x pin logic value is compared with logic HIGH.
198
Rev. 1.0
Name
P0
Type
RW
Reset
Name
7:0
P0
Function
Port 0 Data.
Writing this register sets the port latch logic value for the associated I/O pins configured
as digital I/O.
Reading this register returns the logic value at the pin, regardless if it is configured as
output or input.
Rev. 1.0
199
Name
P0MDIN
Type
RW
Reset
Name
7:0
P0MDIN
Function
Port 0 Input Mode.
Port pins configured for analog mode have their weak pullup, digital driver, and digital
receiver disabled.
0: Corresponding P0.x pin is configured for analog mode.
1: Corresponding P0.x pin is configured for digital mode.
200
Rev. 1.0
Name
P0MDOUT
Type
RW
Reset
Name
7:0
P0MDOUT
Function
Port 0 Output Mode.
These bits are only applicable when the pin is configured for digital mode using the
P0MDIN register.
0: Corresponding P0.n Output is open-drain.
1: Corresponding P0.n Output is push-pull.
Rev. 1.0
201
Name
P0SKIP
Type
RW
Reset
Name
7:0
P0SKIP
Function
Port 0 Skip.
These bits select port pins to be skipped by the crossbar decoder. Port pins used for analog, special functions or GPIO should be skipped.
0: Corresponding P0.x pin is not skipped by the crossbar.
1: Corresponding P0.x pin is skipped by the crossbar.
202
Rev. 1.0
Name
P1MASK
Type
RW
Reset
Name
7:0
P1MASK
Function
Port 1 Mask Value.
Selects P1 pins to be compared to the corresponding bits in P1MAT.
0: P1.x pin logic value is ignored and will cause a port mismatch event.
1: P1.x pin logic value is compared to P1MAT.x.
Note: Port 1 consists of 8 bits (P1.0-P1.7) on QSOP24 packages and 7 bits (P1.0-P1.6) on QFN20 packages and 4 bits
(P1.0-P1.3) on SOIC16 packages.
Rev. 1.0
203
Name
P1MAT
Type
RW
Reset
Name
7:0
P1MAT
Function
Port 1 Match Value.
Match comparison value used on P1 pins for bits in P1MASK which are set to 1.
0: P1.x pin logic value is compared with logic LOW.
1: P1.x pin logic value is compared with logic HIGH.
Note: Port 1 consists of 8 bits (P1.0-P1.7) on QSOP24 packages and 7 bits (P1.0-P1.6) on QFN20 packages and 4 bits
(P1.0-P1.3) on SOIC16 packages.
204
Rev. 1.0
Name
P1
Type
RW
Reset
Name
7:0
P1
Function
Port 1 Data.
Writing this register sets the port latch logic value for the associated I/O pins configured
as digital I/O.
Reading this register returns the logic value at the pin, regardless if it is configured as
output or input.
Note: Port 1 consists of 8 bits (P1.0-P1.7) on QSOP24 packages and 7 bits (P1.0-P1.6) on QFN20 packages and 4 bits
(P1.0-P1.3) on SOIC16 packages.
Rev. 1.0
205
Name
P1MDIN
Type
RW
Reset
Name
7:0
P1MDIN
Function
Port 1 Input Mode.
Port pins configured for analog mode have their weak pullup, digital driver, and digital
receiver disabled.
0: Corresponding P1.x pin is configured for analog mode.
1: Corresponding P1.x pin is configured for digital mode.
Note: Port 1 consists of 8 bits (P1.0-P1.7) on QSOP24 packages and 7 bits (P1.0-P1.6) on QFN20 packages and 4 bits
(P1.0-P1.3) on SOIC16 packages.
206
Rev. 1.0
Name
P1MDOUT
Type
RW
Reset
Name
7:0
P1MDOUT
Function
Port 1 Output Mode.
These bits are only applicable when the pin is configured for digital mode using the
P1MDIN register.
0: Corresponding P1.n Output is open-drain.
1: Corresponding P1.n Output is push-pull.
Note: Port 1 consists of 8 bits (P1.0-P1.7) on QSOP24 packages and 7 bits (P1.0-P1.6) on QFN20 packages and 4 bits
(P1.0-P1.3) on SOIC16 packages.
Rev. 1.0
207
Name
P1SKIP
Type
RW
Reset
Name
7:0
P1SKIP
Function
Port 1 Skip.
These bits select port pins to be skipped by the crossbar decoder. Port pins used for analog, special functions or GPIO should be skipped.
0: Corresponding P1.x pin is not skipped by the crossbar.
1: Corresponding P1.x pin is skipped by the crossbar.
Note: Port 1 consists of 8 bits (P1.0-P1.7) on QSOP24 packages and 7 bits (P1.0-P1.6) on QFN20 packages and 4 bits
(P1.0-P1.3) on SOIC16 packages.
208
Rev. 1.0
Name
Reserved
P2
Type
RW
Reset
Name
7:2
Reserved
1:0
P2
Function
Must write reset value.
Port 2 Data.
Writing this register sets the port latch logic value for the associated I/O pins configured
as digital I/O.
Reading this register returns the logic value at the pin, regardless if it is configured as
output or input.
Note: Port 2 consists of 2 bits (P2.0-P2.1) on QSOP24 devices and 1 bit (P2.0) on QFN20 and SOIC16 packages.
Rev. 1.0
209
Name
Reserved
P2MDOUT
Type
RW
Reset
Name
Function
7:2
Reserved
1:0
P2MDOUT
Note: Port 2 consists of 2 bits (P2.0-P2.1) on QSOP24 devices and 1 bit (P2.0) on QFN20 and SOIC16 packages.
210
Rev. 1.0
Reset Sources
RST
Supply Monitor or
Power-up
Missing Clock
Detector
Watchdog Timer
system reset
Software Reset
Comparator 0
Flash Error
Rev. 1.0
211
VD
D
volts
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 flags in the RSTSRC Register are indeterminate (PORSF is cleared by all other
resets). Since all resets cause program execution to begin at the same location (0x0000) software can
read the PORSF flag to determine if a power-up was the cause of reset. The content of internal data
memory should be assumed to be undefined after a power-on reset. The VDD monitor is enabled following
a power-on reset.
Logic HIGH
RST
TPOR
Logic LOW
Power-On Reset
212
Rev. 1.0
volts
To protect the integrity of flash contents, the VDD supply monitor must be enabled and selected as a reset
source if software contains routines that erase or write flash memory. If the VDD supply monitor is not
enabled, any erase or write performed on flash memory will be ignored.
VDD
Reset Threshold
(VRST)
t
RST
VDD Monitor
Reset
Rev. 1.0
213
214
Rev. 1.0
Name
Reserved
FERROR
C0RSEF
SWRSF
WDTRSF
MCDRSF
PORSF
PINRSF
Type
RW
RW
RW
RW
Reset
Name
Function
Reserved
FERROR
C0RSEF
SWRSF
WDTRSF
MCDRSF
PORSF
Power-On / Supply Monitor Reset Flag, and Supply Monitor Reset Enable.
Read: This bit reads 1 anytime a power-on or supply monitor reset has occurred.
Write: Writing a 1 to this bit enables the supply monitor as a reset source.
PINRSF
Notes:
1. Reads and writes of the RSTSRC register access different logic in the device. Reading the register always returns
status information to indicate the source of the most recent reset. Writing to the register activates certain options as
reset sources. It is recommended to not use any kind of read-modify-write operation on this register.
2. When the PORSF bit reads back 1 all other RSTSRC flags are indeterminate.
3. Writing 1 to the PORSF bit when the supply monitor is not enabled and stabilized may cause a system reset.
Rev. 1.0
215
Name
VDMEN
VDDSTAT
Reserved
Type
RW
Reset
Name
VDMEN
Function
Supply Monitor Enable.
This bit turns the supply monitor circuit on/off. The supply monitor cannot generate system resets until it is also selected as a reset source in register RSTSRC. Selecting the
supply monitor as a reset source before it has stabilized may generate a system reset. In
systems where this reset would be undesirable, a delay should be introduced between
enabling the supply monitor and selecting it as a reset source.
0: Supply Monitor Disabled.
1: Supply Monitor Enabled.
VDDSTAT
Supply Status.
This bit indicates the current power supply status (supply monitor output).
0: VDD is at or below the supply monitor threshold.
1: VDD is above the supply monitor threshold.
5:0
216
Reserved
Rev. 1.0
SPI0
SCK Phase
Master or Slave
SCK Polarity
NSS Control
NSS
SYSCLK
Clock Rate
Generator
Bus Control
SCK
Shift Register
MISO
MOSI
TX Buffer
RX Buffer
SPI0DAT
Rev. 1.0
217
218
Rev. 1.0
Rev. 1.0
219
Master Device 1
Slave Device
SCK
SCK
MISO
MISO
MOSI
MOSI
NSS
NSS
port pin
Master Device 2
NSS
MOSI
MISO
SCK
port pin
Master Device
Slave Device
SCK
SCK
MISO
MISO
MOSI
MOSI
Figure 23.3. 3-Wire Single Master and 3-Wire Single Slave Mode Connection Diagram
Master Device
Slave Device
SCK
SCK
MISO
MISO
MOSI
MOSI
NSS
NSS
Figure 23.4. 4-Wire Single Master Mode and 4-Wire Slave Mode Connection Diagram
220
Rev. 1.0
SPI Interrupt Flag, SPIF (SPI0CN.7) is set to logic 1 at the end of each byte transfer. This flag
can occur in all SPI0 modes.
The Write Collision Flag, WCOL (SPI0CN.6) is set to logic 1 if a write to SPI0DAT is attempted
when the transmit buffer has not been emptied to the SPI shift register. When this occurs, the write
to SPI0DAT will be ignored, and the transmit buffer will not be written.This flag can occur in all
SPI0 modes.
The Mode Fault Flag MODF (SPI0CN.5) is set to logic 1 when SPI0 is configured as a master, and
for multi-master mode and the NSS pin is pulled low. When a Mode Fault occurs, the MSTEN and
SPIEN bits in SPI0CN are set to logic 0 to disable SPI0 and allow another master device to access
the bus.
The Receive Overrun Flag RXOVRN (SPI0CN.4) is set to logic 1 when configured as a slave, and
a transfer is completed and the receive buffer still holds an unread byte from a previous transfer.
The new byte is not transferred to the receive buffer, allowing the previously received data byte to
be read. The data byte which caused the overrun is lost.
Rev. 1.0
221
should be disabled (by clearing the SPIEN bit, SPI0CN.0) when changing the clock phase or polarity. The
clock and data line relationships for master mode are shown in Figure 23.5. For slave mode, the clock and
data relationships are shown in Figure 23.6 and Figure 23.7. Note that CKPHA should be set to 0 on both
the master and slave SPI when communicating between two Silicon Labs C8051 devices.
The SPI0 Clock Rate Register (SPI0CKR) controls the master mode serial clock frequency. This register is
ignored when operating in slave mode. When the SPI is configured as a master, the maximum data
transfer rate (bits/sec) is one-half the system clock frequency or 12.5 MHz, whichever is slower. When the
SPI is configured as a slave, the maximum data transfer rate (bits/sec) for full-duplex operation is 1/10 the
system clock frequency, provided that the master issues SCK, NSS (in 4-wire slave mode), and the serial
input data synchronously with the slaves system clock. If the master issues SCK, NSS, and the serial input
data asynchronously, the maximum data transfer rate (bits/sec) must be less than 1/10 the system clock
frequency. In the special case where the master only wants to transmit data to the slave and does not need
to receive data from the slave (i.e. half-duplex operation), the SPI slave can receive data at a maximum
data transfer rate (bits/sec) of 1/4 the system clock frequency. This is provided that the master issues SCK,
NSS, and the serial input data synchronously with the slaves system clock.
SCK
(CKPOL=0, CKPHA=0)
SCK
(CKPOL=0, CKPHA=1)
SCK
(CKPOL=1, CKPHA=0)
SCK
(CKPOL=1, CKPHA=1)
MISO/MOSI
MSB
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
222
Rev. 1.0
Bit 0
SCK
(CKPOL=0, CKPHA=0)
SCK
(CKPOL=1, CKPHA=0)
MOSI
MSB
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
MISO
MSB
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
SCK
(CKPOL=0, CKPHA=1)
SCK
(CKPOL=1, CKPHA=1)
MOSI
MSB
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
MISO
MSB
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Bit 0
Rev. 1.0
223
SCK*
T
MCKH
MCKL
MIS
MIH
MISO
MOSI
* SCK is shown for CKPOL = 0. SCK is the opposite polarity for CKPOL = 1.
SCK*
T
MCKH
MCKL
MIS
MIH
MISO
MOSI
* SCK is shown for CKPOL = 0. SCK is the opposite polarity for CKPOL = 1.
224
Rev. 1.0
NSS
T
SE
CKL
SD
SCK*
T
CKH
SIS
SIH
MOSI
SEZ
SOH
SDZ
MISO
* SCK is shown for CKPOL = 0. SCK is the opposite polarity for CKPOL = 1.
NSS
T
SE
CKL
SD
SCK*
T
CKH
SIS
SIH
MOSI
SEZ
SOH
SLH
SDZ
MISO
* SCK is shown for CKPOL = 0. SCK is the opposite polarity for CKPOL = 1.
Rev. 1.0
225
Description
Min
Max
Units
1 x TSYSCLK
ns
TMCKL
1 x TSYSCLK
ns
TMIS
1 x TSYSCLK + 20
ns
TMIH
ns
2 x TSYSCLK
ns
TSD
2 x TSYSCLK
ns
TSEZ
4 x TSYSCLK
ns
TSDZ
4 x TSYSCLK
ns
TCKH
5 x TSYSCLK
ns
TCKL
5 x TSYSCLK
ns
TSIS
2 x TSYSCLK
ns
TSIH
2 x TSYSCLK
ns
TSOH
4 x TSYSCLK
ns
TSLH
6 x TSYSCLK
8 x TSYSCLK
ns
Note: TSYSCLK is equal to one period of the device system clock (SYSCLK).
226
Rev. 1.0
Name
SPIBSY
MSTEN
CKPHA
CKPOL
SLVSEL
NSSIN
SRMT
RXBMT
Type
RW
RW
RW
Reset
Name
SPIBSY
Function
SPI Busy.
This bit is set to logic 1 when a SPI transfer is in progress (master or slave mode).
MSTEN
CKPHA
CKPOL
SLVSEL
NSSIN
SRMT
Note: In slave mode, data on MOSI is sampled in the center of each data bit. In master mode, data on MISO is sampled one
SYSCLK before the end of each data bit, to provide maximum settling time for the slave device.
Rev. 1.0
227
Name
RXBMT
Function
Receive Buffer Empty (valid in slave mode only).
This bit will be set to logic 1 when the receive buffer has been read and contains no new
information. If there is new information available in the receive buffer that has not been
read, this bit will return to logic 0. RXBMT = 1 when in Master Mode.
Note: In slave mode, data on MOSI is sampled in the center of each data bit. In master mode, data on MISO is sampled one
SYSCLK before the end of each data bit, to provide maximum settling time for the slave device.
228
Rev. 1.0
Name
SPIF
WCOL
MODF
RXOVRN
Type
RW
RW
RW
RW
Reset
NSSMD
TXBMT
SPIEN
RW
RW
Name
SPIF
Function
SPI0 Interrupt Flag.
This bit is set to logic 1 by hardware at the end of a data transfer. If SPI interrupts are
enabled, an interrupt will be generated. This bit is not automatically cleared by hardware,
and must be cleared by software.
WCOL
MODF
RXOVRN
3:2
NSSMD
TXBMT
Rev. 1.0
229
Name
SPIEN
Function
SPI0 Enable.
0: SPI disabled.
1: SPI enabled.
230
Rev. 1.0
Name
SPI0CKR
Type
RW
Reset
Name
7:0
SPI0CKR
Function
SPI0 Clock Rate.
These bits determine the frequency of the SCK output when the SPI0 module is configured for master mode operation. The SCK clock frequency is a divided version of the
system clock, and is given in the following equation, where SYSCLK is the system clock
frequency and SPI0CKR is the 8-bit value held in the SPI0CKR register.
SYSCLK
f SCK = ---------------------------------------------2 SPI0CKR + 1
Rev. 1.0
231
Name
SPI0DAT
Type
RW
Reset
Name
7:0
SPI0DAT
Function
SPI0 Transmit and Receive Data.
The SPI0DAT register is used to transmit and receive SPI0 data. Writing data to SPI0DAT places the data into the transmit buffer and initiates a transfer when in master mode.
A read of SPI0DAT returns the contents of the receive buffer.
232
Rev. 1.0
SMBus0
Data /
Address
SI
SMB0DAT
Shift Register
SDA
State Control
Logic
Slave Address
Recognition
SCL
Timers 0,
1 or 2
Timer 3
SCL Low
Rev. 1.0
233
VDD = 5V
VDD = 3V
VDD = 5V
VDD = 3V
Master
Device
Slave
Device 1
Slave
Device 2
SDA
SCL
234
Rev. 1.0
All transactions are initiated by a master, with one or more addressed slave devices as the target. The
master generates the START condition and then transmits the slave address and direction bit. If the
transaction is a WRITE operation from the master to the slave, the master transmits the data a byte at a
time waiting for an ACK from the slave at the end of each byte. For READ operations, the slave transmits
the data waiting for an ACK from the master at the end of each byte. At the end of the data transfer, the
master generates a STOP condition to terminate the transaction and free the bus. Figure 24.3 illustrates a
typical SMBus transaction.
SCL
SDA
SLA6
START
SLA5-0
R/W
D7
ACK
D6-0
Data Byte
NACK
STOP
Rev. 1.0
235
For the SMBus0 interface, Timer 3 is used to implement SCL low timeouts. The SCL low timeout feature is
enabled by setting the SMB0TOE bit in SMB0CF. The associated timer is forced to reload when SCL is
high, and allowed to count when SCL is low. With the associated timer enabled and configured to overflow
after 25 ms (and SMB0TOE set), the timer interrupt service routine can be used to reset (disable and reenable) the SMBus in the event of an SCL low timeout.
24.3.5. SCL High (SMBus Free) Timeout
The SMBus specification stipulates that if the SCL and SDA lines remain high for more that 50 s, the bus
is designated as free. When the SMB0FTE bit in SMB0CF is set, the bus will be considered free if SCL and
SDA remain high for more than 10 SMBus clock source periods (as defined by the timer configured for the
SMBus clock source). If the SMBus is waiting to generate a Master START, the START will be generated
following this timeout. A clock source is required for free timeout detection, even in a slave-only
implementation.
SMBus interrupts are generated for each data byte or slave address that is transferred. When hardware
acknowledgement is disabled, the point at which the interrupt is generated depends on whether the
hardware is acting as a data transmitter or receiver. When a transmitter (i.e., sending address/data,
receiving an ACK), this interrupt is generated after the ACK cycle so that software may read the received
ACK value; when receiving data (i.e., receiving address/data, sending an ACK), this interrupt is generated
before the ACK cycle so that software may define the outgoing ACK value. If hardware acknowledgement
is enabled, these interrupts are always generated after the ACK cycle. See Section 24.5 for more details
on transmission sequences.
Interrupts are also generated to indicate the beginning of a transfer when a master (START generated), or
the end of a transfer when a slave (STOP detected). Software should read the SMB0CN (SMBus Control
register) to find the cause of the SMBus interrupt. Table 24.5 provides a quick SMB0CN decoding
reference.
24.4.1. SMBus Configuration Register
The SMBus Configuration register (SMB0CF) is used to enable the SMBus Master and/or Slave modes,
select the SMBus clock source, and select the SMBus timing and timeout options. When the ENSMB bit is
set, the SMBus is enabled for all master and slave events. Slave events may be disabled by setting the
INH bit. With slave events inhibited, the SMBus interface will still monitor the SCL and SDA pins; however,
the interface will NACK all received addresses and will not generate any slave interrupts. When the INH bit
is set, all slave events will be inhibited following the next START (interrupts will continue for the duration of
the current transfer).
236
Rev. 1.0
00
Timer 0 Overflow
01
Timer 1 Overflow
10
11
The SMBCS bit field selects the SMBus clock source, which is used only when operating as a master or
when the Free Timeout detection is enabled. When operating as a master, overflows from the selected
source determine the absolute minimum SCL low and high times as defined in Equation 24.1.The selected
clock source may be shared by other peripherals so long as the timer is left running at all times.
1
T HighMin = T LowMin = --------------------------------------------f ClockSourceOverflow
Equation 24.1. Minimum SCL High and Low Times
The selected clock source should be configured to establish the minimum SCL High and Low times as per
Equation 24.1. When the interface is operating as a master (and SCL is not driven or extended by any
other devices on the bus), the typical SMBus bit rate is approximated by Equation 24.2.
f ClockSourceOverflow
BitRate = --------------------------------------------3
Equation 24.2. Typical SMBus Bit Rate
Figure 24.4 shows the typical SCL generation described by Equation 24.2. Notice that THIGH is typically
twice as large as TLOW. The actual SCL output may vary due to other devices on the bus (SCL may be
extended low by slower slave devices, or driven low by contending master devices). The bit rate when
operating as a master will never exceed the limits defined by equation Equation 24.1.
Timer Source
Overflows
SCL
TLow
THigh
Rev. 1.0
237
minimum setup and hold times for the two EXTHOLD settings. Setup and hold time extensions are
typically necessary for SMBus compliance when SYSCLK is above 10 MHz.
3 system clocks
11 system clocks
12 system clocks
Note: Setup Time for ACK bit transmissions and the MSB of all data transfers. When using software acknowledgment, the s/
w delay occurs between the time SMB0DAT or ACK is written and when SI0 is cleared. Note that if SI is cleared in the
same write that defines the outgoing ACK value, s/w delay is zero.
With the SMBTOE bit set, Timer 3 should be configured to overflow after 25 ms in order to detect SCL low
timeouts (see Section 24.3.4. SCL Low Timeout on page 235). The SMBus interface will force the
associated timer to reload while SCL is high, and allow the timer to count when SCL is low. The timer
interrupt service routine should be used to reset SMBus communication by disabling and re-enabling the
SMBus.
SMBus Free Timeout detection can be enabled by setting the SMBFTE bit. When this bit is set, the bus will
be considered free if SDA and SCL remain high for more than 10 SMBus clock source periods (see
Figure 24.4).
24.4.2. SMBus Pin Swap
The SMBus peripheral is assigned to pins using the priority crossbar decoder. By default, the SMBus
signals are assigned to port pins starting with SDA on the lower-numbered pin, and SCL on the next
available pin. The SWAP bit in the SMBTC register can be set to 1 to reverse the order in which the SMBus
signals are assigned.
24.4.3. SMBus Timing Control
The SDD field in the SMBTC register is used to restrict the detection of a START condition under certain
circumstances. In some systems where there is significant mismatch between the impedance or the
capacitance on the SDA and SCL lines, it may be possible for SCL to fall after SDA during an address or
data transfer. Such an event can cause a false START detection on the bus. These kind of events are not
expected in a standard SMBus or I2C-compliant system. In most systems this parameter should not be
adjusted, and it is recommended that it be left at its default value.
By default, if the SCL falling edge is detected after the falling edge of SDA (i.e. one SYSCLK cycle or
more), the device will detect this as a START condition. The SDD field is used to increase the amount of
hold time that is required between SDA and SCL falling before a START is recognized. An additional 2, 4,
or 8 SYSCLKs can be added to prevent false START detection in systems where the bus conditions
warrant this.
24.4.4. SMB0CN Control Register
SMB0CN is used to control the interface and to provide status information. The higher four bits of SMB0CN
(MASTER, TXMODE, STA, and STO) form a status vector that can be used to jump to service routines.
MASTER indicates whether a device is the master or slave during the current transfer. TXMODE indicates
whether the device is transmitting or receiving data for the current byte.
238
Rev. 1.0
STA and STO indicate that a START and/or STOP has been detected or generated since the last SMBus
interrupt. STA and STO are also used to generate START and STOP conditions when operating as a
master. Writing a 1 to STA will cause the SMBus interface to enter Master Mode and generate a START
when the bus becomes free (STA is not cleared by hardware after the START is generated). Writing a 1 to
STO while in Master Mode will cause the interface to generate a STOP and end the current transfer after
the next ACK cycle. If STO and STA are both set (while in Master Mode), a STOP followed by a START will
be generated.
The ARBLOST bit indicates that the interface has lost an arbitration. This may occur anytime the interface
is transmitting (master or slave). A lost arbitration while operating as a slave indicates a bus error
condition. ARBLOST is cleared by hardware each time SI is cleared.
The SI bit (SMBus Interrupt Flag) is set at the beginning and end of each transfer, after each byte frame, or
when an arbitration is lost; see Table 24.3 for more details.
Important Note About the SI Bit: The SMBus interface is stalled while SI is set; thus SCL is held low, and
the bus is stalled until software clears SI.
24.4.4.1. Software ACK Generation
When the EHACK bit in register SMB0ADM is cleared to 0, the firmware on the device must detect
incoming slave addresses and ACK or NACK the slave address and incoming data bytes. As a receiver,
writing the ACK bit defines the outgoing ACK value; as a transmitter, reading the ACK bit indicates the
value received during the last ACK cycle. ACKRQ is set each time a byte is received, indicating that an
outgoing ACK value is needed. When ACKRQ is set, software should write the desired outgoing value to
the ACK bit before clearing SI. A NACK will be generated if software does not write the ACK bit before
clearing SI. SDA will reflect the defined ACK value immediately following a write to the ACK bit; however
SCL will remain low until SI is cleared. If a received slave address is not acknowledged, further slave
events will be ignored until the next START is detected.
24.4.4.2. Hardware ACK Generation
When the EHACK bit in register SMB0ADM is set to 1, automatic slave address recognition and ACK
generation is enabled. More detail about automatic slave address recognition can be found in Section
24.4.5. As a receiver, the value currently specified by the ACK bit will be automatically sent on the bus
during the ACK cycle of an incoming data byte. As a transmitter, reading the ACK bit indicates the value
received on the last ACK cycle. The ACKRQ bit is not used when hardware ACK generation is enabled. If
a received slave address is NACKed by hardware, further slave events will be ignored until the next
START is detected, and no interrupt will be generated.
Table 24.3 lists all sources for hardware changes to the SMB0CN bits. Refer to Table 24.5 for SMBus
status decoding using the SMB0CN register.
START is generated.
START
TXMODE
STA
STO
is generated.
is written before the start of an
SMBus frame.
SMB0DAT
Rev. 1.0
STOP is generated.
Arbitration is lost.
A START is detected.
Arbitration is lost.
SMB0DAT is not written before the
start of an SMBus frame.
Must be cleared by software.
A
239
ACKRQ
ARBLOST
ACK
SI
After
Each
The
GC bit
SLV
SLVM
0x34
0x7F
0x34
0x34
0x7F
0x34
0x7E
0x34, 0x35
240
Rev. 1.0
GC bit
SLV
SLVM
0x34
0x7E
0x70
0x73
Rev. 1.0
241
SLA
Data Byte
Data Byte
Received by SMBus
Interface
Transmitted by
SMBus Interface
242
Rev. 1.0
SLA
Data Byte
Data Byte
Received by SMBus
Interface
Transmitted by
SMBus Interface
Rev. 1.0
243
SLA
Data Byte
Data Byte
Received by SMBus
Interface
Transmitted by
SMBus Interface
244
Rev. 1.0
SLA
Data Byte
Data Byte
Received by SMBus
Interface
Transmitted by
SMBus Interface
Rev. 1.0
245
Vector
ACKRQ
ARBLOST
STA
STO
0 X
1100
0 X
1110
Abort transfer.
1 X
0 X
1100
1 X
1 X
0 X
1110
0 X
1000
1000
1110
1110
1110
1100
0
1000
246
0 X
ACK
ACK
Status
Mode
Master Transmitter
Master Receiver
1110
Next Status
Values to
Write
Values Read
Vector Expected
Rev. 1.0
1100
1100
ARBLOST
ACK
STA
STO
0101
ACKRQ
0
0 X
0001
0 X
0100
1 X
0 X
0001
0 X
0000
0100
0000
0
If Read, Load SMB0DAT with
data byte; ACK received address
0100
1110
0 X
0000
Clear STO.
If Write, Acknowledge received
address
0 X
Slave Receiver
0010
1 X
0001
0000
ACK
Vector
Status
Mode
Slave Transmitter
0100
Next Status
Values to
Write
Values Read
Vector Expected
Table 24.5. SMBus Status Decoding: Hardware ACK Disabled (EHACK = 0) (Continued)
Rev. 1.0
247
Vector
ACKRQ
ARBLOST
1 X
0001
1 X
0000
1 X
STA
STO
ACK
ACK
Status
Mode
Bus Error Condition
0010
Next Status
Values to
Write
Values Read
Vector Expected
Table 24.5. SMBus Status Decoding: Hardware ACK Disabled (EHACK = 0) (Continued)
0 X
0 X
1110
0 X
0 X
1110
1110
ACKRQ
ARBLOST
1100
0
STO
STA
0 X
1100
0 X
1110
Abort transfer.
1 X
0 X
1100
1 X
1 X
0 X
1110
1000
248
Rev. 1.0
ACK
ACK
Vector
Status
Mode
Master Transmitter
1110
Next Status
Values to
Write
Values Read
Vector Expected
Values to
Write
STA
STO
ACK
Next Status
1000
1000
1110
0 X
1100
1110
1110
0 X
1100
ACK
ARBLOST
ACKRQ
Vector
Status
Mode
Values Read
Master Receiver
1000
Slave Transmitter
0100
0101
Vector Expected
Table 24.6. SMBus Status Decoding: Hardware ACK Enabled (EHACK = 1) (Continued)
0 X
0001
0 X
0100
1 X
0 X
0001
0 X
Clear STO.
Rev. 1.0
249
Values to
Write
ACKRQ
ARBLOST
STA
STO
ACK
Next Status
0000
0 X
0100
0000
0 X
0100
0 X
1110
0 X
0000
0000
0 X
0 X
1110
0 X
0 X
1110
0 X
0 X
1110
ACK
Vector
Status
Mode
Values Read
Slave Receiver
0010
0
0010
0001
0000
250
1 X
1 X
0001
0000
Vector Expected
Table 24.6. SMBus Status Decoding: Hardware ACK Enabled (EHACK = 1) (Continued)
1 X
1 X
1 X
Rev. 1.0
Clear STO.
Name
ENSMB
INH
BUSY
EXTHOLD
SMBTOE
SMBFTE
SMBCS
Type
RW
RW
RW
RW
RW
RW
Reset
Name
ENSMB
Function
SMBus0 Enable.
This bit enables the SMBus0 interface when set to 1. When enabled, the interface constantly monitors the SDA and SCL pins.
INH
BUSY
EXTHOLD
SMBTOE
SMBFTE
Rev. 1.0
251
Name
1:0
SMBCS
Function
SMBus0 Clock Source Selection.
These two bits select the SMBus0 clock source, which is used to generate the SMBus0
bit rate. See the SMBus clock timing section for additional details.
00: Timer 0 Overflow
01: Timer 1 Overflow
10: Timer 2 High Byte Overflow
11: Timer 2 Low Byte Overflow
252
Rev. 1.0
Name
SWAP
Reserved
SDD
Type
RW
RW
Reset
Name
SWAP
Function
SMBus0 Swap Pins.
This bit swaps the order of the SMBus0 pins on the crossbar.
0: SDA is mapped to the lower-numbered port pin, and SCL is mapped to the highernumbered port pin.
1: SCL is mapped to the lower-numbered port pin, and SDA is mapped to the highernumbered port pin.
6:2
Reserved
1:0
SDD
Rev. 1.0
253
Name
MASTER
TXMODE
STA
STO
ACKRQ
ARBLOST
ACK
SI
Type
RW
RW
RW
RW
Reset
Name
MASTER
Function
SMBus0 Master/Slave Indicator.
This read-only bit indicates when the SMBus0 is operating as a master.
0: SMBus0 operating in slave mode.
1: SMBus0 operating in master mode.
TXMODE
STA
STO
ACKRQ
ARBLOST
ACK
SMBus0 Acknowledge.
When read as a master, the ACK bit indicates whether an ACK (1) or NACK (0) is
received during the most recent byte transfer.
As a slave, this bit should be written to send an ACK (1) or NACK (0) to a master
request. Note that the logic level of the ACK bit on the SMBus interface is inverted from
the logic of the register ACK bit.
254
Rev. 1.0
Name
SI
Function
SMBus0 Interrupt Flag.
This bit is set by hardware to indicate that the current SMBus0 state machine operation
(such as writing a data or address byte) is complete. While SI is set, SCL0 is held low
and SMBus0 is stalled. SI0 must be cleared by software. Clearing SI0 initiates the next
SMBus0 state machine operation.
Rev. 1.0
255
Name
SLV
GC
Type
RW
RW
Reset
Name
7:1
SLV
Function
SMBus Hardware Slave Address.
Defines the SMBus0 Slave Address(es) for automatic hardware acknowledgement. Only
address bits which have a 1 in the corresponding bit position in SLVM are checked
against the incoming address. This allows multiple addresses to be recognized.
GC
256
Rev. 1.0
Name
SLVM
EHACK
Type
RW
RW
Reset
Name
7:1
SLVM
Function
SMBus0 Slave Address Mask.
Defines which bits of register SMB0ADR are compared with an incoming address byte,
and which bits are ignored. Any bit set to 1 in SLVM enables comparisons with the corresponding bit in SLV. Bits set to 0 are ignored (can be either 0 or 1 in the incoming
address).
EHACK
Rev. 1.0
257
Name
SMB0DAT
Type
RW
Reset
Name
7:0
SMB0DAT
Function
SMBus0 Data.
The SMB0DAT register contains a byte of data to be transmitted on the SMBus0 serial
interface or a byte that has just been received on the SMBus0 serial interface. The CPU
can safely read from or write to this register whenever the SI serial interrupt flag is set to
logic 1. The serial data in the register remains stable as long as the SI flag is set. When
the SI flag is not set, the system may be in the process of shifting data in/out and the
CPU should not attempt to access this register.
258
Rev. 1.0
Timer 2 Modes
Timer 3 Modes
13-bit counter/timer
16-bit counter/timer
T0
Overflow
T1
Overflow
T2 High
Overflow
T2 Low
Overflow
T3 Low
Overflow
X
X
T3 High
Overflow
X
X
Rev. 1.0
259
T0
Overflow
T1
Overflow
T2 High
Overflow
T2 Low
Overflow
T3 High
Overflow
T3 Low
Overflow
X*
X*
X*
X*
*Note: The high-side overflow is used when the timer is in16-bit mode. The low-side overflow is used in 8-bit mode.
260
Rev. 1.0
Rev. 1.0
261
GATE0
INT0
Counter/Timer
Disabled
Enabled
Disabled
Enabled
Setting TR0 does not force the timer to reset. The timer registers should be loaded with the desired initial
value before the timer is enabled.
TL1 and TH1 form the 13-bit register for Timer 1 in the same manner as described above for TL0 and TH0.
Timer 1 is configured and controlled using the relevant TCON and TMOD bits just as with Timer 0. The
input signal INT1 is used with Timer 1; the /INT1 polarity is defined by bit IN1PL in register IT01CF.
T0M
Pre-scaled Clock
SYSCLK
CT0
1
T0
TCLK
TR0
TL0
(5 bits)
GATE0
INT0
IN0PL
XOR
262
Rev. 1.0
TH0
(8 bits)
TF0
(Interrupt Flag)
Rev. 1.0
263
Pre-scaled Clock
CT0
0
0
SYSCLK
1
1
T0
TCLK
TR0
TL0
(8 bits)
TF0
(Interrupt Flag)
GATE0
IN0PL
INT0
TH0
(8 bits)
XOR
264
Rev. 1.0
Reload
CT0
Pre-scaled Clock
0
TH0
(8 bits)
TR1
SYSCLK
TF1
(Interrupt Flag)
1
0
1
T0
TCLK
TR0
TL0
(8 bits)
GATE0
IN0PL
INT0
TF0
(Interrupt Flag)
XOR
Rev. 1.0
265
YSCLK / 12
TnML
TFnL
Overflow
0
0
TCLK / 8
SYSCLK
TRn
1
TCLK
TMRnL
TMRnH
TFnH
Overflow
TFnLEN
TMRnRLL TMRnRLH
Reload
266
Rev. 1.0
Inter
TnXCLK
0
1
TnML
TnXCLK
SYSCLK / 12
SYSCLK / 12
External Clock / 8
External Clock / 8
SYSCLK
SYSCLK
The TFnH bit is set when TMRnH overflows from 0xFF to 0x00; the TFnL bit is set when TMRnL overflows
from 0xFF to 0x00. When timer interrupts are enabled, an interrupt is generated each time TMRnH
overflows. If timer interrupts are enabled and TFnLEN is set, an interrupt is generated each time either
TMRnL or TMRnH overflows. When TFnLEN is enabled, software must check the TFnH and TFnL flags to
determine the source of the timer interrupt. The TFnH and TFnL interrupt flags are not cleared by hardware
and must be manually cleared by software.
TnXCLK
TnMH
SYSCLK / 12
TMRnRLH
0
0
xternal Clock / 8
Reload
TCLK
TMRnH
TRn
TFnH
Overflow
Interrupt
SYSCLK
TMRnRLL
TnML
Reload
TFnLEN
1
TCLK
TMRnL
TFnL
Overflow
Rev. 1.0
267
0
0
External Clock / 8
SYSCLK
T2 Pin (Timer 2)
L-F Oscillator (Timer 3)
TCLK
TRn
1
TMRnL
TMRnH
Capture
TFnCEN
TMRnRLL TMRnRLH
268
Rev. 1.0
TFnH
(Interrupt)
Name
T3MH
T3ML
T2MH
T2ML
T1M
T0M
SCA
Type
RW
RW
RW
RW
RW
RW
RW
Reset
Name
T3MH
Function
Timer 3 High Byte Clock Select.
Selects the clock supplied to the Timer 3 high byte (split 8-bit timer mode only).
0: Timer 3 high byte uses the clock defined by the T3XCLK bit in TMR3CN.
1: Timer 3 high byte uses the system clock.
T3ML
T2MH
T2ML
T1M
T0M
Rev. 1.0
269
Name
1:0
SCA
Function
Timer 0/1 Prescale Bits.
These bits control the Timer 0/1 Clock Prescaler:
00: System clock divided by 12
01: System clock divided by 4
10: System clock divided by 48
11: External clock divided by 8 (synchronized with the system clock)
270
Rev. 1.0
Name
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
Type
RW
RW
RW
RW
RW
RW
RW
RW
Reset
Name
TF1
Function
Timer 1 Overflow Flag.
Set to 1 by hardware when Timer 1 overflows. This flag can be cleared by software but is
automatically cleared when the CPU vectors to the Timer 1 interrupt service routine.
TR1
TF0
TR0
IE1
External Interrupt 1.
This flag is set by hardware when an edge/level of type defined by IT1 is detected. It can
be cleared by software but is automatically cleared when the CPU vectors to the External
Interrupt 1 service routine in edge-triggered mode.
IT1
IE0
External Interrupt 0.
This flag is set by hardware when an edge/level of type defined by IT0 is detected. It can
be cleared by software but is automatically cleared when the CPU vectors to the External
Interrupt 0 service routine in edge-triggered mode.
IT0
Rev. 1.0
271
Name
GATE1
CT1
Type
RW
RW
Reset
T1M
GATE0
CT0
T0M
RW
RW
RW
RW
Name
GATE1
Function
Timer 1 Gate Control.
0: Timer 1 enabled when TR1 = 1 irrespective of INT1 logic level.
1: Timer 1 enabled only when TR1 = 1 and INT1 is active as defined by bit IN1PL in register IT01CF.
CT1
Counter/Timer 1 Select.
0: Timer Mode. Timer 1 increments on the clock defined by T1M in the CKCON register.
1: Counter Mode. Timer 1 increments on high-to-low transitions of an external pin (T1).
5:4
T1M
GATE0
CT0
Counter/Timer 0 Select.
0: Timer Mode. Timer 0 increments on the clock defined by T0M in the CKCON register.
1: Counter Mode. Timer 0 increments on high-to-low transitions of an external pin (T0).
1:0
T0M
272
Rev. 1.0
Name
TL0
Type
RW
Reset
Name
7:0
TL0
Function
Timer 0 Low Byte.
The TL0 register is the low byte of the 16-bit Timer 0.
Rev. 1.0
273
Name
TL1
Type
RW
Reset
Name
7:0
TL1
Function
Timer 1 Low Byte.
The TL1 register is the low byte of the 16-bit Timer 1.
274
Rev. 1.0
Name
TH0
Type
RW
Reset
Name
7:0
TH0
Function
Timer 0 High Byte.
The TH0 register is the high byte of the 16-bit Timer 0.
Rev. 1.0
275
Name
TH1
Type
RW
Reset
Name
7:0
TH1
Function
Timer 1 High Byte.
The TH1 register is the high byte of the 16-bit Timer 1.
276
Rev. 1.0
Name
TF2H
TF2L
TF2LEN
TF2CEN
T2SPLIT
TR2
Reserved
T2XCLK
Type
RW
RW
RW
RW
RW
RW
RW
Reset
Name
TF2H
Function
Timer 2 High Byte Overflow Flag.
Set by hardware when the Timer 2 high byte overflows from 0xFF to 0x00. In 16 bit
mode, this will occur when Timer 2 overflows from 0xFFFF to 0x0000. When the Timer 2
interrupt is enabled, setting this bit causes the CPU to vector to the Timer 2 interrupt service routine. This bit is not automatically cleared by hardware.
TF2L
TF2LEN
TF2CEN
T2SPLIT
TR2
Reserved
Rev. 1.0
277
Name
T2XCLK
Function
Timer 2 External Clock Select.
This bit selects the external clock source for Timer 2. If Timer 2 is in 8-bit mode, this bit
selects the external oscillator clock source for both timer bytes. However, the Timer 2
Clock Select bits (T2MH and T2ML in register CKCON) may still be used to select
between the external clock and the system clock for either timer.
0: Timer 2 clock is the system clock divided by 12.
1: Timer 2 clock is the external clock divided by 8 (synchronized with SYSCLK).
278
Rev. 1.0
Name
TMR2RLL
Type
RW
Reset
Name
7:0
TMR2RLL
Function
Timer 2 Reload Low Byte.
When operating in one of the auto-reload modes, TMR2RLL holds the reload value for
the low byte of Timer 2 (TMR2L). When operating in capture mode, TMR2RLL is the captured value of TMR2L.
Rev. 1.0
279
Name
TMR2RLH
Type
RW
Reset
Name
7:0
TMR2RLH
Function
Timer 2 Reload High Byte.
When operating in one of the auto-reload modes, TMR2RLH holds the reload value for
the high byte of Timer 2 (TMR2H). When oeprating in capture mode, TMR2RLH is the
captured value of TMR2H.
280
Rev. 1.0
Name
TMR2L
Type
RW
Reset
Name
7:0
TMR2L
Function
Timer 2 Low Byte.
In 16-bit mode, the TMR2L register contains the low byte of the 16-bit Timer 2. In 8-bit
mode, TMR2L contains the 8-bit low byte timer value.
Rev. 1.0
281
Name
TMR2H
Type
RW
Reset
Name
7:0
TMR2H
Function
Timer 2 High Byte.
In 16-bit mode, the TMR2H register contains the high byte of the 16-bit Timer 2. In 8-bit
mode, TMR2H contains the 8-bit high byte timer value.
282
Rev. 1.0
Name
TF3H
TF3L
TF3LEN
TF3CEN
T3SPLIT
TR3
Reserved
T3XCLK
Type
RW
RW
RW
RW
RW
RW
RW
Reset
Name
TF3H
Function
Timer 3 High Byte Overflow Flag.
Set by hardware when the Timer 3 high byte overflows from 0xFF to 0x00. In 16-bit
mode, this will occur when Timer 3 overflows from 0xFFFF to 0x0000. When the Timer 3
interrupt is enabled, setting this bit causes the CPU to vector to the Timer 3 interrupt service routine. This bit is not automatically cleared by hardware.
TF3L
TF3LEN
TF3CEN
T3SPLIT
TR3
Reserved
Rev. 1.0
283
Name
T3XCLK
Function
Timer 3 External Clock Select.
This bit selects the external clock source for Timer 3. If Timer 3 is in 8-bit mode, this bit
selects the external oscillator clock source for both timer bytes. However, the Timer 3
Clock Select bits (T3MH and T3ML in register CKCON) may still be used to select
between the external clock and the system clock for either timer.
0: Timer 3 clock is the system clock divided by 12.
1: Timer 3 clock is the external clock divided by 8 (synchronized with SYSCLK).
284
Rev. 1.0
Name
TMR3RLL
Type
RW
Reset
Name
7:0
TMR3RLL
Function
Timer 3 Reload Low Byte.
When operating in one of the auto-reload modes, TMR3RLL holds the reload value for
the low byte of Timer 3 (TMR3L). When operating in capture mode, TMR3RLL is the captured value of TMR3L.
Rev. 1.0
285
Name
TMR3RLH
Type
RW
Reset
Name
7:0
TMR3RLH
Function
Timer 3 Reload High Byte.
When operating in one of the auto-reload modes, TMR3RLH holds the reload value for
the high byte of Timer 3 (TMR3H). When oeprating in capture mode, TMR3RLH is the
captured value of TMR3H.
286
Rev. 1.0
Name
TMR3L
Type
RW
Reset
Name
7:0
TMR3L
Function
Timer 3 Low Byte.
In 16-bit mode, the TMR3L register contains the low byte of the 16-bit Timer 3. In 8-bit
mode, TMR3L contains the 8-bit low byte timer value.
Rev. 1.0
287
Name
TMR3H
Type
RW
Reset
Name
7:0
TMR3H
Function
Timer 3 High Byte.
In 16-bit mode, the TMR3H register contains the high byte of the 16-bit Timer 3. In 8-bit
mode, TMR3H contains the 8-bit high byte timer value.
288
Rev. 1.0
U A R T0
TI, R I
Interrupts
TB8
(9 th bit)
O utput Shift
R egister
Control /
C onfiguration
Baud R ate
G enerator
(Tim er 1)
TX
SB UF (8 LSBs)
TX C lk
R X C lk
Input Shift
R egister
R B8
(9 th bit)
RX
STAR T
D etection
Rev. 1.0
289
TX Clock
RX Clock
TH1
START
Detection
RX Timer
1
UartBaudRate = --- T1_Overflow_Rate
2
Equation 26.1. UART0 Baud Rate
Timer 1 overflow rate is selected as described in the Timer section. A quick reference for typical baud rates
and system clock frequencies is given in Table 26.1.
290
Rev. 1.0
START
BIT
D0
D1
D2
D3
D4
D5
D6
D7
STOP
BIT
BIT TIMES
BIT SAMPLING
Rev. 1.0
291
START
BIT
D0
D1
D2
D3
D4
D5
D6
BIT TIMES
BIT SAMPLING
292
Rev. 1.0
D7
D8
STOP
BIT
Master
Device
Slave
Device
Slave
Device
Slave
Device
V+
RX
TX
RX
TX
RX
TX
RX
TX
Rev. 1.0
293
Table 26.1. Timer Settings for Standard Baud Rates Using the Internal 24.5 MHz Oscillator
Internal Osc.
SYSCLK from
Frequency: 49 MHz
Oscillator Timer Clock
Source
Divide
Factor
SCA1SCA0
(pre-scale
select)1
T1M1
Timer 1
Reload
Value (hex)
SYSCLK
XX2
0xCB
212
SYSCLK
XX
0x96
0.15%
426
SYSCLK
XX
0x2B
28800
0.32%
848
SYSCLK/4
01
0x96
14400
0.15%
1704
SYSCLK/12
00
0xB9
9600
0.32%
2544
SYSCLK/12
00
0x96
2400
0.32%
10176
SYSCLK/48
10
0x96
1200
0.15%
20448
SYSCLK/48
10
0x2B
Target
Baud Rate
(bps)
Baud Rate
% Error
230400
0.32%
106
115200
0.32%
57600
Notes:
1. SCA1SCA0 and T1M bit definitions can be found in Timer1 chapter.
2. X = Dont care.
294
Rev. 1.0
Name
SMODE
Reserved
MCE
REN
TB8
RB8
TI
RI
Type
RW
RW
RW
RW
RW
RW
RW
Reset
Name
SMODE
Function
Serial Port 0 Operation Mode.
Selects the UART0 Operation Mode.
0: 8-bit UART with Variable Baud Rate (Mode 0).
1: 9-bit UART with Variable Baud Rate (Mode 1).
Reserved
MCE
REN
Receive Enable.
0: UART0 reception disabled.
1: UART0 reception enabled.
TB8
RB8
TI
Rev. 1.0
295
Name
RI
Function
Receive Interrupt Flag.
Set to 1 by hardware when a byte of data has been received by UART0 (set at the STOP
bit sampling time). When the UART0 interrupt is enabled, setting this bit to 1 causes the
CPU to vector to the UART0 interrupt service routine. This bit must be cleared manually
by software.
296
Rev. 1.0
Name
SBUF0
Type
RW
Reset
Name
7:0
SBUF0
Function
Serial Data Buffer Bits.
This SFR accesses two registers: a transmit shift register and a receive latch register.
When data is written to SBUF0, it goes to the transmit shift register and is held for serial
transmission. Writing a byte to SBUF0 initiates the transmission. A read of SBUF0
returns the contents of the receive latch.
Rev. 1.0
297
Watchdog Timer
Lock and Key
Watchdog Timer
LFOSC0
Watchdog
Reset
Timeout Interval
298
Rev. 1.0
The writes of 0xDE and 0xAD must occur within 4 clock cycles of each other, or the disable operation is
ignored. Interrupts should be disabled during this procedure to avoid delay between the two writes.
T LFOSC 4 WDTCN[2:0] + 3
This provides a nominal interval range of 0.8 ms to 13.1 s. WDTCN.7 must be logic 0 when setting this
interval. Reading WDTCN returns the programmed interval. WDTCN.[2:0] reads 111b after a system reset.
Rev. 1.0
299
Name
WDTCN
Type
RW
Reset
Name
7:0
WDTCN
Function
WDT Control.
The WDT control field has different behavior for reads and writes.
Read:
When reading the WDTCN register, the lower three bits (WDTCN[2:0]) indicate the current timeout interval. Bit WDTCN.4 indicates whether the WDT is active (logic 1) or inactive (logic 0).
Write:
Writing the WDTCN register can set the timeout interval, enable the WDT, disable the
WDT, reset the WDT, or lock the WDT to prevent disabling.
Writing to WDTCN with the MSB (WDTCN.7) cleared to 0 will set the timeout interval to
the value in bits WDTCN[2:0].
Writing 0xA5 both enables and reloads the WDT.
Writing 0xDE followed within 4 system clocks by 0xAD disables the WDT.
Writing 0xFF locks out the disable feature until the next device reset.
300
Rev. 1.0
e3
C8051F850
1342C00000
This character identifies the
device revision
Rev. 1.0
301
F850
C000
342+
This first character identifies
the device revision
Figure 28.2. QFN-20 Package Revision Marking
e3
C8051F860
1342C00000
This character identifies the
device revision
302
Rev. 1.0
Symbol
Test Condition
Min
Typ
Max
Unit
Offset
VOFF
TA = 0 C
713
mV
Slope
2.67
mV/C
757
mV
2.85
mV/C
Revision B
Revision C
Offset
VOFF
Slope
TA = 0 C
Firmware that uses the slope and offset of the temperature sensor to calculate the temperature from the
sensor ADC reading can detect the revision of the device by reading the REVID register and adjust the
slope and offset calculations based on the result. A REVID value of 0x01 indicates a Revision B device,
and a REVID value of 0x02 indicates a Revision C device.
Rev. 1.0
303
29. C2 Interface
C8051F85x/86x devices include an on-chip Silicon Labs 2-Wire (C2) debug interface to allow flash
programming and in-system debugging with the production part installed in the end application. The C2
interface uses a clock signal (C2CK) and a bi-directional C2 data signal (C2D) to transfer information
between the device and a host system. Details on the C2 protocol can be found in the C2 Interface
Specification.
C8051Fxxx
/Reset (a)
C2CK
Input (b)
C2D
Output (c)
C2 Interface Master
Figure 29.1. Typical C2 Pin Sharing
The configuration in Figure 29.1 assumes the following:
1. The user input (b) cannot change state while the target device is halted.
2. The RST pin on the target device is used as an input only.
Additional resistors may be necessary depending on the specific application.
304
Rev. 1.0
Name
C2ADD
Type
RW
Reset
Name
7:0
C2ADD
Function
C2 Address.
The C2ADD register is accessed via the C2 interface. The value written to C2ADD
selects the target data register for C2 Data Read and Data Write commands.
0x00: C2DEVID
0x01: C2REVID
0x02: C2FPCTL
0xB4: C2FPDAT
Rev. 1.0
305
Name
C2DEVID
Type
Reset
C2 Address: 0x00
Name
7:0
C2DEVID
Function
Device ID.
This read-only register returns the 8-bit device ID: 0x30 (C8051F85x/86x).
306
Rev. 1.0
Name
C2REVID
Type
Reset
C2 Address: 0x01
Name
7:0
C2REVID
Function
Revision ID.
This read-only register returns the 8-bit revision ID. For example: 0x00 = Revision A,
0x01 = Revision B and 0x02 = Revision C.
Rev. 1.0
307
Name
C2FPCTL
Type
RW
Reset
C2 Address: 0x02
Name
7:0
C2FPCTL
Function
Flash Programming Control Register.
This register is used to enable flash programming via the C2 interface. To enable C2
flash programming, the following codes must be written in order: 0x02, 0x01. Note that
once C2 flash programming is enabled, a system reset must be issued to resume normal
operation.
308
Rev. 1.0
Name
C2FPDAT
Type
RW
Reset
C2 Address: 0xB4
Name
7:0
C2FPDAT
Function
C2 Flash Programming Data Register.
This register is used to pass flash commands, addresses, and data during C2 flash
accesses. Valid commands are listed below.
0x03: Device Erase
0x06: Flash Block Read
0x07: Flash Block Write
0x08: Flash Page Erase
Rev. 1.0
309
Updated Reset Delay from non-POR source typical specification in Table 1.3.
Removed VDD Ramp Time maximum specification in Table 1.3.
Updated Flash Memory Erase Time specification and added Note 2 to Table 1.4.
Updated maximum ADC DC performance specifications in Table 1.7.
Updated minimum and maximum ADC offset error and slope error specifications in Table 1.7.
Updated conditions on Internal Fast Settling Reference Output Voltage (Full Temperature and Supply
Range) in Table 1.8.
Added a new section "1.2.3. Port I/O Output Drive" on page 21.
Updated pinout Figure 3.1, Figure 3.2, Figure 3.3, Table 3.1, Table 3.2, and Table 3.3 titles to the
correct part numbers.
Updated the Ordering Information ("4. Ordering Information" on page 42.) for Revision C devices.
Added mention of the unique identifier to "8. Memory Organization" on page 52.
Added unique identifier information to "11. Device Identification and Unique Identifier" on page 68.
Updated device part numbers listed in Table 11.3, DERIVID Register Bit Descriptions, on page 70 to
include the revision.
Added "28. Revision-Specific Behavior" on page 301.
Updated Digital Core, ADC, and Temperature Sensor electrical specifications information for -I devices.
Updated -I part number information in "4. Ordering Information" on page 42.
Replaced reference to AMX0P and AMX0N with ADC0MX in Table 21.1, Port I/O Assignment for
Analog Functions, on page 186.
Added a note to Table 1.13, Absolute Maximum Ratings, on page 22 and added a link to the Quality
and Reliability Monitor Report.
Added Operating Junction Temperature to Table 1.13, Absolute Maximum Ratings, on page 22.
Updated all TBDs in "1. Electrical Specifications" on page 8.
310
Rev. 1.0
Simplicity Studio
One-click access to MCU and
wireless tools, documentation,
software, source code libraries &
more. Available for Windows,
Mac and Linux!
IoT Portfolio
www.silabs.com/IoT
SW/HW
Quality
www.silabs.com/simplicity
www.silabs.com/quality
community.silabs.com
Disclaimer
Silicon Laboratories intends to provide customers with the latest, accurate, and in-depth documentation of all peripherals and modules available for system and software implementers
using or intending to use the Silicon Laboratories products. Characterization data, available modules and peripherals, memory sizes and memory addresses refer to each specific
device, and "Typical" parameters provided can and do vary in different applications. Application examples described herein are for illustrative purposes only. Silicon Laboratories
reserves the right to make changes without further notice and limitation to product information, specifications, and descriptions herein, and does not give warranties as to the accuracy
or completeness of the included information. Silicon Laboratories shall have no liability for the consequences of use of the information supplied herein. This document does not imply
or express copyright licenses granted hereunder to design or fabricate any integrated circuits. The products must not be used within any Life Support System without the specific
written consent of Silicon Laboratories. A "Life Support System" is any product or system intended to support or sustain life and/or health, which, if it fails, can be reasonably expected
to result in significant personal injury or death. Silicon Laboratories products are generally not intended for military applications. Silicon Laboratories products shall under no
circumstances be used in weapons of mass destruction including (but not limited to) nuclear, biological or chemical weapons, or missiles capable of delivering such weapons.
Trademark Information
Silicon Laboratories Inc., Silicon Laboratories, Silicon Labs, SiLabs and the Silicon Labs logo, CMEMS, EFM, EFM32, EFR, Energy Micro, Energy Micro logo and combinations
thereof, "the worlds most energy friendly microcontrollers", Ember, EZLink, EZMac, EZRadio, EZRadioPRO, DSPLL, ISOmodem , Precision32, ProSLIC, SiPHY,
USBXpress and others are trademarks or registered trademarks of Silicon Laboratories Inc. ARM, CORTEX, Cortex-M3 and THUMB are trademarks or registered trademarks of
ARM Holdings. Keil is a registered trademark of ARM Limited. All other products or brand names mentioned herein are trademarks of their respective holders.
http://www.silabs.com