电子工程世界电子工程世界电子工程世界

产品描述

搜索
 

C8051F714-GQR

器件型号:C8051F714-GQR
器件类别:半导体    嵌入式处理器和控制器   
文件大小:39619.3KB,共39页
厂商名称:Silicon Laboratories Inc
标准:
下载文档

器件描述

IC MCU 8BIT 8KB FLASH 48TQFP

参数
产品属性属性值
核心处理器:8051
核心尺寸:8-位
速度:25MHz
连接性:SMBus(2 线/I²C),SPI,UART/USART
外设:电容感应,POR,PWM,温度传感器,WDT
I/O 数:39
程序存储容量:8KB(8K x 8)
程序存储器类型:闪存
EEPROM 容量:-
RAM 容量:512 x 8
电压 - 电源(Vcc/Vdd):1.8 V ~ 3.6 V
数据转换器:A/D 12x10b
振荡器类型:内部
工作温度:-40°C ~ 85°C(TA)
封装/外壳:48-TQFP
供应商器件封装:48-QFP(7x7)

C8051F714-GQR器件文档内容

Capacitance to Digital Converter                                    C8051F70x/71x
- Supports buttons, sliders, wheels, capacitive prox-
                                                             Mixed Signal ISP Flash MCU Family
      imity, and touch screen sensing
- Up to 38 input channels                               High-Speed 8051 �C Core
- Fast 40 �s per channel conversion time                - Pipelined instruction architecture; executes 70% of
- 12, 13, 14, or 16-bit output
- Auto-scan and wake-on-touch                                 instructions in 1 or 2 system clocks
- Auto-accumulate 4, 8, 16, 32, or 64 samples           - Up to 25 MIPS throughput with 25 MHz clock
10-Bit Analog to Digital Converter                      - Expanded interrupt handler
- Up to 500 ksps                                        Memory
- Up to 16 external single-ended inputs                 - 512 bytes internal data RAM (256 + 256)
- VREF from on-chip VREF, external pin or VDD           - Up to 16 kB Flash; In-system programmable in 512-
- Internal or external start of conversion source
- Built-in temperature sensor                                 byte Sectors
Analog Comparator                                       - Up to 32-byte data EEPROM
- Programmable hysteresis and response time             Digital Peripherals
- Configurable as interrupt or reset source             - Up to 54 Port I/O with high sink current
On-Chip Debug                                           - Hardware enhanced UART, SMBusTM (I2C compati-
- On-chip debug circuitry facilitates full speed, non-
                                                              ble), and enhanced SPITM serial ports
      intrusive in-system debug (no emulator required)  - Four general purpose 16-bit counter/timers
- Provides breakpoints, single stepping,                - 16-Bit programmable counter array (PCA) with 3

      inspect/modify memory and registers                     capture/compare modules and enhanced PWM
- Superior performance to emulation systems using             functionality
                                                        - Real time clock mode using timer and crystal
      ICE-chips, target pods, and sockets               Clock Sources
- Low cost, complete development kit                    - 24.5 MHz �2% Oscillator Supports crystal-less
Supply Voltage 1.8 to 3.6 V                                   UART operation
- Built-in voltage supply monitor                       - External oscillator: Crystal, RC, C, or clock
                                                              (1 or 2 pin modes)
                                                        - Can switch between clock sources on-the-fly; useful
                                                              in power saving modes
                                                        64-Pin TQFP, 48-Pin TQFP, 48-Pin QFN,
                                                        32-Pin QFN, 24-Pin QFN
                                                        Temperature Range: �40 to +85 �C

                      ANALOG                            DIGITAL I/O
                  PERIPHERALS
                                                        UART                           Port 0

               A      10-bit TEMP                       SMBus    CROSSBAR              Port 1
               M  500 ksps SENSOR                                     Ext. Memory I/F
               U                                          SPI                           Port 2
                  ADC                                     PCA                           Port 3
               X                                        Timer 0                         Port 4
                                                        Timer 1                         Port 5
                              +                         Timer 2                        Port 6.0
                                                        Timer 3                         � 6.5
                  Capacitive       �
                    Sense
                                 VOLTAGE
                              COMPARATOR

                  24.5 MHz PRECISION INTERNAL OSCILLATOR

                  HIGH-SPEED CONTROLLER CORE

                    16 kB      8051 CPU                            512 B RAM
                ISP FLASH      (25 MIPS)                         32 B EEPROM
                 FLEXIBLE       DEBUG
               INTERRUPTS     CIRCUITRY                          POR WDT

Rev. 1.0 7/10     Copyright � 2010 by Silicon Laboratories                                       C8051F70x/71x
C8051F70x/71x

2              Rev. 1.0
                                                 C8051F70x/71x

Table of Contents

1. System Overview ..................................................................................................... 17
2. Ordering Information ............................................................................................... 26
3. Pin Definitions.......................................................................................................... 28
4. TQFP-64 Package Specifications ........................................................................... 37
5. TQFP-48 Package Specifications ........................................................................... 39
6. QFN-48 Package Specifications ............................................................................. 41
7. QFN-32 Package Specifications ............................................................................. 43
8. QFN-24 Package Specifications ............................................................................. 45
9. Electrical Characteristics ........................................................................................ 47

    9.1. Absolute Maximum Specifications..................................................................... 47
    9.2. Electrical Characteristics ................................................................................... 48
10. 10-Bit ADC (ADC0) ................................................................................................. 55
    10.1. Output Code Formatting .................................................................................. 56
    10.2. 8-Bit Mode ....................................................................................................... 56
    10.3. Modes of Operation ......................................................................................... 56

         10.3.1. Starting a Conversion.............................................................................. 56
         10.3.2. Tracking Modes....................................................................................... 57
         10.3.3. Settling Time Requirements.................................................................... 58
    10.4. Programmable Window Detector..................................................................... 62
         10.4.1. Window Detector Example...................................................................... 64
    10.5. ADC0 Analog Multiplexer ................................................................................ 65
11. Temperature Sensor .............................................................................................. 67
    11.1. Calibration ....................................................................................................... 67
12. Voltage and Ground Reference Options.............................................................. 69
    12.1. External Voltage References........................................................................... 70
    12.2. Internal Voltage Reference Options ................................................................ 70
    12.3. Analog Ground Reference............................................................................... 70
    12.4. Temperature Sensor Enable ........................................................................... 70
13. Voltage Regulator (REG0) ..................................................................................... 72
14. Comparator0........................................................................................................... 74
    14.1. Comparator Multiplexer ................................................................................... 78
15. Capacitive Sense (CS0) ......................................................................................... 80
    15.1. Configuring Port Pins as Capacitive Sense Inputs .......................................... 81
    15.2. CS0 Gain Adjustment ...................................................................................... 81
    15.3. Capacitive Sense Start-Of-Conversion Sources ............................................. 81
    15.4. Automatic Scanning......................................................................................... 83
    15.5. CS0 Comparator.............................................................................................. 84
    15.6. CS0 Conversion Accumulator ......................................................................... 85
    15.7. CS0 Pin Monitor .............................................................................................. 86
    15.8. Adjusting CS0 For Special Situations.............................................................. 87
    15.9. Capacitive Sense Multiplexer .......................................................................... 96
16. CIP-51 Microcontroller........................................................................................... 98
    16.1. Instruction Set.................................................................................................. 99

Rev. 1.0  3
C8051F70x/71x

         16.1.1. Instruction and CPU Timing .................................................................... 99
    16.2. CIP-51 Register Descriptions ........................................................................ 104
17. Memory Organization .......................................................................................... 108
    17.1. Program Memory........................................................................................... 109

         17.1.1. MOVX Instruction and Program Memory .............................................. 109
    17.2. EEPROM Memory ......................................................................................... 109
    17.3. Data Memory ................................................................................................. 109

         17.3.1. Internal RAM ......................................................................................... 109
             17.3.1.1. General Purpose Registers .......................................................... 110
             17.3.1.2. Bit Addressable Locations ............................................................ 110
             17.3.1.3. Stack .......................................................................................... 110

18. External Data Memory Interface and On-Chip XRAM ....................................... 111
    18.1. Accessing XRAM........................................................................................... 111
         18.1.1. 16-Bit MOVX Example .......................................................................... 111
         18.1.2. 8-Bit MOVX Example ............................................................................ 111
    18.2. Configuring the External Memory Interface ................................................... 112
    18.3. Port Configuration.......................................................................................... 112
    18.4. Multiplexed and Non-multiplexed Selection................................................... 115
         18.4.1. Multiplexed Configuration...................................................................... 115
         18.4.2. Non-multiplexed Configuration.............................................................. 116
    18.5. Memory Mode Selection................................................................................ 117
         18.5.1. Internal XRAM Only .............................................................................. 117
         18.5.2. Split Mode without Bank Select............................................................. 117
         18.5.3. Split Mode with Bank Select.................................................................. 118
         18.5.4. External Only......................................................................................... 118
    18.6. Timing .......................................................................................................... 118
         18.6.1. Non-Multiplexed Mode .......................................................................... 120
             18.6.1.1. 16-bit MOVX: EMI0CF[4:2] = 101, 110, or 111............................. 120
             18.6.1.2. 8-bit MOVX without Bank Select: EMI0CF[4:2] = 101 or 111 ....... 121
             18.6.1.3. 8-bit MOVX with Bank Select: EMI0CF[4:2] = 110 ....................... 122
         18.6.2. Multiplexed Mode .................................................................................. 123
             18.6.2.1. 16-bit MOVX: EMI0CF[4:2] = 001, 010, or 011............................. 123
             18.6.2.2. 8-bit MOVX without Bank Select: EMI0CF[4:2] = 001 or 011 ....... 124
             18.6.2.3. 8-bit MOVX with Bank Select: EMI0CF[4:2] = 010 ....................... 125

19. In-System Device Identification.......................................................................... 128
20. Special Function Registers................................................................................. 130
21. Interrupts .............................................................................................................. 137

    21.1. MCU Interrupt Sources and Vectors.............................................................. 138
         21.1.1. Interrupt Priorities.................................................................................. 138
         21.1.2. Interrupt Latency ................................................................................... 138

    21.2. Interrupt Register Descriptions ...................................................................... 140
    21.3. INT0 and INT1 External Interrupts................................................................. 146
22. Flash Memory....................................................................................................... 148
    22.1. Programming The Flash Memory .................................................................. 148

         22.1.1. Flash Lock and Key Functions .............................................................. 148

4              Rev. 1.0
          C8051F70x/71x

         22.1.2. Flash Erase Procedure ......................................................................... 148
         22.1.3. Flash Write Procedure .......................................................................... 149
    22.2. Non-volatile Data Storage ............................................................................. 149
    22.3. Security Options ............................................................................................ 149
    22.4. Flash Write and Erase Guidelines ................................................................. 150
         22.4.1. VDD Maintenance and the VDD Monitor .............................................. 151
         22.4.2. PSWE Maintenance .............................................................................. 151
         22.4.3. System Clock ........................................................................................ 152
23. EEPROM ............................................................................................................... 155
    23.1. RAM Reads and Writes ................................................................................. 155
    23.2. Auto Increment .............................................................................................. 155
    23.3. Interfacing with the EEPROM........................................................................ 155
    23.4. EEPROM Security ......................................................................................... 156
24. Power Management Modes................................................................................. 160
    24.1. Idle Mode....................................................................................................... 160
    24.2. Stop Mode ..................................................................................................... 161
    24.3. Suspend Mode .............................................................................................. 161
25. Reset Sources ...................................................................................................... 163
    25.1. Power-On Reset ............................................................................................ 164
    25.2. Power-Fail Reset / VDD Monitor ................................................................... 165
    25.3. External Reset ............................................................................................... 166
    25.4. Missing Clock Detector Reset ....................................................................... 166
    25.5. Comparator0 Reset ....................................................................................... 167
    25.6. Watchdog Timer Reset.................................................................................. 167
    25.7. Flash Error Reset .......................................................................................... 167
    25.8. Software Reset .............................................................................................. 167
26. Watchdog Timer................................................................................................... 169
    26.1. Enable/Reset WDT........................................................................................ 169
    26.2. Disable WDT ................................................................................................. 169
    26.3. Disable WDT Lockout.................................................................................... 169
    26.4. Setting WDT Interval ..................................................................................... 169
27. Oscillators and Clock Selection ......................................................................... 171
    27.1. System Clock Selection................................................................................. 171
    27.2. Programmable Internal High-Frequency (H-F) Oscillator .............................. 173
    27.3. External Oscillator Drive Circuit..................................................................... 175
         27.3.1. External Crystal Example...................................................................... 177
         27.3.2. External RC Example............................................................................ 178
         27.3.3. External Capacitor Example.................................................................. 179
28. Port Input/Output ................................................................................................. 180
    28.1. Port I/O Modes of Operation.......................................................................... 181
         28.1.1. Port Pins Configured for Analog I/O...................................................... 181
         28.1.2. Port Pins Configured For Digital I/O...................................................... 181
         28.1.3. Interfacing Port I/O to 5 V Logic ............................................................ 182
         28.1.4. Increasing Port I/O Drive Strength ........................................................ 182
    28.2. Assigning Port I/O Pins to Analog and Digital Functions............................... 182

Rev. 1.0  5
C8051F70x/71x

         28.2.1. Assigning Port I/O Pins to Analog Functions ........................................ 182
         28.2.2. Assigning Port I/O Pins to Digital Functions.......................................... 184
         28.2.3. Assigning Port I/O Pins to External Event Trigger Functions................ 184
    28.3. Priority Crossbar Decoder ............................................................................. 185
    28.4. Port I/O Initialization ...................................................................................... 189
    28.5. Port Match ..................................................................................................... 192
    28.6. Special Function Registers for Accessing and Configuring Port I/O ............. 194
29. Cyclic Redundancy Check Unit (CRC0)............................................................. 211
    29.1. 16-bit CRC Algorithm..................................................................................... 212
    29.2. 32-bit CRC Algorithm..................................................................................... 213
    29.3. Preparing for a CRC Calculation ................................................................... 214
    29.4. Performing a CRC Calculation ...................................................................... 214
    29.5. Accessing the CRC0 Result .......................................................................... 214
    29.6. CRC0 Bit Reverse Feature............................................................................ 218
30. SMBus................................................................................................................... 219
    30.1. Supporting Documents .................................................................................. 220
    30.2. SMBus Configuration..................................................................................... 220
    30.3. SMBus Operation .......................................................................................... 220
         30.3.1. Transmitter Vs. Receiver....................................................................... 221
         30.3.2. Arbitration.............................................................................................. 221
         30.3.3. Clock Low Extension............................................................................. 221
         30.3.4. SCL Low Timeout.................................................................................. 221
         30.3.5. SCL High (SMBus Free) Timeout ......................................................... 222
    30.4. Using the SMBus........................................................................................... 222
         30.4.1. SMBus Configuration Register.............................................................. 222
         30.4.2. SMB0CN Control Register .................................................................... 226

             30.4.2.1. Software ACK Generation ............................................................ 226
             30.4.2.2. Hardware ACK Generation ........................................................... 226
         30.4.3. Hardware Slave Address Recognition .................................................. 228
         30.4.4. Data Register ........................................................................................ 231
    30.5. SMBus Transfer Modes................................................................................. 232
         30.5.1. Write Sequence (Master) ...................................................................... 232
         30.5.2. Read Sequence (Master) ...................................................................... 233
         30.5.3. Write Sequence (Slave) ........................................................................ 234
         30.5.4. Read Sequence (Slave) ........................................................................ 235
    30.6. SMBus Status Decoding................................................................................ 235
31. Enhanced Serial Peripheral Interface (SPI0) ..................................................... 241
    31.1. Signal Descriptions........................................................................................ 242
         31.1.1. Master Out, Slave In (MOSI)................................................................. 242
         31.1.2. Master In, Slave Out (MISO)................................................................. 242
         31.1.3. Serial Clock (SCK) ................................................................................ 242
         31.1.4. Slave Select (NSS) ............................................................................... 242
    31.2. SPI0 Master Mode Operation ........................................................................ 242
    31.3. SPI0 Slave Mode Operation .......................................................................... 244
    31.4. SPI0 Interrupt Sources .................................................................................. 245

6              Rev. 1.0
                                                 C8051F70x/71x

    31.5. Serial Clock Phase and Polarity .................................................................... 245
    31.6. SPI Special Function Registers ..................................................................... 247
32. UART0 ................................................................................................................... 254
    32.1. Enhanced Baud Rate Generation.................................................................. 255
    32.2. Operational Modes ........................................................................................ 256

         32.2.1. 8-Bit UART ............................................................................................ 256
         32.2.2. 9-Bit UART ............................................................................................ 257
    32.3. Multiprocessor Communications ................................................................... 258
33. Timers ................................................................................................................... 262
    33.1. Timer 0 and Timer 1 ...................................................................................... 264
         33.1.1. Mode 0: 13-bit Counter/Timer ............................................................... 264
         33.1.2. Mode 1: 16-bit Counter/Timer ............................................................... 265
         33.1.3. Mode 2: 8-bit Counter/Timer with Auto-Reload..................................... 265
         33.1.4. Mode 3: Two 8-bit Counter/Timers (Timer 0 Only)................................ 266
    33.2. Timer 2 .......................................................................................................... 272
         33.2.1. 16-bit Timer with Auto-Reload............................................................... 272
         33.2.2. 8-bit Timers with Auto-Reload............................................................... 273
    33.3. Timer 3 .......................................................................................................... 278
         33.3.1. 16-bit Timer with Auto-Reload............................................................... 278
         33.3.2. 8-bit Timers with Auto-Reload............................................................... 279
34. Programmable Counter Array............................................................................. 284
    34.1. PCA Counter/Timer ....................................................................................... 285
    34.2. PCA0 Interrupt Sources................................................................................. 286
    34.3. Capture/Compare Modules ........................................................................... 286
         34.3.1. Edge-triggered Capture Mode............................................................... 288
         34.3.2. Software Timer (Compare) Mode.......................................................... 289
         34.3.3. High-Speed Output Mode ..................................................................... 290
         34.3.4. Frequency Output Mode ....................................................................... 291
         34.3.5. 8-bit, 9-bit, 10-bit and 11-bit Pulse Width Modulator Modes ............... 292

             34.3.5.1. 8-bit Pulse Width Modulator Mode.............................................. 292
             34.3.5.2. 9/10/11-bit Pulse Width Modulator Mode.................................... 293
         34.3.6. 16-Bit Pulse Width Modulator Mode.................................................... 294
    34.4. Register Descriptions for PCA0..................................................................... 295
35. C2 Interface .......................................................................................................... 301
    35.1. C2 Interface Registers................................................................................... 301
    35.2. C2CK Pin Sharing ......................................................................................... 304
Document Change List.............................................................................................. 305
Contact Information................................................................................................... 306

Rev. 1.0  7
C8051F70x/71x

List of Figures

    Figure 1.1. C8051F700/1 Block Diagram ................................................................ 18
    Figure 1.2. C8051F702/3 Block Diagram ................................................................ 19
    Figure 1.3. C8051F704/5 Block Diagram ................................................................ 20
    Figure 1.4. C8051F706/07 Block Diagram .............................................................. 21
    Figure 1.5. C8051F708/09/10/11 Block Diagram .................................................... 22
    Figure 1.6. C8051F712/13/14/15 Block Diagram .................................................... 23
    Figure 1.7. C8051F716 Block Diagram ................................................................... 24
    Figure 1.8. C8051F717 Block Diagram ................................................................... 25
    Figure 3.1. C8051F7xx-GQ TQFP64 Pinout Diagram (Top View) .......................... 32
    Figure 3.2. C8051F7xx-GQ QFP48 Pinout Diagram (Top View) ............................. 33
    Figure 3.3. C8051F7xx-GM QFN48 Pinout Diagram (Top View) ............................ 34
    Figure 3.4. C8051F716-GM QFN32 Pinout Diagram (Top View) ............................ 35
    Figure 3.5. C8051F717-GM QFN24 Pinout Diagram (Top View) ............................ 36
    Figure 4.1. TQFP-64 Package Drawing .................................................................. 37
    Figure 4.2. TQFP-64 PCB Land Pattern .................................................................. 38
    Figure 5.1. TQFP-48 Package Drawing .................................................................. 39
    Figure 5.2. TQFP-48 PCB Land Pattern .................................................................. 40
    Figure 6.1. QFN-48 Package Drawing .................................................................... 41
    Figure 6.2. QFN-48 PCB Land Pattern .................................................................... 42
    Figure 7.1. QFN-32 Package Drawing .................................................................... 43
    Figure 7.2. QFN-32 Recommended PCB Land Pattern .......................................... 44
    Figure 8.1. QFN-24 Package Drawing .................................................................... 45
    Figure 8.2. QFN-24 Recommended PCB Land Pattern .......................................... 46
    Figure 10.1. ADC0 Functional Block Diagram ......................................................... 55
    Figure 10.2. 10-Bit ADC Track and Conversion Example Timing ........................... 57
    Figure 10.3. ADC0 Equivalent Input Circuits ........................................................... 58
    Figure 10.4. ADC Window Compare Example: Right-Justified Data ....................... 64
    Figure 10.5. ADC Window Compare Example: Left-Justified Data ......................... 64
    Figure 10.6. ADC0 Multiplexer Block Diagram ........................................................ 65
    Figure 11.1. Temperature Sensor Transfer Function .............................................. 67
    Figure 11.2. Temperature Sensor Error with 1-Point Calibration at 0 Celsius ......... 68
    Figure 12.1. Voltage Reference Functional Block Diagram ..................................... 69
    Figure 14.1. Comparator0 Functional Block Diagram ............................................. 74
    Figure 14.2. Comparator Hysteresis Plot ................................................................ 75
    Figure 14.3. Comparator Input Multiplexer Block Diagram ...................................... 78
    Figure 15.1. CS0 Block Diagram ............................................................................. 80
    Figure 15.2. Auto-Scan Example ............................................................................. 83
    Figure 15.3. CS0 Multiplexer Block Diagram ........................................................... 96
    Figure 16.1. CIP-51 Block Diagram ......................................................................... 98
    Figure 17.1. C8051F70x/71x Memory Map ........................................................... 108
    Figure 17.2. Flash Program Memory Map ............................................................. 109
    Figure 18.1. Multiplexed Configuration Example ................................................... 115
    Figure 18.2. Non-multiplexed Configuration Example ........................................... 116

8  Rev. 1.0
          C8051F70x/71x

Figure 18.3. EMIF Operating Modes ..................................................................... 117
Figure 18.4. Non-multiplexed 16-bit MOVX Timing ............................................... 120
Figure 18.5. Non-multiplexed 8-bit MOVX without Bank Select Timing ................ 121
Figure 18.6. Non-Multiplexed 8-Bit MOVX with Bank Select Timing ..................... 122
Figure 18.7. Multiplexed 16-bit MOVX Timing ....................................................... 123
Figure 18.8. Multiplexed 8-Bit MOVX without Bank Select Timing ........................ 124
Figure 18.9. Multiplexed 8-Bit MOVX with Bank Select Timing ............................. 125
Figure 23.1. EEPROM Block Diagram .................................................................. 155
Figure 25.1. Reset Sources ................................................................................... 163
Figure 25.2. Power-On and VDD Monitor Reset Timing ....................................... 164
Figure 27.1. Oscillator Options .............................................................................. 171
Figure 27.2. External 32.768 kHz Quartz Crystal Oscillator Connection Diagram 178
Figure 28.1. Port I/O Functional Block Diagram .................................................... 180
Figure 28.2. Port I/O Cell Block Diagram .............................................................. 181
Figure 28.3. Port I/O Overdrive Current ................................................................ 182
Figure 28.4. Crossbar Priority Decoder--Possible Pin Assignments .................... 186
Figure 28.5. Crossbar Priority Decoder in Example Configuration--

                 No Pins Skipped ............................................................................... 187
Figure 28.6. Crossbar Priority Decoder in Example Configuration--

                 3 Pins Skipped .................................................................................. 188
Figure 29.1. CRC0 Block Diagram ........................................................................ 211
Figure 30.1. SMBus Block Diagram ...................................................................... 219
Figure 30.2. Typical SMBus Configuration ............................................................ 220
Figure 30.3. SMBus Transaction ........................................................................... 221
Figure 30.4. Typical SMBus SCL Generation ........................................................ 223
Figure 30.5. Typical Master Write Sequence ........................................................ 232
Figure 30.6. Typical Master Read Sequence ........................................................ 233
Figure 30.7. Typical Slave Write Sequence .......................................................... 234
Figure 30.8. Typical Slave Read Sequence .......................................................... 235
Figure 31.1. SPI Block Diagram ............................................................................ 241
Figure 31.2. Multiple-Master Mode Connection Diagram ...................................... 243
Figure 31.3. 3-Wire Single Master and Single Slave Mode Connection Diagram . 243
Figure 31.4. 4-Wire Single Master Mode and Slave Mode Connection Diagram .. 244
Figure 31.5. Master Mode Data/Clock Timing ....................................................... 246
Figure 31.6. Slave Mode Data/Clock Timing (CKPHA = 0) ................................... 246
Figure 31.7. Slave Mode Data/Clock Timing (CKPHA = 1) ................................... 247
Figure 31.8. SPI Master Timing (CKPHA = 0) ....................................................... 251
Figure 31.9. SPI Master Timing (CKPHA = 1) ....................................................... 251
Figure 31.10. SPI Slave Timing (CKPHA = 0) ....................................................... 252
Figure 31.11. SPI Slave Timing (CKPHA = 1) ....................................................... 252
Figure 32.1. UART0 Block Diagram ...................................................................... 254
Figure 32.2. UART0 Baud Rate Logic ................................................................... 255
Figure 32.3. UART Interconnect Diagram ............................................................. 256
Figure 32.4. 8-Bit UART Timing Diagram .............................................................. 256
Figure 32.5. 9-Bit UART Timing Diagram .............................................................. 257

Rev. 1.0  9
C8051F70x/71x

    Figure 32.6. UART Multi-Processor Mode Interconnect Diagram ......................... 258
    Figure 33.1. T0 Mode 0 Block Diagram ................................................................. 265
    Figure 33.2. T0 Mode 2 Block Diagram ................................................................. 266
    Figure 33.3. T0 Mode 3 Block Diagram ................................................................. 267
    Figure 33.4. Timer 2 16-Bit Mode Block Diagram ................................................. 272
    Figure 33.5. Timer 2 8-Bit Mode Block Diagram ................................................... 273
    Figure 33.7. Timer 3 16-Bit Mode Block Diagram ................................................. 278
    Figure 33.8. Timer 3 8-Bit Mode Block Diagram ................................................... 279
    Figure 33.9. Timer 3 Capture Mode Block Diagram .............................................. 280
    Figure 34.1. PCA Block Diagram ........................................................................... 284
    Figure 34.2. PCA Counter/Timer Block Diagram ................................................... 285
    Figure 34.3. PCA Interrupt Block Diagram ............................................................ 286
    Figure 34.4. PCA Capture Mode Diagram ............................................................. 288
    Figure 34.5. PCA Software Timer Mode Diagram ................................................. 289
    Figure 34.6. PCA High-Speed Output Mode Diagram ........................................... 290
    Figure 34.7. PCA Frequency Output Mode ........................................................... 291
    Figure 34.8. PCA 8-Bit PWM Mode Diagram ........................................................ 292
    Figure 34.9. PCA 9, 10 and 11-Bit PWM Mode Diagram ...................................... 293
    Figure 34.10. PCA 16-Bit PWM Mode ................................................................... 294
    Figure 35.1. Typical C2CK Pin Sharing ................................................................. 304

10  Rev. 1.0
                                                 C8051F70x/71x

List of Tables

    Table 2.1. Product Selection Guide ......................................................................... 27
    Table 3.1. Pin Definitions for the C8051F70x/71x ................................................... 28
    Table 4.1. TQFP-64 Package Dimensions .............................................................. 37
    Table 4.2. TQFP-64 PCB Land Pattern Dimensions ............................................... 38
    Table 5.1. TQFP-48 Package Dimensions .............................................................. 39
    Table 5.2. TQFP-48 PCB Land Pattern Dimensions ............................................... 40
    Table 6.1. QFN-48 Package Dimensions ................................................................ 41
    Table 6.2. QFN-48 PCB Land Pattern Dimensions ................................................. 42
    Table 7.1. QFN-32 Package Dimensions ................................................................ 43
    Table 7.2. QFN-32 PCB Land Pattern Dimensions ................................................. 44
    Table 8.1. QFN-24 Package Dimensions ................................................................ 45
    Table 8.2. QFN-24 PCB Land Pattern Dimensions ................................................. 46
    Table 9.1. Absolute Maximum Ratings .................................................................... 47
    Table 9.2. Global Electrical Characteristics ............................................................. 48
    Table 9.3. Port I/O DC Electrical Characteristics ..................................................... 49
    Table 9.4. Reset Electrical Characteristics .............................................................. 49
    Table 9.5. Internal Voltage Regulator Electrical Characteristics ............................. 50
    Table 9.6. Flash Electrical Characteristics .............................................................. 50
    Table 9.7. Internal High-Frequency Oscillator Electrical Characteristics ................. 50
    Table 9.8. Capacitive Sense Electrical Characteristics ........................................... 51
    Table 9.9. EEPROM Electrical Characteristics ........................................................ 52
    Table 9.10. ADC0 Electrical Characteristics ............................................................ 52
    Table 9.11. Power Management Electrical Characteristics ..................................... 53
    Table 9.12. Temperature Sensor Electrical Characteristics .................................... 53
    Table 9.13. Voltage Reference Electrical Characteristics ....................................... 53
    Table 9.14. Comparator Electrical Characteristics .................................................. 54
    Table 15.1. Gain Setting vs. Maximum Capacitance and Conversion Time ........... 81
    Table 15.2. Operation with Auto-scan and Accumulate .......................................... 85
    Table 16.1. CIP-51 Instruction Set Summary ........................................................ 100
    Table 18.1. AC Parameters for External Memory Interface ................................... 126
    Table 18.2. EMIF Pinout (C8051F700/1/2/3/8/9 and C8051F710/1) ..................... 127
    Table 20.1. Special Function Register (SFR) Memory Map .................................. 131
    Table 20.2. Special Function Registers ................................................................. 132
    Table 21.1. Interrupt Summary .............................................................................. 139
    Table 22.1. Flash Security Summary .................................................................... 150
    Table 28.1. Port I/O Assignment for Analog Functions ......................................... 183
    Table 28.2. Port I/O Assignment for Digital Functions ........................................... 184
    Table 28.3. Port I/O Assignment for External Event Trigger Functions ................. 184
    Table 29.1. Example 16-bit CRC Outputs ............................................................. 212
    Table 29.2. Example 32-bit CRC Outputs ............................................................. 213
    Table 30.1. SMBus Clock Source Selection .......................................................... 223
    Table 30.2. Minimum SDA Setup and Hold Times ................................................ 224
    Table 30.3. Sources for Hardware Changes to SMB0CN ..................................... 228

Rev. 1.0  11
C8051F70x/71x

    Table 30.4. Hardware Address Recognition Examples (EHACK = 1) ................... 229
    Table 30.5. SMBus Status Decoding: Hardware ACK Disabled (EHACK = 0) ...... 236
    Table 30.6. SMBus Status Decoding: Hardware ACK Enabled (EHACK = 1) ...... 238
    Table 31.1. SPI Slave Timing Parameters ............................................................ 253
    Table 32.1. Timer Settings for Standard Baud Rates

                    Using The Internal 24.5 MHz Oscillator .............................................. 261
    Table 32.2. Timer Settings for Standard Baud Rates

                    Using an External 22.1184 MHz Oscillator ......................................... 261
    Table 34.1. PCA Timebase Input Options ............................................................. 285
    Table 34.2. PCA0CPM and PCA0PWM Bit Settings for PCA Modules ................. 287

12  Rev. 1.0
                                                 C8051F70x/71x

List of Registers

SFR Definition 10.1. ADC0CF: ADC0 Configuration .................................................... 59
SFR Definition 10.2. ADC0H: ADC0 Data Word MSB .................................................. 60
SFR Definition 10.3. ADC0L: ADC0 Data Word LSB .................................................... 60
SFR Definition 10.4. ADC0CN: ADC0 Control .............................................................. 61
SFR Definition 10.5. ADC0GTH: ADC0 Greater-Than Data High Byte ........................ 62
SFR Definition 10.6. ADC0GTL: ADC0 Greater-Than Data Low Byte .......................... 62
SFR Definition 10.7. ADC0LTH: ADC0 Less-Than Data High Byte .............................. 63
SFR Definition 10.8. ADC0LTL: ADC0 Less-Than Data Low Byte ............................... 63
SFR Definition 10.9. ADC0MX: AMUX0 Channel Select .............................................. 66
SFR Definition 12.1. REF0CN: Voltage Reference Control .......................................... 71
SFR Definition 13.1. REG0CN: Voltage Regulator Control .......................................... 73
SFR Definition 14.1. CPT0CN: Comparator0 Control ................................................... 76
SFR Definition 14.2. CPT0MD: Comparator0 Mode Selection ..................................... 77
SFR Definition 14.3. CPT0MX: Comparator0 MUX Selection ...................................... 79
SFR Definition 15.1. CS0CN: Capacitive Sense Control .............................................. 88
SFR Definition 15.2. CS0CF: Capacitive Sense Configuration ..................................... 89
SFR Definition 15.3. CS0DH: Capacitive Sense Data High Byte ................................. 90
SFR Definition 15.4. CS0DL: Capacitive Sense Data Low Byte ................................... 90
SFR Definition 15.5. CS0SS: Capacitive Sense Auto-Scan Start Channel .................. 91
SFR Definition 15.6. CS0SE: Capacitive Sense Auto-Scan End Channel ................... 91
SFR Definition 15.7. CS0THH: Capacitive Sense Comparator Threshold High Byte ... 92
SFR Definition 15.8. CS0THL: Capacitive Sense Comparator Threshold Low Byte .... 92
SFR Definition 15.9. CS0PM: Capacitive Sense Pin Monitor ....................................... 93
SFR Definition 15.10. CS0MD1: Capacitive Sense Mode 1 ......................................... 94
SFR Definition 15.11. CS0MD2: Capacitive Sense Mode 2 ......................................... 95
SFR Definition 15.12. CS0MX: Capacitive Sense Mux Channel Select ....................... 97
SFR Definition 16.1. DPL: Data Pointer Low Byte ...................................................... 104
SFR Definition 16.2. DPH: Data Pointer High Byte ..................................................... 104
SFR Definition 16.3. SP: Stack Pointer ....................................................................... 105
SFR Definition 16.4. ACC: Accumulator ..................................................................... 105
SFR Definition 16.5. B: B Register .............................................................................. 106
SFR Definition 16.6. PSW: Program Status Word ...................................................... 107
SFR Definition 18.1. EMI0CN: External Memory Interface Control ............................ 113
SFR Definition 18.2. EMI0CF: External Memory Configuration .................................. 114
SFR Definition 18.3. EMI0TC: External Memory Timing Control ................................ 119
SFR Definition 19.1. HWID: Hardware Identification Byte .......................................... 128
SFR Definition 19.2. DERIVID: Derivative Identification Byte ..................................... 128
SFR Definition 19.3. REVID: Hardware Revision Identification Byte .......................... 129
SFR Definition 20.1. SFRPAGE: SFR Page ............................................................... 132
SFR Definition 21.1. IE: Interrupt Enable .................................................................... 140
SFR Definition 21.2. IP: Interrupt Priority .................................................................... 141
SFR Definition 21.3. EIE1: Extended Interrupt Enable 1 ............................................ 142
SFR Definition 21.4. EIE2: Extended Interrupt Enable 2 ............................................ 143

Rev. 1.0  13
C8051F70x/71x

SFR Definition 21.5. EIP1: Extended Interrupt Priority 1 ............................................ 144
SFR Definition 21.6. EIP2: Extended Interrupt Priority 2 ............................................ 145
SFR Definition 21.7. IT01CF: INT0/INT1 Configuration .............................................. 147
SFR Definition 22.1. PSCTL: Program Store R/W Control ......................................... 153
SFR Definition 22.2. FLKEY: Flash Lock and Key ...................................................... 154
SFR Definition 23.1. EEADDR: EEPROM Byte Address ............................................ 156
SFR Definition 23.2. EEDATA: EEPROM Byte Data .................................................. 157
SFR Definition 23.3. EECNTL: EEPROM Control ...................................................... 158
SFR Definition 23.4. EEKEY: EEPROM Protect Key .................................................. 159
SFR Definition 24.1. PCON: Power Control ................................................................ 162
SFR Definition 25.1. VDM0CN: VDD Monitor Control ................................................ 166
SFR Definition 25.2. RSTSRC: Reset Source ............................................................ 168
SFR Definition 26.1. WDTCN: Watchdog Timer Control ............................................ 170
SFR Definition 27.1. CLKSEL: Clock Select ............................................................... 172
SFR Definition 27.2. OSCICL: Internal H-F Oscillator Calibration .............................. 173
SFR Definition 27.3. OSCICN: Internal H-F Oscillator Control ................................... 174
SFR Definition 27.4. OSCXCN: External Oscillator Control ........................................ 176
SFR Definition 28.1. XBR0: Port I/O Crossbar Register 0 .......................................... 190
SFR Definition 28.2. XBR1: Port I/O Crossbar Register 1 .......................................... 191
SFR Definition 28.3. P0MASK: Port 0 Mask Register ................................................. 192
SFR Definition 28.4. P0MAT: Port 0 Match Register .................................................. 193
SFR Definition 28.5. P1MASK: Port 1 Mask Register ................................................. 193
SFR Definition 28.6. P1MAT: Port 1 Match Register .................................................. 194
SFR Definition 28.7. P0: Port 0 ................................................................................... 195
SFR Definition 28.8. P0MDIN: Port 0 Input Mode ....................................................... 195
SFR Definition 28.9. P0MDOUT: Port 0 Output Mode ................................................ 196
SFR Definition 28.10. P0SKIP: Port 0 Skip ................................................................. 196
SFR Definition 28.11. P0DRV: Port 0 Drive Strength ................................................. 197
SFR Definition 28.12. P1: Port 1 ................................................................................. 197
SFR Definition 28.13. P1MDIN: Port 1 Input Mode ..................................................... 198
SFR Definition 28.14. P1MDOUT: Port 1 Output Mode .............................................. 198
SFR Definition 28.15. P1SKIP: Port 1 Skip ................................................................. 199
SFR Definition 28.16. P1DRV: Port 1 Drive Strength ................................................. 199
SFR Definition 28.17. P2: Port 2 ................................................................................. 200
SFR Definition 28.18. P2MDIN: Port 2 Input Mode ..................................................... 200
SFR Definition 28.19. P2MDOUT: Port 2 Output Mode .............................................. 201
SFR Definition 28.20. P2SKIP: Port 2 Skip ................................................................. 201
SFR Definition 28.21. P2DRV: Port 2 Drive Strength ................................................. 202
SFR Definition 28.22. P3: Port 3 ................................................................................. 202
SFR Definition 28.23. P3MDIN: Port 3 Input Mode ..................................................... 203
SFR Definition 28.24. P3MDOUT: Port 3 Output Mode .............................................. 203
SFR Definition 28.25. P3DRV: Port 3 Drive Strength ................................................. 204
SFR Definition 28.26. P4: Port 4 ................................................................................. 204
SFR Definition 28.27. P4MDIN: Port 4 Input Mode ..................................................... 205
SFR Definition 28.28. P4MDOUT: Port 4 Output Mode .............................................. 205

14             Rev. 1.0
          C8051F70x/71x

SFR Definition 28.29. P4DRV: Port 4 Drive Strength ................................................. 206
SFR Definition 28.30. P5: Port 5 ................................................................................. 206
SFR Definition 28.31. P5MDIN: Port 5 Input Mode ..................................................... 207
SFR Definition 28.32. P5MDOUT: Port 5 Output Mode .............................................. 207
SFR Definition 28.33. P5DRV: Port 5 Drive Strength ................................................. 208
SFR Definition 28.34. P6: Port 6 ................................................................................. 208
SFR Definition 28.35. P6MDIN: Port 6 Input Mode ..................................................... 209
SFR Definition 28.36. P6MDOUT: Port 6 Output Mode .............................................. 209
SFR Definition 28.37. P6DRV: Port 6 Drive Strength ................................................. 210
SFR Definition 29.1. CRC0CN: CRC0 Control ........................................................... 215
SFR Definition 29.2. CRC0IN: CRC Data Input .......................................................... 216
SFR Definition 29.3. CRC0DATA: CRC Data Output ................................................. 216
SFR Definition 29.4. CRC0AUTO: CRC Automatic Control ........................................ 217
SFR Definition 29.5. CRC0CNT: CRC Automatic Flash Sector Count ....................... 217
SFR Definition 29.6. CRC0FLIP: CRC Bit Flip ............................................................ 218
SFR Definition 30.1. SMB0CF: SMBus Clock/Configuration ...................................... 225
SFR Definition 30.2. SMB0CN: SMBus Control .......................................................... 227
SFR Definition 30.3. SMB0ADR: SMBus Slave Address ............................................ 229
SFR Definition 30.4. SMB0ADM: SMBus Slave Address Mask .................................. 230
SFR Definition 30.5. SMB0DAT: SMBus Data ............................................................ 231
SFR Definition 31.1. SPI0CFG: SPI0 Configuration ................................................... 248
SFR Definition 31.2. SPI0CN: SPI0 Control ............................................................... 249
SFR Definition 31.3. SPI0CKR: SPI0 Clock Rate ....................................................... 250
SFR Definition 31.4. SPI0DAT: SPI0 Data ................................................................. 250
SFR Definition 32.1. SCON0: Serial Port 0 Control .................................................... 259
SFR Definition 32.2. SBUF0: Serial (UART0) Port Data Buffer .................................. 260
SFR Definition 33.1. CKCON: Clock Control .............................................................. 263
SFR Definition 33.2. TCON: Timer Control ................................................................. 268
SFR Definition 33.3. TMOD: Timer Mode ................................................................... 269
SFR Definition 33.4. TL0: Timer 0 Low Byte ............................................................... 270
SFR Definition 33.5. TL1: Timer 1 Low Byte ............................................................... 270
SFR Definition 33.6. TH0: Timer 0 High Byte ............................................................. 271
SFR Definition 33.7. TH1: Timer 1 High Byte ............................................................. 271
SFR Definition 33.8. TMR2CN: Timer 2 Control ......................................................... 275
SFR Definition 33.9. TMR2RLL: Timer 2 Reload Register Low Byte .......................... 276
SFR Definition 33.10. TMR2RLH: Timer 2 Reload Register High Byte ...................... 276
SFR Definition 33.11. TMR2L: Timer 2 Low Byte ....................................................... 277
SFR Definition 33.12. TMR2H Timer 2 High Byte ....................................................... 277
SFR Definition 33.13. TMR3CN: Timer 3 Control ....................................................... 281
SFR Definition 33.14. TMR3RLL: Timer 3 Reload Register Low Byte ........................ 282
SFR Definition 33.15. TMR3RLH: Timer 3 Reload Register High Byte ...................... 282
SFR Definition 33.16. TMR3L: Timer 3 Low Byte ....................................................... 283
SFR Definition 33.17. TMR3H Timer 3 High Byte ....................................................... 283
SFR Definition 34.1. PCA0CN: PCA Control .............................................................. 295
SFR Definition 34.2. PCA0MD: PCA Mode ................................................................ 296

Rev. 1.0  15
C8051F70x/71x

SFR Definition 34.3. PCA0PWM: PCA PWM Configuration ....................................... 297
SFR Definition 34.4. PCA0CPMn: PCA Capture/Compare Mode .............................. 298
SFR Definition 34.5. PCA0L: PCA Counter/Timer Low Byte ...................................... 299
SFR Definition 34.6. PCA0H: PCA Counter/Timer High Byte ..................................... 299
SFR Definition 34.7. PCA0CPLn: PCA Capture Module Low Byte ............................. 300
SFR Definition 34.8. PCA0CPHn: PCA Capture Module High Byte ........................... 300
C2 Register Definition 35.1. C2ADD: C2 Address ...................................................... 301
C2 Register Definition 35.2. DEVICEID: C2 Device ID ............................................... 302
C2 Register Definition 35.3. REVID: C2 Revision ID .................................................. 302
C2 Register Definition 35.4. FPCTL: C2 Flash Programming Control ........................ 303
C2 Register Definition 35.5. FPDAT: C2 Flash Programming Data ............................ 303

16  Rev. 1.0
                                                 C8051F70x/71x

1. System Overview

C8051F70x/71x devices are fully integrated, system-on-a-chip, capacitive sensing mixed-signal MCUs.
Highlighted features are listed below. Refer to Table 2.1 for specific product feature selection and part
ordering numbers.

    High-speed pipelined 8051-compatible microcontroller core (up to 25 MIPS)
    In-system, full-speed, non-intrusive debug interface (on-chip)
    Capacitive Sense interface with 38 input channels
    10-bit 500 ksps single-ended ADC with 16 external channels and integrated temperature sensor
    Precision calibrated 24.5 MHz internal oscillator
    16 kB of on-chip Flash memory
    512 bytes of on-chip RAM
    SMBus/I2C, Enhanced UART, and Enhanced SPI serial interfaces implemented in hardware
    Four general-purpose 16-bit timers
    Programmable Counter/Timer Array (PCA) with three capture/compare modules
    On-chip internal voltage reference
    On-chip Watchdog timer
    On-chip Power-On Reset and Supply Monitor
    On-chip Voltage Comparator
    54 general purpose I/O

With on-chip power-on reset, VDD monitor, watchdog timer, and clock oscillator, the C8051F70x/71x
devices are truly stand-alone, system-on-a-chip solutions. The Flash memory can be reprogrammed even
in-circuit, providing non-volatile data storage, and also allowing field upgrades of the 8051 firmware. User
software has complete control of all peripherals, and may individually shut down any or all peripherals for
power savings.

The C8051F70x/71x processors include Silicon Laboratories' 2-Wire C2 Debug and Programming inter-
face, which allows non-intrusive (uses no on-chip resources), full speed, in-circuit debugging using the pro-
duction MCU installed in the final application. This debug logic supports inspection of memory, viewing and
modification of special function registers, setting breakpoints, single stepping, and run and halt commands.
All analog and digital peripherals are fully functional while debugging using C2. The two C2 interface pins
can be shared with user functions, allowing in-system debugging without occupying package pins.

Each device is specified for 1.8�3.6 V operation over the industrial temperature range (�45 to +85 �C). An
internal LDO is used to supply the processor core voltage at 1.8 V. The Port I/O and RST pins are tolerant
of input signals up to 2 V above the VDD supply, with the exception of P0.3. See Table 2.1 for ordering
information. Block diagrams of the devices in the C8051F70x/71x family are shown in Figure 1.1.

Rev. 1.0  17
C8051F70x/71x

                                     CIP-51 8051                       Port I/O Configuration
                                    Controller Core
                                                                                                                             P0.0 / VREF
                Power On            15 kB Flash Memory             Digital Peripherals                       Port 0          P0.1 / AGND
                   Reset               256 Byte RAM                                                          Drivers         P0.2 / XTAL1
                                      256 Byte XRAM                 UART                                                     P0.3 / XTAL2
                             Reset                                                                           Port 1          P0.4
                                    32 Bytes EEPROM               Timers 0,                                  Drivers         P0.5
                 Debug /                                           1, 2, 3                                                   P0.6
              Programming                                                                                    Port 2 . . .    P0.7
C2CK/RST                                                          Timer 3 /           Priority                               P1.0
        C2D     Hardware                                            RTC              Crossbar                Drivers         P1.1
                                                                                     Decoder                                 P1.2
      VDD    Peripheral Power                                       PCA                                      Port 3 . . .    P1.3
      GND                                                                                                                    P1.4
                                                                       SPI                                   Drivers         P1.5
                                                                                                                             P1.6
                                                                  WDT                                        Port 4 . . .    P1.7
                                                                                                                             P2.0
                                                        SFR       SMBus                                      Drivers
                                                        Bus                                                                  P2.7
                                    SYSCLK                             Crossbar Control                      Port 5 . . .
                                                                                                                             P3.0
             Regulator  Core Power                                                                           Drivers
                                                                                                                             P3.7
                                                                  External Memory                            Port 6 . . .    P4.0

                                    Precision                               Interface                        Drivers         P4.7
                                     Internal
                                    Oscillator                                                           P6                  P5.0

                                    External                                Control                                          P5.7
                                      Clock
                                     Circuit                                Address      P4 / P3                             P6.0

             XTAL1                   System Clock                                                       P5                   P6.5
             XTAL2                   Configuration
                                                                             Data

                                                                            Analog Peripherals

                                                                             Capacitive                                  +
                                                                             Sense                                        -

                                                                                                Comparator

                                                                  VDD        VREF        (`F700 Only)

                                                                  10-bit     A         VDD
                                                                                        Temp Sensor
                                                                  500 ksps   M
                                                                             U
                                                                  ADC
                                                                             X

                                    Figure 1.1. C8051F700/1 Block Diagram

18                                                      Rev. 1.0
                                                                                       C8051F70x/71x

                                     CIP-51 8051                       Port I/O Configuration
                                    Controller Core
                                                                                                                             P0.0 / VREF
                Power On            16 kB Flash Memory             Digital Peripherals                       Port 0          P0.1 / AGND
                   Reset               256 Byte RAM                                                          Drivers         P0.2 / XTAL1
                                      256 Byte XRAM                 UART                                                     P0.3 / XTAL2
                             Reset                                                                           Port 1          P0.4
                                                                  Timers 0,                                  Drivers         P0.5
                 Debug /                                           1, 2, 3                                                   P0.6
              Programming                                                                                    Port 2 . . .    P0.7
C2CK/RST                                                          Timer 3 /           Priority                               P1.0
        C2D     Hardware                                            RTC              Crossbar                Drivers         P1.1
                                                                                     Decoder                                 P1.2
      VDD    Peripheral Power                                       PCA                                      Port 3 . . .    P1.3
      GND                                                                                                                    P1.4
                                                                       SPI                                   Drivers         P1.5
                                                                                                                             P1.6
                                                                  WDT                                        Port 4 . . .    P1.7
                                                                                                                             P2.0
                                                        SFR       SMBus                                      Drivers
                                                        Bus                                                                  P2.7
                                    SYSCLK                             Crossbar Control                      Port 5 . . .
                                                                                                                             P3.0
             Regulator  Core Power                                                                           Drivers
                                                                                                                             P3.7
                                                                  External Memory                            Port 6 . . .    P4.0

                                    Precision                               Interface                        Drivers         P4.7
                                     Internal
                                    Oscillator                                                           P6                  P5.0

                                    External                                Control                                          P5.7
                                      Clock
                                     Circuit                                Address      P4 / P3                             P6.0

             XTAL1                   System Clock                                                       P5                   P6.5
             XTAL2                   Configuration
                                                                             Data

                                                                            Analog Peripherals

                                                                             Capacitive                                  +
                                                                             Sense                                        -

                                                                                                Comparator

                                                                  VDD        VREF        (`F702 Only)

                                                                  10-bit     A         VDD
                                                                                        Temp Sensor
                                                                  500 ksps   M
                                                                             U
                                                                  ADC
                                                                             X

                                    Figure 1.2. C8051F702/3 Block Diagram

                                                        Rev. 1.0                                                             19
C8051F70x/71x

                                     CIP-51 8051                       Port I/O Configuration
                                    Controller Core
                                                                                                                            P0.0 / VREF
                Power On            15 kB Flash Memory             Digital Peripherals           Port 0                     P0.1 / AGND
                   Reset               256 Byte RAM                                              Drivers                    P0.2 / XTAL1
                                      256 Byte XRAM                 UART                                                    P0.3 / XTAL2
                             Reset                                                               Port 1                     P0.4
                                    32 Bytes EEPROM               Timers 0,                      Drivers                    P0.5
                 Debug /                                           1, 2, 4                                                  P0.6
              Programming                                                                        Port 2 . . .               P0.7
C2CK/RST                                                          Timer 3 /      Priority                                   P1.0
        C2D     Hardware                                            RTC         Crossbar         Drivers                    P1.1
                                                                                Decoder                                     P1.2
             Peripheral Power                                       PCA                          Port 3 . . .               P1.3
                                                                     SPI
                                                        SFR         WDT                          Drivers                    P2.0
                                                        Bus        SMBus
                                                                                                 Port 4 . . .                    (8 I/O)
                                    SYSCLK                             Crossbar Control
                                                                                                 Drivers                    P2.7
    VDD      Regulator  Core Power
    GND                                                                                                                     P3.0
                                    Precision                                                    Port 5 . . .
                                     Internal                                                                                    (8 I/O)
                                    Oscillator                                                   Drivers
                                                                                                                            P3.7
             XTAL1                  External                                                     Port 6 . . .
             XTAL2                    Clock                                                                                 P4.0
                                     Circuit                                                     Drivers
                                                                                                                                  (4 I/O)
                                     System Clock
                                     Configuration                                                                          P4.3

                                                                                                                            P5.0

                                                                                                                                 (8 I/O)

                                                                                                                            P5.7

                                                                                                                            P6.0

                                                                                                                                 (6 I/O)

                                                                                                                            P6.5

                                                                          Analog Peripherals

                                                                             Capacitive                                 +
                                                                             Sense                                       -

                                                                                               Comparator

                                                                  VDD        VREF        (`F704 Only)

                                                                  10-bit     A     VDD
                                                                                    Temp Sensor
                                                                  500 ksps   M
                                                                             U
                                                                  ADC
                                                                             X

                                    Figure 1.3. C8051F704/5 Block Diagram

20                                                      Rev. 1.0
                                                                                 C8051F70x/71x

                                   CIP-51 8051                       Port I/O Configuration
                                  Controller Core
                                                                                                                          P0.0 / VREF
               Power On           16 kB Flash Memory             Digital Peripherals           Port 0                     P0.1 / AGND
                 Reset               256 Byte RAM                                              Drivers                    P0.2 / XTAL1
                                    256 Byte XRAM                 UART                                                    P0.3 / XTAL2
                           Reset                                                               Port 1                     P0.4
                                                                Timers 0,                      Drivers                    P0.5
                Debug /                                          1, 2, 4                                                  P0.6
             Programming                                                                       Port 2 . . .               P0.7
C2CK/RST                                                        Timer 3 /      Priority                                   P1.0
        C2D    Hardware                                           RTC         Crossbar         Drivers                    P1.1
                                                                              Decoder                                     P1.2
                                                                  PCA                          Port 3 . . .               P1.3
             Peripheral Power                                      SPI
                                                                  WDT                          Drivers                    P2.0
                                                      SFR        SMBus
                                                      Bus                                      Port 4 . . .                    (8 I/O)
                                    SYSCLK                           Crossbar Control
                                                                                               Drivers                    P2.7
VDD          Regulator  Core Power
GND                                                                                            Port 5 . . .               P3.4
                                  Precision
             XTAL1                 Internal                                                    Drivers                         (4 I/O)
             XTAL2                Oscillator
                                                                                               Port 6 . . .               P3.7
                                  External
                                    Clock                                                      Drivers                    P4.0
                                   Circuit
                                                                                                                                (4 I/O)
                                   System Clock
                                   Configuration                                                                          P4.3

                                                                                                                          P5.0

                                                                                                                               (8 I/O)

                                                                                                                          P5.7

                                                                                                                          P6.3

                                                                                                                               (3 I/O)

                                                                                                                          P6.5

                                                                        Analog Peripherals

                                                                           Capacitive                                 +
                                                                           Sense                                       -

                                                                                             Comparator

                                                                VDD        VREF        (`F706 Only)

                                                                10-bit     A     VDD
                                                                                  Temp Sensor
                                                                500 ksps   M
                                                                           U
                                                                ADC
                                                                           X

                                  Figure 1.4. C8051F706/07 Block Diagram

                                                      Rev. 1.0                                                            21
C8051F70x/71x

                                      CIP-51 8051                      Port I/O Configuration
                                     Controller Core
                                                                                                                              P0.0 / VREF
                Power On             8 kB Flash Memory              Digital Peripherals                       Port 0          P0.1 / AGND
                   Reset                                                                                      Drivers         P0.2 / XTAL1
                                        256 Byte RAM                UART                                                      P0.3 / XTAL2
                              Reset    256 Byte XRAM                                                          Port 1          P0.4
                                     32 Bytes EEPROM              Timers 0,                                   Drivers         P0.5
                  Debug /              (`F708/09 Only)              1, 2, 3                                                   P0.6
              Programming                                                                                     Port 2 . . .    P0.7
C2CK/RST                                                          Timer 3 /           Priority                                P1.0
        C2D     Hardware                                            RTC              Crossbar                 Drivers         P1.1
                                                                                     Decoder                                  P1.2
       VDD   Peripheral Power                                       PCA                                       Port 3 . . .    P1.3
      GND                                                                                                                     P1.4
                                                                       SPI                                    Drivers         P1.5
                                                                                                                              P1.6
                                                                  WDT                                         Port 4 . . .    P1.7
                                                                                                                              P2.0
                                                        SFR       SMBus                                       Drivers
                                                        Bus                                                                   P2.7
                                     SYSCLK                            Crossbar Control                       Port 5 . . .
                                                                                                                              P3.0
             Regulator  Core Power                                                                            Drivers
                                                                                                                              P3.7
                                                                  External Memory                             Port 6 . . .    P4.0

                                     Precision                              Interface                         Drivers         P4.7
                                      Internal
                                     Oscillator                                                           P6                  P5.0

                                     External                               Control                                           P5.7
                                       Clock
                                      Circuit                               Address      P4 / P3                              P6.0

             XTAL1                    System Clock                                                       P5                   P6.5
             XTAL2                    Configuration
                                                                             Data

                                                                            Analog Peripherals

                                                                             Capacitive                                   +
                                                                             Sense                                         -

                                                                                                Comparator

                                                                  VDD        VREF              (`F708/10 Only)

                                                                  10-bit     A         VDD
                                                                                         Temp Sensor
                                                                  500 ksps   M
                                                                             U
                                                                  ADC
                                                                             X

                        Figure 1.5. C8051F708/09/10/11 Block Diagram

22                                                      Rev. 1.0
                                                                                C8051F70x/71x

                                   CIP-51 8051                      Port I/O Configuration
                                  Controller Core
                                                                                                                        P0.0 / VREF
               Power On           8 kB Flash Memory             Digital Peripherals           Port 0                    P0.1 / AGND
                 Reset                                                                        Drivers                   P0.2 / XTAL1
                                    256 Byte RAM                 UART                                                   P0.3 / XTAL2
                           Reset    256 Byte XRAM                                             Port 1                    P0.4
                                  32 Bytes EEPROM              Timers 0,                      Drivers                   P0.5
                Debug /             (`F712/13 Only)             1, 2, 4                                                 P0.6
             Programming                                                                      Port 2 . . .              P0.7
C2CK/RST                                                       Timer 3 /      Priority                                  P1.0
        C2D    Hardware                                          RTC         Crossbar         Drivers                   P1.1
                                                                             Decoder                                    P1.2
                                                                 PCA                          Port 3 . . .              P1.3

                                                                    SPI                       Drivers                   P2.0

             Peripheral Power                                  WDT                            Port 4 . . .                   (8 I/O)

                                                     SFR       SMBus                          Drivers                   P2.7
                                                     Bus
                                    SYSCLK                          Crossbar Control                                    P3.4

VDD          Regulator  Core Power                                                                                           (4 I/O)
GND
                                  Precision                                                   Port 5 . . .              P3.7
                                   Internal
                                  Oscillator                                                  Drivers                   P4.0

             XTAL1                External                                                    Port 6 . . .                    (4 I/O)
             XTAL2                  Clock
                                   Circuit                                                    Drivers                   P4.3

                                   System Clock                                                                         P5.0
                                   Configuration
                                                                                                                             (8 I/O)

                                                                                                                        P5.7

                                                                                                                        P6.3

                                                                                                                             (3 I/O)

                                                                                                                        P6.5

                                                                         Analog Peripherals

                                                                          Capacitive                                +
                                                                          Sense                                      -

                                                                                            Comparator

                                                               VDD        VREF        (`F712/14 Only)

                                                               10-bit     A     VDD
                                                                                 Temp Sensor
                                                               500 ksps   M
                                                                          U
                                                               ADC
                                                                          X

                                  Figure 1.6. C8051F712/13/14/15 Block Diagram

                                                     Rev. 1.0                                                           23
C8051F70x/71x

                                     CIP-51 8051                       Port I/O Configuration
                                    Controller Core

                Power On            16 kB Flash Memory             Digital Peripherals         Port 0                       P0.3 / XTAL2
                   Reset               256 Byte RAM                                            Drivers                      P0.4
                                      256 Byte XRAM                 UART                                                    P0.5
                             Reset                                                             Port 2 . . .
                                                                  Timers 0,                                                 P2.0
                 Debug /                                            1, 2, 4                    Drivers
              Programming                                                                                                         (8 I/O)
C2CK/RST                                                          Timer 3 /      Priority      Port 3 . . .
        C2D     Hardware                                            RTC         Crossbar                                    P2.7
                                                                                Decoder        Drivers
      VDD    Peripheral Power                                       PCA                                                     P3.0
      GND                                               SFR          SPI                       Port 5 . . .
                                                        Bus         WDT                                                           (7 I/O)
                                                                   SMBus                       Drivers
                                                                                                                            P3.6
                                    SYSCLK                             Crossbar Control        Port 6
                                                                                               Drivers                      P5.0
             Regulator
                                                                                                                                  (8 I/O)

                                                                                                                            P5.7

                                                                                                                            P6.3
                                                                                                                            P6.4
                                                                                                                            P6.5

                        Core Power

                                    Precision                             Analog Peripherals
                                     Internal
             XTAL1                  Oscillator                                Capacitive                                +
             XTAL2                                                            Sense                                      -
                                    External
                                      Clock                                  VREF              Comparator
                                     Circuit
                                                                  VDD

                                                                  10-bit     A  VDD
                                                                                 Temp Sensor
                                    System Clock                  500 ksps   M
                                    Configuration
                                                                  ADC        U

                                                                             X

                                    Figure 1.7. C8051F716 Block Diagram

24                                                      Rev. 1.0
                                                                             C8051F70x/71x

                                     CIP-51 8051                  Port I/O Configuration
                                    Controller Core

                Power On            16 kB Flash Memory              Digital Peripherals   Port 0                       P0.4
                   Reset               256 Byte RAM                                       Drivers                      P0.5
                                       256 Byte XRAM                UART
                             Reset                                                        Port 2 . . .                 P2.0
                                                                  Timers 0,
                  Debug /                                           1, 2, 4               Drivers                            (8 I/O)
              Programming
C2CK/RST                                                          Timer 3 /   Priority    Port 4 . . .                 P2.7
        C2D     Hardware                                            RTC      Crossbar
                                                                             Decoder      Drivers                      P4.0
       VDD   Peripheral Power                                       PCA
      GND                                               SFR          SPI                  Port 6                             (8 I/O)
                                                        Bus         WDT                   Drivers
                                                                   SMBus                                               P4.7

                                                                                                                       P6.4
                                                                                                                       P6.5

                                    SYSCLK                        Crossbar Control

             Regulator  Core Power

                                    Precision                     Analog Peripherals
                                     Internal
                                    Oscillator                               Capacitive                             +
                                                                             Sense                                  -
                                    External
             XTAL1                    Clock                                               Comparator
             XTAL2                   Circuit

                                    System Clock
                                    Configuration

                                    Figure 1.8. C8051F717 Block Diagram

                                                        Rev. 1.0                                                       25
C8051F70x/71x

2. Ordering Information

All C8051F70x/71x devices have the following features:
25 MIPS (Peak)
Calibrated Internal Oscillator
SMBus/I2C
UART
Programmable counter array (3 channels)
4 Timers (16-bit)
1 Comparator
Pb-Free (RoHS compliant) package
512 bytes RAM

In addition to the features listed above, each device in the C8051F70x/71x family has a set of features that
vary across the product line. See Table 2.1 for a complete list of the unique feature sets for each device in
the family.

26  Rev. 1.0
                                            C8051F70x/71x

                 Table 2.1. Product Selection Guide

Part
   Number
              Digita l
                 Port I/Os
                          Capacitive Sense
                             Channels
                                      Flash
                                         Memory
                                             (kB)
                                                   EEPROM
                                                      (Bytes)
                                                            External Memory
                                                                Interface
                                                                     10-bit
                                                                         500 ksps
                                                                            ADC
                                                                                 ADC
                                                                                     Channels
                                                                                          Temperature
                                                                                              Sensor
                                                                                                       Package (RoHS)

C8051F700-GQ 54  38  15  32                                  Y  Y  16  Y TQFP-64

C8051F701-GQ 54  38  15  32                                  Y  N  -- -- TQFP-64

C8051F702-GQ 54  38  16  --                                  Y  Y  16  Y TQFP-64

C8051F703-GQ 54  38  16  --                                  Y  N  -- -- TQFP-64

C8051F704-GQ 39  27  15  32                                  N  Y  12  Y TQFP-48

C8051F704-GM 39  27  15  32                                  N  Y  12  Y QFN-48

C8051F705-GQ 39  27  15  32                                  N  N  -- -- TQFP-48

C8051F705-GM 39  27  15  32                                  N  N  -- -- QFN-48

C8051F706-GQ 39  27  16  --                                  N  Y  12  Y TQFP-48

C8051F706-GM 39  27  16  --                                  N  Y  12  Y QFN-48

C8051F707-GQ 39  27  16  --                                  N  N  -- -- TQFP-48

C8051F707-GM 39  27  16  --                                  N  N  -- -- QFN-48

C8051F708-GQ 54  38  8   32                                  Y  Y  16  Y TQFP-64

C8051F709-GQ 54  38  8   32                                  Y  N  -- -- TQFP-64

C8051F710-GQ 54  38  8   --                                  Y  Y  16  Y TQFP-64

C8051F711-GQ 54  38  8   --                                  Y  N  -- -- TQFP-64

C8051F712-GQ 39  27  8   32                                  N  Y  12  Y TQFP-48

C8051F712-GM 39  27  8   32                                  N  Y  12  Y QFN-48

C8051F713-GQ 39  27  8   32                                  N  N  -- -- TQFP-48

C8051F713-GM 39  27  8   32                                  N  N  -- -- QFN-48

C8051F714-GQ 39  27  8   --                                  N  Y  12  Y TQFP-48

C8051F714-GM 39  27  8   --                                  N  Y  12  Y QFN-48

C8051F715-GQ 39  27  8   --                                  N  N  -- -- TQFP-48

C8051F715-GM 39  27  8   --                                  N  N  -- -- QFN-48

C8051F716-GM 29  26  16  --                                  N  Y  3   Y QFN-32

C8051F717-GM 20  18  16  --                                  N  N  -- -- QFN-24

Lead finish material on all devices is 100% matte tin (Sn).

                         Rev. 1.0                                                                                      27
C8051F70x/71x

3. Pin Definitions

               Table 3.1. Pin Definitions for the C8051F70x/71x

Name TQFP64 TQFP48 QFN32 QFN24 Type                    Description
                         QFN48

    VDD 8, 24, 8, 20, 44 27  21            Power Supply Voltage.

       41, 57                              Ground.

GND 9, 25, 9, 21, Center 20      D I/O Device Reset. Open-drain output of internal
           40, 56 30, 43                   POR or VDD monitor.

RST / 58       45   28       22

C2CK                             D I/O Clock signal for the C2 Debug Interface.

C2D    59      46   29       23 D I/O Bi-directional data signal for the C2 Debug

                                           Interface.

P0.0 / 55      42   --       -- D I/O or Port 0.0.

                                 A In ADC0 Input.

VREF                             A In External VREF input.

P0.1/ 54       41   --       -- D I/O or Port 0.1.

                                 A In ADC0 Input.

AGND                                       External AGND input.

P0.2 / 53      40   --       -- D I/O or Port 0.2.

                                 A In ADC0 Input.

XTAL1                            A In External Clock Pin. This pin can be used for
P0.3 / 52                                  crystal clock mode.

               39   26       -- D I/O or Port 0.3.

                                 A In ADC0 Input.

XTAL2                            A I/O or External Clock Pin. This pin can be used for
                                   D In RC, crystal, and CMOS clock modes.

P0.4   51      38   25       19 D I/O or Port 0.4.

                                 A In ADC0 Input.

P0.5   50      37   24       18 D I/O or Port 0.5.

                                 A In ADC0 Input.

P0.6   49      36   --       -- D I/O or Port 0.6.

                                 A In ADC0 Input.

28                               Rev. 1.0
                                         C8051F70x/71x

          Table 3.1. Pin Definitions for the C8051F70x/71x (Continued)

Name TQFP64 TQFP48 QFN32 QFN24 Type      Description
                         QFN48

P0.7  48  35  --  -- D I/O or Port 0.7.

                  A In ADC0 Input.

P1.0  47  34  --  -- D I/O or Port 1.0.

                  A In ADC0 Input.

P1.1  46  33  --  -- D I/O or Port 1.1.

                  A In ADC0 Input.

P1.2  45  32  --  -- D I/O or Port 1.2.

                  A In ADC0 Input.

P1.3  44  31  --  -- D I/O or Port 1.3.

                  A In ADC0 Input.

P1.4  43  --  --  -- D I/O or Port 1.4.

                  A In ADC0 Input.

P1.5  42  --  --  -- D I/O or Port 1.5.

                  A In ADC0 Input.

P1.6  39  --  --  -- D I/O or Port 1.6.

                  A In ADC0 Input.

P1.7  38  --  --  -- D I/O or Port 1.7.

                  A In ADC0 Input.

P2.0  37  29  23  17 D I/O or Port 2.0.

                  A In CS0 input pin 1.

P2.1  36  28  22  16 D I/O or Port 2.1.

                  A In CS0 input pin 2.

P2.2  35  27  21  15 D I/O or Port 2.2.

                  A In CS0 input pin 3.

P2.3  34  26  20  14 D I/O or Port 2.3.

                  A In CS0 input pin 4.

P2.4  33  25  19  13 D I/O or Port 2.4.

                  A In CS0 input pin 5.

P2.5  32  24  18  12 D I/O or Port 2.5.

                  A In CS0 input pin 6.

P2.6  31  23  17  11 D I/O or Port 2.6.

                  A In CS0 input pin 7.

P2.7  30  22  16  10 D I/O or Port 2.7.

                  A In CS0 input pin 8.

                  Rev. 1.0                                              29
C8051F70x/71x

          Table 3.1. Pin Definitions for the C8051F70x/71x (Continued)

Name TQFP64 TQFP48 QFN32 QFN24 Type        Description
                         QFN48

P3.0  29  --   15  -- D I/O or Port 3.0.

                   A In CS0 input pin 9.

P3.1  28  --   14  -- D I/O or Port 3.1.

                   A In CS0 input pin 10.

P3.2  27  --   13  -- D I/O or Port 3.2.

                   A In CS0 input pin 11.

P3.3  26  --   12  -- D I/O or Port 3.3.

                   A In CS0 input pin 12.

P3.4  23  19   11  -- D I/O or Port 3.4.

                   A In CS0 input pin 13.

P3.5  22  18   10  -- D I/O or Port 3.5.

                   A In CS0 input pin 14.

P3.6  21  17   9   -- D I/O or Port 3.6.

                   A In CS0 input pin 15.

P3.7  20  16   --  -- D I/O or Port 3.7.

                   A In CS0 input pin 16.

P4.0  19  15   --  9 D I/O or Port 4.0.

                   A In CS0 input pin 17.

P4.1  18  14   --  8 D I/O or Port 4.1.

                   A In CS0 input pin 18.

P4.2  17  13   --  7 D I/O or Port 4.2.

                   A In CS0 input pin 19.

P4.3  16  12   --  6 D I/O or Port 4.3.

                   A In CS0 input pin 20.

P4.4  15  --   --  5 D I/O or Port 4.4.

                   A In CS0 input pin 21.

P4.5  14  --   --  4 D I/O or Port 4.5.

                   A In CS0 input pin 22.

P4.6  13  --   --  3 D I/O or Port 4.6.

                   A In CS0 input pin 23.

P4.7  12  --   --  2 D I/O or Port 4.7.

                   A In CS0 input pin 24.

P5.0  11  11   8   - D I/O or Port 5.0.
                             A In CS0 input pin 25.

30                 Rev. 1.0
                                         C8051F70x/71x

          Table 3.1. Pin Definitions for the C8051F70x/71x (Continued)

Name TQFP64 TQFP48 QFN32 QFN24 Type         Description
                         QFN48

P5.1  10  10  7   -- D I/O or Port 5.0.

                     A In CS0 input pin 26.

P5.2  7   7   6   -- D I/O or Port 5.2.

                     A In CS0 input pin 27

P5.3  6   6   5   -- D I/O or Port 5.3.

                     A In CS0 input pin 28.

P5.4  5   5   4   -- D I/O or Port 5.4.

                     A In CS0 input pin 29.

P5.5  4   4   3   -- D I/O or Port 5.5.

                     A In CS0 input pin 30.

P5.6  3   3   2   -- D I/O or Port 5.6.

                     A In CS0 input pin 31.

P5.7  2   2   1   -- D I/O or Port 5.7.

                     A In CS0 input pin 32.

P6.0  1   --  --  -- D I/O Port 6.0.

                                     CS0 input pin 33.

P6.1  64  --  --  -- D I/O Port 6.1.

                                     CS0 input pin 34.

P6.2  63  --  --  -- D I/O Port 6.2.

                                     CS0 input pin 35.

P6.3  62  1   32  -- D I/O Port 6.3.

                                     CS0 input pin 36.

P6.4  61  48  31  1  D I/O Port 6.4.

                                     CS0 input pin 37.

P6.5  60  47  30  24 D I/O Port 6.5.

                                     CS0 input pin 38.

                     Rev. 1.0                                           31
C8051F70x/71x

             64 P6.1
                  63 P6.2
                        62 P6.3
                             61 P6.4
                                   60 P6.5
                                        59 C2D
                                              58 RST/C2CK
                                                    57 VDD
                                                         56 GND
                                                               55 P0.0
                                                                    54 P0.1
                                                                          53 P0.2
                                                                               52 P0.3
                                                                                     51 P0.4
                                                                                           50 P0.5
                                                                                                49 P0.6

    P6.0 1   C8051F700/01/02/03/08/09/10/11                                                              48 P0.7
    P5.7 2                                                                                               47 P1.0
    P5.6 3                                                                                               46 P1.1
    P5.5 4                                                                                               45 P1.2
    P5.4 5                                                                                               44 P1.3
    P5.3 6                                                                                               43 P1.4
    P5.2 7                                                                                               42 P1.5
    VDD 8                                                                                                41 VDD
    GND 9                                                                                                40 GND
    P5.1 10                                                                                              39 P1.6
    P5.0 11                                                                                              38 P1.7
    P4.7 12                                                                                              37 P2.0
    P4.6 13                                                                                              36 P2.1
    P4.5 14                                                                                              35 P2.2
    P4.4 15                                                                                              34 P2.3
    P4.3 16                                                                                              33 P2.4

             P4.2 17
                  P4.1 18
                        P4.0 19
                             P3.7 20
                                   P3.6 21
                                        P3.5 22
                                              P3.4 23
                                                    VDD 24
                                                         GND 25
                                                               P3.3 26
                                                                    P3.2 27
                                                                          P3.1 28
                                                                               P3.0 29
                                                                                     P2.7 30
                                                                                           P2.6 31
                                                                                                P2.5 32

    Figure 3.1. C8051F7xx-GQ TQFP64 Pinout Diagram (Top View)

32             Rev. 1.0
                   C8051F70x/71x

         48 P6.4
              47 P6.5
                    46 C2D
                         45 RST/C2CK
                               44 VDD
                                    43 GND
                                          42 P0.0
                                               41 P0.1
                                                     40 P0.2
                                                           39 P0.3
                                                                38 P0.4
                                                                      37 P0.5

P6.3 1   C8051F704/05/06/07/                                                   36 P0.6
P5.7 2         12/13/14/15                                                     35 P0.7
P5.6 3                                                                         34 P1.0
P5.5 4                                                                         33 P1.1
P5.4 5                                                                         32 P1.2
P5.3 6                                                                         31 P1.3
P5.2 7                                                                         30 GND
VDD 8                                                                          29 P2.0
GND 9                                                                          28 P2.1
P5.1 10                                                                        27 P2.2
P5.0 11                                                                        26 P2.3
P4.3 12                                                                        25 P2.4

         P4.2 13
              P4.1 14
                    P4.0 15
                         P3.7 16
                               P3.6 17
                                    P3.5 18
                                          P3.4 19
                                                VDD 20
                                                     GND 21
                                                           P2.7 22
                                                                P2.6 23
                                                                      P2.5 24

         Figure 3.2. C8051F7xx-GQ QFP48 Pinout Diagram (Top View)

         Rev. 1.0                                                              33
C8051F70x/71x

         48 P6.4
               47 P6.5
                      46 C2D
                             45 RST/C2CK
                                   44 VDD
                                          43 GND
                                                 42 P0.0
                                                        41 P0.1
                                                              40 P0.2
                                                                     39 P0.3
                                                                            38 P0.4
                                                                                   37 P0.5

P6.3 1   C8051F704/05/06/07/                                                                36 P0.6
P5.7 2         12/13/14/15                                                                  35 P0.7
P5.6 3                                                                                      34 P1.0
P5.5 4                   GND                                                                33 P1.1
P5.4 5                                                                                      32 P1.2
P5.3 6                                                                                      31 P1.3
P5.2 7                                                                                      30 GND
VDD 8                                                                                       29 P2.0
GND 9                                                                                       28 P2.1
P5.1 10                                                                                     27 P2.2
P5.0 11                                                                                     26 P2.3
P4.3 12                                                                                     25 P2.4

         P4.2 13
               P4.1 14
                      P4.0 15
                             P3.7 16
                                   P3.6 17
                                          P3.5 18
                                                 P3.4 19
                                                        VDD 20
                                                              GND 21
                                                                     P2.7 22
                                                                            P2.6 23
                                                                                   P2.5 24

         Figure 3.3. C8051F7xx-GM QFN48 Pinout Diagram (Top View)

34             Rev. 1.0
                    C8051F70x/71x

        32 P6.3
                 31 P6.4
                          30 P6.5
                                   29 C2D
                                             28 RST/C2CK
                                                      27 VDD
                                                               26 P0.3
                                                                         25 P0.4

P5.7 1  C8051F716                                                                  24 P0.5
P5.6 2                                                                             23 P2.0
P5.5 3         GND                                                                 22 P2.1
P5.4 4                                                                             21 P2.2
P5.3 5                                                                             20 P2.3
P5.2 6                                                                             19 P2.4
P5.1 7                                                                             18 P2.5
P5.0 8                                                                             17 P2.6

        P3.6 9
                 P3.5 10
                          P3.4 11
                                   P3.3 12
                                             P3.2 13
                                                      P3.1 14
                                                                P3.0 15
                                                                          P2.7 16

        Figure 3.4. C8051F716-GM QFN32 Pinout Diagram (Top View)

        Rev. 1.0                                                                            35
C8051F70x/71x

            24 P6.5
                     23 C2D
                               22 RST/C2CK
                                        21 VDD
                                                  20 GND
                                                           19 P0.4

    P6.4 1     C8051F717                                            18 P0.5
    P4.7 2                                                          17 P2.0
    P4.6 3            GND                                           16 P2.1
    P4.5 4                                                          15 P2.2
    P4.4 5                                                          14 P2.3
    P4.3 6                                                          13 P2.4

            P4.2 7
                     P4.1 8
                               P4.0 9
                                        P2.7 10
                                                  P2.6 11
                                                           P2.5 12

    Figure 3.5. C8051F717-GM QFN24 Pinout Diagram (Top View)

36             Rev. 1.0
                                                C8051F70x/71x

4. TQFP-64 Package Specifications

               Figure 4.1. TQFP-64 Package Drawing

               Table 4.1. TQFP-64 Package Dimensions

Dimension Min  Nom         Max     Dimension Min      Nom         Max

A   --         --          1.20            E          12.00 BSC.

A1  0.05       --          0.15            E1         10.00 BSC.

A2  0.95       1.00        1.05            L    0.45  0.60        0.75

b   0.17       0.22        0.27            aaa  --    --          0.20

c   0.09       --          0.20            bbb  --    --          0.20

D              12.00 BSC.                  ccc  --    --          0.08

D1             10.00 BSC.                  ddd  --    --          0.08

e              0.50 BSC.                        0     3.5         7

Notes:
    1. All dimensions shown are in millimeters (mm) unless otherwise noted.
    2. Dimensioning and Tolerancing per ANSI Y14.5M-1994.
    3. This package outline conforms to JEDEC MS-026, variant ACD.
    4. Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body
         Components.

                                 Rev. 1.0                                                           37
C8051F70x/71x

               Figure 4.2. TQFP-64 PCB Land Pattern

        Table 4.2. TQFP-64 PCB Land Pattern Dimensions

    Dimension  Min                                                           Max
                                                                             11.40
    C1         11.30                                                         11.40

    C2         11.30                                                         0.30
                                                                             1.50
    E                    0.50 BSC

    X          0.20

    Y          1.40

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 pins.

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.

38             Rev. 1.0
                                               C8051F70x/71x

5. TQFP-48 Package Specifications

               Figure 5.1. TQFP-48 Package Drawing

               Table 5.1. TQFP-48 Package Dimensions

Dimension Min  Nom        Max      Dimension Min      Nom        Max

A   --         --         1.20            E           9.00 BSC.

A1  0.05       --         0.15            E1          7.00 BSC.

A2  0.95       1.00       1.05            L    0.45   0.60       0.75

b   0.17       0.22       0.27            aaa         0.20

c   0.09       --         0.20            bbb         0.20

D              9.00 BSC.                  ccc         0.08

D1             7.00 BSC.                  ddd         0.08

e              0.50 BSC.                       0�     3.5�       7�

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 MS-026, variation ABC.
    4. Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body
         Components.

                                Rev. 1.0                                                            39
C8051F70x/71x

               Figure 5.2. TQFP-48 PCB Land Pattern

        Table 5.2. TQFP-48 PCB Land Pattern Dimensions

    Dimension  Min                                                           Max
                                                                             8.40
    C1         8.30                                                          8.40

    C2         8.30                                                          0.30
                                                                             1.50
    E                    0.50 BSC

    X1         0.20

    Y1         1.40

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 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.

40             Rev. 1.0
                                               C8051F70x/71x

6. QFN-48 Package Specifications

               Figure 6.1. QFN-48 Package Drawing

               Table 6.1. QFN-48 Package Dimensions

Dimension Min  Nom        Max     Dimension Min      Nom   Max

A   0.80       0.90       1.00            E2   3.90  4.00  4.10

A1  0.00       --         0.05            L    0.30  0.40  0.50

b   0.18       0.23       0.30            L1   0.00  --    0.10

D              7.00 BSC.                  aaa  --    --    0.10

D2  3.90       4.00       4.10            bbb  --    --    0.10

e              0.50 BSC.                  ccc  --    --    0.05

E              7.00 BSC.                  ddd  --    --    0.08

Notes:
    1. All dimensions shown are in millimeters (mm) unless otherwise noted.
    2. Dimensioning and Tolerancing per ANSI Y14.5M-1994.
    3. 3.This drawing conforms to JEDEC outline MO-220, variation VKKD-4 except for features D2 and
         L which are toleranced per supplier designation.
    4. Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body
         Components.

                                Rev. 1.0                                                             41
C8051F70x/71x

               Figure 6.2. QFN-48 PCB Land Pattern

        Table 6.2. QFN-48 PCB Land Pattern Dimensions

    Dimension  Min                                     Max
          e
         C1              0.50 BSC

               6.80                                    6.90

    C2         6.80                                    6.90

    X1         0.20                                    0.30

    X2         4.00                                    4.10

    Y1         0.75                                    0.85

    Y2         4.00                                    4.10

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-7351 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.
Solder Mask Design

     5. 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
     6. A stainless steel, laser-cut and electro-polished stencil with trapezoidal walls should be used to assure good solder
          paste release.
     7. The stencil thickness should be 0.125 mm (5 mils).
     8. The ratio of stencil aperture to land pad size should be 1:1 for all perimeter pads.
     9. A 3x3 array of 1.20 mm square openings on 1.40 mm pitch should be used for the center ground pad.

Card Assembly
     10. A No-Clean, Type-3 solder paste is recommended.
     11. The recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body Components.

42             Rev. 1.0
                                               C8051F70x/71x

7. QFN-32 Package Specifications

               Figure 7.1. QFN-32 Package Drawing

               Table 7.1. QFN-32 Package Dimensions

Dimension Min  Typ        Max     Dimension Min      Typ   Max

A   0.80       0.90       1.00            E2   3.50  3.60  3.70

A1  0.00       0.02       0.05            L    0.30  0.35  0.40

b   0.18       0.25       0.30            L1   0.00  --    0.10

D              5.00 BSC.                  aaa        0.15

D2  3.50       3.60       3.70            bbb        0.10

e              0.50 BSC.                  ddd        0.05

E              5.00 BSC.                  eee        0.08

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 MO-220, variation VHHD except for
         custom features D2, E2, L and L1 which are toleranced per supplier designation.
    4. Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body
         Components.

                                Rev. 1.0                                                            43
C8051F70x/71x

               Figure 7.2. QFN-32 Recommended PCB Land Pattern

               Table 7.2. QFN-32 PCB Land Pattern Dimensions

    Dimension  Min         Max   Dimension     Min                                  Max
                                                                                    3.70
    C1               4.60                  X2  3.60                                 0.55
                                                                                    3.70
    C2               4.60                  Y1  0.45

    E                0.50                  Y2  3.60

    X1         0.20        0.30

    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 the IPC-7351 guidelines.

    Solder Mask Design
        4. 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
        5. A stainless steel, laser-cut and electro-polished stencil with trapezoidal walls should be used
             to assure good solder paste release.
        6. The stencil thickness should be 0.125 mm (5 mils).
        7. The ratio of stencil aperture to land pad size should be 1:1 for all perimeter pins.
        8. A 3x3 array of 1.0 mm openings on a 1.25 mm pitch should be used for the center pad to
             assure the proper paste volume.

    Card Assembly
        9. A No-Clean, Type-3 solder paste is recommended.
        10. The recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small
             Body Components.

44                               Rev. 1.0
                                               C8051F70x/71x

8. QFN-24 Package Specifications

               Figure 8.1. QFN-24 Package Drawing

               Table 8.1. QFN-24 Package Dimensions

Dimension Min  Typ        Max     Dimension Min      Typ   Max

A   0.70       0.75       0.80            L    0.30  0.40  0.50

A1  0.00       0.02       0.05            L1   0.00  --    0.15

b   0.18       0.25       0.30            aaa  --    --    0.15

D              4.00 BSC.                  bbb  --    --    0.10

D2  2.55       2.70       2.80            ddd  --    --    0.05

e              0.50 BSC.                  eee  --    --    0.08

E              4.00 BSC.                  Z    --    0.24  --

E2  2.55       2.70       2.80            Y    --    0.18  --

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 Solid State Outline MO-220, variation WGGD except for
         custom features D2, E2, Z, Y, and L which are toleranced per supplier designation.
    4. Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body
         Components.

                                Rev. 1.0                                                            45
C8051F70x/71x

               Figure 8.2. QFN-24 Recommended PCB Land Pattern

               Table 8.2. QFN-24 PCB Land Pattern Dimensions

    Dimension  Min             Max   Dimension     Min                           Max
                                                                                 2.80
    C1         3.90            4.00            X2  2.70                          0.75
                                                                                 2.80
    C2         3.90            4.00            Y1  0.65

    E                0.50 BSC                  Y2  2.70

    X1         0.20            0.30

    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.
        7. A 2x2 array of 1.10 mm x 1.10 mm openings on a 1.30 mm pitch should be used for the center
             pad.

    Card Assembly
        8. A No-Clean, Type-3 solder paste is recommended.
        9. The recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small
             Body Components.

46                                   Rev. 1.0
                                                 C8051F70x/71x

9. Electrical Characteristics

9.1. Absolute Maximum Specifications

Table 9.1. Absolute Maximum Ratings

Parameter                            Conditions  Min Typ Max Units

Ambient temperature under bias                   �55                                 --  125   �C

Storage Temperature                              �65                                 --  150   �C

Voltage on RST or any Port I/O Pin               �0.3                                -- VDD + 2.0 V

(except P0.3) with respect to GND

Voltage on P0.3 with respect to GND              �0.3                                -- VDD + 0.3 V

Voltage on VDD with respect to GND Regulator in Normal Mode �0.3                     --  4.2   V
                                                      Regulator in Bypass Mode �0.3
                                                                                     --  1.98  V

Maximum Total current through VDD                --                                  --  500   mA

and GND

Maximum output current sunk by RST               --                                  --  100   mA

or any Port pin

Note: Stresses above those listed under "Absolute Maximum Ratings" may cause permanent damage to the device.
         This is a stress rating only and functional operation of the devices at those or any other conditions above
         those indicated in the operation listings of this specification is not implied. Exposure to maximum rating
         conditions for extended periods may affect device reliability.

                                     Rev. 1.0                                                        47
C8051F70x/71x

9.2. Electrical Characteristics

Table 9.2. Global Electrical Characteristics

�40 to +85 �C, 25 MHz system clock unless otherwise specified.

Parameter                        Conditions                           Min Typ Max Units

Supply Voltage1                  Regulator in Normal Mode             1.8 3.0 3.6 V
                                 Regulator in Bypass Mode             1.7 1.8 1.9 V

Digital Supply Current with      VDD = 1.8 V, Clock = 25 MHz          -- 5.0 6.5 mA
CPU Active (Normal Mode2,3)      VDD = 1.8 V, Clock = 1 MHz           -- 1.2 -- mA
                                                                      -- 175 -- �A
                                 VDD = 1.8 V, Clock = 32 kHz          -- 5.5 7.0 mA
                                                                      -- 1.3 -- mA
                                 VDD = 3.0 V, Clock = 25 MHz          -- 190 -- �A
                                 VDD = 3.0 V, Clock = 1 MHz

                                 VDD = 3.0 V, Clock = 32 kHz

Digital Supply Current with      VDD = 1.8 V, Clock = 25 MHz          -- 2.5 4.0 mA
CPU Inactive (Idle Mode2,3)      VDD = 1.8 V, Clock = 1 MHz           -- 180 -- �A
                                                                      -- 90 -- �A
                                 VDD = 1.8 V, Clock = 32 kHz          -- 3.2 4.5 mA
                                                                      -- 200 -- �A
                                 VDD = 3.0 V, Clock = 25 MHz          -- 110 -- �A
                                 VDD = 3.0 V, Clock = 1 MHz

                                 VDD = 3.0 V, Clock = 32 kHz

Digital Supply Current       Stop/suspend mode, Reg On, 25 �C -- 80 90 �A
(shutdown)3
                             Stop/suspend mode, Reg Bypass, 25 �C --     2  4 �A

Digital Supply RAM Data                                               -- 1.3 --  V
Retention Voltage

Specified Operating                                                   �40 -- +85 �C
Temperature Range

SYSCLK                           See Note 3.                          0  -- 25 MHz
(system clock frequency)

Tsysl (SYSCLK low time)                                               18 -- -- ns

Tsysh (SYSCLK high time)                                              18 -- -- ns

Notes:

    1. Analog performance is not guaranteed when VDD is below 1.8 V.
    2. Includes bias current for internal voltage regulator.

    3. SYSCLK must be at least 32 kHz to enable debugging.

48                               Rev. 1.0
                                                                           C8051F70x/71x

Table 9.3. Port I/O DC Electrical Characteristics

VDD = 1.8 to 3.6 V, �40 to +85 �C unless otherwise specified.

Parameters                        Conditions                   Min         Typ        Max   Units
Output High Voltage
                             High Drive Strength               VDD � 0.7       --      --     V
Output Low Voltage   IOH = �3 mA, Port I/O push-pull           VDD � 0.1       --      --     V
                     IOH = �10 �A, Port I/O push-pull                      VDD � 0.8   --     V
Input High Voltage   IOH = �10 mA, Port I/O push-pull              --
Input Low Voltage                                                                      --     V
Input Leakage                 Low Drive Strength               VDD � 0.7       --      --     V
Current              IOH = �1 mA, Port I/O push-pull           VDD � 0.1       --      --     V
                     IOH = �10 �A, Port I/O push-pull                      VDD � 0.8
                     IOH = �3 mA, Port I/O push-pull               --                 0.6     V
                                                                                      0.1     V
                             High Drive Strength               --          --          --     V
                                  IOL = 8.5 mA
                                   IOL = 10 �A                 --          --         0.6     V
                                  IOL = 25 mA                                         0.1     V
                                                               --          1.0         --     V
                              Low Drive Strength                                       --     V
                                  IOL = 1.4 mA                 --          --         0.6     V
                                   IOL = 10 �A                                          1    �A
                                   IOL = 4 mA                  --          --          50    �A

                               Weak Pullup Off                 --          1.0
                        Weak Pullup On, VIN = 0 V
                                                               0.75 x VDD  --

                                                               --          --

                                                               �1          --

                                                               --          25

Table 9.4. Reset Electrical Characteristics

VDD = 1.8 to 3.6 V, �40 to +85 �C unless otherwise specified.

Parameter                     Conditions                            Min    Typ        Max Units

RST Output Low Voltage            IOL = 8.5 mA,                     --          --    0.6   V
                              VDD = 1.8 V to 3.6 V
RST Input High Voltage                                         0.75 x VDD --          --    V
RST Input Low Voltage              RST = 0.0 V
RST Input Pullup Current                                            --          --    0.3 x VDD VDD

                                                                    --          25    50    �A

VDD POR Ramp Time                                                   --          --    1     ms
VDD Monitor Threshold (VRST)
Missing Clock Detector                                              1.7    1.75       1.8   V
Timeout
                              Time from last system clock           100    500        1000  �s
                              rising edge to reset initiation

Reset Time Delay              Delay between release of any          --          --    30    �s

                              reset source and code

                              execution at location 0x0000

Minimum RST Low Time to                                             15          --    --    �s
Generate a System Reset

VDD Monitor Turn-on Time      VDD = VRST � 0.1 V                    --          50    --    �s
VDD Monitor Supply Current
                                                                    --          25    30    �A

                              Rev. 1.0                                                          49
C8051F70x/71x

Table 9.5. Internal Voltage Regulator Electrical Characteristics

VDD = 3.0 V, �40 to +85 �C unless otherwise specified.

Parameter                            Conditions                        Min Typ Max Units

Input Voltage Range                                                    1.8     --                    3.6  V
Bias Current
                                     Normal mode, 25 �C                --      80                    90   �A
                                     Bypass mode, 25 �C
                                                                       --      2                     4    �A

Table 9.6. Flash Electrical Characteristics

Parameter                            Conditions                             Min Typ                  Max Units

Flash Size*                            C8051F702/3/6/7, C8051F716/7            16384                          bytes
                                                 C8051F700/1/4/5               15360                          bytes
Endurance (Erase/Write)                                                        8192                           bytes
Erase Cycle Time                     C8051F708/9, C8051F710/1/2/3/4/5                                 -- cycles
Write Cycle Time                                                       10000 --                       26 ms
Clock Speed During Flash                           25 MHz Clock                                       26 �s
Write/Erase Operations                             25 MHz Clock             15 20                     -- MHz

                                                                            15 20

                                                                            1      --

*Note: Includes Security Lock Byte.

Table 9.7. Internal High-Frequency Oscillator Electrical Characteristics

VDD = 1.8 to 3.6 V; TA = �40 to +85 �C unless otherwise specified. Use factory-calibrated settings.

Parameter                            Conditions                        Min Typ Max                        Units
                                                                                                          MHz
Oscillator Frequency                      IFCN = 11b                   24 24.5 25                          �A
Oscillator Supply Current            25 �C, VDD = 3.0 V,               -- 350 650

                                       OSCICN.7 = 1,
                                        OCSICN.5 = 0

50                                           Rev. 1.0
                                                                    C8051F70x/71x

Table 9.8. Capacitive Sense Electrical Characteristics

VDD = 1.8 to 3.6 V; TA = �40 to +85 �C unless otherwise specified.

Parameter                  Conditions                               Min Typ Max Units

Single Conversion Time1    12-bit Mode                              20  29  40                          �s

                           13-bit Mode (default)                    21  31 42.5

                           14-bit Mode                              23  33  45

                           16-bit Mode                              26  38  50

Number of Channels         64-pin Packages                              38       Channels
                           48-pin Packages
                                                                        27

                           32-pin Packages                              26

                           24-pin Packages                              18

Capacitance per Code       Default Configuration                    --  1   --                          fF

External Capacitive Load   CS0CG = 111b (Default)                   --  -- 45                           pF
                                 CS0CG = 000b
                                                                    --  -- 500                          pF

External Series Impedance  CS0CG = 111b (Default)                   --  -- 50                           k
Quantization Noise12                    RMS
                                                                    --  3   --                          fF

                           Peak-to-Peak                             --  20  --                          fF

Power Supply Current       CS module bias current, 25 �C            --  50 60                           �A

                           CS module alone, maximum code            --  90 105                          �A
                                        output, 25 �C

                           Wake-on-CS threshold (suspend mode -- 130 145                                �A

                           with regulator and CS module on)3

Notes:
    1. Conversion time is specified with the default configuration.
    2. RMS Noise is equivalent to one standard deviation. Peak-to-peak noise encompasses �3.3 standard
         deviations. The RMS noise value is specified with the default configuration.
    3. Includes only current from regulator, CS module, and MCU in suspend mode.

                           Rev. 1.0                                                                         51
C8051F70x/71x

Table 9.9. EEPROM Electrical Characteristics

VDD = 1.8 to 3.6 V; TA = �40 to +85 �C unless otherwise specified. Use factory-calibrated settings.

Parameter                        Conditions                Min                   Typ                 Max    Units
                                                                                                              ms
Write to EEPROM from RAM                                                         --                      3    �s

Read of EEPROM to RAM                                      -- 50 x TSYSCLK --                               cycles
Endurance (Writes)                                                                                           MHz
                                                           300000                --                     --

Clock Speed During EEPROM                                  1                     --                     --
Write Operations

Note: TSYSCLK is equal to one period of the device system clock (SYSCLK).

Table 9.10. ADC0 Electrical Characteristics

VDD = 3.0 V, VREF = 2.40 V (REFSL=0), �40 to +85 �C unless otherwise specified.

Parameter                        Conditions                   Min Typ Max Units

DC Accuracy

Resolution                                                                       10                         bits

Integral Nonlinearity                                                      --    �0.5 �1                    LSB

Differential Nonlinearity        Guaranteed Monotonic                      --    �0.5 �1                    LSB

Offset Error                                                               �2    0                   2      LSB

Full Scale Error                                                           �2    0                   2      LSB

Offset Temperature Coefficient                                             --    45                  -- ppm/�C

Dynamic performance (10 kHz sine-wave single-ended input, 1 dB below Full Scale, 500 ksps)

Signal-to-Noise Plus Distortion                                            56    60                  --     dB

Total Harmonic Distortion        Up to the 5th harmonic                    --    72                  --     dB

Spurious-Free Dynamic Range                                                --    �75                 --     dB

Conversion Rate

SAR Conversion Clock                                                       --    --   8.33 MHz

Conversion Time in SAR Clocks    10-bit Mode                               13    --                  -- clocks
                                 8-bit Mode
                                                                           11    --                  -- clocks

Track/Hold Acquisition Time      VDD >= 2.0 V                 300                --                  --     ns
Throughput Rate                  VDD < 2.0 V
                                                                           2.0   --                  --     �s

                                                                           --    --                  500 ksps

Analog Inputs

ADC Input Voltage Range                                                    0     -- VREF                    V

Sampling Capacitance              1x Gain                                  --    5                   --     pF
                                 0.5x Gain
                                                                           --    3                   --     pF

Input Multiplexer Impedance                                                --    5                   --     k

Power Specifications

Power Supply Current             Operating Mode, 500 ksps                  --    600 1000                   �A

Power Supply Rejection                                                     --    �70                 --     dB

52                               Rev. 1.0
                                                                   C8051F70x/71x

Table 9.11. Power Management Electrical Characteristics

VDD = 1.8 to 3.6 V; TA = �40 to +85 �C unless otherwise specified. Use factory-calibrated settings.

Parameter                  Conditions                          Min Typ Max                                 Units
                                                                                                         SYSCLKs
Idle Mode Wake-Up time                                         2                      --         3
                                                                                                              ns
Suspend Mode Wake-Up Time                                      -- 250 --

Table 9.12. Temperature Sensor Electrical Characteristics

VDD = 3.0 V, �40 to +85 �C unless otherwise specified.

Parameter                  Conditions                          Min                    Typ Max             Units
                                                                                                            �C
Linearity                                                      --                         1          --
                                                                                                          mV/�C
Slope                                                          --                     3.27           --   �V/�C

Slope Error*                                                   --                     �65            --     mV
                                                                                                            mV
Offset                     Temp = 0 �C                         --                     868            --
Offset Error*
                           Temp = 0 �C                         --                     �15.3 --

*Note: Represents one standard deviation from the mean.

Table 9.13. Voltage Reference Electrical Characteristics

VDD = 1.8 to 3.6 V; �40 to +85 �C unless otherwise specified.

Parameter                  Conditions                              Min Typ Max                            Units

Output Voltage          Internal High-Speed Reference (REFSL[1:0] = 11)                                     V
Turn-on Time                                                                                                �s
Supply Current             25 �C ambient                           1.55 1.59 1.70                          �A

Input Voltage Range                                                 -- -- 1.7                              �A
Input Current
                                                                    -- 200 --

                           External Reference (REF0E = 0)

                                                                                   0         --      VDD
                        Sample Rate = 500 ksps; VREF = 3.0 V --
                                                                                             7       --

                           Rev. 1.0                                                                               53
C8051F70x/71x

Table 9.14. Comparator Electrical Characteristics

VDD = 3.0 V, �40 to +85 �C unless otherwise noted.

Parameter                         Conditions               Min   Typ   Max         Units
                                                            --
Response Time:                     CP0+ � CP0� = 100 mV     --   300        --       ns
Mode 0, Vcm* = 1.5 V              CP0+ � CP0� = �100 mV     --   200        --       ns
                                   CP0+ � CP0� = 100 mV     --   400        --       ns
Response Time:                    CP0+ � CP0� = �100 mV     --   350        --       ns
Mode 1, Vcm* = 1.5 V               CP0+ � CP0� = 100 mV     --   570        --       ns
                                  CP0+ � CP0� = �100 mV     --   870        --       ns
Response Time:                     CP0+ � CP0� = 100 mV     --   1500       --       ns
Mode 2, Vcm* = 1.5 V              CP0+ � CP0� = �100 mV     --   4500       --       ns
                                                            --               4     mV/V
Response Time:                    Mode 2, CP0HYP1�0 = 00    2      1         1      mV
Mode 3, Vcm* = 1.5 V              Mode 2, CP0HYP1�0 = 01    7      0        10      mV
                                  Mode 2, CP0HYP1�0 = 10    10     5        20      mV
Common-Mode Rejection Ratio       Mode 2, CP0HYP1�0 = 11    --    10        30      mV
Positive Hysteresis 1             Mode 2, CP0HYN1�0 = 00    2     20         1      mV
Positive Hysteresis 2             Mode 2, CP0HYN1�0 = 01    7      0        10      mV
Positive Hysteresis 3             Mode 2, CP0HYN1�0 = 10    10     5        20      mV
Positive Hysteresis 4             Mode 2, CP0HYN1�0 = 11  �0.25   10        30      mV
Negative Hysteresis 1                                             20   VDD + 0.25    V
Negative Hysteresis 2                                     �7.5    --
Negative Hysteresis 3
Negative Hysteresis 4                                       --   --    7.5         mV
Inverting or Non-Inverting Input                            --
Voltage Range                                               --
Input Offset Voltage                                        --
                                                            --
Power Specifications                                        --

Power Supply Rejection                                           0.1   --          mV/V
Powerup Time
Supply Current at DC                                             10    --          �s

                                  Mode 0                         25    --          �A
                                  Mode 1
                                  Mode 2                         10    --          �A
                                  Mode 3
                                                                 3     --          �A

                                                                 0.5   --          �A

Note: Vcm is the common-mode voltage on CP0+ and CP0�.

54                                Rev. 1.0
                                                 C8051F70x/71x

10. 10-Bit ADC (ADC0)

ADC0 on the C8051F700/2/4/6/8 and C8051F710/2/4/6 is a 500 ksps, 10-bit successive-approximation-
register (SAR) ADC with integrated track-and-hold, a gain stage programmable to 1x or 0.5x, and a pro-
grammable window detector. The ADC is fully configurable under software control via Special Function
Registers. The ADC may be configured to measure various different signals using the analog multiplexer
described in Section "10.5. ADC0 Analog Multiplexer" on page 65. The voltage reference for the ADC is
selected as described in Section "11. Temperature Sensor" on page 67. The ADC0 subsystem is enabled
only when the AD0EN bit in the ADC0 Control register (ADC0CN) is set to logic 1. The ADC0 subsystem is
in low power shutdown when this bit is logic 0.

                                                                              ADC0CN

                        AD0EN
                            AD0TM
                                 AD0INT
                                     AD0BUSY
                                          AD0WINT
                                              AD0CM2
                                                   AD0CM1
                                                       AD0CM0

                          VDD         Start                                            000  AD0BUSY (W)
                                  Conversion                                                Timer 0 Overflow
                        10-Bit                                                         001  Timer 2 Overflow
                         SAR                                                                Timer 1 Overflow
                                                                                       010  CNVSTR Input
                        ADC                                                                 Timer 3 Overflow
                                                                                       011

              AD0SC4                                                                   100
                  AD0SC3
                       AD0SC2                                                          101
                           AD0SC1
From  X1 or                    AD0SC0AIN
AMUX0                               AD0LJST
       X0.5                              AD08BE
                                             AMP0GN0
       AMP0GN0
                                                               SYSCLK
                                                                   REF                             AD0WINT

                                                                          ADC0H ADC0L               Window
                        ADC0LTH ADC0LTL                                                            Compare
                                                                                            32 Logic

                ADC0CF  ADC0GTH ADC0GTL

              Figure 10.1. ADC0 Functional Block Diagram

                        Rev. 1.0                                                                            55
C8051F70x/71x

10.1. Output Code Formatting

The ADC measures the input voltage with reference to GND. The registers ADC0H and ADC0L contain the
high and low bytes of the output conversion code from the ADC at the completion of each conversion. Data
can be right-justified or left-justified, depending on the setting of the AD0LJST bit. Conversion codes are
represented as 10-bit unsigned integers. Inputs are measured from 0 to VREF x 1023/1024. Example
codes are shown below for both right-justified and left-justified data. Unused bits in the ADC0H and ADC0L
registers are set to 0.

Input Voltage     Right-Justified ADC0H:ADC0L  Left-Justified ADC0H:ADC0L
                  (AD0LJST = 0)                (AD0LJST = 1)
VREF x 1023/1024
VREF x 512/1024   0x03FF                       0xFFC0
VREF x 256/1024   0x0200                       0x8000
0                 0x0100                       0x4000
                  0x0000                       0x0000

10.2. 8-Bit Mode

Setting the ADC08BE bit in register ADC0CF to 1 will put the ADC in 8-bit mode. In 8-bit mode, only the 8
MSBs of data are converted, and the ADC0H register holds the results. The AD0LJST bit is ignored for 8-
bit mode. 8-bit conversions take two fewer SAR clock cycles than 10-bit conversions, so the conversion is
completed faster, and a 500 ksps sampling rate can be achieved with a slower SAR clock.

10.3. Modes of Operation

ADC0 has a maximum conversion speed of 500 ksps. The ADC0 conversion clock is a divided version of
the system clock, determined by the AD0SC bits in the ADC0CF register.

10.3.1. Starting a Conversion
A conversion can be initiated in one of six ways, depending on the programmed states of the ADC0 Start of
Conversion Mode bits (AD0CM2�0) in register ADC0CN. Conversions may be initiated by one of the fol-
lowing:

1. Writing a 1 to the AD0BUSY bit of register ADC0CN
2. A Timer 0 overflow (i.e., timed continuous conversions)
3. A Timer 2 overflow
4. A Timer 1 overflow
5. A rising edge on the CNVSTR input signal
6. A Timer 3 overflow
Writing a 1 to AD0BUSY provides software control of ADC0 whereby conversions are performed "on-
demand". During conversion, the AD0BUSY bit is set to logic 1 and reset to logic 0 when the conversion is
complete. The falling edge of AD0BUSY triggers an interrupt (when enabled) and sets the ADC0 interrupt
flag (AD0INT). When polling for ADC conversion completions, the ADC0 interrupt flag (AD0INT) should be
used. Converted data is available in the ADC0 data registers, ADC0H:ADC0L, when bit AD0INT is logic 1.
When Timer 2 or Timer 3 overflows are used as the conversion source, Low Byte overflows are used if
Timer 2/3 is in 8-bit mode; High byte overflows are used if Timer 2/3 is in 16-bit mode. See Section
"33. Timers" on page 262 for timer configuration.

Important Note About Using CNVSTR: The CNVSTR input pin also functions as a Port I/O pin. When the
CNVSTR input is used as the ADC0 conversion source, the associated pin should be skipped by the Digi-
tal Crossbar. See Section "28. Port Input/Output" on page 180 for details on Port I/O configuration.

56                Rev. 1.0
                                                                              C8051F70x/71x

10.3.2. Tracking Modes

The AD0TM bit in register ADC0CN enables "delayed conversions", and will delay the actual conversion
start by three SAR clock cycles, during which time the ADC will continue to track the input. If AD0TM is left
at logic 0, a conversion will begin immediately, without the extra tracking time. For internal start-of-conver-
sion sources, the ADC will track anytime it is not performing a conversion. When the CNVSTR signal is
used to initiate conversions, ADC0 will track either when AD0TM is logic 1, or when AD0TM is logic 0 and
CNVSTR is held low. See Figure 10.2 for track and convert timing details. Delayed conversion mode is
useful when AMUX settings are frequently changed, due to the settling time requirements described in
Section "10.3.3. Settling Time Requirements" on page 58.

                                        A. ADC Timing for External Trigger Source

            CNVSTR                                1 2 3 4 5 6 7 8 9 10 11 12 13 14 15* 16 17
(AD0CM[2:0]=1xx)
                                        Track                        Convert                  Track
                SAR
             Clocks                                         *Conversion Ends at rising edge of 15th clock in 8-bit Mode
           AD0TM=1
                                                  1 2 3 4 5 6 7 8 9 10 11 12* 13 14
        SAR Clocks

AD0TM=0 N/C Track                                           Convert                           N/C

                                                                                             *Conversion Ends at rising edge of 12th clock in 8-bit Mode

                                        B. ADC Timing for Internal Trigger Source

                 Write '1' to AD0BUSY,
Timer 0, Timer 2, Timer 1 Overflow

  (AD0CM[2:0]=000, 001, 010, 011)

                                                  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15* 16 17

  SAR
Clocks

AD0TM=1                                 Track                        Convert                  Track

       SAR                                                  *Conversion Ends at rising edge of 15th clock in 8-bit Mode
    Clocks
AD0TM=0                                           1 2 3 4 5 6 7 8 9 10 11 12* 13 14

                                        Track or            Convert                           Track
                                        Convert

                                                            *Conversion Ends at rising edge of 12th clock in 8-bit Mode

Figure 10.2. 10-Bit ADC Track and Conversion Example Timing

                                                  Rev. 1.0                                                                                                57
C8051F70x/71x

10.3.3. Settling Time Requirements

A minimum tracking time is required before each conversion to ensure that an accurate conversion is per-
formed. This tracking time is determined by any series impedance, including the AMUX0 resistance, the
the ADC0 sampling capacitance, and the accuracy required for the conversion. In delayed tracking mode,
three SAR clocks are used for tracking at the start of every conversion. For many applications, these three
SAR clocks will meet the minimum tracking time requirements.

Figure 10.3 shows the equivalent ADC0 input circuit. The required ADC0 settling time for a given settling
accuracy (SA) may be approximated by Equation 10.1. See Table 9.10 for ADC0 minimum settling time
requirements as well as the mux impedance and sampling capacitor values.

               t  =  ln    S-2---An--    RTOTALCSAMPLE
                        

                             Equation 10.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.
n is the ADC resolution in bits (10).

                     MUX Select

    Input Pin

                                         RMUX

                                                        CSAMPLE

                  RCInput= RMUX * CSAMPLE

    Note: See electrical specification tables for RMUX and CSAMPLE parameters.

                          Figure 10.3. ADC0 Equivalent Input Circuits

58                                       Rev. 1.0
                                                                 C8051F70x/71x

SFR Definition 10.1. ADC0CF: ADC0 Configuration

Bit    7  6                       5                 4  3         2                           1    0

Name         AD0SC[4:0]                                          AD0LJST AD08BE AMP0GN0

Type         R/W                                                 R/W                         R/W  R/W

Reset  1  1                       1                 1  1         0                           0    1

SFR Address = 0xBC; SFR Page = F                       Function
Bit Name

7:3 AD0SC[4:0] ADC0 SAR Conversion Clock Period Bits.

                         SAR Conversion clock is derived from system clock by the following equation, where
                         AD0SC refers to the 5-bit value held in bits AD0SC4�0. SAR Conversion clock
                         requirements are given in the ADC specification table.

          AD0SC = -S---Y----S----C----L---K--- � 1
                        CLKSAR

2 AD0LJST ADC0 Left Justify Select.
                        0: Data in ADC0H:ADC0L registers are right-justified.
                        1: Data in ADC0H:ADC0L registers are left-justified.
                          Note: The AD0LJST bit is only valid for 10-bit mode (AD08BE = 0).

1 AD08BE 8-Bit Mode Enable.
                        0: ADC operates in 10-bit mode (normal).
                        1: ADC operates in 8-bit mode.
                          Note: When AD08BE is set to 1, the AD0LJST bit is ignored.

0 AMP0GN0 ADC Gain Control Bit.
                        0: Gain = 0.5
                        1: Gain = 1

                                     Rev. 1.0                                                          59
C8051F70x/71x

SFR Definition 10.2. ADC0H: ADC0 Data Word MSB

    Bit  7  6                     5  4         3         2  1  0

Name                                 ADC0H[7:0]

Type                                    R/W

Reset    0  0                     0  0         0         0  0  0

SFR Address = 0xBE; SFR Page = 0               Function
Bit Name

7:0 ADC0H[7:0] ADC0 Data Word High-Order Bits.

                         For AD0LJST = 0: Bits 7:2 will read 000000b. Bits 1�0 are the upper 2 bits of the 10-
                         bit ADC0 Data Word.
                         For AD0LJST = 1: Bits 7:0 are the most-significant bits of the 10-bit ADC0 Data Word.
                           Note: In 8-bit mode AD0LJST is ignored, and ADC0H holds the 8-bit data word.

SFR Definition 10.3. ADC0L: ADC0 Data Word LSB

    Bit  7  6                     5  4         3         2  1  0

Name                                 ADC0L[7:0]

Type                                    R/W

Reset    0  0                     0  0         0         0  0  0

SFR Address = 0xBD; SFR Page = 0               Function
Bit Name

7:0 ADC0L[7:0] ADC0 Data Word Low-Order Bits.

                         For AD0LJST = 0: Bits 7:0 are the lower 8 bits of the 10-bit Data Word.
                         For AD0LJST = 1: Bits 7:6 are the lower 2 bits of the 10-bit Data Word. Bits 5�0 will
                         always read 0.
                           Note: In 8-bit mode AD0LJST is ignored, and ADC0L will read back 00000000b.

60                                   Rev. 1.0
                                                              C8051F70x/71x

SFR Definition 10.4. ADC0CN: ADC0 Control

  Bit      7      6       5  4                             3  2                          1          0
Name   AD0EN  AD0TM
Type                 AD0INT AD0BUSY AD0WINT                      AD0CM[2:0]
Reset    R/W    R/W
           0      0  R/W     R/W           R/W                           R/W

                          0  0                             0  0                          0          0

SFR Address = 0xE8; SFR Page = All Pages; Bit-Addressable

Bit Name                                   Function

7 AD0EN ADC0 Enable Bit.
                        0: ADC0 Disabled. ADC0 is in low-power shutdown.
                        1: ADC0 Enabled. ADC0 is active and ready for data conversions.

6 AD0TM ADC0 Track Mode Bit.

                        0: Normal Track Mode: When ADC0 is enabled, tracking is continuous unless a con-
                        version is in progress. Conversion begins immediately on start-of-conversion event,
                        as defined by AD0CM[2:0].
                        1: Delayed Track Mode: When ADC0 is enabled, input is tracked when a conversion
                        is not in progress. A start-of-conversion signal initiates three SAR clocks of additional
                        tracking, and then begins the conversion.

5 AD0INT ADC0 Conversion Complete Interrupt Flag.
                        0: ADC0 has not completed a data conversion since AD0INT was last cleared.
                        1: ADC0 has completed a data conversion.

4 AD0BUSY ADC0 Busy Bit.     Read:                               Write:

                             0: ADC0 conversion is not 0: No Effect.

                             in progress.                        1: Initiates ADC0 Conver-

                             1: ADC0 conversion is in sion if AD0CM[2:0] =

                             progress.                           000b

3 AD0WINT ADC0 Window Compare Interrupt Flag.

                        0: ADC0 Window Comparison Data match has not occurred since this flag was last
                        cleared.
                        1: ADC0 Window Comparison Data match has occurred.

2:0 AD0CM[2:0] ADC0 Start of Conversion Mode Select.

                         000: ADC0 start-of-conversion source is write of 1 to AD0BUSY.
                         001: ADC0 start-of-conversion source is overflow of Timer 0.
                         010: ADC0 start-of-conversion source is overflow of Timer 2.
                         011: ADC0 start-of-conversion source is overflow of Timer 1.
                         100: ADC0 start-of-conversion source is rising edge of external CNVSTR.
                         101: ADC0 start-of-conversion source is overflow of Timer 3.
                         11x: Reserved.

                             Rev. 1.0                                                                   61
C8051F70x/71x

10.4. Programmable Window Detector

The ADC Programmable Window Detector continuously compares the ADC0 output registers to user-pro-
grammed limits, and notifies the system when a desired condition is detected. This is especially effective in
an interrupt-driven system, saving code space and CPU bandwidth while delivering faster system
response times. The window detector interrupt flag (AD0WINT in register ADC0CN) can also be used in
polled mode. The ADC0 Greater-Than (ADC0GTH, ADC0GTL) and Less-Than (ADC0LTH, ADC0LTL)
registers hold the comparison values. The window detector flag can be programmed to indicate when mea-
sured data is inside or outside of the user-programmed limits, depending on the contents of the ADC0
Less-Than and ADC0 Greater-Than registers.

SFR Definition 10.5. ADC0GTH: ADC0 Greater-Than Data High Byte

    Bit  7     6                  5  4         3               2  1  0

Name                                 ADC0GTH[7:0]

Type                                    R/W

Reset    1     1                  1  1         1               1  1  1

SFR Address = 0xC4; SFR Page = 0

Bit      Name                                  Function

7:0 ADC0GTH[7:0] ADC0 Greater-Than Data Word High-Order Bits.

SFR Definition 10.6. ADC0GTL: ADC0 Greater-Than Data Low Byte

    Bit  7     6                  5  4         3               2  1  0

Name                                 ADC0GTL[7:0]

Type                                    R/W

Reset    1     1                  1  1         1               1  1  1

SFR Address = 0xC3; SFR Page = 0

Bit      Name                                  Function

7:0 ADC0GTL[7:0] ADC0 Greater-Than Data Word Low-Order Bits.

62                                   Rev. 1.0
                                                            C8051F70x/71x

SFR Definition 10.7. ADC0LTH: ADC0 Less-Than Data High Byte

Bit    7     6                    5  4         3            2  1  0

Name                                 ADC0LTH[7:0]

Type                                    R/W

Reset  0     0                    0  0         0            0  0  0

SFR Address = 0xC6; SFR Page = 0

Bit    Name                                    Function

7:0 ADC0LTH[7:0] ADC0 Less-Than Data Word High-Order Bits.

SFR Definition 10.8. ADC0LTL: ADC0 Less-Than Data Low Byte

Bit    7     6                    5  4         3            2  1  0

Name                                 ADC0LTL[7:0]

Type                                    R/W

Reset  0     0                    0  0         0            0  0  0

SFR Address = 0xC5; SFR Page = 0

Bit    Name                                    Function

7:0 ADC0LTL[7:0] ADC0 Less-Than Data Word Low-Order Bits.

                                     Rev. 1.0                        63
C8051F70x/71x

10.4.1. Window Detector Example

Figure 10.4 shows two example window comparisons for right-justified data, with
ADC0LTH:ADC0LTL = 0x0080 (128d) and ADC0GTH:ADC0GTL = 0x0040 (64d). The input voltage can
range from 0 to VREF x (1023/1024) with respect to GND, and is represented by a 10-bit unsigned integer
value. In the left example, an AD0WINT interrupt will be generated if the ADC0 conversion word
(ADC0H:ADC0L) is within the range defined by ADC0GTH:ADC0GTL and ADC0LTH:ADC0LTL
(if 0x0040 < ADC0H:ADC0L < 0x0080). In the right example, and AD0WINT interrupt will be generated if
the ADC0 conversion word is outside of the range defined by the ADC0GT and ADC0LT registers
(if ADC0H:ADC0L < 0x0040 or ADC0H:ADC0L > 0x0080). Figure 10.5 shows an example using left-justi-
fied data with the same comparison values.

     Input Voltage  ADC0H:ADC0L                                      Input Voltage      ADC0H:ADC0L
     (AIN - GND)         0x03FF                                       (AIN - GND)            0x03FF

    VREF x (1023/                                                    VREF x (1023/
          1024)                                                            1024)

                                  AD0WINT                                                                                     AD0WINT=1
                                 not affected
                                                                                                     ADC0GTH:ADC0GTL
VREF x (128/1024)   0x0081       ADC0LTH:ADC0LTL                     VREF x (128/1024)  0x0081              AD0WINT
VREF x (64/1024)    0x0080                                AD0WINT=1  VREF x (64/1024)   0x0080             not affected
                    0x007F                                                              0x007F
                                 ADC0GTH:ADC0GTL                                                     ADC0LTH:ADC0LTL
                    0x0041                                                              0x0041
                    0x0040                                                              0x0040
                    0x003F                                                              0x003F

                                  AD0WINT                                                            AD0WINT=1
                                 not affected

    0               0x0000                                           0                  0x0000

                    Figure 10.4. ADC Window Compare Example: Right-Justified Data

     Input Voltage  ADC0H:ADC0L                                      Input Voltage      ADC0H:ADC0L
     (AIN - GND)         0xFFC0                                       (AIN - GND)            0xFFC0

    VREF x (1023/                                                    VREF x (1023/
          1024)                                                            1024)

                                  AD0WINT                                                                                     AD0WINT=1
                                 not affected
                                                                                                     ADC0GTH:ADC0GTL
VREF x (128/1024)   0x2040       ADC0LTH:ADC0LTL                     VREF x (128/1024)  0x2040              AD0WINT
VREF x (64/1024)    0x2000                                AD0WINT=1  VREF x (64/1024)   0x2000             not affected
                    0x1FC0                                                              0x1FC0
                                 ADC0GTH:ADC0GTL                                                     ADC0LTH:ADC0LTL
                    0x1040                                                              0x1040
                    0x1000                                                              0x1000
                    0x0FC0                                                              0x0FC0

                                  AD0WINT                                                            AD0WINT=1
                                 not affected

    0               0x0000                                           0                  0x0000

                    Figure 10.5. ADC Window Compare Example: Left-Justified Data

64                                             Rev. 1.0
                                                 C8051F70x/71x

10.5. ADC0 Analog Multiplexer

ADC0 on the C8051F700/2/4/6/8 and C8051F710/2/4/6 uses an analog input multiplexer to select the pos-
itive input to the ADC. Any of the following may be selected as the positive input: Port 0 or Port 1 I/O pins,
the on-chip temperature sensor, or the positive power supply (VDD). The ADC0 input channel is selected in
the ADC0MX register described in SFR Definition 10.9.

                                                   ADC0MX

                        AMX0P4
                            AMX0P3
                                AMX0P2
                                     AMX0P1
                                         AMX0P0

        P0.0

        P1.7            AMUX                     ADC0

Temp    VREG Output
Sensor             VDD
                   GND

        Figure 10.6. ADC0 Multiplexer Block Diagram

Important Note About ADC0 Input Configuration: Port pins selected as ADC0 inputs should be config-
ured as analog inputs, and should be skipped by the Digital Crossbar. To configure a Port pin for analog
input, set the corresponding bit in register PnMDIN to 0. To force the Crossbar to skip a Port pin, set the
corresponding bit in register PnSKIP to 1. See Section "28. Port Input/Output" on page 180 for more Port
I/O configuration details.

                        Rev. 1.0                       65
C8051F70x/71x

SFR Definition 10.9. ADC0MX: AMUX0 Channel Select

    Bit  7     6                  5  4               3    2                1  0

Name                                                      AMX0P[4:0]

Type     R     R                  R                       R/W

Reset    0     0                  0  1               1    1                1  1

SFR Address = 0xBB; SFR Page = 0

Bit      Name                                   Function

7:5 Unused Read = 000b; Write = Don't Care.
4:0 AMX0P[4:0] AMUX0 Positive Input Selection.

                  00000              64-Pin Devices     48-Pin Devices     32-Pin Devices
                  00001                     P0.0               P0.0                 --
                  00010                     P0.1               P0.1                 --
                  00011                     P0.2               P0.2                 --
                  00100                     P0.3               P0.3
                                            P0.4               P0.4               P0.3
                                                                                  P0.4
                  00101              P0.5                 P0.5                    P0.5
                  00110              P0.6                 P0.6
                  00111              P0.7                 P0.7                      --
                  01000              P1.0                 P1.0                      --
                  01001              P1.1                 P1.1                      --
                  01010              P1.2                 P1.2                      --
                  01011              P1.3                 P1.3                      --
                  01100              P1.4                                           --
                                                           --                       --
                                                                                    --
                   01101                   P1.5                 --                  --
                   01110                   P1.6                 --                  --
                   01111                   P1.7                 --          Temp Sensor
                   10000             Temp Sensor         Temp Sensor        VREG Output
                   10001             VREG Output        VREG Output               VDD
                   10010                   VDD                VDD                 GND
                   10011                  GND                 GND
               10100�11111                              no input selected

66                                   Rev. 1.0
                                                 C8051F70x/71xVoltage

11. Temperature Sensor

An on-chip temperature sensor is included on the C8051F700/2/4/6/8 and C8051F710/2/4/6 which can be
directly accessed via the ADC multiplexer in single-ended configuration. To use the ADC to measure the
temperature sensor, the ADC mux channel should be configured to connect to the temperature sensor.
The temperature sensor transfer function is shown in Figure 11.1. The output voltage (VTEMP) is the posi-
tive ADC input when the ADC multiplexer is set correctly. The TEMPE bit in register REF0CN enables/dis-
ables the temperature sensor, as described in SFR Definition 12.1. While disabled, the temperature sensor
defaults to a high impedance state and any ADC measurements performed on the sensor will result in
meaningless data. Refer to Table 9.12 for the slope and offset parameters of the temperature sensor.

                              VTEMP = (Slope x TempC) + Offset

                              TempC = (VTEMP - Offset) / Slope

                                                                          Slope (V / deg C)

                                                              Offset (V at 0 Celsius)

                                             Temperature

                           Figure 11.1. Temperature Sensor Transfer Function

11.1. Calibration

The uncalibrated temperature sensor output is extremely linear and suitable for relative temperature mea-
surements (see Table 5.1 for linearity specifications). For absolute temperature measurements, offset
and/or gain calibration is recommended. Typically a 1-point (offset) calibration includes the following steps:
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's input.
4. Calculate the offset characteristics, and store this value in non-volatile memory for use with subsequent

    temperature sensor measurements.
Figure 5.3 shows the typical temperature sensor error assuming a 1-point calibration at 0 �C.

         Rev. 1.0  67
C8051F70x/71x

Parameters that affect ADC measurement, in particular the voltage reference value, will also affect temper-
ature measurement.

                   5.00                                                                                5.00

                   4.00                                                                                4.00

                   3.00                                                                                3.00

                   2.00                                                                                2.00

Error (degrees C)  1.00                                                                                1.00

                   0.00        -20.00  0.00  20.00              40.00  60.00  80.00                    0.00
                       -40.00
                                                                                                       -1.00
                   -1.00

                   -2.00                                                                               -2.00

                   -3.00                                                                               -3.00

                   -4.00                                                                               -4.00

                   -5.00                                                                               -5.00

                                       Temperature (degrees C)

                          Figure 11.2. Temperature Sensor Error with 1-Point Calibration at 0 Celsius

68                                           Rev. 1.0
                                                 C8051F70x/71x

12. Voltage and Ground Reference Options

The voltage reference MUX is configurable to use an externally connected voltage reference, the on-chip
voltage reference, or one of two power supply voltages (see Figure 12.1). The ground reference MUX
allows the ground reference for ADC0 to be selected between the ground pin (GND) or a port pin dedi-
cated to analog ground (P0.1/AGND).
The voltage and ground reference options are configured using the REF0CN SFR described on page 71.
Electrical specifications are can be found in the Electrical Specifications Chapter.
Important Note About the VREF and AGND Inputs: Port pins are used as the external VREF and AGND
inputs. When using an external voltage reference, P0.0/VREF should be configured as an analog input and
skipped by the Digital Crossbar. When using AGND as the ground reference to ADC0, P0.1/AGND should
be configured as an analog input and skipped by the Digital Crossbar. Refer to Section "28. Port Input/Out-
put" on page 180 for complete Port I/O configuration details. The external reference voltage must be within
the range 0  VREF  VDD and the external ground reference must be at the same DC voltage potential as
GND.

                                                                          REF0CN

                                       REFGND
                                          REFSL1
                                             REFSL0
                                                TEMPE
                                                   BIASE

                                                     EN Bias Generator                                  To ADC, Internal
                                       IOSCEN                                                           Oscillator,
                                                                                                        Reference,
                                                     EN Temp Sensor                                     TempSensor

                                                                                                       To Analog Mux

VDD          External
     R1      Voltage
            Reference
              Circuit                                            00

                         P0.0/VREF

                                  VDD                            01
GND
                                       Internal 1.8 V            10

                                       Regulated Digital Supply

                                                                 11

         +  0.1 uF                          Internal 1.6 V
4.7 uF                                 High Speed Reference

                    GND                                          0

Recommended         P0.1/AGND

Bypass Capacitors                                                1

                                                                                               REFGND

                   Figure 12.1. Voltage Reference Functional Block Diagram

                                       Rev. 1.0                                                                           69
C8051F70x/71x

12.1. External Voltage References

To use an external voltage reference, REFSL[1:0] should be set to 00. Bypass capacitors should be added
as recommended by the manufacturer of the external voltage reference.

12.2. Internal Voltage Reference Options

A 1.6 V high-speed reference is included on-chip. The high speed internal reference is selected by setting
REFSL[1:0] to 11. When selected, the high-speed internal reference will be automatically enabled on an
as-needed basis by ADC0.

For applications with a non-varying power supply voltage, using the power supply as the voltage reference
can provide ADC0 with added dynamic range at the cost of reduced power supply noise rejection. To use
the 1.8 to 3.6 V power supply voltage (VDD) or the 1.8 V regulated digital supply voltage as the reference
source, REFSL[1:0] should be set to 01 or 10, respectively.

12.3. Analog Ground Reference

To prevent ground noise generated by switching digital logic from affecting sensitive analog measure-
ments, a separate analog ground reference option is available. When enabled, the ground reference for
ADC0 is taken from the P0.1/AGND pin. Any external sensors sampled by ADC0 should be referenced to
the P0.1/AGND pin. The separate analog ground reference option is enabled by setting REFGND to 1.
Note that when using this option, P0.1/AGND must be connected to the same potential as GND.

12.4. Temperature Sensor Enable

The TEMPE bit in register REF0CN enables the temperature sensor. While disabled, the temperature sen-
sor defaults to a high impedance state and any ADC0 measurements performed on the sensor result in
meaningless data.

70  Rev. 1.0
                                                                          C8051F70x/71x

SFR Definition 12.1. REF0CN: Voltage Reference Control

Bit    7  6                       5  4             3                       2   1       0

Name         REFGND                         REFSL                         TEMPE BIASE

Type   R  R  R/W                     R/W           R/W                    R/W  R/W     R

Reset  0  0                       0  1             0                       0   0       0

SFR Address = 0xD2; SFR Page = F               Function
   Bit Name

7:6 Unused Read = 00b; Write = Don't Care.

5 REFGND Analog Ground Reference.

                       Selects the ADC0 ground reference.
                       0: The ADC0 ground reference is the GND pin.
                       1: The ADC0 ground reference is the P0.1/AGND pin.

4:3 REFSL Voltage Reference Select.

                        Selects the ADC0 voltage reference.
                        00: The ADC0 voltage reference is the P0.0/VREF pin.
                        01: The ADC0 voltage reference is the VDD pin.
                        10: The ADC0 voltage reference is the internal 1.8 V digital supply voltage.
                        11: The ADC0 voltage reference is the internal 1.6 V high-speed voltage reference.

2 TEMPE Temperature Sensor Enable.

                       Enables/Disables the internal temperature sensor.
                       0: Temperature Sensor Disabled.
                       1: Temperature Sensor Enabled.

1      BIASE Internal Analog Bias Generator Enable Bit.

          0: Internal Bias Generator off.

          1: Internal Bias Generator on.

0 Unused Read = 0b; Write = Don't Care.

                                     Rev. 1.0                                             71
C8051F70x/71x

13. Voltage Regulator (REG0)

C8051F70x/71x devices include an internal voltage regulator (REG0) to regulate the internal core supply
to 1.8 V from a VDD supply of 1.8 to 3.6 V. Two power-saving modes are built into the regulator to help
reduce current consumption in low-power applications. These modes are accessed through the REG0CN
register (SFR Definition 13.1). Electrical characteristics for the on-chip regulator are specified in Table 9.5
on page 50

If an external regulator is used to power the device, the internal regulator may be put into bypass mode
using the BYPASS bit. The internal regulator should never be placed in bypass mode unless an
external 1.8 V regulator is used to supply VDD. Doing so could cause permanent damage to the
device.

Under default conditions, when the device enters STOP mode the internal regulator will remain on. This
allows any enabled reset source to generate a reset for the device and bring the device out of STOP mode.
For additional power savings, the STOPCF bit can be used to shut down the regulator and the internal
power network of the device when the part enters STOP mode. When STOPCF is set to 1, the RST pin or
a full power cycle of the device are the only methods of generating a reset.

72  Rev. 1.0
                                                         C8051F70x/71x

SFR Definition 13.1. REG0CN: Voltage Regulator Control

Bit    7  6                       5         4  3         2    1    0

Name STOPCF BYPASS

Type R/W  R/W       R/W              R/W       R/W       R/W  R/W  R/W

Reset  0  0                       0         0  0         0    0    0

SFR Address = 0xB9; SFR Page = F               Function
Bit Name

7 STOPCF Stop Mode Configuration.

          This bit configures the regulator's behavior when the device enters STOP mode.
          0: Regulator is still active in STOP mode. Any enabled reset source will reset the
          device.
          1: Regulator is shut down in STOP mode. Only the RST pin or power cycle can reset
          the device.

6 BYPASS Bypass Internal Regulator.

          This bit places the regulator in bypass mode, allowing the core to run directly from the

          VDD supply pin.
          0: Normal Mode--Regulator is on and regulates VDD down to the core voltage.
          1: Bypass Mode--Regulator is in bypass mode, and the microcontroller core operates

          directly from the VDD supply voltage.
          IMPORTANT: Bypass mode is for use with an external regulator as the supply

          voltage only. Never place the regulator in bypass mode when the VDD supply
          voltage is greater than the specifications given in Table 9.1 on page 47. Doing so

          may cause permanent damage to the device.

5:0 Reserved Reserved. Must Write 000000b.

                                     Rev. 1.0                                                 73
C8051F70x/71x

14. Comparator0

C8051F70x/71x devices include an on-chip programmable voltage comparator, Comparator0, shown in
Figure 14.1.
The Comparator offers programmable response time and hysteresis, an analog input multiplexer, and two
outputs that are optionally available at the Port pins: a synchronous "latched" output (CP0), or an asyn-
chronous "raw" output (CP0A). The asynchronous CP0A signal is available even when the system clock is
not active. This allows the Comparator to operate and generate an output with the device in STOP mode.
When assigned to a Port pin, the Comparator output may be configured as open drain or push-pull (see
Section "28.4. Port I/O Initialization" on page 189). Comparator0 may also be used as a reset source (see
Section "25.5. Comparator0 Reset" on page 167).
The Comparator0 inputs are selected by the comparator input multiplexer, as detailed in Section
"14.1. Comparator Multiplexer" on page 78.

                                                          CPT0CN

                                                                 CP0EN
                                                             CP0OUT
                                                        CP0RIF
                                                    CP0FIF
                                               CP0HYP1
                                           CP0HYP0
                                      CP0HYN1
                                  CP0HYN0

                                  VDD

    Comparator  CP0 +                                                                               CP0
     Input Mux
                           +           D SET Q                           D SET Q
                                          Q CLR                             Q CLR
                CP0 -

                           -

                                                                                          Crossbar

                                       (SYNCHRONIZER)

                                  GND                                                               CP0A

    CPT0MD                              Reset
                                       Decision
                          CP0RIE
                      CP0FIE             Tree

        CP0MD1                                                        0            CP0EN   EA            CP0
    CP0MD0                                                                                          0 Interrupt
                                       CP0RIF                                             0
                                                                                                    1
                                                                      1                   1
                                                                      0

                                       CP0FIF

                                                                      1

    Figure 14.1. Comparator0 Functional Block Diagram

The Comparator output can be polled in software, used as an interrupt source, and/or routed to a Port pin.
When routed to a Port pin, the Comparator output is available asynchronous or synchronous to the system
clock; the asynchronous output is available even in STOP mode (with no system clock active). When dis-
abled, the Comparator output (if assigned to a Port I/O pin via the Crossbar) defaults to the logic low state,
and the power supply to the comparator is turned off. See Section "28.3. Priority Crossbar Decoder" on
page 185 for details on configuring Comparator outputs via the digital Crossbar. Comparator inputs can be
externally driven from �0.25 V to (VDD) + 0.25 V without damage or upset. The complete Comparator elec-
trical specifications are given in Section "9. Electrical Characteristics" on page 47.

74                                     Rev. 1.0
                                                                C8051F70x/71x

The Comparator response time may be configured in software via the CPT0MD register (see SFR Defini-
tion 14.2). Selecting a longer response time reduces the Comparator supply current.

          CP0+  +                     OUT
VIN+            CP0
VIN- CP0-       _

CIRCUIT CONFIGURATION

   Positive Hysteresis Voltage                                    Negative Hysteresis Voltage
(Programmed with CP0HYP Bits)                                   (Programmed by CP0HYN Bits)

                        VIN-

  INPUTS

                        VIN+

                                 VOH

OUTPUT

VOL

                                           Negative Hysteresis         Maximum
                                                   Disabled     Negative Hysteresis

Positive Hysteresis                         Maximum
       Disabled                       Positive Hysteresis

                Figure 14.2. Comparator Hysteresis Plot

The Comparator hysteresis is software-programmable via its Comparator Control register CPT0CN. The
user can program both the amount of hysteresis voltage (referred to the input voltage) and the positive and
negative-going symmetry of this hysteresis around the threshold voltage.

The Comparator hysteresis is programmed using Bits3�0 in the Comparator Control Register CPT0CN
(shown in SFR Definition 14.1). The amount of negative hysteresis voltage is determined by the settings of
the CP0HYN bits. As shown in Figure 14.2, settings of 20, 10 or 5 mV of negative hysteresis can be pro-
grammed, or negative hysteresis can be disabled. In a similar way, the amount of positive hysteresis is
determined by the setting the CP0HYP bits.

Comparator interrupts can be generated on both rising-edge and falling-edge output transitions. (For Inter-
rupt enable and priority control, see Section "21.1. MCU Interrupt Sources and Vectors" on page 138). The
CP0FIF flag is set to logic 1 upon a Comparator falling-edge occurrence, and the CP0RIF flag is set to
logic 1 upon the Comparator rising-edge occurrence. Once set, these bits remain set until cleared by soft-
ware. The Comparator rising-edge interrupt mask is enabled by setting CP0RIE to a logic 1. The
Comparator0 falling-edge interrupt mask is enabled by setting CP0FIE to a logic 1.

The output state of the Comparator can be obtained at any time by reading the CP0OUT bit. The Compar-
ator is enabled by setting the CP0EN bit to logic 1, and is disabled by clearing this bit to logic 0.

Note that false rising edges and falling edges can be detected when the comparator is first powered on or
if changes are made to the hysteresis or response time control bits. Therefore, it is recommended that the
rising-edge and falling-edge flags be explicitly cleared to logic 0 a short time after the comparator is
enabled or its mode bits have been changed.

                                      Rev. 1.0                                                 75
C8051F70x/71x

SFR Definition 14.1. CPT0CN: Comparator0 Control

  Bit      7       6      5           4           3            2          1                 0
Name   CP0EN  CP0OUT  CP0RIF      CP0FIF
Type                                              CP0HYP[1:0]             CP0HYN[1:0]
Reset    R/W       R    R/W         R/W
           0       0      0           0              R/W                     R/W

                                                  0            0          0                 0

SFR Address = 0x9B; SFR Page = 0

Bit    Name                                       Function

    7  CP0EN Comparator0 Enable Bit.

              0: Comparator0 Disabled.
              1: Comparator0 Enabled.

    6 CP0OUT Comparator0 Output State Flag.

              0: Voltage on CP0+ < CP0�.
              1: Voltage on CP0+ > CP0�.

    5  CP0RIF Comparator0 Rising-Edge Flag. Must be cleared by software.

              0: No Comparator0 Rising Edge has occurred since this flag was last cleared.
              1: Comparator0 Rising Edge has occurred.

    4  CP0FIF Comparator0 Falling-Edge Flag. Must be cleared by software.

              0: No Comparator0 Falling-Edge has occurred since this flag was last cleared.
              1: Comparator0 Falling-Edge has occurred.

3:2 CP0HYP[1:0] Comparator0 Positive Hysteresis Control Bits.

              00: Positive Hysteresis Disabled.
              01: Positive Hysteresis = 5 mV.
              10: Positive Hysteresis = 10 mV.
              11: Positive Hysteresis = 20 mV.

1:0 CP0HYN[1:0] Comparator0 Negative Hysteresis Control Bits.

              00: Negative Hysteresis Disabled.
              01: Negative Hysteresis = 5 mV.
              10: Negative Hysteresis = 10 mV.
              11: Negative Hysteresis = 20 mV.

76                                      Rev. 1.0
                                                              C8051F70x/71x

SFR Definition 14.2. CPT0MD: Comparator0 Mode Selection

Bit    7     6                    5  4         3              2  1                                     0

Name            CP0RIE CP0FIE                                    CP0MD[1:0]

Type   R     R  R/W                  R/W       R              R     R/W

Reset  0     0                    0  0         0              0  1                                     0

SFR Address = 0x9D; SFR Page = 0

Bit    Name                                    Function

7:6 Unused Read = 00b, Write = Don't Care.

5      CP0RIE Comparator0 Rising-Edge Interrupt Enable.

             0: Comparator0 Rising-edge interrupt disabled.

             1: Comparator0 Rising-edge interrupt enabled.

4      CP0FIE Comparator0 Falling-Edge Interrupt Enable.

             0: Comparator0 Falling-edge interrupt disabled.

             1: Comparator0 Falling-edge interrupt enabled.

3:2 Unused Read = 00b, Write = don't care.
1:0 CP0MD[1:0] Comparator0 Mode Select.

                           These bits affect the response time and power consumption for Comparator0.
                           00: Mode 0 (Fastest Response Time, Highest Power Consumption)
                           01: Mode 1
                           10: Mode 2
                           11: Mode 3 (Slowest Response Time, Lowest Power Consumption)

                                     Rev. 1.0                                                             77
C8051F70x/71x

14.1. Comparator Multiplexer

C8051F70x/71x devices include an analog input multiplexer to connect Port I/O pins to the comparator
inputs. The Comparator0 inputs are selected in the CPT0MX register (SFR Definition 14.3). The CMX0P2�
CMX0P0 bits select the Comparator0 positive input; the CMX0N2�CMX0N0 bits select the Comparator0
negative input.
Important Note About Comparator Inputs: The Port pins selected as comparator inputs should be con-
figured as analog inputs in their associated Port configuration register, and configured to be skipped by the
Crossbar (for details on Port configuration, see Section "28.6. Special Function Registers for Accessing
and Configuring Port I/O" on page 194).

                                                     CPT0MX

                                          CMX0P0
                                      CMX0P1
                                  CMX0P2

                          CMX0N0
                      CMX0N1
                  CMX0N2

            P1.1                           VDD
            P1.3
            P1.5            CP0 -
    P1.7 / P2.0*
                                      -

                            CP0 +

                                      +

    P1.0

    P1.2                                          GND

    P1.4

    P1.6

                  *P1.7 on 64 and 48-pin devices, P2.0 on 32 and 24-pin devices

    Figure 14.3. Comparator Input Multiplexer Block Diagram

78                Rev. 1.0
                                                            C8051F70x/71x

SFR Definition 14.3. CPT0MX: Comparator0 MUX Selection

Bit    7  6                       5     4             3     2          1           0

Name               CMX0N[2:0]                                      CMX0P[2:0]

Type   R           R/W                                R                R/W

Reset  0  0                       0     0             0     0          0           0

SFR Address = 0x9F; SFR Page = 0                  Function
Bit Name

7 Unused Read = 0b; Write = don't care.

6:4 CMX0N[2:0] Comparator0 Negative Input MUX Selection.

                   64-Pin Devices 48-Pin Devices 32-Pin Devices 24-Pin Devices

          000                     P1.1     P1.1                --              --

          001                     P1.3     P1.3                --              --

          010                     P1.5            --           --              --

          011                     P1.7            --        P2.0 (see note) P2.0 (see note)

          100-111  No input                No input         No input        No input
                   selected.               selected.        selected.       selected.

3 Unused Read = 0b; Write = don't care.

2:0 CMX0P[2:0] Comparator0 Positive Input MUX Selection.

                   64-Pin Devices 48-Pin Devices 32-Pin Devices 24-Pin Devices

          000                     P1.0     P1.0                --              --

          001                     P1.2     P1.2                --              --

          010                     P1.4            --           --              --

            011      P1.6                      --           (P1.6--see note) (P1.6--see note)
          100-111
                   No input                No input         No input        No input
                   selected.               selected.
                                                            selected.       selected.

Note: On 32 and 24-pin devices, P2.0 can be used as the negative comparator input, for detecting low-level signals
         near the GND or VDD supply rails. The P1.6 setting for the positive input should be used in conjunction with
         the selection of P2.0 as the negative input. P1.6 should be configured for push-pull mode and driven to the
         desired supply rail. Although P1.6 is not connected to a device pin in these packages, it is still a valid signal
         internally.

                                        Rev. 1.0                                       79
C8051F70x/71x

15. Capacitive Sense (CS0)

The Capacitive Sense subsystem uses a capacitance-to-digital circuit to determine the capacitance on a
port pin. The module can take measurements from different port pins using the module's analog multi-
plexer. The module is enabled only when the CS0EN bit (CS0CN) is set to 1. Otherwise the module is in a
low-power shutdown state. The module can be configured to take measurements on one port pin or a
group of port pins, using auto-scan. A selectable gain circuit allows the designer to adjust the maximum
allowable capacitance. An accumulator is also included, which can be configured to average multiple con-
versions on an input channel. Interrupts can be generated when CS0 completes a conversion or when the
measured value crosses a threshold defined in CS0THH:L.

                       CS0PM                                            CS0CN                                  CS0CF

                       UAPM
                           SPIPM
                               SMBPM
                                    PCAPM
                                        PIOPM
                                             CP0PM
                                                 CSPMMD1
                                                      CSPMMD0
                                                           CS0EN
                                                                CS0PME
                                                                    CS0INT
                                                                         CS0BUSY
                                                                             CS0CMPEN
                                                                                          CS0CMPF
                                                                                                                                 CS0CM2
                                                                                                                                     CS0CM1
                                                                                                                                          CS0CM0
                                                                                                                                                   CS0ACU2
                                                                                                                                                       CS0ACU1
                                                                                                                                                            CS0ACU0

CS0SS CS0SE

                                                                                              000  CS0BUSY (W)
                                                                                                   Timer 0 Overflow
     Auto-Scan                  Pin Monitor                                       Start       001  Timer 2 Overflow
        Logic                                                                                      Timer 1 Overflow
                Port I/O and                                                      Conversion  010  Timer 3 Overflow
     CS0MX      Peripherals                                                                   011  Reserved
                                                                                                   Initiated continuously
                                                                                              100
                                                                                                   Initiated continuously
                                                                                              101  when auto-scan
                                                                                                   enabled
                                                                                              110

                                                                                              111

     AMUX       1x-8x    Capacitance to 12, 13, 14, or 16 bits
                                                                                           22-Bit Accumulator
...
                       Digital Converter

                                                                                              CS0DH:L

                                                                                          Greater Than         CS0CMPF
                                                                                         Compare Logic
     CS0DR1
         CS0DR0                                                                          CS0THH:L
                  CS0CG2
                      CS0CG1
                           CS0CG0
                                CS0CR1
                                     CS0CR0
                                         CS0DT2
                                              CS0DT1
                                                  CS0DT0
                                                       CS0IA2
                                                           CS0IA1
                                                                CS0IA0

     CS0MD1            CS0MD2

                       Figure 15.1. CS0 Block Diagram

80                                                                      Rev. 1.0
                                                   C8051F70x/71x

15.1. Configuring Port Pins as Capacitive Sense Inputs

In order for a port pin to be measured by CS0, that port pin must be configured as an analog input (see "28.
Port Input/Output" ). Configuring the input multiplexer to a port pin not configured as an analog input will
cause the capacitance-to-digital converter to output incorrect measurements.

Note: When CS0 begins a conversion to measure capacitance on a port pin, CS0 grounds all other port pins that
         meet the following requirements:
         - The port pin is accessible by the CS0 input multiplexer.
         - The port pin is configured as an analog input.
         - The port latch contains a 0.

15.2. CS0 Gain Adjustment

The gain of the CS0 circuit can be adjusted in integer increments from 1x to 8x (8x is the default). High
gain gives the best sensitivity and resolution for small capacitors, such as those typically implemented as
touch-sensitive PCB features. To measure larger capacitance values, the gain can be lowered. However,
lower gain values will affect the overall conversion time. SeeTable 15.1 for more details on the gain adjust-
ment. The bits CS0CG[2:0] in register CS0MD1 set the gain value.

Table 15.1. Gain Setting vs. Maximum Capacitance and Conversion Time

CS0CG[2:0] (Gain) Maximum Total Capacitance (pF)1  Conversion Time (�s)2

000b (1x)  520                                     178

001b (2x)  260                                     93

010b (3x)  175                                     66

011b (4x)  130                                     52

100b (5x)  105                                     43

101b (6x)  85                                      38

110b (7x)  75                                      34

111b (8x)  65                                      31

Notes:
    1. The maximum total capacitance values listed in this table are for guidance only, and are not a specification.
         The total measured capacitance will include internal capacitance as well as external parasitics, and the actual
         external capacitance being measured. Please refer to the Electrical Specifications for details on the maximum
         external capacitance.
    2. Conversion times are nominal, and listed for 13-bit conversions with all other CS0 settings at their default
         values.

15.3. Capacitive Sense Start-Of-Conversion Sources

A capacitive sense conversion can be initiated in one of seven ways, depending on the programmed state
of the CS0 start of conversion bits (CS0CF6:4). Conversions may be initiated by one of the following:

1. Writing a 1 to the CS0BUSY bit of register CS0CN
2. Timer 0 overflow
3. Timer 2 overflow
4. Timer 1 overflow
5. Timer 3 overflow
6. Convert continuously
7. Convert continuously with auto-scan enabled

                Rev. 1.0                                                  81
C8051F70x/71x

If CS0BUSY is used to initiate conversions, and then polled to determine if the conversion is finished, at
least one clock cycle must be inserted between setting CS0BUSY to 1 and polling the CS0BUSY bit.

Conversions can be configured to be initiated continuously through one of two methods. CS0 can be con-
figured to convert at a single channel continuously or it can be configured to convert continuously with
auto-scan enabled. When configured to convert continuously, conversions will begin after the CS0BUSY
bit in CS0CF has been set. An interrupt will be generated if CS0 conversion complete interrupts are
enabled by setting the ECSCPT bit (EIE2.0).

The CS0 module uses a method of successive approximation to determine the value of an external capac-
itance. The number of bits the CS0 module converts is adjustable using the CS0CR bits in register
CS0MD2. Conversions are 13 bits long by default, but they can be adjusted to 12, 13, 14, or 16 bits
depending on the needs of the application. Unconverted bits will be set to 0. Shorter conversion lengths
produce faster conversion rates, and vice-versa. Applications can take advantage of faster conversion
rates when the unconverted bits fall below the noise floor.

Note: CS0 conversion complete interrupt behavior depends on the settings of the CS0 accumulator. If CS0 is
         configured to accumulate multiple conversions on an input channel, a CS0 conversion complete interrupt will
         be generated only after the last conversion completes.

82  Rev. 1.0
                                                                                   C8051F70x/71x

15.4. Automatic Scanning

CS0 can be configured to automatically scan a sequence of contiguous CS0 input channels by configuring
and enabling auto-scan. Using auto-scan with the CS0 comparator interrupt enabled allows a system to
detect a change in measured capacitance without requiring any additional dedicated MCU resources.

Auto-scan is enabled by setting the CS0 start-of-conversion bits (CS0CF6:4) to 111b. After enabling auto-
scan, the starting and ending channels should be set to appropriate values in CS0SS and CS0SE, respec-
tively. Writing to CS0SS when auto-scan is enabled will cause the value written to CS0SS to be copied into
CS0MX. After being enabled, writing a 1 to CS0BUSY will start auto-scan conversions. When auto-scan
completes the number of conversions defined in the CS0 accumulator bits (CS0CF2:0), auto-scan config-
ures CS0MX to the next sequential port pin configured as an analog input and begins a conversion on that
channel. The scan sequence continues until CS0MX reaches the ending input channel value defined in
CS0SE.

Note: All other CS0 pins configured for analog input with a 0 in the port latch are grounded during the conversion.

After the final channel conversion, auto-scan configures CS0MX back to the starting input channel. For an
example system configured to use auto-scan, please see Figure "15.2 Auto-Scan Example" on page 83.

Note: Auto-scan attempts one conversion on a CS0MX channel regardless of whether that channel's port pin has
         been configured as an analog input. Auto-scan will also complete the current rotation when the device is halted
         for debugging.

If auto-scan is enabled when the device enters suspend mode, auto-scan will remain enabled and running.
This feature allows the device to wake from suspend through CS0 greater-than comparator event on any
configured capacitive sense input included in the auto-scan sequence of inputs.

SFR Configuration:                                      PxMDIN bit
                                                               Port Pin
CS0CN = 0x80 Enables CS0                                              CS0MX
                                                                          Channel
CS0CF = 0x70  Enables Auto-scan
CS0SS = 0x02  as start-of-                              A P2.0 0                   Scans on channels
CS0SE = 0x0D  conversion source                         D P2.1 1                    not configured as
                                                        A P2.2 2                   analog inputs result
              Sets P2.2 as Auto-                        A P2.3 3                     in indeterminate
              scan starting channel                     D P2.4 4                   values that cannot
                                                        D P2.5 5
              Sets P3.5 as Auto-                        D P2.6 6                       trigger a CS0
              scan ending channel                       D P2.7 7                       Greater Than
                                                        A P3.0 8                      Interrupt event
P2MDIN = 0xF2 Configures P2.3,                          A P3.1 9
                        P2.2, P2.0 as analog            D P3.2 10
                        inputs                          A P3.3 11
                                                        A P3.4 12
P3MDIN = 0x04 Configures P3.0-P3.1                      A P3.5 13
                        and P3.3-P3.7 as                A P3.6 14
                        analog inputs                   A P3.7 15

                          Figure 15.2. Auto-Scan Example

                                              Rev. 1.0                                                   83
C8051F70x/71x

15.5. CS0 Comparator

The CS0 comparator compares the latest capacitive sense conversion result with the value stored in
CS0THH:CS0THL. If the result is less than or equal to the stored value, the CS0CMPF bit(CS0CN:0) is set
to 0. If the result is greater than the stored value, CS0CMPF is set to 1.

If the CS0 conversion accumulator is configured to accumulate multiple conversions, a comparison will not
be made until the last conversion has been accumulated.

An interrupt will be generated if CS0 greater-than comparator interrupts are enabled by setting the ECS-
GRT bit (EIE2.1) when the comparator sets CS0CMPF to 1.

If auto-scan is running when the comparator sets the CS0CMPF bit, no further auto-scan initiated conver-
sions will start until firmware sets CS0BUSY to 1.

A CS0 greater-than comparator event can wake a device from suspend mode. This feature is useful in sys-
tems configured to continuously sample one or more capacitive sense channels. The device will remain in
the low-power suspend state until the captured value of one of the scanned channels causes a CS0
greater-than comparator event to occur. It is not necessary to have CS0 comparator interrupts enabled in
order to wake a device from suspend with a greater-than event.

For a summary of behavior with different CS0 comparator, auto-scan, and auto accumulator settings,
please see Table 15.2.

84  Rev. 1.0
                                                                             C8051F70x/71x

15.6. CS0 Conversion Accumulator

CS0 can be configured to accumulate multiple conversions on an input channel. The number of samples to
be accumulated is configured using the CS0ACU2:0 bits (CS0CF2:0). The accumulator can accumulate 1,
4, 8, 16, 32, or 64 samples. After the defined number of samples have been accumulated, the result is
divided by either 1, 4, 8, 16, 32, or 64 (depending on the CS0ACU[2:0] setting) and copied to the
CS0DH:CS0DL SFRs.

                           Table 15.2. Operation with Auto-scan and Accumulate

Auto-Scan Enabled          CS0 Conversion  CS0 Greater Than Interrupt        CS0MX Behavior
      Accumulator Enabled      Complete                 Behavior
                                Interrupt
                                Behavior

N N CS0INT Interrupt Interrupt serviced after 1 con-                         CS0MX unchanged.

                           serviced after 1 version completes if value in

                           conversion com- CS0DH:CS0DL is greater than

                           pletes          CS0THH:CS0THL

N Y CS0INT Interrupt Interrupt serviced after M con-                         CS0MX unchanged.

                           serviced after M versions complete if value in

                           conversions com- CS0DH:CS0DL (post accumu-

                           plete           late and divide) is greater than

                                           CS0THH:CS0THL

Y N CS0INT Interrupt Interrupt serviced after con- If greater-than comparator detects conver-

                           serviced after 1 version completes if value in    sion value is greater than

                           conversion com- CS0DH:CS0DL is greater than       CS0THH:CS0THL, CS0MX is left

                           pletes          CS0THH:CS0THL;                    unchanged; otherwise, CS0MX updates to

                                           Auto-Scan stopped                 the next channel (CS0MX + 1) and wraps

                                                                             back to CS0SS after passing CS0SE

Y Y CS0INT Interrupt Interrupt serviced after M con- If greater-than comparator detects conver-

                           serviced after M versions complete if value in    sion value is greater than

                           conversions com- CS0DH:CS0DL (post accumu-        CS0THH:CS0THL, CS0MX is left

                           plete           late and divide) is greater than unchanged; otherwise, CS0MX updates to

                                           CS0THH:CS0THL; Auto-Scan the next channel (CS0MX + 1) and wraps

                                           stopped                           back to CS0SS after passing CS0SE

                                   M = Accumulator setting (1x, 4x, 8x, 16x, 32x, 64x)

                                           Rev. 1.0                                                             85
C8051F70x/71x

15.7. CS0 Pin Monitor

The CS0 module provides accurate conversions in all operating modes of the CPU, peripherals and I/O
ports. Pin monitoring circuits are provided to improve interference immunity from high-current output pin
switching. The Capacitive Sense Pin Monitor register (CS0PM, SFR Definition 15.9) controls the operation
of these pin monitors.

Conversions in the CS0 module are immune to any change on digital inputs and immune to most output
switching. Even high-speed serial data transmission will not affect CS0 operation as long as the output
load is limited. Output changes that switch large loads such as LEDs and heavily-loaded communications
lines can affect conversion accuracy. For this reason, the CS0 module includes pin monitoring circuits that
will, if enabled, automatically adjust conversion timing if necessary to eliminate any effect from high-current
output pin switching.

The pin monitor enable bit should be set for any output signal that is expected to drive a large load.

Example: The SMBus in a system is heavily loaded with multiple slaves and a long PCB route. Set the
SMBus pin monitor enable, SMBPM = 1.

Example: Timer2 controls an LED on Port 1, pin 3 to provide variable dimming. Set the Port SFR write
monitor enable, PIOPM = 1.

Example: The SPI bus is used to communicate to a nearby host. The pin monitor is not needed because
the output is not heavily loaded, SPIPM remains = 0, the default reset state.

Pin monitors should not be enabled unless they are required. The pin monitor works by repeating any por-
tion of a conversion that may have been corrupted by a change on an output pin. Setting pin monitor
enables bits will slow CS0 conversions.

The frequency of CS0 retry operations can be limited by setting the CSPMMD bits. In the default (reset)
state, all converter retry requests will be performed. This is the recommended setting for all applications.
The number of retries per conversion can be limited to either two or four retries by changing CSPMMD.
Limiting the number of retries per conversion ensures that even in circumstances where extremely fre-
quent high-power output switching occurs, conversions will be completed, though there may be some loss
of accuracy due to switching noise.

Activity of the pin monitor circuit can be detected by reading the Pin Monitor Event bit, CS0PME, in register
CS0CN. This bit will be set if any CS0 converter retries have occurred. It remains set until cleared by soft-
ware or a device reset.

86  Rev. 1.0
                                                 C8051F70x/71x

15.8. Adjusting CS0 For Special Situations

There are several configuration options in the CS0 module designed to modify the operation of the circuit
and address special situations. In particular, any circuit with more than 500  of series impedance
between the sensor and the device pin may require adjustments for optimal performance. Typical applica-
tions which may require adjustments include the following:
Touch panel sensors fabricated using a resistive conductor such as indium-tin-oxide (ITO).
Circuits using a high-value series resistor to isolate the sensor element for high ESD protection.

Most systems will require no fine tuning, and the default settings for CS0DT, CS0DR, and CS0IA
should be used.

Rev. 1.0  87
C8051F70x/71x

SFR Definition 15.1. CS0CN: Capacitive Sense Control

    Bit  7     6                  5     4          3           2  1                         0

Name CS0EN CS0PME CS0INT CS0BUSY CS0CMPEN                            CS0CMPF

Type R/W       R/W       R/W            R/W        R/W         R  R                         R

Reset    0     0                  0     0          0           0  0                         0

SFR Address = 0x9A; SFR Page = 0

Bit      Name                                     Description

    7    CS0EN CS0 Enable.

               0: CS0 disabled and in low-power mode.
               1: CS0 enabled and ready to convert.

    6    CS0PME CS0 Pin Monitor Event.

               Set if any converter re-try requests have occurred due to a pin monitor event. This
               bit remains set until cleared by firmware.

    5    CS0INT CS0 Interrupt Flag.

               0: CS0 has not completed a data conversion since the last time CS0INT was
               cleared.
               1: CS0 has completed a data conversion.
               This bit is not automatically cleared by hardware.

    4 CS0BUSY CS0 Busy.

               Read:
               0: CS0 conversion is complete or a conversion is not currently in progress.
               1: CS0 conversion is in progress.
               Write:
               0: No effect.
               1: Initiates CS0 conversion if CS0CM[2:0] = 000b, 110b, or 111b.

    3 CS0CMPEN CS0 Digital Comparator Enable Bit.

               Enables the digital comparator, which compares accumulated CS0 conversion
               output to the value stored in CS0THH:CS0THL.
               0: CS0 digital comparator disabled.
               1: CS0 digital comparator enabled.

2:1      Unused Read = 00b; Write = Don't care

    0 CS0CMPF CS0 Digital Comparator Interrupt Flag.

               0: CS0 result is smaller than the value set by CS0THH and CS0THL since the last
               time CS0CMPF was cleared.
               1: CS0 result is greater than the value set by CS0THH and CS0THL since the last
               time CS0CMPF was cleared.

88                                      Rev. 1.0
                                                                        C8051F70x/71x

SFR Definition 15.2. CS0CF: Capacitive Sense Configuration

Bit    7     6                    5  4                     3            2    1                               0

Name              CS0CM[2:0]                                                 CS0ACU[2:0]

Type   R     R/W  R/W                R/W                   R            R/W  R/W          R/W

Reset  0     0                    0  0                     0            0    0                               0

SFR Address = 0x9E; SFR Page = 0

Bit    Name                                                Description

7      Unused Read = 0b; Write = Don't care

6:4 CS0CM[2:0] CS0 Start of Conversion Mode Select.

                              000: Conversion initiated on every write of 1 to CS0BUSY.
                              001: Conversion initiated on overflow of Timer 0.
                              010: Conversion initiated on overflow of Timer 2.
                              011: Conversion initiated on overflow of Timer 1.
                              100: Conversion initiated on overflow of Timer 3.
                              101: Reserved.
                              110: Conversion initiated continuously after writing 1 to CS0BUSY.
                              111: Auto-scan enabled, conversions initiated continuously after writing 1 to
                              CS0BUSY.

3      Unused Read = 0b; Write = Don't care

2:0 CS0ACU[2:0] CS0 Accumulator Mode Select.
                              000: Accumulate 1 sample.
                              001: Accumulate 4 samples.
                              010: Accumulate 8 samples.
                              011: Accumulate 16 samples
                              100: Accumulate 32 samples.
                              101: Accumulate 64 samples.
                              11x: Reserved.

                                     Rev. 1.0                                                                   89
C8051F70x/71x

SFR Definition 15.3. CS0DH: Capacitive Sense Data High Byte

    Bit  7     6                  5  4         3            2  1  0

Name                                 CS0DH[7:0]

Type     R     R                  R  R         R            R  R  R

Reset    0     0                  0  0         0            0  0  0

SFR Address = 0xAA; SFR Page = 0

Bit      Name                                  Description

7:0      CS0DH CS0 Data High Byte.

               Stores the high byte of the last completed 16-bit Capacitive Sense conversion.

SFR Definition 15.4. CS0DL: Capacitive Sense Data Low Byte

    Bit  7     6                  5  4         3            2  1  0

Name                                 CS0DL[7:0]

Type     R     R                  R  R         R            R  R  R

Reset    0     0                  0  0         0            0  0  0

SFR Address = 0xA9; SFR Page = 0

Bit      Name                                  Description

7:0      CS0DL CS0 Data Low Byte.

               Stores the low byte of the last completed 16-bit Capacitive Sense conversion.

90                                   Rev. 1.0
                                                             C8051F70x/71x

SFR Definition 15.5. CS0SS: Capacitive Sense Auto-Scan Start Channel

Bit    7     6                    5  4          3            2  1                 0

Name                                            CS0SS[5:0]

Type   R     R                                     R/W

Reset  0     0                    0  0          0            0  0                 0

SFR Address = 0x92; SFR Page = F

Bit    Name                                     Description

7:6    Unused Read = 00b; Write = Don't care

5:0 CS0SS[5:0] Starting Channel for Auto-Scan.

             Sets the first CS0 channel to be selected by the mux for Capacitive Sense conver-
             sion when auto-scan is enabled and active. All channels detailed in CS0MX SFR
             Definition 15.12 are possible choices for this register.

             When auto-scan is enabled, a write to CS0SS will also update CS0MX.

SFR Definition 15.6. CS0SE: Capacitive Sense Auto-Scan End Channel

Bit    7     6                    5  4          3            2  1                 0

Name                                            CS0SE[5:0]

Type   R     R                                     R/W

Reset  0     0                    0  0          0            0  0                 0

SFR Address = 0x93; SFR Page = F

Bit    Name                                     Description

7:6    Unused Read = 000b; Write = Don't care

5:0 CS0SE[5:0] Ending Channel for Auto-Scan.

             Sets the last CS0 channel to be selected by the mux for Capacitive Sense conver-
             sion when auto-scan is enabled and active. All channels detailed in CS0MX SFR
             Definition 15.12 are possible choices for this register.

                                     Rev. 1.0                                        91
C8051F70x/71x

SFR Definition 15.7. CS0THH: Capacitive Sense Comparator Threshold High Byte

    Bit  7     6                  5    4         3            2    1    0

Name                                   CS0THH[7:0]

Type R/W       R/W                R/W  R/W       R/W          R/W  R/W  R/W

Reset    0     0                  0    0         0            0    0    0

SFR Address = 0x97; SFR Page = 0

Bit      Name                                    Description

7:0 CS0THH[7:0] CS0 Comparator Threshold High Byte.

               High byte of the 16-bit value compared to the Capacitive Sense conversion result.

SFR Definition 15.8. CS0THL: Capacitive Sense Comparator Threshold Low Byte

    Bit  7     6                  5    4         3            2    1    0

Name                                   CS0THL[7:0]

Type R/W       R/W                R/W  R/W       R/W          R/W  R/W  R/W

Reset    0     0                  0    0         0            0    0    0

SFR Address = 0x96; SFR Page = 0

Bit      Name                                    Description

7:0 CS0THL[7:0] CS0 Comparator Threshold Low Byte.

               Low byte of the 16-bit value compared to the Capacitive Sense conversion result.

92                                     Rev. 1.0
                                                                  C8051F70x/71x

SFR Definition 15.9. CS0PM: Capacitive Sense Pin Monitor

Bit    7      6                   5    4           3              2      1                          0

Name UAPM SPIPM SMBPM PCAPM PIOPM CP0PM                                  CSPMMD[1:0]

Type R/W      R/W  R/W               R/W           R/W            R/W         R/W

Reset  0      0                   0    0           0              0      0                          0

SFR Address = 0x9F; SFR Page = F

Bit    Name                                    Description

7      UAPM   UART Pin Monitor Enable.

              Enables monitoring of the UART TX pin.

6      SPIPM  SPI Pin Monitor Enable.

              Enables monitoring SPI output pins.

5      SMBPM SMBus Pin Monitor Enable.

              Enables monitoring of the SMBus pins.

4      PCAPM PCA Pin Monitor Enable.

              Enables monitoring of PCA output pins.

3      PIOPM  Port I/O Pin Monitor Enable.

              Enables monitoring of writes to the port latch registers.

2      CP0PM CP0 Pin Monitor Enable.

              Enables monitoring of the comparator CP0 (synchronous) output.

1:0 CSPMMD[1:0] CS0 Pin Monitor Mode.
                              Selects the operation to take when a monitored signal changes state.

              00: Always retry bit cycles on a pin state change.

              01: Retry up to twice on consecutive bit cycles.

              10: Retry up to four times on consecutive bit cycles.

              11: Reserved.

                                     Rev. 1.0                                                          93
C8051F70x/71x

SFR Definition 15.10. CS0MD1: Capacitive Sense Mode 1

    Bit  7        6               5         4         3            2      1                 0

Name                              CS0DR[1:0]                              CS0CG[2:0]

Type           R                     R/W              R            R/W    R/W         R/W

Reset    0        0               0         0         0            1      1                 1

SFR Address = 0xAD; SFR Page = 0

Bit      Name                                         Description

7:6      Unused Read = 00b; Write = Don't care

5:4 CS0DR[1:0] CS0 Double Reset Select.
                              These bits adjust the secondary CS0 reset time. For most touch-sensitive
                              switches, the default (fastest) value is sufficient, and these bits should not be
                              modified.

                  00: No additional time is used for secondary reset (recommended for most
                  switches)

                  01: An additional 0.75 �s is used for secondary reset.

                  10: An additional 1.5 �s is used for secondary reset.

                  11: An additional 2.25 �s is used for secondary reset.

    3    Unused Read = 0b; Write = Don't care

2:0 CS0CG[2:0] CS0 Reference Gain Select.

                              These bits select the "gain" applied to the current used to charge an internal refer-
                              ence capacitor. Lower gain values decrease the current setting, and increase
                              both the size of the capacitance that can be measured with the CS0 module, and
                              the base conversion time. Refer to "15.2. CS0 Gain Adjustment" on page 81 for
                              more information.

                  000: Gain = 1x

                  001: Gain = 2x

                  010: Gain = 3x

                  011: Gain = 4x

                  100: Gain = 5x

                  101: Gain = 6x

                  110: Gain = 7x

                  111: Gain = 8x (default)

94                                          Rev. 1.0
                                                              C8051F70x/71x

SFR Definition 15.11. CS0MD2: Capacitive Sense Mode 2

Bit    7          6               5  4           3            2      1            0

Name   CS0CR[1:0]                    CS0DT[2:0]                      CS0IA[2:0]

Type         R/W                     R/W                             R/W

Reset  0          1               0  0           0            0      0            0

SFR Address = 0xBE; SFR Page = F

Bit    Name                                      Description

7:6 CS0CR[1:0] CS0 Conversion Rate.
                              These bits control the conversion rate of the CS0 module. See the electrical spec-
                              ifications table for specific timing.
                              00: Conversions last 12 internal CS0 clocks and are 12 bits in length.
                              01: Conversions last 13 internal CS0 clocks and are 13 bits in length.
                              10: Conversions last 14 internal CS0 clocks and are 14 bits in length.
                              11: Conversions last 16 internal CS0 clocks.and are 16 bits in length.

5:3 CS0DT[2:0] CS0 Discharge Time.
                              These bits adjust the primary CS0 reset time. For most touch-sensitive switches,
                              the default (fastest) value is sufficient, and these bits should not be modified.

                  000: Discharge time is 0.75 �s (recommended for most switches)

                  001: Discharge time is 1.0 �s

                  010: Discharge time is 1.2 �s

                  011: Discharge time is 1.5 �s

                  100: Discharge time is 2 �s

                  101: Discharge time is 3 �s

                  110: Discharge time is 6 �s

                  111: Discharge time is 12 �s

2:0 CS0IA[2:0] CS0 Output Current Adjustment.
                              These bits allow the user to adjust the output current used to charge up the capac-
                              itive sensor element. For most touch-sensitive switches, the default (highest) cur-
                              rent is sufficient, and these bits should not be modified.

                  000: Full Current (recommended for most switches)

                  001: 1/8 Current

                  010: 1/4 Current

                  011: 3/8 Current

                  100: 1/2 Current

                  101: 5/8 Current

                  110: 3/4 Current

                  111: 7/8 Current

                                     Rev. 1.0                                        95
C8051F70x/71x

15.9. Capacitive Sense Multiplexer

The input multiplexer can be controlled through two methods. The CS0MX register can be written to
through firmware, or the register can be configured automatically using the modules auto-scan functionality
(see "15.4. Automatic Scanning" ).

                                   CS0MX

          CS0UC
                  CS0MX5
                      CS0MX4
                          CS0MX3
                              CS0MX2
                                  CS0MX1
                                      CS0MX0

    P2.0

          CS0MUX                              CS0

    P6.5

          Figure 15.3. CS0 Multiplexer Block Diagram

96        Rev. 1.0
                                                       C8051F70x/71x

SFR Definition 15.12. CS0MX: Capacitive Sense Mux Channel Select

Bit    7    6                     5  4         3       2   1                                        0

Name CS0UC                                     CS0MX[5:0]

Type R/W    R/W                                   R/W

Reset  0    0                     0  0         0       0   0                                        0

SFR Address = 0x9C; SFR Page = 0        Description
Bit Name

7 CS0UC CS0 Unconnected.

                        Disconnects CS0 from all port pins, regardless of the selected channel.
                        0: CS0 connected to port pins
                        1: CS0 disconnected from port pins

6 Reserved Write = 0b

5:0 CS0MX[5:0] CS0 Mux Channel Select.
                         Selects one of the 38 input channels for Capacitive Sense conversion.

            Value 64-pin 48-pin 32-pin 24-pin Value 64-pin 48-pin 32-pin 24-pin

            000000 P2.0 P2.0 P2.0 P2.0 010011 P4.3 P4.3 -- P4.3

            000001 P2.1 P2.1 P2.1 P2.1 010100 P4.4 --                                           -- P4.4

            000010 P2.2 P2.2 P2.2 P2.2 010101 P4.5 --                                           -- P4.5

            000011 P2.3 P2.3 P2.3 P2.3 010110 P4.6 --                                           -- P4.6

            000100 P2.4 P2.4 P2.4 P2.4 010111 P4.7 --                                           -- P4.7

            000101 P2.5 P2.5 P2.5 P2.5 011000 P5.0 P5.0 P5.0 --

            000110 P2.6 P2.6 P2.6 P2.6 011001 P5.1 P5.1 P5.1 --

            000111 P2.7 P2.7 P2.7 P2.7 011010 P5.2 P5.2 P5.2 --

            001000 P3.0 -- P3.0 -- 011011 P5.3 P5.3 P5.3 --

            001001 P3.1 -- P3.1 -- 011100 P5.4 P5.4 P5.4 --

            001010 P3.2 -- P3.2 -- 011101 P5.5 P5.5 P5.5 --

            001011 P3.3 -- P3.3 -- 011110 P5.6 P5.6 P5.6 --

            001100 P3.4 P3.4 P3.4 -- 011111 P5.7 P5.7 P5.7 --

            001101 P3.5 P3.5 P3.5 -- 100000 P6.0 --                                             --  --

            001110 P3.6 P3.6 P3.6 -- 100001 P6.1 --                                             --  --

            001111 P3.7 P3.7 -- -- 100010 P6.2 --                                               --  --

            010000 P4.0 P4.0 -- P4.0 100011 P6.3 P6.3 P6.3 --

            010001 P4.1 P4.1 -- P4.1 100100 P6.4 P6.4 P6.4 P6.4

            010010 P4.2 P4.2 -- P4.2 100101 P6.5 P6.5 P6.5 P6.5

                                     Rev. 1.0                                                            97
C8051F70x/71x

16. CIP-51 Microcontroller

The MCU system controller core is the CIP-51 microcontroller. The CIP-51 is fully compatible with the
MCS-51TM instruction set; standard 803x/805x assemblers and compilers can be used to develop soft-
ware. The MCU family has a superset of all the peripherals included with a standard 8051. The CIP-51
also includes on-chip debug hardware (see description in "C2 Interface" on page 301), and interfaces
directly with the analog and digital subsystems providing a complete data acquisition or control-system
solution in a single integrated circuit.

The CIP-51 Microcontroller core implements the standard 8051 organization and peripherals as well as
additional custom peripherals and functions to extend its capability (see Figure 16.1 for a block diagram).
The CIP-51 includes the following features:

    Fully Compatible with MCS-51 Instruction Set                       Reset Input
    25 MIPS Peak Throughput with 25 MHz Clock                          Power Management Modes
    0 to 25 MHz Clock Frequency                                        On-chip Debug Logic
    Extended Interrupt Handler                                         Program and Data Memory Security

Performance
The CIP-51 employs a pipelined architecture that greatly increases its instruction throughput over the stan-
dard 8051 architecture. In a standard 8051, all instructions except for MUL and DIV take 12 or 24 system
clock cycles to execute, and usually have a maximum system clock of 12 MHz. By contrast, 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.

                                                  DATA BUS

    DATA BUS   ACCUMULATOR                                        B REGISTER           STACK POINTER

                                  D8TMP1          TMP2
                                     D8
                                                                          SRAM
                                                                    D8 ADDRESS
                                                                                  D8REGISTER

                                                                                                D8
                                                                                                                                         D8

                                                                                                                                                 D8
                                                                                                                                                                                     D8

                                                                                                                                                                                              D8
               PSW                                                                     SRAM

                                      ALU

                                                  DATA BUS

                                                                                       SFR_ADDRESS

                            BUFFER                D8

                                                                       SFR             SFR_CONTROL

               DATA POINTER                                       D8   BUS             SFR_WRITE_DATA

                                                  D8                   INTERFACE

                                                                                       SFR_READ_DATA

               PC INCREMENTER

                                                        DATA BUS  D8                   MEM_ADDRESS

               PROGRAM COUNTER (PC)

                                                                                       MEM_CONTROL

                                                                       MEMORY

               PRGM. ADDRESS REG.                                 A16  INTERFACE MEM_WRITE_DATA

                                      PIPELINE                                                      MEM_READ_DATA

                                                                  D8

    RESET      CONTROL                                                                   SYSTEM_IRQs
    CLOCK        LOGIC                                                                 EMULATION_IRQ

    STOP                                                                    INTERRUPT
    IDLE                                                                    INTERFACE

                                                                  D8

               POWER CONTROL                      D8

                            REGISTER

               Figure 16.1. CIP-51 Block Diagram

98                                                Rev. 1.0
                                                   C8051F70x/71x

With the CIP-51's maximum system clock at 25 MHz, it has a peak throughput of 25 MIPS. The CIP-51 has
a total of 109 instructions. The table below shows the total number of instructions that require each execu-
tion time.

Clocks to Execute       1   2   2/3       3   3/4  4  4/5  5  8
Number of Instructions
                        26  50  5         14  7    3  1    2  1

16.1. Instruction Set

The instruction set of the CIP-51 System Controller is fully compatible with the standard MCS-51TM instruc-
tion set. Standard 8051 development tools can be used to develop software for the CIP-51. All CIP-51
instructions are the binary and functional equivalent of their MCS-51TM counterparts, including opcodes,
addressing modes and effect on PSW flags. However, instruction timing is different than that of the stan-
dard 8051.

16.1.1. Instruction and CPU Timing

In many 8051 implementations, a distinction is made between machine cycles and clock cycles, with
machine cycles varying from 2 to 12 clock cycles in length. However, the CIP-51 implementation is based
solely on clock cycle timing. All instruction timings are specified in terms of clock cycles.

Due to the pipelined architecture of the CIP-51, most instructions execute in the same number of clock
cycles as there are program bytes in the instruction. Conditional branch instructions take one less clock
cycle to complete when the branch is not taken as opposed to when the branch is taken. Table 16.1 is the
CIP-51 Instruction Set Summary, which includes the mnemonic, number of bytes, and number of clock
cycles for each instruction.

                                Rev. 1.0                         99
C8051F70x/71x

Mnemonic               Table 16.1. CIP-51 Instruction Set Summary  Bytes  Clock
                                                                          Cycles
                          Description

Arithmetic Operations  Add register to A                           1      1
                       Add direct byte to A
ADD A, Rn              Add indirect RAM to A                       2      2
ADD A, direct          Add immediate to A
ADD A, @Ri             Add register to A with carry                1      2
ADD A, #data           Add direct byte to A with carry
ADDC A, Rn             Add indirect RAM to A with carry            2      2
ADDC A, direct         Add immediate to A with carry
ADDC A, @Ri            Subtract register from A with borrow        1      1
ADDC A, #data          Subtract direct byte from A with borrow
SUBB A, Rn             Subtract indirect RAM from A with borrow    2      2
SUBB A, direct         Subtract immediate from A with borrow
SUBB A, @Ri            Increment A                                 1      2
SUBB A, #data          Increment register
INC A                  Increment direct byte                       2      2
INC Rn                 Increment indirect RAM
INC direct             Decrement A                                 1      1
INC @Ri                Decrement register
DEC A                  Decrement direct byte                       2      2
DEC Rn                 Decrement indirect RAM
DEC direct             Increment Data Pointer                      1      2
DEC @Ri                Multiply A and B
INC DPTR               Divide A by B                               2      2
MUL AB                 Decimal adjust A
DIV AB                                                             1      1
DA A                   AND Register to A
                       AND direct byte to A                        1      1
Logical Operations     AND indirect RAM to A
                       AND immediate to A                          2      2
ANL A, Rn              AND A to direct byte
ANL A, direct          AND immediate to direct byte                1      2
ANL A, @Ri             OR Register to A
ANL A, #data           OR direct byte to A                         1      1
ANL direct, A          OR indirect RAM to A
ANL direct, #data      OR immediate to A                           1      1
ORL A, Rn              OR A to direct byte
ORL A, direct          OR immediate to direct byte                 2      2
ORL A, @Ri             Exclusive-OR Register to A
ORL A, #data           Exclusive-OR direct byte to A               1      2
ORL direct, A          Exclusive-OR indirect RAM to A
ORL direct, #data      Exclusive-OR immediate to A                 1      1
XRL A, Rn              Exclusive-OR A to direct byte
XRL A, direct                                                      1      4
XRL A, @Ri
XRL A, #data                                                       1      8
XRL direct, A
                                                                   1      1

                                                                   1      1

                                                                   2      2

                                                                   1      2

                                                                   2      2

                                                                   2      2

                                                                   3      3

                                                                   1      1

                                                                   2      2

                                                                   1      2

                                                                   2      2

                                                                   2      2

                                                                   3      3

                                                                   1      1

                                                                   2      2

                                                                   1      2

                                                                   2      2

                                                                   2      2

100                    Rev. 1.0
                                                                  C8051F70x/71x

                    Table 16.1. CIP-51 Instruction Set Summary (Continued)

Mnemonic              Description                                 Bytes        Clock
                                                                               Cycles
XRL direct, #data     Exclusive-OR immediate to direct byte                 3
                                                                                   3
CLR A                 Clear A                                               1      1
                                                                                   1
CPL A                 Complement A                                          1      1
                                                                                   1
RL A                  Rotate A left                                         1      1
                                                                                   1
RLC A                 Rotate A left through Carry                           1      1

RR A                  Rotate A right                                        1      1
                                                                                   2
RRC A                 Rotate A right through Carry                          1      2
                                                                                   2
SWAP A                Swap nibbles of A                                     1      1
                                                                                   2
Data Transfer                                                                      2
                                                                                   2
MOV A, Rn             Move Register to A                                    1      2
                                                                                   3
MOV A, direct         Move direct byte to A                                 2      2
                                                                                   3
MOV A, @Ri            Move indirect RAM to A                                1      2
                                                                                   2
MOV A, #data          Move immediate to A                                   2      2
                                                                                   3
MOV Rn, A             Move A to Register                                    1      3
                                                                                   3
MOV Rn, direct        Move direct byte to Register                          2      3
                                                                                   3
MOV Rn, #data         Move immediate to Register                            2      3
                                                                                   3
MOV direct, A         Move A to direct byte                                 2      2
                                                                                   2
MOV direct, Rn        Move Register to direct byte                          2      1
                                                                                   2
MOV direct, direct    Move direct byte to direct byte                       3      2
                                                                                   2
MOV direct, @Ri       Move indirect RAM to direct byte                      2
                                                                                   1
MOV direct, #data     Move immediate to direct byte                         3      2
                                                                                   1
MOV @Ri, A            Move A to indirect RAM                                1      2
                                                                                   1
MOV @Ri, direct       Move direct byte to indirect RAM                      2      2

MOV @Ri, #data        Move immediate to indirect RAM                        2

MOV DPTR, #data16     Load DPTR with 16-bit constant                        3

MOVC A, @A+DPTR       Move code byte relative DPTR to A                     1

MOVC A, @A+PC         Move code byte relative PC to A                       1

MOVX A, @Ri           Move external data (8-bit address) to A               1

MOVX @Ri, A           Move A to external data (8-bit address)               1

MOVX A, @DPTR         Move external data (16-bit address) to A              1

MOVX @DPTR, A         Move A to external data (16-bit address)              1

PUSH direct           Push direct byte onto stack                           2

POP direct            Pop direct byte from stack                            2

XCH A, Rn             Exchange Register with A                              1

XCH A, direct         Exchange direct byte with A                           2

XCH A, @Ri            Exchange indirect RAM with A                          1

XCHD A, @Ri           Exchange low nibble of indirect RAM with A            1

Boolean Manipulation

CLR C                 Clear Carry                                           1

CLR bit               Clear direct bit                                      2

SETB C                Set Carry                                             1

SETB bit              Set direct bit                                        2

CPL C                 Complement Carry                                      1

CPL bit               Complement direct bit                                 2

                                          Rev. 1.0                             101
C8051F70x/71x

                     Table 16.1. CIP-51 Instruction Set Summary (Continued)

Mnemonic              Description                                     Bytes     Clock
                                                                                Cycles
ANL C, bit            AND direct bit to Carry                                2
                                                                                    2
ANL C, /bit           AND complement of direct bit to Carry                  2      2
                                                                                    2
ORL C, bit            OR direct bit to carry                                 2      2
                                                                                    2
ORL C, /bit           OR complement of direct bit to Carry                   2      2
                                                                                  2/3
MOV C, bit            Move direct bit to Carry                               2    2/3
                                                                                  3/4
MOV bit, C            Move Carry to direct bit                               2    3/4
                                                                                  3/4
JC rel                Jump if Carry is set                                   2
                                                                                    3
JNC rel               Jump if Carry is not set                               2      4
                                                                                    5
JB bit, rel           Jump if direct bit is set                              3      5
                                                                                    3
JNB bit, rel          Jump if direct bit is not set                          3      4
                                                                                    3
JBC bit, rel          Jump if direct bit is set and clear bit                3      3
                                                                                  2/3
Program Branching                                                                 2/3
                                                                                  4/5
ACALL addr11          Absolute subroutine call                               2    3/4
                                                                                  3/4
LCALL addr16          Long subroutine call                                   3
                                                                                  4/5
RET                   Return from subroutine                                 1
                                                                                  2/3
RETI                  Return from interrupt                                  1    3/4
                                                                                    1
AJMP addr11           Absolute jump                                          2

LJMP addr16           Long jump                                              3

SJMP rel              Short jump (relative address)                          2

JMP @A+DPTR           Jump indirect relative to DPTR                         1

JZ rel                Jump if A equals zero                                  2

JNZ rel               Jump if A does not equal zero                          2

CJNE A, direct, rel   Compare direct byte to A and jump if not equal         3

CJNE A, #data, rel    Compare immediate to A and jump if not equal           3

CJNE Rn, #data, rel   Compare immediate to Register and jump if not          3

                      equal

CJNE @Ri, #data, rel  Compare immediate to indirect and jump if not          3

                      equal

DJNZ Rn, rel          Decrement Register and jump if not zero                2

DJNZ direct, rel      Decrement direct byte and jump if not zero             3

NOP                   No operation                                           1

102                                         Rev. 1.0
                                                C8051F70x/71x

Notes on Registers, Operands and Addressing Modes:

Rn--Register R0�R7 of the currently selected register bank.
@Ri--Data RAM location addressed indirectly through R0 or R1.
rel--8-bit, signed (twos complement) offset relative to the first byte of the following instruction. Used by
SJMP and all conditional jumps.
direct--8-bit internal data location's address. This could be a direct-access Data RAM location (0x00�
0x7F) or an SFR (0x80�0xFF).
#data--8-bit constant
#data16--16-bit constant
bit--Direct-accessed bit in Data RAM or SFR
addr11--11-bit destination address used by ACALL and AJMP. The destination must be within the
same 2 kB page of program memory as the first byte of the following instruction.
addr16--16-bit destination address used by LCALL and LJMP. The destination may be anywhere within
the 8 kB program memory space.
There is one unused opcode (0xA5) that performs the same function as NOP.
All mnemonics copyrighted � Intel Corporation 1980.

Rev. 1.0  103
C8051F70x/71x

16.2. CIP-51 Register Descriptions

Following are descriptions of SFRs related to the operation of the CIP-51 System Controller. Reserved bits
should always be written to the value indicated in the SFR description. Future product versions may use
these bits to implement new features in which case the reset value of the bit will be the indicated value,
selecting the feature's default state. Detailed descriptions of the remaining SFRs are included in the sec-
tions of the data sheet associated with their corresponding system function.

SFR Definition 16.1. DPL: Data Pointer Low Byte

Bit    7  6    5                          4            3         2  1  0

Name                                         DPL[7:0]

Type                                         R/W

Reset  0  0    0                          0            0         0  0  0

SFR Address = 0x82; SFR Page = All Pages            Function
Bit Name

7:0 DPL[7:0] Data Pointer Low.

          The DPL register is the low byte of the 16-bit DPTR.

SFR Definition 16.2. DPH: Data Pointer High Byte

Bit    7  6    5                          4            3         2  1  0

Name                                         DPH[7:0]

Type                                         R/W

Reset  0  0    0                          0            0         0  0  0

SFR Address = 0x83; SFR Page = All Pages            Function
Bit Name

7:0 DPH[7:0] Data Pointer High.

          The DPH register is the high byte of the 16-bit DPTR.

104                                       Rev. 1.0
                                                              C8051F70x/71x

SFR Definition 16.3. SP: Stack Pointer

Bit    7  6                 5             4                3  2        1  0

Name                                         SP[7:0]

Type                                         R/W

Reset  0  0                 0             0                0  1        1  1

SFR Address = 0x81; SFR Page = All Pages            Function
Bit Name

7:0 SP[7:0] Stack Pointer.

          The Stack Pointer holds the location of the top of the stack. The stack pointer is incre-
          mented before every PUSH operation. The SP register defaults to 0x07 after reset.

SFR Definition 16.4. ACC: Accumulator

Bit    7  6                 5             4                3  2        1  0

Name                                         ACC[7:0]

Type                                         R/W

Reset  0  0                 0             0                0  0        0  0

SFR Address = 0xE0; SFR Page = All Pages; Bit-Addressable

Bit Name                                            Function

7:0 ACC[7:0] Accumulator.

          This register is the accumulator for arithmetic operations.

                                          Rev. 1.0                           105
C8051F70x/71x

SFR Definition 16.5. B: B Register

Bit    7  6             5           4                      3  2  1                         0

Name                                   B[7:0]

Type                                   R/W

Reset  0  0             0           0                      0  0  0                         0

SFR Address = 0xF0; SFR Page = All Pages; Bit-Addressable

Bit Name                                      Function

7:0 B[7:0] B Register.

          This register serves as a second accumulator for certain arithmetic operations.

106                                 Rev. 1.0
                                                              C8051F70x/71x

SFR Definition 16.6. PSW: Program Status Word

Bit    7   6              5        4                       3  2    1                        0

Name   CY  AC             F0          RS[1:0]                 OV   F1               PARITY

Type R/W   R/W            R/W         R/W                     R/W  R/W                      R

Reset  0   0              0        0                       0  0    0                        0

SFR Address = 0xD0; SFR Page = All Pages; Bit-Addressable

Bit Name                                     Function

7      CY Carry Flag.

           This bit is set when the last arithmetic operation resulted in a carry (addition) or a bor-
           row (subtraction). It is cleared to logic 0 by all other arithmetic operations.

6      AC Auxiliary Carry Flag.

           This bit is set when the last arithmetic operation resulted in a carry into (addition) or a
           borrow from (subtraction) the high order nibble. It is cleared to logic 0 by all other arith-
           metic operations.

5      F0 User Flag 0.

           This is a bit-addressable, general purpose flag for use under software control.

4:3 RS[1:0] Register Bank Select.

           These bits select which register bank is used during register accesses.
           00: Bank 0, Addresses 0x00-0x07
           01: Bank 1, Addresses 0x08-0x0F
           10: Bank 2, Addresses 0x10-0x17
           11: Bank 3, Addresses 0x18-0x1F

2      OV Overflow Flag.

           This bit is set to 1 under the following circumstances:
               An ADD, ADDC, or SUBB instruction causes a sign-change overflow.
               A MUL instruction results in an overflow (result is greater than 255).
               A DIV instruction causes a divide-by-zero condition.

           The OV bit is cleared to 0 by the ADD, ADDC, SUBB, MUL, and DIV instructions in all
           other cases.

1      F1 User Flag 1.

           This is a bit-addressable, general purpose flag for use under software control.

0 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.

                                   Rev. 1.0                                                    107
C8051F70x/71x

17. 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
C8051F70x/71x device family is shown in Figure 17.1

     PROGRAM/DATA MEMORY                        DATA MEMORY (RAM)
                  (FLASH)              INTERNAL DATA ADDRESS SPACE

0x3FFF  C8051F702/3/6/7 and  0xFF      Upper 128 RAM                 Special Function
             C8051F716/7             (Indirect Addressing                Register's
                Lock Byte    0x80
                             0x7F             Only)             (Direct Addressing Only)
0x3FFE
                             0x30
        16 K Bytes FLASH     0x2F
                             0x20
               (In-System    0x1F      (Direct and Indirect     Lower 128 RAM
        Programmable in 512  0x00          Addressing)          (Direct and Indirect
                                                                Addressing)
             Byte Sectors)               Bit Addressable
                                        General Purpose
0x0000
                                             Registers
        C8051F700/1/4/5
0x3BFF       Lock Byte                 EXTERNAL DATA ADDRESS SPACE
0x3BFE
        15 K Bytes FLASH

               (In-System    0xFFFF
        Programmable in 512
0x0000                                 Same 256 bytes as from
0x1FFF       Byte Sectors)           0x0000 to 0x01FF, wrapped
0x1FFE
          C8051F708/9 and              on 256-byte boundaries
0x0000  C8051F710/1/2/3/4/5
                             0x0100  XRAM - 256 Bytes
               Lock Byte     0x00FF
                                     (accessable using MOVX
          8 K Bytes FLASH    0x0000           instruction)

               (In-System
        Programmable in 512

             Byte Sectors)

        Figure 17.1. C8051F70x/71x Memory Map

108                          Rev. 1.0
                                                                                     C8051F70x/71x

17.1. Program Memory

The members of the C8051F70x/71x device family contain 16 kB (C8051F702/3/6/7 and C8051F16/7),
15 kB (C8051F700/1/4/5), or 8 kB (C8051F708/9 and C8051F710/1/2/3/4/5) of re-programmable Flash
memory that can be used as non-volatile program or data storage. The last byte of user code space is
used as the security lock byte (0x3FFF on 16 kB devices, 0x3BFF on 15 kB devices and 0x1FFF on 8 kB
devices).

                           C8051F702/3/6/7 and   0x3FFF  C8051F700/1/4/5
                                C8051F716/7      0x3FFE
                                                 0x3E00         Lock Byte
                                      Lock Byte
                                                           Lock Byte Page
                                 Lock Byte Page

FLASH memory organized in                                                    0x3BFF    C8051F708/9 and     0x1FFF
   512-byte pages                                                            0x3BFE  C8051F710/1/2/3/4/5   0x1FFE
                                                                             0x3A00                        0x1E00
                                                                                               Lock Byte
                           Flash Memory Space
                                                                                           Lock Byte Page

                                                         Flash Memory Space

                                                                                     Flash Memory Space

                                                 0x0000                      0x0000                        0x0000

                           Figure 17.2. Flash Program Memory Map

17.1.1. MOVX Instruction and Program Memory

The MOVX instruction in an 8051 device is typically used to access external data memory. On the
C8051F70x/71x devices, the MOVX instruction is normally used to read and write on-chip XRAM, but can
be re-configured to write and erase on-chip Flash memory space. MOVC instructions are always used to
read Flash memory, while MOVX write instructions are used to erase and write Flash. This Flash access
feature provides a mechanism for the C8051F70x/71x to update program code and use the program mem-
ory space for non-volatile data storage. Refer to Section "22. Flash Memory" on page 148 for further
details.

17.2. EEPROM Memory

The C8051F700/1/4/5/8/9 and C8051F712/3 contain EEPROM emulation hardware, which uses Flash
memory to emulate a 32-byte EEPROM memory space for non-volatile data storage. The EEPROM data is
accessed through a RAM buffer for increased speed. More details about the EEPROM can be found in
Section "23. EEPROM" on page 155.

17.3. Data Memory

The C8051F70x/71x device family includes 512 bytes of RAM data memory. 256 bytes of this memory is
mapped into the internal RAM space of the 8051. 256 bytes of this memory is on-chip "external" memory.
The data memory map is shown in Figure 17.1 for reference.

17.3.1. Internal RAM

There are 256 bytes of internal RAM mapped into the data memory space from 0x00 through 0xFF. The
lower 128 bytes of data memory are used for general purpose registers and scratch pad memory. Either
direct or indirect addressing may be used to access the lower 128 bytes of data memory. Locations 0x00
through 0x1F are addressable as four banks of general purpose registers, each bank consisting of eight

                                                         Rev. 1.0                                          109
C8051F70x/71x

byte-wide registers. The next 16 bytes, locations 0x20 through 0x2F, may either be addressed as bytes or
as 128 bit locations accessible with the direct addressing mode.

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 17.1 illustrates the data memory organization of the
C8051F70x/71x.

17.3.1.1. General Purpose Registers
The lower 32 bytes of data memory, locations 0x00 through 0x1F, may be addressed as four banks of gen-
eral-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, RS0 (PSW.3) and RS1
(PSW.4), select the active register bank (see description of the PSW in SFR Definition 16.6). This allows
fast context switching when entering subroutines and interrupt service routines. Indirect addressing modes
use registers R0 and R1 as index registers.

17.3.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 destina-
tion).

The MCS-51TM 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.

17.3.1.3. Stack
A programmer's stack can be located anywhere in the 256-byte data memory. The stack area is desig-
nated 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 regis-
ter (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.

110  Rev. 1.0
                                C8051F70x/71x

18. External Data Memory Interface and On-Chip XRAM

For C8051F70x/71x devices, 256 B of RAM are included on-chip and mapped into the external data mem-
ory space (XRAM). Additionally, an External Memory Interface (EMIF) is available on the
C8051F700/1/2/3/8/9 and C8051F710/1 devices, which can be used to access off-chip data memories and
memory-mapped devices connected to the GPIO ports. The external memory space may be accessed
using the external move instruction (MOVX) and the data pointer (DPTR), or using the MOVX indirect
addressing mode using R0 or R1. If the MOVX instruction is used with an 8-bit address operand (such as
@R1), then the high byte of the 16-bit address is provided by the External Memory Interface Control Reg-
ister (EMI0CN, shown in SFR Definition 18.1).

Note: The MOVX instruction can also be used for writing to the Flash memory. See Section "22. Flash Memory" on
        page 148 for details. The MOVX instruction accesses XRAM by default.

18.1. Accessing XRAM

The XRAM memory space is accessed using the MOVX instruction. The MOVX instruction has two forms,
both of which use an indirect addressing method. The first method uses the Data Pointer, DPTR, a 16-bit
register which contains the effective address of the XRAM location to be read from or written to. The sec-
ond method uses R0 or R1 in combination with the EMI0CN register to generate the effective XRAM
address. Examples of both of these methods are given below.

18.1.1. 16-Bit MOVX Example

The 16-bit form of the MOVX instruction accesses the memory location pointed to by the contents of the
DPTR register. The following series of instructions reads the value of the byte at address 0x1234 into the
accumulator A:

MOV DPTR, #1234h      ; load DPTR with 16-bit address to read (0x1234)
MOVX A, @DPTR         ; load contents of 0x1234 into accumulator A

The above example uses the 16-bit immediate MOV instruction to set the contents of DPTR. Alternately,
the DPTR can be accessed through the SFR registers DPH, which contains the upper 8-bits of DPTR, and
DPL, which contains the lower 8-bits of DPTR.

18.1.2. 8-Bit MOVX Example

The 8-bit form of the MOVX instruction uses the contents of the EMI0CN SFR to determine the upper 8-bits
of the effective address to be accessed and the contents of R0 or R1 to determine the lower 8-bits of the
effective address to be accessed. The following series of instructions read the contents of the byte at
address 0x1234 into the accumulator A.

MOV   EMI0CN, #12h    ; load high byte of address into EMI0CN
MOV   R0, #34h        ; load low byte of address into R0 (or R1)
MOVX  a, @R0          ; load contents of 0x1234 into accumulator A

                      Rev. 1.0                                          111
C8051F70x/71x

18.2. Configuring the External Memory Interface

Configuring the External Memory Interface consists of five steps:

1. Configure the Output Modes of the associated port pins as either push-pull or open-drain (push-pull is
    most common).

2. Configure Port latches to "park" the EMIF pins in a dormant state (usually by setting them to logic 1).
3. Select Multiplexed mode or Non-multiplexed mode.
4. Select the memory mode (on-chip only, split mode without bank select, split mode with bank select, or

    off-chip only).
5. Set up timing to interface with off-chip memory or peripherals.
Each of these five steps is explained in detail in the following sections. The Port selection, Multiplexed
mode selection, and Mode bits are located in the EMI0CF register shown in SFR Definition .

18.3. Port Configuration

The EMIF pinout is shown in Figure 18.2 on Page 127

The External Memory Interface claims the associated Port pins for memory operations ONLY during the
execution of an off-chip MOVX instruction. Once the MOVX instruction has completed, control of the Port
pins reverts to the Port latches for those pins. See Section "28. Port Input/Output" on page 180 for more
information about Port operation and configuration. The Port latches should be explicitly configured to
"park" the External Memory Interface pins in a dormant state, most commonly by setting them to a
logic 1.

During the execution of the MOVX instruction, the External Memory Interface will explicitly disable the driv-
ers on all Port pins that are acting as Inputs (Data[7:0] during a READ operation, for example). The Output
mode of the Port pins (whether the pin is configured as Open-Drain or Push-Pull) is unaffected by the
External Memory Interface operation, and remains controlled by the PnMDOUT registers. In most cases,
the output modes of all EMIF pins should be configured for push-pull mode.

112  Rev. 1.0
                                                         C8051F70x/71x

SFR Definition 18.1. EMI0CN: External Memory Interface Control

Bit    7  6                       5  4         3         2      1  0

Name                                 PGSEL[7:0]

Type                                    R/W

Reset  0  0                       0  0         0         0      0  0

SFR Address = 0xAA; SFR Page = F               Function
Bit Name

7:0 PGSEL[7:0] XRAM Page Select Bits.
                        The XRAM Page Select Bits provide the high byte of the 16-bit external data memory
                        address when using an 8-bit MOVX command, effectively selecting a 256-byte page of
                        RAM.
                        0x00: 0x0000 to 0x00FF
                        0x01: 0x0100 to 0x01FF
                        ...
                        0xFE: 0xFE00 to 0xFEFF
                        0xFF: 0xFF00 to 0xFFFF

                                     Rev. 1.0                         113
C8051F70x/71x

SFR Definition 18.2. EMI0CF: External Memory Configuration

Bit    7  6                       5  4         3             2                   1             0

Name                                 EMD2         EMD[1:0]                          EALE[1:0]

Type      R                                                  R/W

Reset  0  0                       0  0         0             0                   1             1

SFR Address = 0xC7; SFR Page = F               Function
Bit Name

7:5 Unused Read = 000b; Write = Don't Care.

4      EMD2 EMIF Multiplex Mode Select Bit.

          0: EMIF operates in multiplexed address/data mode

          1: EMIF operates in non-multiplexed mode (separate address and data pins)

3:2 EMD[1:0] EMIF Operating Mode Select Bits.

                        00: Internal Only: MOVX accesses on-chip XRAM only. All effective addresses alias to
                        on-chip memory space
                        01: Split Mode without Bank Select: Accesses below the 256 B boundary are directed
                        on-chip. Accesses above the 256 B boundary are directed off-chip. 8-bit off-chip MOVX
                        operations use current contents of the Address high port latches to resolve the upper
                        address byte. To access off chip space, EMI0CN must be set to a page that is not con-
                        tained in the on-chip address space.
                        10: Split Mode with Bank Select: Accesses below the 256 B boundary are directed on-
                        chip. Accesses above the 256 B boundary are directed off-chip. 8-bit off-chip MOVX
                        operations uses the contents of EMI0CN to determine the high-byte of the address.
                        11: External Only: MOVX accesses off-chip XRAM only. On-chip XRAM is not visible to
                        the CPU.

1:0 EALE[1:0] ALE Pulse-Width Select Bits.
                        These bits only have an effect when EMD2 = 0.
                        00: ALE high and ALE low pulse width = 1 SYSCLK cycle.
                        01: ALE high and ALE low pulse width = 2 SYSCLK cycles.
                        10: ALE high and ALE low pulse width = 3 SYSCLK cycles.
                        11: ALE high and ALE low pulse width = 4 SYSCLK cycles.

114                                  Rev. 1.0
                                                 C8051F70x/71x

18.4. Multiplexed and Non-multiplexed Selection

The External Memory Interface is capable of acting in a Multiplexed mode or a Non-multiplexed mode,
depending on the state of the EMD2 (EMI0CF.4) bit.

18.4.1. Multiplexed Configuration
In Multiplexed mode, the Data Bus and the lower 8-bits of the Address Bus share the same Port pins:
AD[7:0]. In this mode, an external latch (74HC373 or equivalent logic gate) is used to hold the lower 8-bits
of the RAM address. The external latch is controlled by the ALE (Address Latch Enable) signal, which is
driven by the External Memory Interface logic. An example of a Multiplexed Configuration is shown in
Figure 18.1.

In Multiplexed mode, the external MOVX operation can be broken into two phases delineated by the state
of the ALE signal. During the first phase, ALE is high and the lower 8-bits of the Address Bus are pre-
sented to AD[7:0]. During this phase, the address latch is configured such that the Q outputs reflect the
states of the `D' inputs. When ALE falls, signaling the beginning of the second phase, the address latch
outputs remain fixed and are no longer dependent on the latch inputs. Later in the second phase, the Data
Bus controls the state of the AD[7:0] port at the time RD or WR is asserted.

See Section "18.6.2. Multiplexed Mode" on page 123 for more information.

   A[15:8]  ADDRESS BUS           A[15:8]

                      74HC373     A[7:0]
                                        64 K X 8
E  ALE                G                   SRAM

M  AD[7:0] ADDRESS/DATA BUS D  Q  I/O[7:0]
                                  CE
            VDD                   WE
                                  OE
I                     (Optional)

            8

F

   WR
   RD

            Figure 18.1. Multiplexed Configuration Example

            Rev. 1.0                                        115
C8051F70x/71x

18.4.2. Non-multiplexed Configuration
In Non-multiplexed mode, the Data Bus and the Address Bus pins are not shared. An example of a Non-
multiplexed Configuration is shown in Figure 18.2. See Section "18.6.1. Non-Multiplexed Mode" on
page 120 for more information about Non-multiplexed operation.

                 A[15:0]  ADDRESS BUS                  A[15:0]

     E                                            VDD        64 K X 8
                                                               SRAM
     M                          (Optional)             I/O[7:0]
                                                       CE
     I  D[7:0]                                      8  WE
                             DATA BUS                  OE

     F  WR

        RD

        Figure 18.2. Non-multiplexed Configuration Example

116                       Rev. 1.0
                                                                                C8051F70x/71x

18.5. Memory Mode Selection

The external data memory space can be configured in one of four modes, shown in Figure 18.3, based on
the EMIF Mode bits in the EMI0CF register (SFR Definition 18.2). These modes are summarized below.
More information about the different modes can be found in Section "18.6. Timing" on page 118.

EMI0CF[3:2] = 00               EMI0CF[3:2] = 01               EMI0CF[3:2] = 10               EMI0CF[3:2] = 11  0xFFFF
On-Chip XRAM      0xFFFF                         0xFFFF                         0xFFFF

On-Chip XRAM                   Off-Chip                     Off-Chip
On-Chip XRAM                   Memory                       Memory
On-Chip XRAM              (No Bank Select)               (Bank Select)

                                                                                        Off-Chip
                                                                                        Memory

On-Chip XRAM              On-Chip XRAM                   On-Chip XRAM
On-Chip XRAM

                  0x0000                         0x0000                         0x0000                         0x0000

                          Figure 18.3. EMIF Operating Modes

18.5.1. Internal XRAM Only

When bits EMI0CF[3:2] are set to 00, all MOVX instructions will target the internal XRAM space on the
device. Memory accesses to addresses beyond the populated space will wrap on 4 kB boundaries. As an
example, the addresses 0x1000 and 0x2000 both evaluate to address 0x0000 in on-chip XRAM space.

8-bit MOVX operations use the contents of EMI0CN to determine the high-byte of the effective address
    and R0 or R1 to determine the low-byte of the effective address.

16-bit MOVX operations use the contents of the 16-bit DPTR to determine the effective address.

18.5.2. Split Mode without Bank Select

When bit EMI0CF.[3:2] are set to 01, the XRAM memory map is split into two areas, on-chip space and off-
chip space.

Effective addresses below the internal XRAM size boundary will access on-chip XRAM space.
Effective addresses above the internal XRAM size boundary will access off-chip space.
8-bit MOVX operations use the contents of EMI0CN to determine whether the memory access is on-

    chip or off-chip. However, in the "No Bank Select" mode, an 8-bit MOVX operation will not drive the
    upper 8-bits A[15:8] of the Address Bus during an off-chip access. This allows the user to manipulate
    the upper address bits at will by setting the Port state directly via the port latches. This behavior is in
    contrast with "Split Mode with Bank Select" described below. The lower 8-bits of the Address Bus A[7:0]
    are driven, determined by R0 or R1.
16-bit MOVX operations use the contents of DPTR to determine whether the memory access is on-chip
    or off-chip, and unlike 8-bit MOVX operations, the full 16-bits of the Address Bus A[15:0] are driven
    during the off-chip transaction.

                                                 Rev. 1.0                                                      117
C8051F70x/71x

18.5.3. Split Mode with Bank Select
When EMI0CF[3:2] are set to 10, the XRAM memory map is split into two areas, on-chip space and off-
chip space.

Effective addresses below the internal XRAM size boundary will access on-chip XRAM space.
Effective addresses above the internal XRAM size boundary will access off-chip space.
8-bit MOVX operations use the contents of EMI0CN to determine whether the memory access is on-

    chip or off-chip. The upper 8-bits of the Address Bus A[15:8] are determined by EMI0CN, and the lower
    8-bits of the Address Bus A[7:0] are determined by R0 or R1. All 16-bits of the Address Bus A[15:0] are
    driven in "Bank Select" mode.
16-bit MOVX operations use the contents of DPTR to determine whether the memory access is on-chip
    or off-chip, and the full 16-bits of the Address Bus A[15:0] are driven during the off-chip transaction.
18.5.4. External Only
When EMI0CF[3:2] are set to 11, all MOVX operations are directed to off-chip space. On-chip XRAM is not
visible to the CPU. This mode is useful for accessing off-chip memory located between 0x0000 and the
internal XRAM size boundary.

8-bit MOVX operations ignore the contents of EMI0CN. The upper Address bits A[15:8] are not driven
    (identical behavior to an off-chip access in "Split Mode without Bank Select" described above). This
    allows the user to manipulate the upper address bits at will by setting the Port state directly. The lower
    8-bits of the effective address A[7:0] are determined by the contents of R0 or R1.

16-bit MOVX operations use the contents of DPTR to determine the effective address A[15:0]. The full
    16-bits of the Address Bus A[15:0] are driven during the off-chip transaction.

18.6. Timing

The timing parameters of the External Memory Interface can be configured to enable connection to
devices having different setup and hold time requirements. The Address Setup time, Address Hold time,
RD and WR strobe widths, and in multiplexed mode, the width of the ALE pulse are all programmable in
units of SYSCLK periods through EMI0TC, shown in SFR Definition 18.3, and EMI0CF[1:0].

The timing for an off-chip MOVX instruction can be calculated by adding 4 SYSCLK cycles to the timing
parameters defined by the EMI0TC register. Assuming non-multiplexed operation, the minimum execution
time for an off-chip XRAM operation is 5 SYSCLK cycles (1 SYSCLK for RD or WR pulse + 4 SYSCLKs).
For multiplexed operations, the Address Latch Enable signal will require a minimum of 2 additional SYS-
CLK cycles. Therefore, the minimum execution time for an off-chip XRAM operation in multiplexed mode is
7 SYSCLK cycles (2 for /ALE + 1 for RD or WR + 4). The programmable setup and hold times default to
the maximum delay settings after a reset. Table 18.1 lists the ac parameters for the External Memory Inter-
face, and Figure 18.4 through Figure 18.9 show the timing diagrams for the different External Memory
Interface modes and MOVX operations.

118  Rev. 1.0
                                                                         C8051F70x/71x

SFR Definition 18.3. EMI0TC: External Memory Timing Control

Bit    7            6             5  4            3                      2  1            0

Name      EAS[1:0]                      EWR[3:0]                               EAH[1:0]

Type      R/W                           R/W                                    R/W

Reset  1            1             1  1            1                      1  1            1

SFR Address = 0xEE; SFR Page = F               Function
Bit Name

7:6 EAS[1:0] EMIF Address Setup Time Bits.
                        00: Address setup time = 0 SYSCLK cycles.
                        01: Address setup time = 1 SYSCLK cycle.
                        10: Address setup time = 2 SYSCLK cycles.
                        11: Address setup time = 3 SYSCLK cycles.

5:2 EWR[3:0] EMIF WR and RD Pulse-Width Control Bits.
                        0000: WR and RD pulse width = 1 SYSCLK cycle.
                        0001: WR and RD pulse width = 2 SYSCLK cycles.
                        0010: WR and RD pulse width = 3 SYSCLK cycles.
                        0011: WR and RD pulse width = 4 SYSCLK cycles.
                        0100: WR and RD pulse width = 5 SYSCLK cycles.
                        0101: WR and RD pulse width = 6 SYSCLK cycles.
                        0110: WR and RD pulse width = 7 SYSCLK cycles.
                        0111: WR and RD pulse width = 8 SYSCLK cycles.
                        1000: WR and RD pulse width = 9 SYSCLK cycles.
                        1001: WR and RD pulse width = 10 SYSCLK cycles.
                        1010: WR and RD pulse width = 11 SYSCLK cycles.
                        1011: WR and RD pulse width = 12 SYSCLK cycles.
                        1100: WR and RD pulse width = 13 SYSCLK cycles.
                        1101: WR and RD pulse width = 14 SYSCLK cycles.
                        1110: WR and RD pulse width = 15 SYSCLK cycles.
                        1111: WR and RD pulse width = 16 SYSCLK cycles.

1:0 EAH[1:0] EMIF Address Hold Time Bits.
                        00: Address hold time = 0 SYSCLK cycles.
                        01: Address hold time = 1 SYSCLK cycle.
                        10: Address hold time = 2 SYSCLK cycles.
                        11: Address hold time = 3 SYSCLK cycles.

                                     Rev. 1.0                                               119
C8051F70x/71x

18.6.1. Non-Multiplexed Mode
18.6.1.1. 16-bit MOVX: EMI0CF[4:2] = 101, 110, or 111

                                                                Nonmuxed 16-bit WRITE

ADDR[15:8]       EMIF ADDRESS (8 MSBs) from DPH

     ADDR[7:0]   EMIF ADDRESS (8 LSBs) from DPL

     DATA[7:0]         EMIF WRITE DATA
             WR
                       T                                                               T

                        WDS                                                             WDH

                 T           T                                                         T

                  ACS         ACW                                                       ACH

     RD

ADDR[15:8]                Nonmuxed 16-bit READ
ADDR[7:0]       EMIF ADDRESS (8 MSBs) from DPH
  DATA[7:0]
                 EMIF ADDRESS (8 LSBs) from DPL
           RD
           WR                    EMIF READ DATA

                 T               T                                                     T

                  ACS              RDS                                                  RDH

                             T                                                           T

                              ACW                                                          ACH

                 Figure 18.4. Non-multiplexed 16-bit MOVX Timing

120                    Rev. 1.0
                                    C8051F70x/71x

18.6.1.2. 8-bit MOVX without Bank Select: EMI0CF[4:2] = 101 or 111
                                                   Nonmuxed 8-bit WRITE without Bank Select

   ADDR[15:8]

ADDR[7:0]    EMIF ADDRESS (8 LSBs) from R0 or R1

DATA[7:0]          EMIF WRITE DATA
        WR
                   T                T

                    WDS              WDH

             T           T          T

              ACS         ACW        ACH

RD

             Nonmuxed 8-bit READ without Bank Select

ADDR[15:8]

ADDR[7:0]    EMIF ADDRESS (8 LSBs) from R0 or R1

DATA[7:0]                    EMIF READ DATA
         RD
             T               T      T

              ACS              RDS   RDH

                         T            T

                          ACW           ACH

WR

Figure 18.5. Non-multiplexed 8-bit MOVX without Bank Select Timing

                   Rev. 1.0                                                                  121
C8051F70x/71x

18.6.1.3. 8-bit MOVX with Bank Select: EMI0CF[4:2] = 110

                                                            Nonmuxed 8-bit WRITE with Bank Select

     ADDR[15:8]   EMIF ADDRESS (8 MSBs) from EMI0CN

     ADDR[7:0]    EMIF ADDRESS (8 LSBs) from R0 or R1

     DATA[7:0]          EMIF WRITE DATA
             WR
                        T                T

                         WDS              WDH

                  T           T          T

                   ACS         ACW        ACH

     RD

     ADDR[15:8]   Nonmuxed 8-bit READ with Bank Select
                  EMIF ADDRESS (8 MSBs) from EMI0CN

     ADDR[7:0]    EMIF ADDRESS (8 LSBs) from R0 or R1

     DATA[7:0]                    EMIF READ DATA
              RD
                  T               T      T

                   ACS              RDS   RDH

                              T            T

                               ACW           ACH

     WR

     Figure 18.6. Non-Multiplexed 8-Bit MOVX with Bank Select Timing

122                     Rev. 1.0
                                                                     C8051F70x/71x

18.6.2. Multiplexed Mode
18.6.2.1. 16-bit MOVX: EMI0CF[4:2] = 001, 010, or 011

                                           Muxed 16-bit WRITE

ADDR[15:8]            EMIF ADDRESS (8 MSBs) from DPH
      AD[7:0]
               EMIF ADDRESS (8 LSBs) from              EMIF WRITE DATA
                                 DPL

               T      T

                ALEH   ALEL

ALE                                                    T                T
WR
                                                        WDS              WDH

                                           T                   T        T

                                            ACS                 ACW      ACH

RD

                                           Muxed 16-bit READ

ADDR[15:8]            EMIF ADDRESS (8 MSBs) from DPH
      AD[7:0]
               EMIF ADDRESS (8 LSBs) from                      EMIF READ DATA
          ALE                    DPL

               T      T                                        T        T

                ALEH   ALEL                                     RDS      RDH

                                           T                   T        T

                                            ACS                 ACW      ACH

RD

WR

               Figure 18.7. Multiplexed 16-bit MOVX Timing

                             Rev. 1.0                                          123
C8051F70x/71x

18.6.2.2. 8-bit MOVX without Bank Select: EMI0CF[4:2] = 001 or 011

                      Muxed 8-bit WRITE Without Bank Select

ADDR[15:8]     EMIF ADDRESS (8 LSBs) from        EMIF WRITE DATA
      AD[7:0]                 R0 or R1

               T      T

                ALEH   ALEL

     ALE                                         T                  T
     WR
                                                  WDS                WDH

                                           T           T            T

                                            ACS         ACW          ACH

     RD

                      Muxed 8-bit READ Without Bank Select

ADDR[15:8]     EMIF ADDRESS (8 LSBs) from              EMIF READ DATA
      AD[7:0]                 R0 or R1

          ALE  T      T                                T            T

                ALEH   ALEL                             RDS          RDH

                                           T           T            T

                                            ACS         ACW          ACH

     RD                                                                        l

     WR

               Figure 18.8. Multiplexed 8-Bit MOVX without Bank Select Timing

124                          Rev. 1.0
                                                                      C8051F70x/71x

18.6.2.3. 8-bit MOVX with Bank Select: EMI0CF[4:2] = 010

                      Muxed 8-bit WRITE with Bank Select

ADDR[15:8]            EMIF ADDRESS (8 MSBs) from EMI0CN
      AD[7:0]
               EMIF ADDRESS (8 LSBs) from                 EMIF WRITE DATA
                              R0 or R1

               T      T

                ALEH   ALEL

ALE                                                       T                T
WR
                                                           WDS              WDH

                                           T                    T          T

                                            ACS                  ACW        ACH

RD

ADDR[15:8]               Muxed 8-bit READ with Bank Select
      AD[7:0]         EMIF ADDRESS (8 MSBs) from EMI0CN

          ALE  EMIF ADDRESS (8 LSBs) from                       EMIF READ DATA
                              R0 or R1

               T      T                                         T          T

                ALEH   ALEL                                      RDS        RDH

                                           T                    T          T

                                            ACS                  ACW        ACH

RD

WR

               Figure 18.9. Multiplexed 8-Bit MOVX with Bank Select Timing

                             Rev. 1.0                                            125
C8051F70x/71x

            Table 18.1. AC Parameters for External Memory Interface

Parameter      Description                         Min*                             Max*     Units
                                                                               3 x TSYSCLK     ns
     TACS   Address/Control Setup Time                                     0   16 x TSYSCLK    ns
                                                                               3 x TSYSCLK     ns
     TACW   Address/Control Pulse Width            TSYSCLK                     4 x TSYSCLK     ns
                                                                               4 x TSYSCLK     ns
     TACH   Address/Control Hold Time                                      0   19 x TSYSCLK    ns
                                                                               3 x TSYSCLK     ns
     TALEH  Address Latch Enable High Time         TSYSCLK                                     ns
                                                                                      --       ns
     TALEL  Address Latch Enable Low Time          TSYSCLK                            --

     TWDS   Write Data Setup Time                  TSYSCLK

     TWDH   Write Data Hold Time                                           0

     TRDS   Read Data Setup Time                                           20

     TRDH   Read Data Hold Time                                            0

Note: TSYSCLK is equal to one period of the device system clock (SYSCLK).

126                                      Rev. 1.0
                                         C8051F70x/71x

       Table 18.2. EMIF Pinout (C8051F700/1/2/3/8/9 and C8051F710/1)

Multiplexed Mode            Non Multiplexed Mode

Signal Name       Port Pin  Signal Name  Port Pin
RD                P6.1      RD           P6.1
WR                P6.0      WR           P6.0
ALE               P6.2      D0           P5.0
D0/A0             P5.0      D1           P5.1
D1/A1             P5.1      D2           P5.2

D2/A2             P5.2      D3           P5.3
D3/A3             P5.3
D4/A4             P5.4      D4           P5.4
D5/A5             P5.5
D6/A6             P5.6      D5           P5.5
D7/A7             P5.7
                            D6           P5.6

                            D7           P5.7

                            A0           P4.0

A8                P4.0      A1           P4.1

A9                P4.1      A2           P4.2

A10               P4.2      A3           P4.3

A11               P4.3      A4           P4.4

A12               P4.4      A5           P4.5

A13               P4.5      A6           P4.6

A14               P4.6      A7           P4.7

A15               P4.7      A8           P3.0

--                --        A9           P3.1

--                --        A10          P3.2

--                --        A11          P3.3

--                --        A12          P3.4

--                --        A13          P3.5

--                --        A14          P3.6

--                --        A15          P3.7

                            Rev. 1.0                                  127
C8051F70x/71x

19. In-System Device Identification

The C8051F70x/71x has SFRs that identify the device family and derivative. These SFRs can be read by
firmware at runtime to determine the capabilities of the MCU that is executing code. This allows the same
firmware image to run on MCUs with different memory sizes and peripherals, and dynamically changing
functionality to suit the capabilities of that MCU.

In order for firmware to identify the MCU, it must read three SFRs. HWID describes the MCU's family,
DERIVID describes the specific derivative within that device family, and REVID describes the hardware
revision of the MCU.

SFR Definition 19.1. HWID: Hardware Identification Byte

Bit    7       6                  5  4             3           2       1       0

Name                                    HWID[7:0]

Type   R       R                  R  R             R           R       R       R

Reset  0       0                  0  1             1           1       1       0

SFR Address = 0xC4; SFR Page = F

Bit    Name                                       Description

7:0 HWID[7:0]  Hardware Identification Byte.

               Describes the MCU family.
               0x1E: Devices covered in this document (C8051F70x/71x)

SFR Definition 19.2. DERIVID: Derivative Identification Byte

  Bit     7       6       5          4             3              2       1       0
Name
Type      R       R       R          DERIVID[7:0]                 R       R       R
Reset  Varies  Varies  Varies                                  Varies  Varies  Varies
                                     R             R

                                     Varies       Varies

SFR Address = 0xEC; SFR Page = F

Bit    Name                                       Description

7:0 DERIVID[7:0] Derivative Identification Byte.

               Shows the C8051F70x/71x derivative being used.
               0xD0: C8051F700; 0xD1: C8051F701; 0xD2: C8051F702; 0xD3: C8051F703
               0xD4: C8051F704; 0xD5: C8051F705; 0xD6: C8051F706; 0xD7: C8051F707
               0xD8: C8051F708; 0xD9: C8051F709; 0xDA: C8051F710; 0xDB: C8051F711
               0xDC: C8051F712; 0xDD: C8051F713; 0xDE: C8051F714; 0xDF: C8051F715
               0xE0: C8051F716; 0xE1: C8051F717

128                                  Rev. 1.0
                                                         C8051F70x/71x

SFR Definition 19.3. REVID: Hardware Revision Identification Byte

  Bit     7        6       5      4         3               2             1       0
Name
Type      R        R       R      REVID[7:0]                R             R       R
Reset  Varies   Varies  Varies                           Varies        Varies  Varies
                                  R         R

                                  Varies    Varies

SFR Address = 0xAD; SFR Page = F

Bit    Name                                 Description

7:0 REVID[7:0]  Hardware Revision Identification Byte.
                Shows the C8051F70x/71x hardware revision being used.
                For example, 0x00 = Revision A.

                                  Rev. 1.0                                     129
C8051F70x/71x

20. Special Function Registers

The direct-access data memory locations from 0x80 to 0xFF constitute the special function registers
(SFRs). The SFRs provide control and data exchange with the C8051F70x/71x's resources and peripher-
als. The CIP-51 controller core duplicates the SFRs found in a typical 8051 implementation as well as
implementing additional SFRs used to configure and access the sub-systems unique to the
C8051F70x/71x. This allows the addition of new functionality while retaining compatibility with the MCS-
51TM instruction set. Table 20.1 lists the SFRs implemented in the C8051F70x/71x device family.

The SFR registers are accessed anytime the direct addressing mode is used to access memory locations
from 0x80 to 0xFF. SFRs with addresses ending in 0x0 or 0x8 (e.g., P0, TCON, SCON0, IE, etc.) are bit-
addressable as well as byte-addressable. All other SFRs are byte-addressable only. Unoccupied
addresses in the SFR space are reserved for future use. Accessing these areas will have an indeterminate
effect and should be avoided. Refer to the corresponding pages of the data sheet, as indicated in
Table 20.2, for a detailed description of each register.

130  Rev. 1.0
                                                                                 C8051F70x/71x

            Table 20.1. Special Function Register (SFR) Memory Map

Addr  SFR   0(8)    1(9)    2(A)     3(B)      4(C)                              5(D)     6(E)      7(F)
      Page
F8         SPI0CN  PCA0L PCA0H PCA0CPL0 PCA0CPH0                                                   VDM0CN
F0     0        B
E8     F           P0DRV P1DRV P2DRV P3DRV                                       P4DRV   P5DRV     P6MDIN
E0         ADC0CN                                                               P4MDIN   P5MDIN    RSTSRC
D8     0      ACC                                    P0MAT P0MASK               PCA0MD   EMI0TC
D0     F           P0MDIN P1MDIN P2MDIN P3MDIN                                                        EIE2
C8                                                                                         EIE1
C0     0           PCA0CPL1 PCA0CPH1 PCA0CPL2 PCA0CPH2
B8     F                                                               DERIVID
B0
A8     0           P1MAT   P1MASK   WDTCN     IT01CF
A0     F           XBR0      XBR1
98
90     0   PCA0CN CRC0DATA PCA0CPM0 PCA0CPM1 PCA0CPM2
88     F
80           PSW   EEDATA  REF0CN             P0SKIP                            P1SKIP    P2SKIP
        0   TMR2CN                                                               TMR2H
        F   SMB0CN  SMB0CF  TMR2RLL TMR2RLH TMR2L                                            EIP1
                     P6DRV                                                                ADC0LTH
        0       IP  REG0CN  SMB0DAT ADC0GTL ADC0GTH                              ADC0LTL              EIP2
        F                                                        HWID            EECNTL    EEKEY    EMI0CF
                                                                                           ADC0H    OSCICL
        0                                     ADC0MX                              ADC0L   CS0MD2
        F                   SMB0ADR SMB0ADM ADC0CF                               CLKSEL

        0      P3           P6       P5                                          OSCXCN EEADDR FLKEY
        F      IE
               P2   CS0DL CS0DH                P4                                CS0MD1             P3MDOUT
        0   SCON0   OSCICN EMI0CN                                                 REVID
        F      P1
                     SPI0CFG         SPI0DAT P0MDOUT P1MDOUT P2MDOUT SFRPAGE
        0           PCA0PWM SPI0CKR
        F
                    SBUF0     CS0CN CPT0CN CS0MX CPT0MD                                   CS0CF     CPT0MX
        0                   P4MDOUT P5MDOUT P6MDOUT                                                 CS0PM
        F
                    TMR3CN TMR3RLL TMR3RLH TMR3L TMR3H CS0THL CS0THH
        0           CRC0CN CS0SS CS0SE CRC0IN CRC0FLIP CRC0AUTO CRC0CNT
        F
            TCON    TMOD    TL0      TL1       TH0                               TH1      CKCON PSCTL
        0
        F   P0      SP      DPL      DPH                                                            PCON

        0
        F

        0
        F

            0(8)    1(9)    2(A)     3(B)      4(C)                              5(D)     6(E)      7(F)

Notes:
    1. SFR addresses ending in 0x0 or 0x8 (leftmost column) are bit-addressable.
    2. SFRs indicated with bold lettering and shaded cells are available on both SFR Page 0 and F.

                                     Rev. 1.0                                                             131
C8051F70x/71x

SFR Definition 20.1. SFRPAGE: SFR Page

   Bit    7    6     5                    4         3            2               1  0

Name                                      SFRPAGE[7:0]

Type                                         R/W

Reset     0    0     0                    0         0            0               0  0

SFR Address = 0xA7; SFR Page = All Pages

Bit      Name                                       Description

7:0 SFRPAGE[7:0] SFR Page Bits.

               Represents the SFR Page the C8051 core uses when reading or modifying SFRs.

               Write: Sets the SFR Page.
               Read: Byte is the SFR page the C8051 core is using.

                     Table 20.2. Special Function Registers

SFRs are listed in alphabetical order. All undefined SFR locations are reserved

     Register  Address Page                         Description                     Page
                                                                                     105
ACC            0xE0 All Pages Accumulator                                            59
                                                                                     61
ADC0CF         0xBC  F           ADC0 Configuration                                  62
                                                                                     62
ADC0CN         0xE8 All Pages ADC0 Control                                           60
                                                                                     60
ADC0GTH        0xC4  0           ADC0 Greater-Than Compare High                      63
                                                                                     63
ADC0GTL        0xC3  0           ADC0 Greater-Than Compare Low                       66
                                                                                     106
ADC0H          0xBE  0           ADC0 High                                           263
                                                                                     263
ADC0L          0xBD  0           ADC0 Low                                            76
                                                                                     77
ADC0LTH        0xC6  0           ADC0 Less-Than Compare Word High                    79
                                                                                     217
ADC0LTL        0xC5  0           ADC0 Less-Than Compare Word Low                     215
                                                                                     217
ADC0MX         0xBB  0           AMUX0 Multiplexer Channel Select                    216
                                                                                     218
B              0xF0 All Pages B Register                                             216

CKCON          0x8E All Pages Clock Control

CLKSEL         0xBD  F           Clock Select

CPT0CN         0x9B  0           Comparator0 Control

CPT0MD         0x9D  0           Comparator0 Mode Selection

CPT0MX         0x9F  0           Comparator0 MUX Selection

CRC0AUTO       0x96  F           CRC0 Automatic Control Register

CRC0CN         0x91  F           CRC0 Control

CRC0CNT        0x97  F           CRC0 Automatic Flash Sector Count

CRC0DATA       0xD9  F           CRC0 Data Output

CRC0FLIP       0x95  F           CRC0 Bit Flip

CRC0IN         0x94  F           CRC Data Input

132                                       Rev. 1.0
                                                           C8051F70x/71x

              Table 20.2. Special Function Registers (Continued)

SFRs are listed in alphabetical order. All undefined SFR locations are reserved

    Register  Address Page                       Description                     Page
                                                                                  88
CS0CN         0x9A  0       CS0 Control                                           90
                                                                                  90
CS0DH         0xAA  0       CS0 Data High                                         89
                                                                                  94
CS0DL         0xA9  0       CS0 Data Low                                          95
                                                                                  97
CS0CF         0x9E  0       CS0 Configuration                                     93
                                                                                  91
CS0MD1        0xAD  0       CS0 Mode 1                                            91
                                                                                  92
CS0MD2        0xBE  F       CS0 Mode 2                                            92
                                                                                  128
CS0MX         0x9C  0       CS0 Mux                                               104
                                                                                  104
CS0PM         0x9F  F       CS0 Pin Monitor                                       156
                                                                                  158
CS0SE         0x93  F       Auto Scan End Channel                                 157
                                                                                  159
CS0SS         0x92  F       Auto Scan Start Channel                               142
                                                                                  143
CS0THH        0x97  0       CS0 Digital Compare Threshold High                    144
                                                                                  145
CS0THL        0x96  0       CS0 Digital Compare Threshold Low                     114
                                                                                  113
DERIVID       0xEC  F       Derivative Identification                             119
                                                                                  154
DPH           0x83 All Pages Data Pointer High                                    128
                                                                                  140
DPL           0x82 All Pages Data Pointer Low                                     141
                                                                                  147
EEADDR        0xB6 All Pages EEPROM Byte Address                                  173
                                                                                  174
EECNTL        0xC5  F       EEPROM Control                                        176
                                                                                  195
EEDATA        0xD1 All Pages EEPROM Byte Data                                     197
                                                                                  192
EEKEY         0xC6  F       EEPROM Protect Key                                    193

EIE1          0xE6 All Pages Extended Interrupt Enable 1

EIE2          0xE7 All Pages Extended Interrupt Enable 2

EIP1          0xCE  F       Extended Interrupt Priority 1

EIP2          0xCF  F       Extended Interrupt Priority 2

EMI0CF        0xC7  F       EMIF Configuration

EMI0CN        0xAA  F       EMIF Control

EMI0TC        0xEE  F       EMIF Timing Control

FLKEY         0xB7 All Pages Flash Lock And Key

HWID          0xC4  F       Hardware Identification

IE            0xA8 All Pages Interrupt Enable

IP            0xB8 All Pages Interrupt Priority

IT01CF        0xE4  F       INT0/INT1 Configuration

OSCICL        0xBF  F       Internal Oscillator Calibration

OSCICN        0xA9  F       Internal Oscillator Control

OSCXCN        0xB5  F       External Oscillator Control

P0            0x80 All Pages Port 0 Latch

P0DRV         0xF9  F       Port 0 Drive Strength

P0MASK        0xF4  0       Port 0 Mask

P0MAT         0xF3  0       Port 0 Match

                            Rev. 1.0                                             133
C8051F70x/71x

               Table 20.2. Special Function Registers (Continued)

SFRs are listed in alphabetical order. All undefined SFR locations are reserved

     Register  Address Page                 Description                          Page
                                                                                  195
P0MDIN         0xF1  F       Port 0 Input Mode Configuration                      196
                                                                                  196
P0MDOUT        0xA4  F       Port 0 Output Mode Configuration                     197
                                                                                  199
P0SKIP         0xD4  F       Port 0 Skip                                          193
                                                                                  194
P1             0x90 All Pages Port 1 Latch                                        198
                                                                                  198
P1DRV          0xFA  F       Port 1 Drive Strength                                199
                                                                                  200
P1MASK         0xE2  0       P0 Mask                                              202
                                                                                  200
P1MAT          0xE1  0       P1 Match                                             201
                                                                                  201
P1MDIN         0xF2  F       Port 1 Input Mode Configuration                      202
                                                                                  204
P1MDOUT        0xA5  F       Port 1 Output Mode Configuration                     203
                                                                                  203
P1SKIP         0xD5  F       Port 1 Skip                                          204
                                                                                  206
P2             0xA0 All Pages Port 2 Latch                                        205
                                                                                  205
P2DRV          0xFB  F       Port 2 Drive Strength                                206
                                                                                  208
P2MDIN         0xF3  F       Port 2 Input Mode Configuration                      207
                                                                                  207
P2MDOUT        0xA6  F       Port 2 Output Mode Configuration                     208
                                                                                  210
P2SKIP         0xD6  F       Port 2 Skip                                          209
                                                                                  209
P3             0xB0 All Pages Port 3 Latch                                        295
                                                                                  300
P3DRV          0xFC  F       Port 3 Drive Strength                                300
                                                                                  300
P3MDIN         0xF4  F       Port 3 Input Mode Configuration                      300
                                                                                  300
P3MDOUT        0xAF  F       Port 3 Output Mode Configuration                     300

P4             0xAC All Pages Port 4 Latch

P4DRV          0xFD  F       Port 4 Drive Strength

P4MDIN         0xF5  F       Port 4 Input Mode Configuration

P4MDOUT        0x9A  F       Port 4 Output Mode Configuration

P5             0xB3 All Pages Port 5 Latch

P5DRV          0xFE  F       Port 5 Drive Strength

P5MDIN         0xF6  F       Port 5 Input Mode Configuration

P5MDOUT        0x9B  F       Port 5 Output Mode Configuration

P6             0xB2 All Pages Port 6 Latch

P6DRV          0xC1  F       Port 6 Drive Strength

P6MDIN         0xF7  F       Port 6 Input Mode Configuration

P6MDOUT        0x9C  F       Port 6 Output Mode Configuration

PCA0CN         0xD8 All Pages PCA Control

PCA0CPH0       0xFC  0       PCA Capture 0 High

PCA0CPH1       0xEA  0       PCA Capture 1 High

PCA0CPH2       0xEC  0       PCA Capture 2 High

PCA0CPL0       0xFB  0       PCA Capture 0 Low

PCA0CPL1       0xE9  0       PCA Capture 1 Low

PCA0CPL2       0xEB  0       PCA Capture 2 Low

134                          Rev. 1.0
                                                        C8051F70x/71x

              Table 20.2. Special Function Registers (Continued)

SFRs are listed in alphabetical order. All undefined SFR locations are reserved

    Register  Address Page                      Description                      Page
                                                                                  298
PCA0CPM0      0xDA  F       PCA Module 0 Mode Register                            298
                                                                                  298
PCA0CPM1      0xDB  F       PCA Module 1 Mode Register                            299
                                                                                  299
PCA0CPM2      0xDC  F       PCA Module 2 Mode Register                            296
                                                                                  297
PCA0H         0xFA  0       PCA Counter High                                      162
                                                                                  153
PCA0L         0xF9  0       PCA Counter Low                                       107
                                                                                  71
PCA0MD        0xED  F       PCA Mode                                              73
                                                                                  129
PCA0PWM       0xA1  F       PCA PWM Configuration                                 168
                                                                                  260
PCON          0x87 All Pages Power Control                                        259
                                                                                  132
PSCTL         0x8F All Pages Program Store R/W Control                            230
                                                                                  229
PSW           0xD0 All Pages Program Status Word                                  225
                                                                                  227
REF0CN        0xD2  F       Voltage Reference Control                             231
                                                                                  105
REG0CN        0xB9  F       Voltage Regulator Control                             248
                                                                                  250
REVID         0xAD  F       Revision ID                                           249
                                                                                  250
RSTSRC        0xEF All Pages Reset Source Configuration/Status                    268
                                                                                  271
SBUF0         0x99 All Pages UART0 Data Buffer                                    271
                                                                                  270
SCON0         0x98 All Pages UART0 Control                                        270
                                                                                  269
SFRPAGE       0xA7 All Pages SFR Page                                             275
                                                                                  277
SMB0ADM       0xBB  F       SMBus Slave Address mask                              277
                                                                                  276
SMB0ADR       0xBA  F       SMBus Slave Address                                   276

SMB0CF        0xC1  0       SMBus Configuration

SMB0CN        0xC0 All Pages SMBus Control

SMB0DAT       0xC2  0       SMBus Data

SP            0x81 All Pages Stack Pointer

SPI0CFG       0xA1  0       SPI0 Configuration

SPI0CKR       0xA2  F       SPI0 Clock Rate Control

SPI0CN        0xF8 All Pages SPI0 Control

SPI0DAT       0xA3  0       SPI0 Data

TCON          0x88 All Pages Timer/Counter Control

TH0           0x8C All Pages Timer/Counter 0 High

TH1           0x8D All Pages Timer/Counter 1 High

TL0           0x8A All Pages Timer/Counter 0 Low

TL1           0x8B All Pages Timer/Counter 1 Low

TMOD          0x89 All Pages Timer/Counter Mode

TMR2CN        0xC8 All Pages Timer/Counter 2 Control

TMR2H         0xCD  0       Timer/Counter 2 High

TMR2L         0xCC  0       Timer/Counter 2 Low

TMR2RLH       0xCB  0       Timer/Counter 2 Reload High

TMR2RLL       0xCA  0       Timer/Counter 2 Reload Low

                            Rev. 1.0                                             135
C8051F70x/71x

               Table 20.2. Special Function Registers (Continued)

SFRs are listed in alphabetical order. All undefined SFR locations are reserved

     Register  Address Page            Description                               Page
                                                                                  281
TMR3CN         0x91      0   Timer/Counter 3 Control                              283
                                                                                  283
TMR3H          0x95      0   Timer/Counter 3 High                                 282
                                                                                  282
TMR3L          0x94      0   Timer/Counter 3 Low                                  166
                                                                                  170
TMR3RLH        0x93      0   Timer/Counter 3 Reload High                          190
                                                                                  191
TMR3RLL        0x92      0   Timer/Counter 3 Reload Low

VDM0CN         0xFF All Pages VDD Monitor Control

WDTCN          0xE3 All Pages Watchdog Timer Control

XBR0           0xE1      F   Port I/O Crossbar Control 0

XBR1           0xE2      F   Port I/O Crossbar Control 1

All other SFR Locations      Reserved

136                          Rev. 1.0
                                                 C8051F70x/71x

21. Interrupts

The C8051F70x/71x includes an extended interrupt system supporting several interrupt sources with two
priority levels. The allocation of interrupt sources between on-chip peripherals and external input pins var-
ies according to the specific version of the device. Each interrupt source has one or more associated inter-
rupt-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 prede-
termined 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 regard-
less 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�EIE1). However, interrupts must first be globally enabled by setting the EA bit
(IE.7) 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.

Rev. 1.0  137
C8051F70x/71x

21.1. MCU Interrupt Sources and Vectors

The C8051F70x/71x MCUs support 16 interrupt sources. Software can simulate an interrupt by setting an
interrupt-pending flag to logic 1. If interrupts are enabled for the flag, an interrupt request will be generated
and the CPU will vector to the ISR address associated with the interrupt-pending flag. MCU interrupt
sources, associated vector addresses, priority order and control bits are summarized in Table 21.1. Refer
to the datasheet section associated with a particular on-chip peripheral for information regarding valid
interrupt conditions for the peripheral and the behavior of its interrupt-pending flag(s).

21.1.1. Interrupt Priorities
Each interrupt source can be individually programmed to one of two priority levels: low or high. A low prior-
ity interrupt service routine can be preempted by a high priority interrupt. A high priority interrupt cannot be
preempted. Each interrupt has an associated interrupt priority bit in an SFR (IP or EIP1) used to configure
its priority level. Low priority is the default. If two interrupts are recognized simultaneously, the interrupt with
the higher priority is serviced first. If both interrupts have the same priority level, a fixed priority order is
used to arbitrate, given in Table 21.1.

21.1.2. Interrupt Latency
Interrupt response time depends on the state of the CPU when the interrupt occurs. Pending interrupts are
sampled and priority decoded each system clock cycle. Therefore, the fastest possible response time is 5
system clock cycles: 1 clock cycle to detect the interrupt and 4 clock cycles to complete the LCALL to the
ISR. If an interrupt is pending when a RETI is executed, a single instruction is executed before an LCALL
is made to service the pending interrupt. Therefore, the maximum response time for an interrupt (when no
other interrupt is currently being serviced or the new interrupt is of greater priority) occurs when the CPU is
performing an RETI instruction followed by a DIV as the next instruction. In this case, the response time is
18 system clock cycles: 1 clock cycle to detect the interrupt, 5 clock cycles to execute the RETI, 8 clock
cycles to complete the DIV instruction and 4 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.

138  Rev. 1.0
                                                              C8051F70x/71x

Interrupt Source               Table 21.1. Interrupt Summary  Bit addressable?      Enable  Priority
                                                                    Cleared by HW?  Flag    Control
                      Interrupt Priority Pending Flag
                      Vector Order

Reset                 0x0000 Top  None                        N/A N/A Always Always
                      0x0003 0    IE0 (TCON.1)                             Enabled Highest
External Interrupt 0  0x000B 1
(INT0)                0x0013 2                                Y Y EX0 (IE.0) PX0 (IP.0)
Timer 0 Overflow      0x001B 3
External Interrupt 1  0x0023 4    TF0 (TCON.5)                Y Y ET0 (IE.1) PT0 (IP.1)
(INT1)                0x002B 5    IE1 (TCON.3)                Y Y EX1 (IE.2) PX1 (IP.2)
Timer 1 Overflow      0x0033 6
UART0                             TF1 (TCON.7)                Y Y ET1 (IE.3) PT1 (IP.3)
                      0x003B 7
Timer 2 Overflow      0x0043 8    RI0 (SCON0.0)               Y N ES0 (IE.4) PS0 (IP.4)
                      0x004B 9
SPI0                  0x0053 10   TI0 (SCON0.1)
                      0x005B 11
SMB0                  0x0063 12   TF2H (TMR2CN.7) Y N ET2 (IE.5) PT2 (IP.5)

Port Match            0x0073 14   TF2L (TMR2CN.6)
                      0x007B 15
ADC0                  0x0083 16   SPIF (SPI0CN.7)             Y                     ESPI0 PSPI0
Window Compare
ADC0 Conversion                   WCOL (SPI0CN.6)                                   (IE.6)  (IP.6)
Complete                          MODF (SPI0CN.5)
Programmable
Counter Array                     RXOVRN (SPI0CN.4)
Comparator0
                                  SI (SMB0CN.0)               Y N ESMB0 PSMB0
RESERVED
Timer 3 Overflow                                                                    (EIE1.0) (EIP1.0)

CS0 Conversion                    None                        N/A N/A EMAT PMAT
Complete
CS0 Greater Than                                                                    (EIE1.1) (EIP1.1)
Compare
                                  AD0WINT (ADC0CN.3) Y N EWADC0 PWADC0

                                                                                    (EIE1.2) (EIP1.2)

                                  AD0INT (ADC0CN.5) Y N EADC0 PADC0

                                                                                    (EIE1.3) (EIP1.3)

                                  CF (PCA0CN.7)               Y N EPCA0 PPCA0

                                  CCFn (PCA0CN.n)                                   (EIE1.4) (EIP1.4)

                                  CP0FIF (CPT0CN.4) N N ECP0                                PCP0

                                  CP0RIF (CPT0CN.5)                                 (EIE1.5) (EIP1.5)

                                  TF3H (TMR3CN.7) N N ET3                                   PT3

                                  TF3L (TMR3CN.6)                                   (EIE1.7) (EIP1.7)

                                  CS0INT (CS0CN.5) N N ECSCPT PSCCPT

                                                                                    (EIE2.0) (EIP2.0)

                                  CS0CMPF (CS0CN.0) N N ECSGRT PSCGRT

                                                                                    (EIE2.1) (EIP2.1)

                                  Rev. 1.0                                                          139
C8051F70x/71x

21.2. Interrupt Register Descriptions

The SFRs used to enable the interrupt sources and set their priority level are described in this section.
Refer to the data sheet section associated with a particular on-chip peripheral for information regarding
valid interrupt conditions for the peripheral and the behavior of its interrupt-pending flag(s).

SFR Definition 21.1. IE: Interrupt Enable

Bit    7   6      5                           4            3            2      1    0

Name   EA  ESPI0  ET2                         ES0       ET1             EX1    ET0  EX0

Type R/W   R/W    R/W                        R/W        R/W             R/W    R/W  R/W

Reset  0   0      0                           0            0            0      0    0

SFR Address = 0xA8; SFR Page = All Pages; Bit-Addressable

Bit Name                                                Function

7      EA Enable All Interrupts.

           Globally enables/disables all interrupts. It overrides individual interrupt mask settings.

           0: Disable all interrupt sources.

           1: Enable each interrupt according to its individual mask setting.

6 ESPI0 Enable Serial Peripheral Interface (SPI0) Interrupt.
                     This bit sets the masking of the SPI0 interrupts.
                     0: Disable all SPI0 interrupts.
                     1: Enable interrupt requests generated by SPI0.

5      ET2 Enable Timer 2 Interrupt.

           This bit sets the masking of the Timer 2 interrupt.

           0: Disable Timer 2 interrupt.

           1: Enable interrupt requests generated by the TF2L or TF2H flags.

4      ES0 Enable UART0 Interrupt.

           This bit sets the masking of the UART0 interrupt.

           0: Disable UART0 interrupt.

           1: Enable UART0 interrupt.

3      ET1 Enable Timer 1 Interrupt.

           This bit sets the masking of the Timer 1 interrupt.

           0: Disable all Timer 1 interrupt.

           1: Enable interrupt requests generated by the TF1 flag.

2      EX1 Enable External Interrupt 1.

           This bit sets the masking of External Interrupt 1.

           0: Disable external interrupt 1.

           1: Enable interrupt requests generated by the INT1 input.

1      ET0 Enable Timer 0 Interrupt.

           This bit sets the masking of the Timer 0 interrupt.

           0: Disable all Timer 0 interrupt.

           1: Enable interrupt requests generated by the TF0 flag.

0      EX0 Enable External Interrupt 0.

           This bit sets the masking of External Interrupt 0.

           0: Disable external interrupt 0.

           1: Enable interrupt requests generated by the INT0 input.

140                                           Rev. 1.0
                                                                C8051F70x/71x

SFR Definition 21.2. IP: Interrupt Priority

Bit    7  6      5                       4                  3   2            1    0

Name      PSPI0  PT2  PS0                                  PT1  PX1          PT0  PX0

Type   R  R/W    R/W  R/W                                R/W    R/W          R/W  R/W

Reset  1  0      0                       0                  0   0            0    0

SFR Address = 0xB8; SFR Page = All Pages; Bit-Addressable

Bit Name                                           Function

7 Unused Read = 1b, Write = Don't Care.

6 PSPI0 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.

5      PT2 Timer 2 Interrupt Priority Control.

          This bit sets the priority of the Timer 2 interrupt.

          0: Timer 2 interrupt set to low priority level.

          1: Timer 2 interrupt set to high priority level.

4      PS0 UART0 Interrupt Priority Control.

          This bit sets the priority of the UART0 interrupt.

          0: UART0 interrupt set to low priority level.

          1: UART0 interrupt set to high priority level.

3      PT1 Timer 1 Interrupt Priority Control.

          This bit sets the priority of the Timer 1 interrupt.

          0: Timer 1 interrupt set to low priority level.

          1: Timer 1 interrupt set to high priority level.

2      PX1 External Interrupt 1 Priority Control.

          This bit sets the priority of the External Interrupt 1 interrupt.

          0: External Interrupt 1 set to low priority level.

          1: External Interrupt 1 set to high priority level.

1      PT0 Timer 0 Interrupt Priority Control.

          This bit sets the priority of the Timer 0 interrupt.

          0: Timer 0 interrupt set to low priority level.

          1: Timer 0 interrupt set to high priority level.

0      PX0 External Interrupt 0 Priority Control.

          This bit sets the priority of the External Interrupt 0 interrupt.

          0: External Interrupt 0 set to low priority level.

          1: External Interrupt 0 set to high priority level.

                      Rev. 1.0                                                         141
C8051F70x/71x

SFR Definition 21.3. EIE1: Extended Interrupt Enable 1

Bit    7       6             5                4         3                   2         1               0
          Reserved        ECP0            EPCA0     EADC0              EWADC0      EMAT           ESMB0
Name ET3                   R/W                                                      R/W
             R/W                            R/W       R/W                 R/W                       R/W
Type R/W       0             0                0         0                   0         0               0

Reset  0

SFR Address = 0xE6; SFR Page = All Pages            Function
Bit Name

7      ET3 Enable Timer 3 Interrupt.

          This bit sets the masking of the Timer 3 interrupt.

          0: Disable Timer 3 interrupt.

          1: Enable interrupt requests generated by the TF3L or TF3H flags.

6 Reserved Must write 0.

5 ECP0 Enable Comparator0 (CP0) Interrupt.
                     This bit sets the masking of the CP0 rising edge or falling edge interrupt.
                     0: Disable CP0 interrupts.
                     1: Enable interrupt requests generated by the CP0RIF and CP0FIF flags.

4 EPCA0 Enable Programmable Counter Array (PCA0) Interrupt.
                     This bit sets the masking of the PCA0 interrupts.
                     0: Disable all PCA0 interrupts.
                     1: Enable interrupt requests generated by PCA0.

3 EADC0 Enable ADC0 Conversion Complete Interrupt.
                     This bit sets the masking of the ADC0 Conversion Complete interrupt.
                     0: Disable ADC0 Conversion Complete interrupt.
                     1: Enable interrupt requests generated by the AD0INT flag.

2 EWADC0 Enable Window Comparison ADC0 interrupt.
                     This bit sets the masking of ADC0 Window Comparison interrupt.
                     0: Disable ADC0 Window Comparison interrupt.
                     1: Enable interrupt requests generated by ADC0 Window Compare flag (AD0WINT).

1 EMAT Enable Port Match Interrupts.
                     This bit sets the masking of the Port Match event interrupt.
                     0: Disable all Port Match interrupts.
                     1: Enable interrupt requests generated by a Port Match.

0 ESMB0 Enable SMBus (SMB0) Interrupt.
                     This bit sets the masking of the SMB0 interrupt.
                     0: Disable all SMB0 interrupts.
                     1: Enable interrupt requests generated by SMB0.

142                                       Rev. 1.0
                                                              C8051F70x/71x

SFR Definition 21.4. EIE2: Extended Interrupt Enable 2

Bit    7  6  5                            4         3         2                        1    0

Name                                                                             ECSGRT ECSCPT

Type   R  R  R                            R         R         R                        R/W  R/W

Reset  0  0  0                            0         0         0                        0    0

SFR Address = 0xE7; SFR Page = All Pages            Function
Bit Name

7:2 Unused Read = 000000b; Write = don't care.
1 ECSGRT Enable Capacitive Sense Greater Than Comparator Interrupt.

                       0: Disable Capacitive Sense Greater Than Comparator interrupt.
                       1: Enable interrupt requests generated by CS0CMPF.

0 ECSCPT Enable Capacitive Sense Conversion Complete Interrupt.
                     0: Disable Capacitive Sense Conversion Complete interrupt.
                     1: Enable interrupt requests generated by CS0INT.

                                          Rev. 1.0                                               143
C8051F70x/71x

SFR Definition 21.5. EIP1: Extended Interrupt Priority 1

Bit    7       6              5       4             3                        2         1               0
          Reserved         PCP0   PPCA0         PADC0                   PWADC0      PMAT           PSMB0
Name PT3                    R/W                                                      R/W
             R/W                    R/W           R/W                      R/W                       R/W
Type R/W       0              0       0             0                        0         0               0

Reset  0

SFR Address = 0xCE; SFR Page = F                Function
Bit Name

7      PT3 Timer 3 Interrupt Priority Control.

          This bit sets the priority of the Timer 3 interrupt.

          0: Timer 3 interrupt set to low priority level.

          1: Timer 3 interrupt set to high priority level.

6 Reserved Must write 0b.

5 PCP0 Comparator0 (CP0) Interrupt Priority Control.
                     This bit sets the priority of the CP0 rising edge or falling edge interrupt.
                     0: CP0 interrupt set to low priority level.
                     1: CP0 interrupt set to high priority level.

4 PPCA0 Programmable Counter Array (PCA0) Interrupt Priority Control.
                     This bit sets the priority of the PCA0 interrupt.
                     0: PCA0 interrupt set to low priority level.
                     1: PCA0 interrupt set to high priority level.

3 PADC0 ADC0 Conversion Complete Interrupt Priority Control.
                     This bit sets the priority of the ADC0 Conversion Complete interrupt.
                     0: ADC0 Conversion Complete interrupt set to low priority level.
                     1: ADC0 Conversion Complete interrupt set to high priority level.

2 PWADC0 ADC0 Window Comparator Interrupt Priority Control.
                     This bit sets the priority of the ADC0 Window interrupt.
                     0: ADC0 Window interrupt set to low priority level.
                     1: ADC0 Window interrupt set to high priority level.

1 PMAT Port Match Interrupt Priority Control.
                     This bit sets the priority of the Port Match Event interrupt.
                     0: Port Match interrupt set to low priority level.
                     1: Port Match interrupt set to high priority level.

0 PSMB0 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.

144                               Rev. 1.0
                                                          C8051F70x/71x

SFR Definition 21.6. EIP2: Extended Interrupt Priority 2

Bit    7            6         5         4         3            2         1       0
               Reserved  Reserved  Reserved  Reserved     Reserved  PSCGRT  PSCCPT
Name Reserved
                    R         R         R         R            R       R/W     R/W
Type   R            0         0         0         0            0         0       0

Reset  0

SFR Address = 0xCF; SFR Page = F             Function
Bit Name

7:2 Reserved Must Write 000000b.
1 PSCGRT Capacitive Sense Greater Than Comparator Priority Control.

                       This bit sets the priority of the Capacitive Sense Greater Than Comparator interrupt.
                       0: CS0 Greater Than Comparator interrupt set to low priority level.
                       1: CS0 Greater Than Comparator set to high priority level.

0 PSCCPT Capacitive Sense Conversion Complete Priority Control.
                     This bit sets the priority of the Capacitive Sense Conversion Complete interrupt.
                     0: CS0 Conversion Complete set to low priority level.
                     1: CS0 Conversion Complete set to high priority level.

                                   Rev. 1.0                                                                   145
C8051F70x/71x

21.3. INT0 and INT1 External Interrupts

The INT0 and INT1 external interrupt sources are configurable as active high or low, edge or level sensi-
tive. The IN0PL (INT0 Polarity) and IN1PL (INT1 Polarity) bits in the IT01CF register select active high or
active low; the IT0 and IT1 bits in TCON (Section "33.1. Timer 0 and Timer 1" on page 264) select level or
edge sensitive. The table below lists the possible configurations.

     IT0 IN0PL  INT0 Interrupt                    IT1 IN1PL  INT1 Interrupt

     1  0 Active low, edge sensitive              1  0 Active low, edge sensitive

     1  1 Active high, edge sensitive             1  1 Active high, edge sensitive

     0  0 Active low, level sensitive             0  0 Active low, level sensitive

     0  1 Active high, level sensitive            0  1 Active high, level sensitive

INT0 and INT1 are assigned to Port pins as defined in the IT01CF register (see SFR Definition 21.7). Note
that INT0 and INT0 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).
This is accomplished by setting the associated bit in register XBR0 (see Section "28.3. Priority Crossbar
Decoder" on page 185 for complete details on configuring the Crossbar).

IE0 (TCON.1) and IE1 (TCON.3) serve as the interrupt-pending flags for the INT0 and INT1 external inter-
rupts, 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.

146                                     Rev. 1.0
                                                                 C8051F70x/71x

SFR Definition 21.7. IT01CF: INT0/INT1 Configuration

  Bit     7   6                   5          4            3      2  1           0
Name   IN1PL                                           IN0PL
Type    R/W      IN1SL[2:0]                             R/W         IN0SL[2:0]
Reset
          0                  R/W                          0         R/W

              0                   0          0                   0  0           1

SFR Address = 0xE4; SFR Page = F                       Function
Bit Name

7      IN1PL INT1 Polarity.

              0: INT1 input is active low.

              1: INT1 input is active high.

6:4 IN1SL[2:0] INT1 Port Pin Selection Bits.

                        These bits select which Port pin is assigned to INT1. Note that this pin assignment is
                        independent of the Crossbar; INT1 will monitor the assigned Port pin without disturb-
                        ing 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

3      IN0PL INT0 Polarity.

              0: INT0 input is active low.

              1: INT0 input is active high.

2:0 IN0SL[2:0] INT0 Port Pin Selection Bits.

                        These bits select which Port pin is assigned to INT0. Note that this pin assignment is
                        independent of the Crossbar; INT0 will monitor the assigned Port pin without disturb-
                        ing 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                              147
C8051F70x/71x

22. Flash Memory

On-chip, re-programmable Flash memory is included for program code and non-volatile data storage. The
Flash memory can be programmed in-system through the C2 interface or by software using the MOVX
write instruction. Once cleared to logic 0, a Flash bit must be erased to set it back to logic 1. Flash bytes
would typically be erased (set to 0xFF) before being reprogrammed. The write and erase operations are
automatically timed by hardware for proper execution; data polling to determine the end of the write/erase
operations is not required. Code execution is stalled during Flash write/erase operations. Refer to
Table 9.6 for complete Flash memory electrical characteristics.

22.1. Programming The Flash Memory

The simplest means of programming the Flash memory is through the C2 interface using programming
tools provided by Silicon Laboratories or a third party vendor. This is the only means for programming a
non-initialized device. For details on the C2 commands to program Flash memory, see Section "35. C2
Interface" on page 301.

The Flash memory can be programmed by software using the MOVX write instruction with the address and
data byte to be programmed provided as normal operands. Before programming Flash memory using
MOVX, Flash programming operations must be enabled by: (1) setting the PSWE Program Store Write
Enable bit (PSCTL.0) to logic 1 (this directs the MOVX writes to target Flash memory); and (2) Writing the
Flash key codes in sequence to the Flash Lock register (FLKEY). The PSWE bit remains set until cleared
by software.

Note: A minimum SYSCLK frequency is required for writing or erasing Flash memory, as detailed in Section
         "Table 9.6. Flash Electrical Characteristics" on page 50.

For detailed guidelines on programming Flash from firmware, please see Section "22.4. Flash Write and
Erase Guidelines" on page 150.

To ensure the integrity of the Flash contents, the on-chip VDD Monitor must be enabled and enabled as a
reset source in any system that includes code that writes and/or erases Flash memory from software. Fur-
thermore, there should be no delay between enabling the VDD Monitor and enabling the VDD Monitor as a
reset source. Any attempt to write or erase Flash memory while the VDD Monitor is disabled, or not
enabled as a reset source, will cause a Flash Error device reset.

22.1.1. Flash Lock and Key Functions
Flash writes and erases by user software are protected with a lock and key function. The Flash Lock and
Key Register (FLKEY) must be written with the correct key codes, in sequence, before Flash operations
may be performed. The key codes are: 0xA5, 0xF1. The timing does not matter, but the codes must be
written in order. If the key codes are written out of order, or the wrong codes are written, Flash writes and
erases will be disabled until the next system reset. Flash writes and erases will also be disabled if a Flash
write or erase is attempted before the key codes have been written properly. The Flash lock resets after
each write or erase; the key codes must be written again before a following Flash operation can be per-
formed. The FLKEY register is detailed in SFR Definition 22.2.

22.1.2. Flash Erase Procedure
The Flash memory is organized in 512-byte pages. The erase operation applies to an entire page (setting
all bytes in the page to 0xFF). To erase an entire 512-byte page, perform the following steps:

1. Save current interrupt state and disable interrupts.
2. Set the PSEE bit (register PSCTL).
3. Set the PSWE bit (register PSCTL).
4. Write the first key code to FLKEY: 0xA5.
5. Write the second key code to FLKEY: 0xF1.

148  Rev. 1.0
          C8051F70x/71x

6. Using the MOVX instruction, write a data byte to any location within the 512-byte page to be erased.
7. Clear the PSWE and PSEE bits.
8. Restore previous interrupt state.
Steps 4�6 must be repeated for each 512-byte page to be erased.

Note: Flash security settings may prevent erasure of some Flash pages, such as the reserved area and the page
         containing the lock bytes. For a summary of Flash security settings and restrictions affecting Flash erase
         operations, please see Section "22.3. Security Options" on page 149.

22.1.3. Flash Write Procedure
A write to Flash memory can clear bits to logic 0 but cannot set them; only an erase operation can set bits
to logic 1 in Flash. A byte location to be programmed should be erased before a new value is written.

The recommended procedure for writing a single byte in Flash is as follows:

1. Save current interrupt state and disable interrupts.
2. Ensure that the Flash byte has been erased (has a value of 0xFF).
3. Set the PSWE bit (register PSCTL).
4. Clear the PSEE bit (register PSCTL).
5. Write the first key code to FLKEY: 0xA5.
6. Write the second key code to FLKEY: 0xF1.
7. Using the MOVX instruction, write a single data byte to the desired location within the 512-byte sector.
8. Clear the PSWE bit.
9. Restore previous interrupt state.
Steps 5�7 must be repeated for each byte to be written.

Note: Flash security settings may prevent writes to some areas of Flash, such as the reserved area. For a summary
         of Flash security settings and restrictions affecting Flash write operations, please see Section "22.3. Security
         Options" on page 149.

22.2. Non-volatile Data Storage

The Flash memory can be used for non-volatile data storage as well as program code. This allows data
such as calibration coefficients to be calculated and stored at run time. Data is written using the MOVX
write instruction and read using the MOVC instruction.

Note: MOVX read instructions always target XRAM.

22.3. Security Options

The CIP-51 provides security options to protect the Flash memory from inadvertent modification by soft-
ware as well as to prevent the viewing of proprietary program code and constants. The Program Store
Write Enable (bit PSWE in register PSCTL) and the Program Store Erase Enable (bit PSEE in register
PSCTL) bits protect the Flash memory from accidental modification by software. PSWE must be explicitly
set to 1 before software can modify the Flash memory; both PSWE and PSEE must be set to 1 before soft-
ware can erase Flash memory. Additional security features prevent proprietary program code and data
constants from being read or altered across the C2 interface.

A Security Lock Byte located at the last byte of Flash user space offers protection of the Flash program
memory from access (reads, writes, and erases) by unprotected code or the C2 interface. The Flash secu-
rity mechanism allows the user to lock all Flash pages, starting at page 0, by writing a non-0xFF value to
the lock byte. Note that writing a non-0xFF value to the lock byte will lock all pages of FLASH from
reads, writes, and erases, including the page containing the lock byte.

The level of Flash security depends on the Flash access method. The three Flash access methods that
can be restricted are reads, writes, and erases from the C2 debug interface, user firmware executing on

Rev. 1.0  149
C8051F70x/71x

unlocked pages, and user firmware executing on locked pages. Table 22.1 summarizes the Flash security
features of the C8051F70x/71x devices.

     Table 22.1. Flash Security Summary

                             Action                   C2 Debug    User Firmware executing from:
                                                       Interface
Read, Write or Erase unlocked pages                               an unlocked page a locked page
(except page with Lock Byte)                        Permitted
Read, Write or Erase locked pages                                 Permitted  Permitted
(except page with Lock Byte)
Read or Write page containing Lock Byte             Not Permitted FEDR       Permitted
(if no pages are locked)
Read or Write page containing Lock Byte             Permitted Permitted      Permitted
(if any page is locked)
Read contents of Lock Byte                          Not Permitted FEDR       Permitted
(if no pages are locked)
Read contents of Lock Byte                          Permitted Permitted      Permitted
(if any page is locked)
Erase page containing Lock Byte                     Not Permitted FEDR       Permitted
(if no pages are locked)
Erase page containing Lock Byte - Unlock all pages  Permitted FEDR           FEDR
(if any page is locked)
Lock additional pages                               Only by C2DE FEDR        FEDR
(change '1's to '0's in the Lock Byte)
Unlock individual pages                             Not Permitted FEDR       FEDR
(change '0's to '1's in the Lock Byte)
Read, Write or Erase Reserved Area                  Not Permitted FEDR       FEDR

                                                    Not Permitted FEDR       FEDR

C2DE - C2 Device Erase (Erases all Flash pages including the page containing the Lock Byte)
FEDR - 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.

22.4. Flash Write and Erase Guidelines

Any system which contains routines which write or erase Flash memory from software involves some risk
that the write or erase routines will execute unintentionally if the CPU is operating outside its specified
operating range of VDD, system clock frequency, or temperature. This accidental execution of Flash modi-
fying code can result in alteration of Flash memory contents causing a system failure that is only recover-
able by re-Flashing the code in the device.

To help prevent the accidental modification of Flash by firmware, the VDD Monitor must be enabled and
enabled as a reset source on C8051F70x/71x devices for the Flash to be successfully modified. If either
the VDD Monitor or the VDD Monitor reset source is not enabled, a Flash Error Device Reset will be
generated when the firmware attempts to modify the Flash.

150            Rev. 1.0
                                                 C8051F70x/71x

The following guidelines are recommended for any system that contains routines which write or erase
Flash from code.

22.4.1. VDD Maintenance and the VDD Monitor
1. If the system power supply is subject to voltage or current "spikes," add sufficient transient protection

    devices to the power supply to ensure that the supply voltages listed in the Absolute Maximum Ratings
    table are not exceeded.
2. Make certain that the minimum VDD rise time specification of 1 ms is met. If the system cannot meet
    this rise time specification, then add an external VDD brownout circuit to the /RST pin of the device that
    holds the device in reset until VDD reaches the minimum device operating voltage and re-asserts /RST
    if VDD drops below the minimum device operating voltage.
3. Keep the on-chip VDD Monitor enabled and enable the VDD Monitor as a reset source as early in code
    as possible. This should be the first set of instructions executed after the Reset Vector. For C-based
    systems, this will involve modifying the startup code added by the C compiler. See your compiler
    documentation for more details. Make certain that there are no delays in software between enabling the
    VDD Monitor and enabling the VDD Monitor as a reset source. Code examples showing this can be
    found in "AN201: Writing to Flash from Firmware," available from the Silicon Laboratories web site.

Note: On C8051F70x/71x devices, both the VDD Monitor and the VDD Monitor reset source must be enabled to write
         or erase Flash without generating a Flash Error Device Reset.

         On C8051F70x/71x devices, both the VDD Monitor and the VDD Monitor reset source are enabled by hardware
         after a power-on reset.

4. As an added precaution, explicitly enable the VDD Monitor and enable the VDD Monitor as a reset
    source inside the functions that write and erase Flash memory. The VDD Monitor enable instructions
    should be placed just after the instruction to set PSWE to a 1, but before the Flash write or erase
    operation instruction.

5. Make certain that all writes to the RSTSRC (Reset Sources) register use direct assignment operators
    and explicitly DO NOT use the bit-wise operators (such as AND or OR). For example, "RSTSRC =
    0x02" is correct, but "RSTSRC |= 0x02" is incorrect.

6. Make certain that all writes to the RSTSRC register explicitly set the PORSF bit to a 1. Areas to check
    are initialization code which enables other reset sources, such as the Missing Clock Detector or
    Comparator, for example, and instructions which force a Software Reset. A global search on "RSTSRC"
    can quickly verify this.

22.4.2. PSWE Maintenance
7. Reduce the number of places in code where the PSWE bit (b0 in 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
    both 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 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.

Rev. 1.0  151
C8051F70x/71x

22.4.3. System Clock
12.If operating from an external crystal, 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 Firm-
ware," available from the Silicon Laboratories web site.

152  Rev. 1.0
                                                             C8051F70x/71x

SFR Definition 22.1. PSCTL: Program Store R/W Control

Bit    7  6  5                           4         3         2  1     0

Name                                                            PSEE  PSWE

Type   R  R  R                           R         R         R  R/W   R/W

Reset  0  0  0                           0         0         0  0     0

SFR Address =0x8F; SFR Page = All Pages            Function
Bit Name

7:2 Unused Read = 000000b, Write = don't care.

1 PSEE 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.

0 PSWE Program Store Write Enable.

          Setting this bit allows writing a byte of data to the Flash program memory using the
          MOVX write instruction. The Flash location should be erased before writing data.
          0: Writes to Flash program memory disabled.
          1: Writes to Flash program memory enabled; the MOVX write instruction targets Flash
          memory.

                                         Rev. 1.0                          153
C8051F70x/71x

SFR Definition 22.2. FLKEY: Flash Lock and Key

Bit    7  6    5                          4         3         2  1  0

Name                                      FLKEY[7:0]

Type                                         R/W

Reset  0  0    0                          0         0         0  0  0

SFR Address = 0xB7; SFR Page = All Pages            Function
Bit Name

7:0 FLKEY[7:0] 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 regis-
          ter. 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 perma-
          nently
          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 disabled until the next reset.

154                                       Rev. 1.0
                                                           C8051F70x/71x

23. EEPROM

C8051F700/1/4/5/8/9 and C8051F712/3 devices have hardware which emulates 32 bytes of non-volatile,
byte-programmable EEPROM data space. The module mirrors each non-volatile byte through 32 bytes of
volatile data space. This data space can be accessed indirectly through EEADDR and EEDATA. Users can
copy the complete 32-byte image between EEPROM space and volatile space using controls in the
EECNTL SFR.

EECNTL                                            EEKEY
                                        EEADDR EEDATA
EEEN                                                       32 Bytes
                      EEREAD                 32 Bytes RAM  EEPROM
                          EEWRT
                               AUTOINC

                                                          EEPROM Control
                                                                  Logic

                                     Figure 23.1. EEPROM Block Diagram

23.1. RAM Reads and Writes

In order to perform EEPROM reads and writes, the EEPROM control logic must be enabled by setting
EEEN (EECNTL.7).

32 bytes of RAM can be accessed indirectly through EEADDR and EEDATA. To write to a byte of RAM,
write address of byte to EEADDR and then write the value to be written to EEDATA. To read a byte from
RAM, write address of byte to be read to EEADDR. The value stored at that address can then be read from
EEDATA.

23.2. Auto Increment

When AUTOINC (EECNTL.0) is set, EEADDR will increment by one after each write to EEDATA and each
read from EEDATA. When Auto Increment is enabled and EEADDR reaches the top address of dedicated
RAM space, the next write to or read from EEDATA will cause EEADDR to wrap along the address bound-
ary, which will set the address to 0.

23.3. Interfacing with the EEPROM

The EEPROM is accessed through the dedicated 32 bytes of RAM. Writes to EEPROM are allowed only
after writes have been enabled (see "23.4. EEPROM Security" ). The contents of the EEPROM can be
uploaded to the RAM by setting EEREAD (EECNTL.2). Contents of RAM can be downloaded to EEPROM
by setting EEWRT (EENTL.1).

Note: A minimum SYSCLK frequency is required for writing EEPROM memory, as detailed in Section
        "Table 9.9. EEPROM Electrical Characteristics" on page 52.

                                        Rev. 1.0                     155
C8051F70x/71x

23.4. EEPROM Security

RAM can only be downloaded to EEPROM after firmware writes a sequence of two bytes to EEKEY. In
order to enable EEPROM writes:
1. Write the first EEPROM key code byte to EEKEY: 0x55

2. Write the second EEPROM key code byte to EEKEY: 0xAA

After a EEPROM writes have been enabled and a single write has executed, the control logic locks
EEPROM writes until the two-byte unlock sequence has been entered into EEKEY again.

The protection state of the EEPROM can be observed by reading EEPSTATE (EEKEY2:0). This state can
be read at any time without affecting the EEPROM's protection state.

If the two-byte unlock sequence is entered incorrectly, or if a write is attempted without first entering the
two-byte sequence, EEPROM writes will be locked until the next power-on reset.

SFR Definition 23.1. EEADDR: EEPROM Byte Address

Bit    7     6  5                         4         3            2    1  0

Name                                                   EEADDR[4:0]

Type   R     R  R                                                R/W

Reset  0     0  0                         0         0            0    0  0

SFR Address = 0xB6; SFR Page = All Pages

Bit    Name                                         Description

7:5    Unused Read = 000b; Write = Don't Care

4:0 EEADDR[4:0] EEPROM Byte Address

             Selects one of 32 EEPROM bytes to read/write.

156                                       Rev. 1.0
                                                                C8051F70x/71x

SFR Definition 23.2. EEDATA: EEPROM Byte Data

Bit    7     6  5                         4         3           2     1  0

Name                                      EEDATA[7:0]

Type                                         R/W

Reset  1     1  1                         1         1           1     1  1

SFR Address = 0xD1; SFR Page = All Pages

Bit    Name     Description                         Write                          Read

7:0 EEDATA[7:0] E2PROM Data                  Writes byte to location  Returns contents at loca-
                                                                      tion stored in EEADDR.
             The EEDATA register is          stored in EEADDR.

             used to read bytes from the

             EEPROM space and write

             bytes to EEPROM space.

                                          Rev. 1.0                          157
C8051F70x/71x

SFR Definition 23.3. EECNTL: EEPROM Control

Bit    7     6                    5      4        3            2  1                  0

Name EEEN                                                      EEREAD EEWRT AUTOINC

Type R/W                             R                            R/W

Reset  0     0                    0      0        0            0  0                  1

SFR Address = 0xC5; SFR Page = F

Bit    Name                                       Description

7      EEEN  EEPROM Enable.

             0: EEPROM control logic disabled.
             1: EEPROM control logic enabled. EEPROM reads and writes can be performed.

6:4 Reserved Reserved. Read = variable; Write = Don't Care

3      Reserved Reserved. Read = 0b, Write = 0

2      EEREAD EEPROM 32-Byte Read.

             0: Does nothing.
             1: 32 bytes of EEPROM Data will be read from Flash to internal RAM.

1      EEWRITE EEPROM 32-Byte Write.

             0: Does nothing.
             1: 32 bytes of EEPROM Data will be written from internal RAM to Flash.

0      AUTOINC Auto Increment.

             0: Disable auto-increment.
             1: Enable auto-increment.

158                                     Rev. 1.0
                                                             C8051F70x/71x

SFR Definition 23.4. EEKEY: EEPROM Protect Key

Bit    7      6                   5         4         3           2  1       0

Name                                 EEKEY                           EEPSTATE/EEKEY

Type                                 W                                  R/W

Reset  0      0                   0         0         0           0  0       0

SFR Address = 0xC6; SFR Page = F

Bit    Name            Description                    Write                       Read

7:0    EEKEY  EEPROM Key.                      The sequence 0x55     00: Write/Erase is not
                                                                     enabled
              Protects the EEPROM from 0xAA must be written to       01: The first key has
                                               enable EEPROM writes  been written
              inadvertent writes and                                 10: Write/Erase is
                                               and erases            enabled
              erases.                                                11: EEPROM is locked
                                                                     from further
1:0 EEPSTATE EEPROM Protection State.                                writes/erases

              These bytes show whether
              Flash writes/erases have
              been enabled, disabled, or
              locked.

                                            Rev. 1.0                            159
C8051F70x/71x

24. Power Management Modes

The C8051F70x/71x devices have three software programmable power management modes: Idle, Stop,
and Suspend. Idle mode and Stop mode are part of the standard 8051 architecture, while Suspend mode
is an enhanced power-saving mode implemented by the high-speed oscillator peripheral.

Idle mode halts the CPU while leaving the peripherals and clocks active. In Stop mode, the CPU is halted,
all interrupts and timers (except the Missing Clock Detector) are inactive, and the internal oscillator is
stopped (analog peripherals remain in their selected states; the external oscillator is not affected). Sus-
pend mode is similar to Stop mode in that the internal oscillator and CPU are halted, but the device can
wake on events such as a Port Mismatch, Comparator low output, or a Timer 3 overflow. Since clocks are
running in Idle mode, power consumption is dependent upon the system clock frequency and the number
of peripherals left in active mode before entering Idle. Stop mode and Suspend mode consume the least
power because the majority of the device is shut down with no clocks active. SFR Definition 24.1 describes
the Power Control Register (PCON) used to control the C8051F70x/71x's Stop and Idle power manage-
ment modes. Suspend mode is controlled by the SUSPEND bit in the OSCICN register (SFR Definition
27.3).

Although the C8051F70x/71x has Idle, Stop, and Suspend modes available, more control over the device
power can be achieved by enabling/disabling individual peripherals as needed. Each analog peripheral
can be disabled when not in use and placed in low power mode. Digital peripherals, such as timers or
serial buses, draw little power when they are not in use. Turning off oscillators lowers power consumption
considerably, at the expense of reduced functionality.

24.1. Idle Mode

Setting the Idle Mode Select bit (PCON.0) causes the hardware to halt the CPU and enter Idle mode as
soon as the instruction that sets the bit completes execution. All internal registers and memory maintain
their original data. All analog and digital peripherals can remain active during Idle mode.

Idle mode is terminated when an enabled interrupt is asserted or a reset occurs. The assertion of an
enabled interrupt will cause the Idle Mode Selection bit (PCON.0) to be cleared and the CPU to resume
operation. The pending interrupt will be serviced and the next instruction to be executed after the return
from interrupt (RETI) will be the instruction immediately following the one that set the Idle Mode Select bit.
If Idle mode is terminated by an internal or external reset, the CIP-51 performs a normal reset sequence
and begins program execution at address 0x0000.

Note: If the instruction following the write of the IDLE bit is a single-byte instruction and an interrupt occurs during the

     execution phase of the instruction that sets the IDLE bit, the CPU may not wake from Idle mode when a future

     interrupt occurs. Therefore, instructions that set the IDLE bit should be followed by an instruction that has two

     or more opcode bytes, for example:

// in `C':

PCON |= 0x01;                            // set IDLE bit

PCON = PCON;                             // ... followed by a 3-cycle dummy instruction

; in assembly:                           ; set IDLE bit
ORL PCON, #01h                           ; ... followed by a 3-cycle dummy instruction
MOV PCON, PCON

If enabled, the Watchdog Timer (WDT) will eventually cause an internal watchdog reset and thereby termi-
nate 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 pro-
vides the opportunity for additional power savings, allowing the system to remain in the Idle mode indefi-
nitely, waiting for an external stimulus to wake up the system. Refer to Section "26. Watchdog Timer" on
page 169 for more information on the use and configuration of the WDT.

160                                      Rev. 1.0
                                                 C8051F70x/71x

24.2. Stop Mode

Setting the Stop Mode Select bit (PCON.1) causes the controller core to enter Stop mode as soon as the
instruction that sets the bit completes execution. In Stop mode the internal oscillator, CPU, and all digital
peripherals are stopped; the state of the external oscillator circuit is not affected. Each analog peripheral
(including the external oscillator circuit) may be shut down individually prior to entering Stop Mode. Stop
mode can only be terminated by an internal or external reset. On reset, the device performs the normal
reset sequence and begins program execution at address 0x0000.

If enabled, the Missing Clock Detector will cause an internal reset and thereby terminate the Stop mode.
The Missing Clock Detector should be disabled if the CPU is to be put to in STOP mode for longer than the
MCD timeout of 100 �s.

24.3. Suspend Mode

Suspend mode allows a system running from the internal oscillator to go to a very low power state similar
to Stop mode, but the processor can be awakened by certain events without requiring a reset of the device.
Setting the SUSPEND bit (OSCICN.5) causes the hardware to halt the CPU and the high-frequency inter-
nal oscillator, and go into Suspend mode as soon as the instruction that sets the bit completes execution.
All internal registers and memory maintain their original data. Most digital peripherals are not active in Sus-
pend mode. The exception to this is the Port Match feature and Timer 3, when it is run from an external
oscillator source.

Note that the clock divider bits CLKDIV[2:0] in register CLKSEL must be set to "divide by 1" when entering
Suspend mode.

Suspend mode can be terminated by five types of events, a port match (described in Section "28.5. Port
Match" on page 192), a Timer 3 overflow (described in Section "33.3. Timer 3" on page 278), a comparator
low output (if enabled), a capacitive sense greater-than comparator interrupt, or a device reset event. In
order to run Timer 3 in Suspend mode, the timer must be configured to clock from the external clock
source/8. When Suspend mode is terminated, the device will continue execution on the instruction follow-
ing the one that set the SUSPEND bit. If the wake event (port match or Timer 3 overflow) was configured to
generate an interrupt, the interrupt will be serviced upon waking the device. If Suspend mode is terminated
by an internal or external reset, the CIP-51 performs a normal reset sequence and begins program execu-
tion at address 0x0000.

Note: The device will still enter Suspend mode if a wake source is "pending", and the device will not wake on
         such pending sources. It is important to ensure that the intended wake source will trigger after the device
         enters Suspend mode. For example, if a CS0 conversion completes and the interrupt fires before the device is
         in Suspend mode, that interrupt cannot trigger the wake event. Because port match events are level-sensitive,
         pre-existing port match events will trigger a wake, as long as the match condition is still present when the
         device enters Suspend.

Rev. 1.0  161
C8051F70x/71x

SFR Definition 24.1. PCON: Power Control

Bit    7  6    5                          4         3              2       1     0

Name                           GF[5:0]                                     STOP  IDLE

Type                           R/W                                         R/W   R/W

Reset  0  0    0                          0         0              0       0     0

SFR Address = 0x87; SFR Page = All Pages            Function
Bit Name

7:2 GF[5:0] General Purpose Flags 5�0.

          These are general purpose flags for use under software control.

1      STOP Stop Mode Select.

          Setting this bit will place the CIP-51 in Stop mode. This bit will always be read as 0.

          1: CPU goes into Stop mode (internal oscillator stopped).

0      IDLE IDLE: Idle Mode Select.

          Setting this bit will place the CIP-51 in Idle mode. This bit will always be read as 0.

          1: CPU goes into Idle mode. (Shuts off clock to CPU, but clock to Timers, Interrupts,

          Serial Ports, and Analog Peripherals are still active.)

162                                       Rev. 1.0
                                                                 C8051F70x/71x

25. Reset Sources

Reset circuitry allows the controller to be easily placed in a predefined default condition. On entry to this
reset state, the following occur:

    CIP-51 halts program execution
    Special Function Registers (SFRs) are initialized to their defined reset values
    External Port pins are forced to a known state
    Interrupts and timers are disabled.
All SFRs are reset to the predefined values noted in the SFR detailed descriptions. The contents of internal
data memory are unaffected during a reset; any previously stored data is preserved. However, since the
stack pointer SFR is reset, the stack is effectively lost, even though the data on the stack is not altered.

The Port I/O latches are reset to 0xFF (all logic ones) in open-drain mode. Weak pullups are enabled dur-
ing and after the reset. For VDD 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 inter-
nal oscillator. The Watchdog Timer is enabled with the system clock divided by 12 as its clock source. Pro-
gram execution begins at location 0x0000.

                                      VDD

                                                Supply           Power On
                                                Monitor             Reset

                                                +                '0'                                               RST
                                                                                  (wired-OR)
Px.x  Comparator 0                              -        Enable
Px.x
            +
            -

                              C0RSEF

              Missing                 PCA                                                                  Reset
               Clock                  WDT                                                                  Funnel
              Detector
                (one-                    EN                      (Software Reset)
                shot)
                                                                 SWRSF
                    EN
                                                                                                Errant
              MCD                                                                              FLASH
                 Enable                                                                       Operation
                                    WDT
                                        Enable

      System        CIP-51
      Clock   Microcontroller System Reset

                     Core

              Extended Interrupt
                     Handler

                       Figure 25.1. Reset Sources

                                                   Rev. 1.0                                                             163
C8051F70x/71x

25.1. Power-On Reset

During power-up, the device is held in a reset state and the RST pin is driven low until VDD settles above
VRST. A delay occurs before the device is released from reset; the delay decreases as the VDD ramp time
increases (VDD ramp time is defined as how fast VDD ramps from 0 V to VRST). Figure 25.2. plots the
power-on and VDD monitor reset timing. The maximum VDD ramp time is 1 ms; slower ramp times may
cause the device to be released from reset before VDD reaches the VRST level. For ramp times less than
1 ms, the power-on reset delay (TPORDelay) is typically less than 10 ms.

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 mem-
ory should be assumed to be undefined after a power-on reset. The VDD monitor is enabled following a
power-on reset.

                                                                         VDD

                VRST

     VDD Supply
                         V

                                        DD

                                                                                                                                                                  t

                          RST
     Logic HIGH

                                            TPORDelay

     Logic LOW

                                            Power-On             VDD
                                              Reset             Monitor
                                                                 Reset

                Figure 25.2. Power-On and VDD Monitor Reset Timing

164                                                   Rev. 1.0
                                                 C8051F70x/71x

25.2. Power-Fail Reset / VDD Monitor

When a power-down transition or power irregularity causes VDD to drop below VRST, the power supply
monitor will drive the RST pin low and hold the CIP-51 in a reset state (see Figure 25.2). When VDD returns
to a level above VRST, the CIP-51 will be released from the reset state. Even though internal data memory
contents are not altered by the power-fail reset, it is impossible to determine if VDD dropped below the level
required for data retention. If the PORSF flag reads 1, the data may no longer be valid. The VDD monitor is
enabled after power-on resets. Its defined state (enabled/disabled) is not altered by any other reset source.
For example, if the VDD monitor is disabled by code and a software reset is performed, the VDD monitor will
still be disabled after the reset.

Important Note: If the VDD monitor is being turned on from a disabled state, it should be enabled before it
is selected as a reset source. Selecting the VDD monitor as a reset source before it is enabled and stabi-
lized may cause a system reset. In some applications, this reset may be undesirable. If this is not desirable
in the application, a delay should be introduced between enabling the monitor and selecting it as a reset
source. The procedure for enabling the VDD monitor and configuring it as a reset source from a disabled
state is shown below:

1. Enable the VDD monitor (VDMEN bit in VDM0CN = 1).
2. If necessary, wait for the VDD monitor to stabilize.
3. Select the VDD monitor as a reset source (PORSF bit in RSTSRC = 1).

See Figure 25.2 for VDD monitor timing; note that the power-on-reset delay is not incurred after a VDD
monitor reset. See Section "9. Electrical Characteristics" on page 47 for complete electrical characteristics
of the VDD monitor.

Rev. 1.0  165
C8051F70x/71x

SFR Definition 25.1. VDM0CN: VDD Monitor Control

Bit  7        6        5                  4         3         2  1                      0

Name VDMEN VDDSTAT

Type R/W      R        R                  R         R         R  R                      R

Reset Varies  Varies   Varies             Varies Varies Varies   Varies                 Varies

SFR Address = 0xFF; SFR Page = All Pages

Bit  Name                                           Function

7    VDMEN VDD Monitor Enable.

              This bit turns the VDD monitor circuit on/off. The VDD Monitor cannot generate sys-
              tem resets until it is also selected as a reset source in register RSTSRC (SFR Def-

              inition 25.2). Selecting the VDD 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 VDD Monitor and selecting it as a
              reset source.

              0: VDD Monitor Disabled.
              1: VDD Monitor Enabled.

6 VDDSTAT VDD Status.

              This bit indicates the current power supply status (VDD Monitor output).
              0: VDD is at or below the VDD monitor threshold.
              1: VDD is above the VDD monitor threshold.

5:0 Unused Read = Varies; Write = Don't care.

25.3. External Reset

The external RST pin provides a means for external circuitry to force the device into a reset state. Assert-
ing an active-low signal on the RST pin generates a reset; an external pullup and/or decoupling of the RST
pin may be necessary to avoid erroneous noise-induced resets. See Section "9. Electrical Characteristics"
on page 47 for complete RST pin specifications. The PINRSF flag (RSTSRC.0) is set on exit from an exter-
nal reset.

25.4. Missing Clock Detector Reset

The Missing Clock Detector (MCD) is a one-shot circuit that is triggered by the system clock. If the system
clock remains high or low for more than the MCD timeout, the one-shot will time out and generate a reset.
After a MCD reset, the MCDRSF flag (RSTSRC.2) will read 1, signifying the MCD as the reset source; oth-
erwise, this bit reads 0. Writing a 1 to the MCDRSF bit enables the Missing Clock Detector; writing a 0 dis-
ables it. The state of the RST pin is unaffected by this reset.

166                                       Rev. 1.0
                                                 C8051F70x/71x

25.5. Comparator0 Reset

Comparator0 can be configured as a reset source by writing a 1 to the C0RSEF flag (RSTSRC.5).
Comparator0 should be enabled and allowed to settle prior to writing to C0RSEF to prevent any turn-on
chatter on the output from generating an unwanted reset. The Comparator0 reset is active-low: if the non-
inverting input voltage (on CP0+) is less than the inverting input voltage (on CP0-), the device is put into
the reset state. After a Comparator0 reset, the C0RSEF flag (RSTSRC.5) will read 1 signifying
Comparator0 as the reset source; otherwise, this bit reads 0. The state of the RST pin is unaffected by this
reset.

25.6. Watchdog Timer Reset

The programmable Watchdog Timer (WDT) can be used to prevent software from running out of control
during a system malfunction. The WDT function can be enabled or disabled by software as described in
Section "26. Watchdog Timer" on page 169. If a system malfunction prevents user software from updating
the WDT, a reset is generated and the WDTRSF bit (RSTSRC.3) is set to 1. The state of the RST pin is
unaffected by this reset.

25.7. Flash Error Reset

If a Flash read/write/erase or program read targets an illegal address, a system reset is generated. This
may occur due to any of the following:

    A Flash write or erase is attempted above user code space. This occurs when PSWE is set to 1 and a MOVX
        write operation targets an address above address 0x3DFF.

    A Flash read is attempted above user code space. This occurs when a MOVC operation targets an address
        above address 0x3DFF.

    A Program read is attempted above user code space. This occurs when user code attempts to branch to an
        address above 0x3DFF.

    A Flash read, write or erase attempt is restricted due to a Flash security setting (see Section "22.3. Security
       Options" on page 149).

The FERROR bit (RSTSRC.6) is set following a Flash error reset. The state of the RST pin is unaffected by
this reset.

25.8. Software Reset

Software may force a reset by writing a 1 to the SWRSF bit (RSTSRC.4). The SWRSF bit will read 1 fol-
lowing a software forced reset. The state of the RST pin is unaffected by this reset.

Rev. 1.0  167
C8051F70x/71x

SFR Definition 25.2. RSTSRC: Reset Source

Bit    7         6       5                4                     3       2            1             0

Name      FERROR C0RSEF SWRSF WDTRSF MCDRSF PORSF PINRSF

Type   R         R       R/W              R/W                   R       R/W     R/W                R

Reset  0  Varies         Varies           Varies                Varies  Varies  Varies        Varies

SFR Address = 0xEF; SFR Page = All Pages

Bit Name            Description                                 Write                   Read

7 Unused Unused.                          Don't care.                        0

6 FERROR Flash Error Reset Flag.          N/A                                Set to 1 if Flash
                                                                             read/write/erase error
                                                                             caused the last reset.

5 C0RSEF Comparator0 Reset Enable Writing a 1 enables                        Set to 1 if Comparator0
                                                                             caused the last reset.
          and Flag.                       Comparator0 as a reset

                                          source (active-low).

4 SWRSF Software Reset Force and Writing a 1 forces a sys- Set to 1 if last reset was

          Flag.                           tem reset.                         caused by a write to

                                                                             SWRSF.

3 WDTRSF Watchdog Timer Reset Flag. N/A                                      Set to 1 if Watchdog Timer
                                                                             overflow caused the last
                                                                             reset.

2 MCDRSF Missing Clock Detector           Writing a 1 enables the Set to 1 if Missing Clock
                     Enable and Flag.     Missing Clock Detector. Detector timeout caused
                                          The MCD triggers a reset the last reset.
                                          if a missing clock condition
                                          is detected.

1 PORSF Power-On / VDD Monitor            Writing a 1 enables the            Set to 1 anytime a power-
                                                                             on or VDD monitor reset
          Reset Flag, and VDD monitor VDD monitor as a reset                 occurs.
                                          source.
          Reset Enable.                                                      When set to 1 all other

                                          Writing 1 to this bit

                                          before the VDD monitor RSTSRC flags are inde-
                                          is enabled and stabilized terminate.

                                          may cause a system

                                          reset.

0 PINRSF HW Pin Reset Flag.               N/A                                Set to 1 if RST pin caused
         &