datasheet

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

型号

产品描述

搜索

C8051F560-IM

器件型号:C8051F560-IM
器件类别:半导体    嵌入式处理器和控制器   
厂商名称:Silicon Laboratories
标准:
下载文档

C8051F560-IM在线购买

供应商 器件名称 价格 最低购买 库存  
C8051F560-IM ¥31.77 1 点击查看 点击购买

器件描述

8-bit Microcontrollers - MCU 50 MIPS 32 kB 2 kB CAN2 LIN2.1 SPI UART

参数

产品属性属性值
Product AttributeAttribute Value
制造商:
Manufacturer:
Silicon Laboratories
产品种类:
Product Category:
8-bit Microcontrollers - MCU
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
QFN-32
系列:
Series:
C8051F560
Core:8051
Data Bus Width:8 bit
Maximum Clock Frequency:50 MHz
Program Memory Size:32 kB
Data RAM Size:2.25 kB
Number of I/Os:25 I/O
工作电源电压:
Operating Supply Voltage:
1.8 V to 5.25 V
最小工作温度:
Minimum Operating Temperature:
- 40 C
最大工作温度:
Maximum Operating Temperature:
+ 125 C
封装:
Packaging:
Tube
Program Memory Type:Flash
商标:
Brand:
Silicon Labs
Processor Series:C8051
产品类型:
Product Type:
8-bit Microcontrollers - MCU
工厂包装数量:
Factory Pack Quantity:
73
子类别:
Subcategory:
Microcontrollers - MCU
单位重量:
Unit Weight:
0.002449 oz

C8051F560-IM器件文档内容

                                                                                   C8051F55x/56x/57x

                                                                             Mixed Signal ISP Flash MCU Family

Analog Peripherals                                                      Memory

-  12-Bit ADC                                                           -    2304 bytes internal data RAM (256 + 2048 XRAM)

   •           Up to 200 ksps                                           -    32 or 16 kB Flash; In-system programmable in

   •           Up to 32 external single-ended inputs                         512-byte Sectors

   •           VREF from on-chip VREF, external pin or VDD

   •           Internal or external start of conversion source          Digital Peripherals

   •           Built-in temperature sensor                              -    33, 25, or 18 Port I/O; All 5 V tolerant

-  Two Comparators                                                      -    CAN 2.0 Controller—no crystal required

   •           Programmable hysteresis and response time                -    LIN 2.1 Controller (Master and Slave capable); no

   •           Configurable as interrupt or reset source

   •           Low current                                                   crystal required

On-Chip Debug                                                           -    Hardware enhanced UART, SMBus™, and

-  On-chip debug circuitry facilitates full speed, non-                      enhanced SPI™ 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 six

   inspect/modify memory and registers                                       capture/compare modules and enhanced PWM

-  Superior performance to emulation systems using                           functionality

   ICE-chips, target pods, and sockets                                  Clock Sources

-  Low cost, complete development kit                                   -    Internal 24 MHz with ±0.5% accuracy for CAN and

Supply Voltage 1.8 to 5.25 V                                                 master LIN operation

-  Typical operating current:     19 mA at 50 MHz                       -    External oscillator: Crystal, RC, C, or clock

-  Typical stop mode current: 1 µA                                           (1 or 2 pin modes)

High-Speed 8051 µC Core                                                 -    Can switch between clock sources on-the-fly;

-  Pipelined instruction architecture; executes 70% of                       useful in power saving modes

   instructions in 1 or 2 system clocks                                 Packages

-  Up to 50 MIPS throughput with 50 MHz clock                           -    40-pin QFN (C8051F568-9 and ‘F570-5)

-  Expanded interrupt handler                                           -    32-pin QFP/QFN (C8051F560-7)

                                                                        -    24-pin QFN (C8051F550-7)

                                                                        Automotive Qualified

                                                                        -    Temperature Range: –40 to +125 °C

                                                                        -    Compliant to AEC-Q100

                                            ANALOG                           DIGITAL I/O

                                            PERIPHERALS

                               A            12-bit                         UART 0           Ports 0-4

                               M            200 ksps            TEMP       SMBus            Crossbar

                               U                                SENSOR       SPI            External

                               X            ADC                              PCA            Memory

                                                                        Timers 0-3          Interface

                                            Voltage             VREG         CAN

                               Comparators 0-1 VREF                          LIN

                                            24 MHz PRECISION                 2x Clock Multiplier

                               INTERNAL OSCILLATOR

                                            HIGH-SPEED CONTROLLER CORE

                                            32 kB               8051 CPU            2 kB XRAM

                                  ISP FLASH                     (50 MIPS)

                                            FLEXIBLE                  DEBUG         POR        WDT

                               INTERRUPTS                       CIRCUITRY

Rev. 1.2 9/14                               Copyright © 2014 by Silicon Laboratories              C8051F55x, C8051F56x, C8051F57x
C8051F55x/56x/57x

2                  Rev. 1.2
                             C8051F55x/56x/57x

Table of Contents

1. System Overview ..................................................................................................... 16

2. Ordering Information ............................................................................................... 20

3. Pin Definitions.......................................................................................................... 22

4. Package Specifications ........................................................................................... 28

4.1. QFN-40 Package Specifications........................................................................ 28

4.2. QFP-32 Package Specifications........................................................................ 30

4.3. QFN-32 Package Specifications........................................................................ 32

4.4. QFN-24 Package Specifications........................................................................ 34

5. Electrical Characteristics ........................................................................................ 36

5.1. Absolute Maximum Specifications..................................................................... 36

5.2. Electrical Characteristics ................................................................................... 37

6. 12-Bit ADC (ADC0) ................................................................................................... 47

6.1. Modes of Operation ........................................................................................... 48

6.1.1. Starting a Conversion................................................................................ 48

6.1.2. Tracking Modes......................................................................................... 48

6.1.3. Timing ....................................................................................................... 49

6.1.4. Burst Mode................................................................................................ 50

6.2. Output Code Formatting .................................................................................... 52

6.2.1. Settling Time Requirements...................................................................... 52

6.3. Selectable Gain ................................................................................................. 53

6.3.1. Calculating the Gain Value........................................................................ 53

6.3.2. Setting the Gain Value .............................................................................. 55

6.4. Programmable Window Detector....................................................................... 61

6.4.1. Window Detector In Single-Ended Mode .................................................. 63

6.5. ADC0 Analog Multiplexer .................................................................................. 65

6.6. Temperature Sensor.......................................................................................... 67

7. Voltage Reference.................................................................................................... 68

8. Comparators............................................................................................................. 70

8.1. Comparator Multiplexer ..................................................................................... 76

9. Voltage Regulator (REG0) ....................................................................................... 79

10. CIP-51 Microcontroller........................................................................................... 81

10.1. Performance .................................................................................................... 81

10.2. Instruction Set.................................................................................................. 83

10.2.1. Instruction and CPU Timing .................................................................... 83

10.3. CIP-51 Register Descriptions .......................................................................... 87

10.4. Serial Number Special Function Registers (SFRs) ......................................... 91

11. Memory Organization ............................................................................................ 92

11.1. Program Memory............................................................................................. 92

11.1.1. MOVX Instruction and Program Memory ................................................ 93

11.2. Data Memory ................................................................................................... 93

11.2.1. Internal RAM ........................................................................................... 93

12. Special Function Registers................................................................................... 95

12.1. SFR Paging ..................................................................................................... 95

                   Rev. 1.2                                                                                                      3
C8051F55x/56x/57x

   12.2. Interrupts and SFR Paging .............................................................................. 95

   12.3. SFR Page Stack Example ............................................................................... 97

13. Interrupts .............................................................................................................. 112

   13.1. MCU Interrupt Sources and Vectors.............................................................. 112

   13.1.1. Interrupt Priorities.................................................................................. 113

   13.1.2. Interrupt Latency ................................................................................... 113

   13.2. Interrupt Register Descriptions ...................................................................... 115

   13.3. External Interrupts INT0 and INT1................................................................. 122

14. Flash Memory....................................................................................................... 124

   14.1. Programming The Flash Memory .................................................................. 124

   14.1.1. Flash Lock and Key Functions .............................................................. 124

   14.1.2. Flash Erase Procedure ......................................................................... 125

   14.1.3. Flash Write Procedure .......................................................................... 125

   14.1.4. Flash Write Optimization ....................................................................... 126

   14.2. Non-volatile Data Storage ............................................................................. 127

   14.3. Security Options ............................................................................................ 127

   14.4. Flash Write and Erase Guidelines ................................................................. 129

   14.4.1. VDD Maintenance and the VDD monitor ................................................ 129

   14.4.2. PSWE Maintenance .............................................................................. 130

   14.4.3. System Clock ........................................................................................ 130

15. Power Management Modes................................................................................. 135

   15.1. Idle Mode....................................................................................................... 135

   15.2. Stop Mode ..................................................................................................... 136

   15.3. Suspend Mode .............................................................................................. 136

16. Reset Sources ...................................................................................................... 138

   16.1. Power-On Reset ............................................................................................ 139

   16.2. Power-Fail Reset/VDD Monitor ..................................................................... 139

   16.3. External Reset ............................................................................................... 141

   16.4. Missing Clock Detector Reset ....................................................................... 141

   16.5. Comparator0 Reset ....................................................................................... 142

   16.6. PCA Watchdog Timer Reset ......................................................................... 142

   16.7. Flash Error Reset .......................................................................................... 142

   16.8. Software Reset .............................................................................................. 142

17. External Data Memory Interface and On-Chip XRAM ....................................... 144

   17.1. Accessing XRAM........................................................................................... 144

   17.1.1. 16-Bit MOVX Example .......................................................................... 144

   17.1.2. 8-Bit MOVX Example ............................................................................ 144

   17.2. Configuring the External Memory Interface ................................................... 145

   17.3. Port Configuration.......................................................................................... 145

   17.4. Multiplexed Mode .......................................................................................... 149

   17.5. Memory Mode Selection................................................................................ 150

   17.5.1. Internal XRAM Only .............................................................................. 150

   17.5.2. Split Mode without Bank Select............................................................. 150

   17.5.3. Split Mode with Bank Select.................................................................. 151

   17.5.4. External Only......................................................................................... 151

4                  Rev. 1.2
                        C8051F55x/56x/57x

17.6. Timing  .......................................................................................................... 151

17.6.1. Multiplexed Mode .................................................................................. 153

18. Oscillators and Clock Selection ......................................................................... 157

18.1. System Clock Selection................................................................................. 157

18.2. Programmable Internal Oscillator .................................................................. 159

18.2.1. Internal Oscillator Suspend Mode ......................................................... 159

18.3. Clock Multiplier .............................................................................................. 162

18.4. External Oscillator Drive Circuit..................................................................... 164

18.4.1. External Crystal Example...................................................................... 166

18.4.2. External RC Example............................................................................ 167

18.4.3. External Capacitor Example.................................................................. 167

19. Port Input/Output ................................................................................................. 169

19.1. Port I/O Modes of Operation.......................................................................... 170

19.1.1. Port Pins Configured for Analog I/O...................................................... 170

19.1.2. Port Pins Configured For Digital I/O...................................................... 170

19.1.3. Interfacing Port I/O in a Multi-Voltage System ...................................... 171

19.2. Assigning Port I/O Pins to Analog and Digital Functions............................... 171

19.2.1. Assigning Port I/O Pins to Analog Functions ........................................ 171

19.2.2. Assigning Port I/O Pins to Digital Functions.......................................... 171

19.2.3. Assigning Port I/O Pins to External Digital Event Capture Functions ... 172

19.3. Priority Crossbar Decoder ............................................................................. 172

19.4. Port I/O Initialization ...................................................................................... 174

19.5. Port Match ..................................................................................................... 179

19.6. Special Function Registers for Accessing and Configuring Port I/O ............. 183

20. Local Interconnect Network (LIN0)..................................................................... 193

20.1. Software Interface with the LIN Controller..................................................... 194

20.2. LIN Interface Setup and Operation................................................................ 194

20.2.1. Mode Definition ..................................................................................... 194

20.2.2. Baud Rate Options: Manual or Autobaud ............................................. 194

20.2.3. Baud Rate Calculations: Manual Mode................................................. 194

20.2.4. Baud Rate Calculations—Automatic Mode ........................................... 196

20.3. LIN Master Mode Operation .......................................................................... 197

20.4. LIN Slave Mode Operation ............................................................................ 198

20.5. Sleep Mode and Wake-Up ............................................................................ 199

20.6. Error Detection and Handling ........................................................................ 199

20.7. LIN Registers................................................................................................. 200

20.7.1. LIN Direct Access SFR Registers Definitions ....................................... 200

20.7.2. LIN Indirect Access SFR Registers Definitions ..................................... 202

21. Controller Area Network (CAN0) ........................................................................ 210

21.1. Bosch CAN Controller Operation................................................................... 211

21.1.1. CAN Controller Timing .......................................................................... 211

21.1.2. CAN Register Access............................................................................ 212

21.1.3. Example Timing Calculation for 1 Mbit/Sec Communication ................ 212

21.2. CAN Registers............................................................................................... 214

21.2.1. CAN Controller Protocol Registers........................................................ 214

              Rev. 1.2                                                                                                        5
C8051F55x/56x/57x

   21.2.2. Message Object Interface Registers .....................................................                             214

   21.2.3. Message Handler Registers..................................................................                          214

   21.2.4. CAN Register Assignment ....................................................................                         215

22. SMBus...................................................................................................................    218

   22.1. Supporting Documents ..................................................................................                219

   22.2. SMBus Configuration.....................................................................................               219

   22.3. SMBus Operation ..........................................................................................             219

   22.3.1. Transmitter Vs. Receiver.......................................................................                      220

   22.3.2. Arbitration..............................................................................................            220

   22.3.3. Clock Low Extension.............................................................................                     220

   22.3.4. SCL Low Timeout..................................................................................                    220

   22.3.5. SCL High (SMBus Free) Timeout .........................................................                              221

   22.4. Using the SMBus...........................................................................................             221

   22.4.1. SMBus Configuration Register..............................................................                           221

   22.4.2. SMB0CN Control Register ....................................................................                         225

   22.4.3. Data Register ........................................................................................               228

   22.5. SMBus Transfer Modes.................................................................................                  228

   22.5.1. Write Sequence (Master) ......................................................................                       229

   22.5.2. Read Sequence (Master) ......................................................................                        230

   22.5.3. Write Sequence (Slave) ........................................................................                      231

   22.5.4. Read Sequence (Slave) ........................................................................                       232

   22.6. SMBus Status Decoding................................................................................                  232

23. UART0 ...................................................................................................................   235

   23.1. Baud Rate Generator ....................................................................................               235

   23.2. Data Format...................................................................................................         237

   23.3. Configuration and Operation .........................................................................                  238

   23.3.1. Data Transmission ................................................................................                   238

   23.3.2. Data Reception .....................................................................................                 238

   23.3.3. Multiprocessor Communications ...........................................................                            240

24. Enhanced Serial Peripheral Interface (SPI0) .....................................................                           246

   24.1. Signal Descriptions........................................................................................            247

   24.1.1. Master Out, Slave In (MOSI).................................................................                         247

   24.1.2. Master In, Slave Out (MISO).................................................................                         247

   24.1.3. Serial Clock (SCK) ................................................................................                  247

   24.1.4. Slave Select (NSS) ...............................................................................                   247

   24.2. SPI0 Master Mode Operation ........................................................................                    248

   24.3. SPI0 Slave Mode Operation ..........................................................................                   250

   24.4. SPI0 Interrupt Sources ..................................................................................              250

   24.5. Serial Clock Phase and Polarity ....................................................................                   251

   24.6. SPI Special Function Registers .....................................................................                   252

25. Timers ...................................................................................................................  259

   25.1. Timer 0 and Timer 1 ......................................................................................             261

   25.1.1. Mode 0: 13-bit Counter/Timer ...............................................................                         261

   25.1.2. Mode 1: 16-bit Counter/Timer ...............................................................                         262

   25.1.3. Mode 2: 8-bit Counter/Timer with Auto-Reload.....................................                                    262

6                  Rev. 1.2
          C8051F55x/56x/57x

25.1.4. Mode 3: Two 8-bit Counter/Timers (Timer 0 Only)................................ 263

25.2. Timer 2 .......................................................................................................... 269

25.2.1. 16-bit Timer with Auto-Reload............................................................... 269

25.2.2. 8-bit Timers with Auto-Reload............................................................... 269

25.2.3. External Oscillator Capture Mode ......................................................... 270

25.3. Timer 3 .......................................................................................................... 275

25.3.1. 16-Bit Timer with Auto-Reload .............................................................. 275

25.3.2. 8-Bit Timers with Auto-Reload .............................................................. 275

25.3.3. External Oscillator Capture Mode ......................................................... 276

26. Programmable Counter Array............................................................................. 281

26.1. PCA Counter/Timer ....................................................................................... 282

26.2. PCA0 Interrupt Sources................................................................................. 283

26.3. Capture/Compare Modules ........................................................................... 283

26.3.1. Edge-triggered Capture Mode............................................................... 284

26.3.2. Software Timer (Compare) Mode.......................................................... 285

26.3.3. High-Speed Output Mode ..................................................................... 286

26.3.4. Frequency Output Mode ....................................................................... 287

26.3.5. 8-bit, 9-bit, 10-bit and 11-bit Pulse Width Modulator Modes ................. 288

26.3.6. 16-Bit Pulse Width Modulator Mode...................................................... 290

26.4. Watchdog Timer Mode .................................................................................. 291

26.4.1. Watchdog Timer Operation ................................................................... 291

26.4.2. Watchdog Timer Usage ........................................................................ 292

26.5. Register Descriptions for PCA0..................................................................... 294

27. C2 Interface .......................................................................................................... 300

27.1. C2 Interface Registers................................................................................... 300

27.2. C2 Pin Sharing .............................................................................................. 303

Rev. 1.2                                                                                                                         7
                                                 C8051F55x/56x/57x

List of Figures

Figure 1.1. C8051F568-9 and ‘F570-5 (40-pin) Block Diagram .............................. 17

Figure 1.2. C8051F560-7 (32-pin) Block Diagram ................................................... 18

Figure 1.3. C8051F550-7 (24-pin) Block Diagram ................................................... 19

Figure 3.1. QFN-40 Pinout Diagram (Top View) ..................................................... 24

Figure 3.2. QFP-32 Pinout Diagram (Top View) ...................................................... 25

Figure 3.3. QFN-32 Pinout Diagram (Top View) ..................................................... 26

Figure 3.4. QFN-24 Pinout Diagram (Top View) ..................................................... 27

Figure 4.1. QFN-40 Package Drawing .................................................................... 28

Figure 4.2. QFN-40 Landing Diagram ..................................................................... 29

Figure 4.3. QFP-32 Package Drawing ..................................................................... 30

Figure 4.4. QFP-32 Landing Diagram ..................................................................... 31

Figure 4.5. QFN-32 Package Drawing .................................................................... 32

Figure 4.6. QFN-32 Landing Diagram ..................................................................... 33

Figure 4.7. QFN-24 Package Drawing .................................................................... 34

Figure 4.8. QFN-24 Landing Diagram ..................................................................... 35

Figure 5.1. Minimum VDD Monitor Threshold vs. System Clock Frequency ........... 39

Figure 6.1. ADC0 Functional Block Diagram ........................................................... 47

Figure 6.2. ADC0 Tracking Modes .......................................................................... 49

Figure 6.3. 12-Bit ADC Tracking Mode Example ..................................................... 50

Figure 6.4. 12-Bit ADC Burst Mode Example With Repeat Count Set to 4 ............. 51

Figure 6.5. ADC0 Equivalent Input Circuit ............................................................... 53

Figure 6.6. ADC Window Compare Example: Right-Justified Data ......................... 64

Figure 6.7. ADC Window Compare Example: Left-Justified Data ........................... 64

Figure 6.8. ADC0 Multiplexer Block Diagram .......................................................... 65

Figure 6.9. Temperature Sensor Transfer Function ................................................ 67

Figure 7.1. Voltage Reference Functional Block Diagram ....................................... 68

Figure 8.1. Comparator Functional Block Diagram  ................................................. 70

Figure 8.2. Comparator Hysteresis Plot .................................................................. 71

Figure 8.3. Comparator Input Multiplexer Block Diagram ........................................ 76

Figure 9.1. External Capacitors for Voltage Regulator Input/Output—

Regulator Enabled ............................................................................................. 79

Figure 9.2. External Capacitors for Voltage Regulator Input/Output—Regulator Dis-

abled  ............................................................................................................... 80

Figure 10.1. CIP-51 Block Diagram ......................................................................... 82

Figure 11.1. C8051F55x/56x/57x Memory Map ...................................................... 92

Figure 11.2. Flash Program Memory Map ............................................................... 93

Figure 12.1. SFR Page Stack .................................................................................. 96

Figure 12.2. SFR Page Stack While Using SFR Page 0x0 To Access SPI0DAT ... 97

Figure 12.3. SFR Page Stack After CAN0 Interrupt Occurs .................................... 98

Figure 12.4. SFR Page Stack Upon PCA Interrupt Occurring During a CAN0 ISR . 99

Figure 12.5. SFR Page Stack Upon Return From PCA Interrupt .......................... 100

Figure 12.6. SFR Page Stack Upon Return From CAN0 Interrupt ........................ 101

Figure 14.1. Flash Program Memory Map ............................................................. 127

                 Rev. 1.2                                                                                                  8
C8051F55x/56x/57x

   Figure  16.1. Reset Sources ................................................................................... 138

   Figure  16.2. Power-On and VDD Monitor Reset Timing ....................................... 139

   Figure  17.1. Multiplexed Configuration Example ................................................... 149

   Figure  17.2. EMIF Operating Modes ..................................................................... 150

   Figure  17.3. Multiplexed 16-bit MOVX Timing ....................................................... 153

   Figure  17.4. Multiplexed 8-bit MOVX without Bank Select Timing ........................ 154

   Figure  17.5. Multiplexed 8-bit MOVX with Bank Select Timing ............................. 155

   Figure  18.1. Oscillator Options .............................................................................. 157

   Figure  18.2. Example Clock Multiplier Output ....................................................... 162

   Figure  18.3. External 32.768 kHz Quartz Crystal Oscillator Connection Diagram                                       167

   Figure  19.1. Port I/O Functional Block Diagram .................................................... 169

   Figure  19.2. Port I/O Cell Block Diagram .............................................................. 170

   Figure  19.3. Peripheral Availability on Port I/O Pins .............................................. 173

   Figure  19.4. Crossbar Priority Decoder in Example Configuration ........................ 174

   Figure  20.1. LIN Block Diagram  ............................................................................ 193

   Figure  21.1. Typical CAN Bus Configuration ......................................................... 210

   Figure  21.2. CAN Controller Diagram .................................................................... 211

   Figure  21.3. Four segments of a CAN Bit .............................................................. 213

   Figure  22.1. SMBus Block Diagram ...................................................................... 218

   Figure  22.2. Typical SMBus Configuration ............................................................ 219

   Figure  22.3. SMBus Transaction ........................................................................... 220

   Figure  22.4. Typical SMBus SCL Generation ........................................................ 222

   Figure  22.5. Typical Master Write Sequence  ........................................................ 229

   Figure  22.6. Typical Master Read Sequence ........................................................ 230

   Figure  22.7. Typical Slave Write Sequence   .......................................................... 231

   Figure  22.8. Typical Slave Read Sequence .......................................................... 232

   Figure  23.1. UART0 Block Diagram ...................................................................... 235

   Figure  23.2. UART0 Timing Without Parity or Extra Bit ......................................... 237

   Figure  23.3. UART0 Timing With Parity ................................................................ 237

   Figure  23.4. UART0 Timing With Extra Bit ............................................................ 237

   Figure  23.5. Typical UART Interconnect Diagram ................................................. 238

   Figure  23.6. UART Multi-Processor Mode Interconnect Diagram ......................... 240

   Figure  24.1. SPI Block Diagram ............................................................................ 246

   Figure  24.2. Multiple-Master Mode Connection Diagram ...................................... 249

   Figure  24.3. 3-Wire Single Master and 3-Wire Single Slave Mode Connection Diagram

           ............................................................................................................. 249

   Figure  24.4. 4-Wire Single Master Mode and 4-Wire Slave Mode Connection Diagram

           ............................................................................................................. 249

   Figure  24.5. Master Mode Data/Clock Timing ....................................................... 251

   Figure  24.6. Slave Mode Data/Clock Timing (CKPHA = 0) ................................... 252

   Figure  24.7. Slave Mode Data/Clock Timing (CKPHA = 1) ................................... 252

   Figure  24.8. SPI Master Timing (CKPHA = 0) ....................................................... 256

   Figure  24.9. SPI Master Timing (CKPHA = 1) ....................................................... 256

   Figure  24.10. SPI Slave Timing (CKPHA = 0) ....................................................... 257

   Figure  24.11. SPI Slave Timing (CKPHA = 1) ....................................................... 257

9                                   Rev. 1.2
                                                 C8051F55x/56x/57x

Figure  25.1. T0 Mode 0 Block Diagram ................................................................. 262

Figure  25.2. T0 Mode 2 Block Diagram ................................................................. 263

Figure  25.3. T0 Mode 3 Block Diagram ................................................................. 264

Figure  25.4. Timer 2 16-Bit Mode Block Diagram  ................................................. 269

Figure  25.5. Timer 2 8-Bit Mode Block Diagram ................................................... 270

Figure  25.6. Timer 2 External Oscillator Capture Mode Block Diagram ................ 271

Figure  25.7. Timer 3 16-Bit Mode Block Diagram  ................................................. 275

Figure  25.8. Timer 3 8-Bit Mode Block Diagram ................................................... 276

Figure  25.9. Timer 3 External Oscillator Capture Mode Block Diagram ................ 277

Figure  26.1. PCA Block Diagram ........................................................................... 281

Figure  26.2. PCA Counter/Timer Block Diagram ................................................... 282

Figure  26.3. PCA Interrupt Block Diagram ............................................................ 283

Figure  26.4. PCA Capture Mode Diagram ............................................................. 285

Figure  26.5. PCA Software Timer Mode Diagram ................................................. 286

Figure  26.6. PCA High-Speed Output Mode Diagram ........................................... 287

Figure  26.7. PCA Frequency Output Mode ........................................................... 288

Figure  26.8. PCA 8-Bit PWM Mode Diagram ........................................................ 289

Figure  26.9. PCA 9, 10 and 11-Bit PWM Mode Diagram ...................................... 290

Figure  26.10. PCA 16-Bit PWM Mode ................................................................... 291

Figure  26.11. PCA Module 2 with Watchdog Timer Enabled ................................ 292

Figure  27.1. Typical C2 Pin Sharing ...................................................................... 303

        Rev. 1.2                                                                                                 10
                          C8051F55x/56x/57x

List of Tables

Table 2.1. Product Selection Guide ......................................................................... 21

Table 3.1. Pin Definitions for the C8051F55x/56x/57x ............................................ 22

Table 4.1. QFN-40 Package Dimensions ................................................................ 28

Table 4.2. QFN-40 Landing Diagram Dimensions ................................................... 29

Table 4.3. QFP-32 Package Dimensions ................................................................ 30

Table 4.4. QFP-32 Landing Diagram Dimensions ................................................... 31

Table 4.5. QFN-32 Package Dimensions ................................................................ 32

Table 4.6. QFN-32 Landing Diagram Dimensions ................................................... 33

Table 4.7. QFN-24 Package Dimensions ................................................................ 34

Table 4.8. QFN-24 Landing Diagram Dimensions ................................................... 35

Table 5.1. Absolute Maximum Ratings .................................................................... 36

Table 5.2. Global Electrical Characteristics ............................................................. 37

Table 5.3. Port I/O DC Electrical Characteristics ..................................................... 40

Table 5.4. Reset Electrical Characteristics .............................................................. 41

Table 5.5. Flash Electrical Characteristics .............................................................. 41

Table 5.6. Internal High-Frequency Oscillator Electrical Characteristics ................. 42

Table 5.7. Clock Multiplier Electrical Specifications ................................................ 43

Table 5.8. Voltage Regulator Electrical Characteristics  .......................................... 43

Table 5.9. ADC0 Electrical Characteristics .............................................................. 44

Table 5.10. Temperature Sensor Electrical Characteristics .................................... 45

Table 5.11. Voltage Reference Electrical Characteristics ....................................... 45

Table 5.12. Comparator 0 and Comparator 1 Electrical Characteristics ................. 46

Table 10.1. CIP-51 Instruction Set Summary .......................................................... 84

Table 12.1. Special Function Register (SFR) Memory Map for Pages 0x00 and 0x0F

106

Table 12.2. Special Function Register (SFR) Memory Map for Page 0x0C .......... 107

Table 12.3. Special Function Registers ................................................................. 108

Table 13.1. Interrupt Summary .............................................................................. 114

Table 14.1. Flash Security Summary .................................................................... 128

Table 17.1. EMIF Pinout (C8051F568-9 and ‘F570-5) .......................................... 146

Table 17.2. AC Parameters for External Memory Interface ................................... 156

Table 19.1. Port I/O Assignment for Analog Functions ......................................... 171

Table 19.2. Port I/O Assignment for Digital Functions ........................................... 172

Table 19.3. Port I/O Assignment for External Digital Event Capture Functions  .... 172

Table 20.1. Baud Rate Calculation Variable Ranges ............................................ 194

Table 20.2. Manual Baud Rate Parameters Examples ......................................... 196

Table 20.3. Autobaud Parameters Examples ........................................................ 197

Table 20.4. LIN Registers* (Indirectly Addressable) .............................................. 202

Table 21.1. Background System Information ........................................................ 212

Table 21.2. Standard CAN Registers and Reset Values ....................................... 215

Table 22.1. SMBus Clock Source Selection .......................................................... 222

Table 22.2. Minimum SDA Setup and Hold Times ................................................ 223

                Rev. 1.2                                                                                          11
C8051F55x/56x/57x

    Table 22.3. Sources for Hardware Changes to SMB0CN .....................................                 227

    Table 22.4. SMBus Status Decoding .....................................................................  233

    Table 23.1. Baud Rate Generator Settings for Standard Baud Rates ...................                     236

    Table 24.1. SPI Slave Timing Parameters ............................................................     258

    Table 26.1. PCA Timebase Input Options .............................................................     282

    Table 26.2. PCA0CPM and PCA0PWM Bit Settings for

    PCA Capture/Compare Modules ........................................................                     284

    Table 26.3. Watchdog Timer Timeout Intervals1 ...................................................        293

12                 Rev. 1.2
                             C8051F55x/56x/57x

List of Registers

SFR  Definition  6.4. ADC0CF: ADC0 Configuration ...................................................... 58

SFR  Definition  6.5. ADC0H: ADC0 Data Word MSB .................................................... 59

SFR  Definition  6.6. ADC0L: ADC0 Data Word LSB ...................................................... 59

SFR  Definition  6.7. ADC0CN: ADC0 Control ................................................................ 60

SFR  Definition  6.8. ADC0TK: ADC0 Tracking Mode Select ......................................... 61

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

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

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

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

SFR  Definition  6.13. ADC0MX: ADC0 Channel Select ................................................. 66

SFR  Definition  7.1. REF0CN: Reference Control ......................................................... 69

SFR  Definition  8.1. CPT0CN: Comparator0 Control ..................................................... 72

SFR  Definition  8.2. CPT0MD: Comparator0 Mode Selection ....................................... 73

SFR  Definition  8.3. CPT1CN: Comparator1 Control ..................................................... 74

SFR  Definition  8.4. CPT1MD: Comparator1 Mode Selection ....................................... 75

SFR  Definition  8.5. CPT0MX: Comparator0 MUX Selection  ........................................ 77

SFR  Definition  8.6. CPT1MX: Comparator1 MUX Selection  ........................................ 78

SFR  Definition  9.1. REG0CN: Regulator Control .......................................................... 80

SFR  Definition  10.1. DPL: Data Pointer Low Byte ........................................................ 88

SFR  Definition  10.2. DPH: Data Pointer High Byte ....................................................... 88

SFR  Definition  10.3. SP: Stack Pointer ......................................................................... 89

SFR  Definition  10.4. ACC: Accumulator ....................................................................... 89

SFR  Definition  10.5. B: B Register ................................................................................ 89

SFR  Definition  10.6. PSW: Program Status Word ........................................................ 90

SFR  Definition  10.7. SNn: Serial Number n .................................................................. 91

SFR  Definition  12.1. SFR0CN: SFR Page Control ..................................................... 102

SFR  Definition  12.2. SFRPAGE: SFR Page ............................................................... 103

SFR  Definition  12.3. SFRNEXT: SFR Next ................................................................ 104

SFR  Definition  12.4. SFRLAST: SFR Last .................................................................. 105

SFR  Definition  13.1. IE: Interrupt Enable .................................................................... 116

SFR  Definition  13.2. IP: Interrupt Priority .................................................................... 117

SFR  Definition  13.3. EIE1: Extended Interrupt Enable 1 ............................................ 118

SFR  Definition  13.4. EIP1: Extended Interrupt Priority 1 ............................................ 119

SFR  Definition  13.5. EIE2: Extended Interrupt Enable 2 ............................................ 120

SFR  Definition  13.6. EIP2: Extended Interrupt Priority Enabled 2 .............................. 121

SFR  Definition  13.7. IT01CF: INT0/INT1 Configuration .............................................. 123

SFR  Definition  14.1. PSCTL: Program Store R/W Control ......................................... 131

SFR  Definition  14.2. FLKEY: Flash Lock and Key ...................................................... 132

SFR  Definition  14.3. FLSCL: Flash Scale ................................................................... 133

SFR  Definition  14.4. CCH0CN: Cache Control ........................................................... 134

SFR  Definition  14.5. ONESHOT: Flash Oneshot Period ............................................ 134

SFR  Definition  15.1. PCON: Power Control ................................................................ 137

SFR  Definition  16.1. VDM0CN: VDD Monitor Control ................................................ 141

                   Rev. 1.2                                                                                               13
C8051F55x/56x/57x

SFR  Definition  16.2. RSTSRC: Reset Source ............................................................              143

SFR  Definition  17.1. EMI0CN: External Memory Interface Control ............................                         147

SFR  Definition  17.2. EMI0CF: External Memory Configuration ..................................                       148

SFR  Definition  17.3. EMI0TC: External Memory Timing Control ................................                        152

SFR  Definition  18.1. CLKSEL: Clock Select ...............................................................           158

SFR  Definition  18.2. OSCICN: Internal Oscillator Control ..........................................                 160

SFR  Definition  18.3. OSCICRS: Internal Oscillator Coarse Calibration ......................                         161

SFR  Definition  18.4. OSCIFIN: Internal Oscillator Fine Calibration ............................                     161

SFR  Definition  18.5. CLKMUL: Clock Multiplier ..........................................................            163

SFR  Definition  18.6. OSCXCN: External Oscillator Control ........................................                   165

SFR  Definition  19.1. XBR0: Port I/O Crossbar Register 0 ..........................................                  176

SFR  Definition  19.2. XBR1: Port I/O Crossbar Register 1 ..........................................                  177

SFR  Definition  19.3. XBR2: Port I/O Crossbar Register 1 ..........................................                  178

SFR  Definition  19.4. P0MASK: Port 0 Mask Register .................................................                 179

SFR  Definition  19.5. P0MAT: Port 0 Match Register ..................................................                179

SFR  Definition  19.6. P1MASK: Port 1 Mask Register .................................................                 180

SFR  Definition  19.7. P1MAT: Port 1 Match Register ..................................................                180

SFR  Definition  19.8. P2MASK: Port 2 Mask Register .................................................                 181

SFR  Definition  19.9. P2MAT: Port 2 Match Register ..................................................                181

SFR  Definition  19.10. P3MASK: Port 3 Mask Register ...............................................                  182

SFR  Definition  19.11. P3MAT: Port 3 Match Register ................................................                 182

SFR  Definition  19.12. P0: Port 0 .................................................................................  183

SFR  Definition  19.13. P0MDIN: Port 0 Input Mode .....................................................               184

SFR  Definition  19.14. P0MDOUT: Port 0 Output Mode ..............................................                    184

SFR  Definition  19.15. P0SKIP: Port 0 Skip .................................................................         185

SFR  Definition  19.16. P1: Port 1 .................................................................................  185

SFR  Definition  19.17. P1MDIN: Port 1 Input Mode .....................................................               186

SFR  Definition  19.18. P1MDOUT: Port 1 Output Mode ..............................................                    186

SFR  Definition  19.19. P1SKIP: Port 1 Skip .................................................................         187

SFR  Definition  19.20. P2: Port 2 .................................................................................  187

SFR  Definition  19.21. P2MDIN: Port 2 Input Mode .....................................................               188

SFR  Definition  19.22. P2MDOUT: Port 2 Output Mode ..............................................                    188

SFR  Definition  19.23. P2SKIP: Port 2 Skip .................................................................         189

SFR  Definition  19.24. P3: Port 3 .................................................................................  189

SFR  Definition  19.25. P3MDIN: Port 3 Input Mode .....................................................               190

SFR  Definition  19.26. P3MDOUT: Port 3 Output Mode ..............................................                    190

SFR  Definition  19.27. P3SKIP: Port 3Skip ..................................................................         191

SFR  Definition  19.28. P4: Port 4 .................................................................................  191

SFR  Definition  19.29. P4MDOUT: Port 4 Output Mode ..............................................                    192

SFR  Definition  20.1. LIN0ADR: LIN0 Indirect Address Register .................................                      200

SFR  Definition  20.2. LIN0DAT: LIN0 Indirect Data Register .......................................                   200

SFR  Definition  20.3. LIN0CF: LIN0 Control Mode Register ........................................                    201

SFR  Definition  21.1. CAN0CFG: CAN Clock Configuration ........................................                      217

SFR  Definition  22.1. SMB0CF: SMBus Clock/Configuration ......................................                       224

SFR  Definition  22.2. SMB0CN: SMBus Control ..........................................................               226

14                 Rev. 1.2
                                                     C8051F55x/56x/57x

SFR  Definition  22.3. SMB0DAT: SMBus Data ............................................................ 228

SFR  Definition  23.1. SCON0: Serial Port 0 Control .................................................... 241

SFR  Definition  23.2. SMOD0: Serial Port 0 Control .................................................... 243

SFR  Definition  23.3. SBUF0: Serial (UART0) Port Data Buffer .................................. 244

SFR  Definition  23.4. SBCON0: UART0 Baud Rate Generator Control  ...................... 244

SFR  Definition  23.6. SBRLL0: UART0 Baud Rate Generator Reload Low Byte ........ 245

SFR  Definition  23.5. SBRLH0: UART0 Baud Rate Generator Reload High Byte ....... 245

SFR  Definition  24.1. SPI0CFG: SPI0 Configuration ................................................... 253

SFR  Definition  24.2. SPI0CN: SPI0 Control ............................................................... 254

SFR  Definition  24.3. SPI0CKR: SPI0 Clock Rate ....................................................... 255

SFR  Definition  24.4. SPI0DAT: SPI0 Data  ................................................................. 255

SFR  Definition  25.1. CKCON: Clock Control .............................................................. 260

SFR  Definition  25.2. TCON: Timer Control ................................................................. 265

SFR  Definition  25.3. TMOD: Timer Mode ................................................................... 266

SFR  Definition  25.4. TL0: Timer 0 Low Byte ............................................................... 267

SFR  Definition  25.5. TL1: Timer 1 Low Byte ............................................................... 267

SFR  Definition  25.6. TH0: Timer 0 High Byte ............................................................. 268

SFR  Definition  25.7. TH1: Timer 1 High Byte ............................................................. 268

SFR  Definition  25.8. TMR2CN: Timer 2 Control ......................................................... 272

SFR  Definition  25.9. TMR2RLL: Timer 2 Reload Register Low Byte .......................... 273

SFR  Definition  25.10. TMR2RLH: Timer 2 Reload Register High Byte ...................... 273

SFR  Definition  25.11. TMR2L: Timer 2 Low Byte ....................................................... 274

SFR  Definition  25.12. TMR2H Timer 2 High Byte ....................................................... 274

SFR  Definition  25.13. TMR3CN: Timer 3 Control ....................................................... 278

SFR  Definition  25.14. TMR3RLL: Timer 3 Reload Register Low Byte ........................ 279

SFR  Definition  25.15. TMR3RLH: Timer 3 Reload Register High Byte ...................... 279

SFR  Definition  25.16. TMR3L: Timer 3 Low Byte ....................................................... 280

SFR  Definition  25.17. TMR3H Timer 3 High Byte ....................................................... 280

SFR  Definition  26.1. PCA0CN: PCA Control .............................................................. 294

SFR  Definition  26.2. PCA0MD: PCA Mode ................................................................ 295

SFR  Definition  26.3. PCA0PWM: PCA PWM Configuration ....................................... 296

SFR  Definition  26.4. PCA0CPMn: PCA Capture/Compare Mode .............................. 297

SFR  Definition  26.5. PCA0L: PCA Counter/Timer Low Byte ...................................... 298

SFR  Definition  26.6. PCA0H: PCA Counter/Timer High Byte ..................................... 298

SFR  Definition  26.7. PCA0CPLn: PCA Capture Module Low Byte ............................. 299

SFR  Definition  26.8. PCA0CPHn: PCA Capture Module High Byte ........................... 299

                                           Rev. 1.2                                                               15
                                                                      C8051F55x/56x/57x

1.   System Overview

C8051F55x/56x/57x devices are fully integrated mixed-signal System-on-a-Chip MCUs. Highlighted fea-

tures 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 50 MIPS)

   In-system, full-speed, non-intrusive debug interface (on-chip)

   Controller Area Network (CAN 2.0B) Controller with 32 message objects, each with its own indentifier

    mask (C8051F550/1/4/5, ‘F560/1/4/5/8/9, and ‘F572/3)

   LIN 2.1 peripheral (fully backwards compatible, master and slave modes) (C8051F550/2/4/6,

    ‘F560/2/4/6/8, and ‘F570/2/4)

   True 12-bit 200 ksps 32-channel single-ended ADC with analog multiplexer

   Precision programmable 24 MHz internal oscillator that is within ±0.5% across the temperature range

    and for VDD voltages greater than or equal to the on-chip voltage regulator minimum output at the low

    setting. The oscillator is within +1.0% for VDD voltages below this minimum output setting.

   On-chip Clock Multiplier to reach up to 50 MHz

   32 kB (C8051F550-3, ‘F560-3, ‘F568-9, and ‘F570-1) or 16 kB (C8051F554-7, ‘F564-7, and ‘F572-5) of

    on-chip Flash memory

   2304 bytes of on-chip RAM

   SMBus/I2C, Enhanced UART, and Enhanced SPI serial interfaces implemented in hardware

   Four general-purpose 16-bit timers

   External Data Memory Interface (C8051F568-9 and ‘F570-5) with 64 kB address space

   Programmable Counter/Timer Array (PCA) with six capture/compare modules and Watchdog Timer

    function

   On-chip Voltage Regulator

   On-chip Power-On Reset, VDD Monitor, and Temperature Sensor

   On-chip Voltage Comparator

   33, 25, or 18 Port I/O (5 V push-pull)

With on-chip Voltage Regulator, Power-On Reset, VDD monitor, Watchdog Timer, and clock oscillator, the

C8051F55x/56x/57x 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  on-chip  Silicon  Labs  2-Wire     (C2)  Development  Interface  allows    non-intrusive  (uses  no  on-chip

resources), full speed, in-circuit debugging using the production MCU installed in the final application. This

debug logic supports inspection and modification of memory and registers, setting breakpoints, single

stepping, run and halt commands. All 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 with-

out occupying package pins.

The devices are specified for 1.8 V to 5.25 V operation over the automotive temperature range (–40 to

+125 °C).     The  C8051F568-9     and  ‘F570-5  are  available  in  40-pin  QFN  packages,    the  C8051F560-7

devices are available in 32-pin QFP and QFN packages, and the C8051F550-7 are available in 24-pin

QFN packages. All package options are lead-free and RoHS compliant. See Table 2.1 for ordering infor-

mation. Block diagrams are included in Figure 1.1, Figure 1.2, and Figure 1.3.

                                                      Rev. 1.2                                                  16
C8051F55x/56x/57x

                                                                                                         VIO

            Power On             CIP-51 8051 Controller            Port I/O Configuration

            Reset                Core (50 MHz)                                                           P0.0

                   Reset                                           Digital Peripherals                   P0.1

                                 32 or 16 kB Flash                                                       P0.2

                                 Program Memory               UART0                             Port 0   P0.3

C2CK/RST    Debug /                                                                             Drivers  P0.4

            Programming                                       Timers 0,                                  P0.5

            Hardware             256 Byte RAM                 1, 2, 3

                                                                                                         P0.6

            C2D                                               6 channel                                  P0.7

                                 2 kB XRAM                    PCA/WDT                 Priority

                                                                                      Crossbar           P1.0

                                                              LIN 2.1                 Decoder            P1.1

            Voltage Regulator                                                                            P1.2

    VREGIN       (LDO)                                        CAN 2.0B                          Port 1   P1.3

                                                                                                Drivers  P1.4

                                                                   SPI                                   P1.5

    VDD                                                            I2C                                   P1.6

    GND                                                                                                  P1.7

                                                         SFR       Crossbar Control                      P2.0

                                                         Bus                                             P2.1

            System Clock Setup                                External Memory Interface                  P2.2

                                 XTAL1  XTAL2                                                   Port 2   P2.3

                                                                                                Drivers  P2.4

            Internal Oscillator  External Oscillator          Analog Peripherals                         P2.5

            (±0.5%)                                                                                      P2.6

                                                                        Voltage                          P2.7

                      Clock Multiplier                                  Reference     VREF               P3.0

                                                                                                         P3.1

                                                                                                         P3.2

                                                              VDD       VREF                    Port 3   P3.3

                                                                                      VDD       Drivers  P3.4

                                                              12-bit               A  VREF               P3.5

                                                              200ksps              M  P0 – P3            P3.6

                                                              ADC                  U  Temp               P3.7

                                                                                   X  Sensor

                                                                                      GND       Port 4   P4.0/C2D

                                                                                                Driver

                                                                        CP0, CP0A     +

    VDDA                                                                Comparator 0  -

    GNDA

                                                                        CP1, CP1A     +

                                                                        Comparator 1  -

            Figure 1.1. C8051F568-9                      and  ‘F570-5 (40-pin) Block            Diagram

17                                                       Rev. 1.2
                                                                               C8051F55x/56x/57x

                                                                                                            VIO

          Power On             CIP-51 8051 Controller            Port I/O Configuration

          Reset                Core (50 MHz)                                                                P0.0

                 Reset                                           Digital Peripherals                        P0.1

                               32 or 16 kB Flash                                                            P0.2

                               Program Memory               UART0                                  Port 0   P0.3

C2CK/RST  Debug /                                                                                  Drivers  P0.4

          Programming                                       Timers 0,                                       P0.5

          Hardware             256 Byte RAM                 1, 2, 3

                                                                                                            P0.6

          C2D                                               6 channel                                       P0.7

                               2 kB XRAM                    PCA/WDT                 Priority

                                                                                    Crossbar                P1.0

                                                            LIN 2.1                 Decoder                 P1.1

          Voltage Regulator                                                                                 P1.2

VREGIN         (LDO)                                        CAN 2.0B                               Port 1   P1.3

                                                                                                   Drivers  P1.4

                                                                 SPI                                        P1.5

VDD                                                              I2C                                        P1.6

GND                                                                                                         P1.7

                                                       SFR       Crossbar Control                           P2.0

                                                       Bus                                                  P2.1

          System Clock Setup                                                                                P2.2

                               XTAL1  XTAL2                                                        Port 2   P2.3

                                                                                                   Drivers  P2.4

          Internal Oscillator  External Oscillator          Analog Peripherals                              P2.5

          (±0.5%)                                                                                           P2.6

                                                                      Voltage                               P2.7

                    Clock Multiplier                                  Reference     VREF           Port 3   P3.0/C2D

                                                                                                   Driver

                                                            VDD       VREF

                                                                                    VDD

                                                            12-bit               A  VREF

                                                            200ksps              M  P0 – P3

                                                            ADC                  U  Temp

                                                                                 X  Sensor

                                                                                    GND

                                                                      CP0, CP0A     +

VDDA                                                                  Comparator 0  -

GNDA

                                                                      CP1, CP1A     +

                                                                      Comparator 1  -

                        Figure 1.2. C8051F560-7             (32-pin) Block                Diagram

                                                            Rev. 1.2                                                  18
C8051F55x/56x/57x

                                                                                                              VIO

            Power On             CIP-51 8051 Controller             Port I/O Configuration

            Reset                Core (50 MHz)                                                                P0.0

                   Reset                                            Digital Peripherals                       P0.1

                                 32 or 16 kB Flash                                                            P0.2

                                 Program Memory                UART0                                  Port 0  P0.3

C2CK/RST    Debug /                                                                              Drivers      P0.4

            Programming                                        Timers 0,                                      P0.5

            Hardware             256 Byte RAM                  1, 2, 3

                                                                                                              P0.6

            C2D                                                6 channel                                      P0.7

                                 2 kB XRAM                     PCA/WDT                 Priority

                                                                                       Crossbar               P1.0

                                                               LIN 2.1                 Decoder                P1.1

            Voltage Regulator                                                                                 P1.2

    VREGIN       (LDO)                                         CAN 2.0B                               Port 1  P1.3

                                                                                                 Drivers      P1.4

                                                                    SPI                                       P1.5

    VDD                                                             I2C                                       P1.6

    GND                                                                                                       P1.7

                                                         SFR        Crossbar Control                          P2.0

                                                         Bus                                          Port 2

            System Clock Setup                                                                   Drivers      P2.1/C2D

                                 XTAL1  XTAL2

            Internal Oscillator  External Oscillator           Analog Peripherals

            (±0.5%)

                                                                         Voltage

                      Clock Multiplier                                   Reference     VREF

                                                               VDD       VREF

                                                                                       VDD

                                                               12-bit               A  VREF

                                                               200ksps              M  P0 – P2

                                                               ADC                  U  Temp

                                                                                    X  Sensor

                                                                                       GND

                                                                         CP0, CP0A     +

                                                                         Comparator 0  -

    GNDA

                                                                         CP1, CP1A     +

                                                                         Comparator 1  -

                          Figure 1.3. C8051F550-7              (24-pin) Block                Diagram

19                                                       Rev.  1.2
                                                                  C8051F55x/56x/57x

2.  Ordering Information

The following features are common to all devices in this family:

   50 MHz system clock and 50 MIPS throughput (peak)

   2304 bytes of RAM (256 internal bytes and 2048 XRAM  bytes)

   SMBus/I2C, Enhanced SPI, Enhanced UART

   Four Timers

   Six Programmable Counter Array channels

   Internal 24 MHz oscillator

   Internal Voltage Regulator

   12-bit, 200 ksps ADC

   Internal Voltage Reference and Temperature Sensor

   Two Analog Comparators

Table 2.1 shows the feature that differentiate the devices in this family.

                                                       Rev. 1.2             20
C8051F55x/56x/57x

Table 2.1. Product Selection Guide

Ordering Part Number  Flash Memory (kB)  CAN2.0B  LIN2.1  Digital Port I/Os  External Mem. Interface  Package  Ordering Part Number  Flash Memory (kB)  CAN2.0B  LIN2.1  Digital Port I/Os  External Mem. Interface  Package

C8051F550-IM          32                                18                 —                        QFN-24   C8051F564-IM          16                                25                 —                        QFN-32

C8051F551-IM          32                         —       18                 —                        QFN-24   C8051F564-IQ          16                                25                 —                        QFP-32

C8051F552-IM          32                 —               18                 —                        QFN-24   C8051F565-IM          16                         —       25                 —                        QFN-32

C8051F553-IM          32                 —        —       18                 —                        QFN-24   C8051F565-IQ          16                         —       25                 —                        QFP-32

C8051F554-IM          16                                18                 —                        QFN-24   C8051F566-IM          16                 —               25                 —                        QFN-32

C8051F555-IM          16                         —       18                 —                        QFN-24   C8051F566-IQ          16                 —               25                 —                        QFP-32

C8051F556-IM          16                 —               18                 —                        QFN-24   C8051F567-IM          16                 —        —       25                 —                        QFN-32

C8051F557-IM          16                 —        —       18                 —                        QFN-24   C8051F567-IQ          16                 —        —       25                 —                        QFP-32

C8051F560-IM          32                                25                 —                        QFN-32   C8051F568-IM          32                                33                                         QFN-40

C8051F560-IQ          32                                25                 —                        QFP-32   C8051F569-IM          32                         —       33                                         QFN-40

C8051F561-IM          32                         —       25                 —                        QFN-32   C8051F570-IM          32                 —               33                                         QFN-40

C8051F561-IQ          32                         —       25                 —                        QFP-32   C8051F571-IM          32                 —        —       33                                         QFN-40

C8051F562-IM          32                 —               25                 —                        QFN-32   C8051F572-IM          16                                33                                         QFN-40

C8051F562-IQ          32                 —               25                 —                        QFP-32   C8051F573-IM          16                         —       33                                         QFN-40

C8051F563-IM          32                 —        —       25                 —                        QFN-32   C8051F574-IM          16                 —               33                                         QFN-40

C8051F563-IQ          32                 —        —       25                 —                        QFP-32   C8051F575-IM          16                 —        —       33                                         QFN-40

Note:                 The suffix of the part number indicates the device rating and the package. All devices are RoHS compliant.

All devices in Table 2.1 are also available in an automotive version. For the automotive version, the -I in the

ordering part number is replaced with -A. For example, the automotive version of the C8051F550-IM is the

C8051F550-AM.

The -AM and -AQ devices receive full automotive quality production status, including AEC-Q100 qualifica-

tion, registration with International Material Data System (IMDS) and Part Production Approval Process

(PPAP) documentation. PPAP documentation is available at www.silabs.com with a registered and NDA

approved user account. The -AM and -AQ devices enable high volume automotive OEM applications with

their enhanced testing and processing. Please contact Silicon Labs sales for more information regarding

–AM and -AQ devices for your automotive project.

21                                                                                                             Rev. 1.2
                                                            C8051F55x/56x/57x

3.  Pin   Definitions

                    Table 3.1.  Pin Definitions for the C8051F55x/56x/57x

Name      Pin          Pin      Pin          Type                       Description

          40-pin    32-pin      24-pin

          packages  packages    packages

    VDD   4            4        3                           Digital Supply Voltage. Must be connected.

    GND   6            6        4                           Digital Ground. Must be connected.

VDDA      5            5        —                           Analog Supply Voltage. Must be connected.

GNDA      7            7        5                           Analog Ground. Must be connected.

VREGIN    3            3        2                           Voltage Regulator Input

    VIO   2            2        1                           Port I/O Supply Voltage. Must be connected.

    RST/  10           10       8            D I/O          Device Reset. Open-drain output of internal

                                                            POR or VDD Monitor.

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

P4.0/     9            —        —         D I/O or A In     Port 4.0. See SFR Definition 19.28.

    C2D                                      D I/O          Bi-directional data signal for the C2 Debug

                                                            Interface.

P3.0/                  9        —         D I/O or A In     Port 3.0. See SFR Definition 19.24.

    C2D                                      D I/O          Bi-directional data signal for the C2 Debug

                                                            Interface.

P2.1/                  —        7         D I/O or A In     Port 2.1. See SFR Definition 19.20.

    C2D                                      D    I/O       Bi-directional data signal for the C2 Debug

                                                            Interface.

    P0.0  8            8        6         D  I/O  or A  In  Port 0.0. See SFR Definition 19.12.

    P0.1  1            1        24        D  I/O  or A  In  Port 0.1

    P0.2  40           32       23        D  I/O  or A  In  Port 0.2

    P0.3  39           31       22        D  I/O  or A  In  Port 0.3

    P0.4  38           30       21        D  I/O  or A  In  Port 0.4

    P0.5  37           29       20        D  I/O  or A  In  Port 0.5

    P0.6  36           28       19        D  I/O  or A  In  Port 0.6

    P0.7  35           27       18        D  I/O  or A  In  Port 0.7

                                                  Rev. 1.2                                               22
C8051F55x/56x/57x

          Table     3.1. Pin Definitions for the C8051F55x/56x/57x (Continued)

Name      Pin       Pin       Pin          Type                       Description

          40-pin    32-pin    24-pin

          packages  packages  packages

    P1.0  34        26        17        D  I/O  or  A  In  Port 1.0. See SFR Definition 19.16.

    P1.1  33        25        16        D  I/O  or  A  In  Port 1.1.

    P1.2  32        24        15        D  I/O  or  A  In  Port 1.2.

    P1.3  31        23        14        D  I/O  or  A  In  Port 1.3.

    P1.4  30        22        13        D  I/O  or  A  In  Port 1.4.

    P1.5  29        21        12        D  I/O  or  A  In  Port 1.5.

    P1.6  28        20        11        D  I/O  or  A  In  Port 1.6.

    P1.7  27        19        10        D  I/O  or  A  In  Port 1.7.

    P2.0  26        18        9         D  I/O  or  A  In  Port 2.0. See SFR Definition 19.20.

    P2.1  25        17        —         D  I/O  or  A  In  Port 2.1.

    P2.2  24        16        —         D  I/O  or  A  In  Port 2.2.

    P2.3  23        15        —         D  I/O  or  A  In  Port 2.3.

    P2.4  22        14        —         D  I/O  or  A  In  Port 2.4.

    P2.5  21        13        —         D  I/O  or  A  In  Port 2.5.

    P2.6  20        12        —         D  I/O  or  A  In  Port 2.6.

    P2.7  19        11        —         D  I/O  or  A  In  Port 2.7.

    P3.0  18        —         —         D  I/O  or  A  In  Port 3.0. See SFR Definition 19.24.

    P3.1  17        —         —         D  I/O  or  A  In  Port 3.1.

    P3.2  16        —         —         D  I/O  or  A  In  Port 3.2.

    P3.3  15        —         —         D  I/O  or  A  In  Port 3.3.

    P3.4  14        —         —         D  I/O  or  A  In  Port 3.4.

    P3.5  13        —         —         D  I/O  or  A  In  Port 3.5.

    P3.6  12        —         —         D  I/O  or  A  In  Port 3.6.

    P3.7  11        —         —         D  I/O  or  A  In  Port 3.7.

23                                      Rev. 1.2
                                                                           C8051F55x/56x/57x

                   XTAL1  XTAL2  UART0 TX  UART0 RX  CAN TX  CAN RX

                   /      /      /         /         /       /

                   P0.2   P0.3   P0.4      P0.5      P0.6    P0.7    P1.0  P1.1  P1.2  P1.3

                   40     39     38        37        36      35      34    33    32    31

P0.1 / CNVSTR  1                                                                             30  P1.4

VIO            2                                                                             29  P1.5

VREGIN         3                           C8051F568-IM                                      28  P1.6

                                           C8051F569-IM

VDD            4                           C8051F570-IM                                      27  P1.7

VDDA           5                           C8051F571-IM                                      26  P2.0

                                           C8051F572-IM

GND            6                           C8051F573-IM                                      25  P2.1

                                           C8051F574-IM

GNDA           7                           C8051F575-IM                                      24  P2.2

P0.0 / VREF    8                           (Top View)                                        23  P2.3

                                                     GND

P4.0 / C2D     9                                                                             22  P2.4

RST / C2CK     10                                                                            21  P2.5

                   11     12     13        14        15      16      17    18    19    20

                   P3.7   P3.6   P3.5      P3.4      P3.3    P3.2    P3.1  P3.0  P2.7  P2.6

               Figure  3.1.  QFN-40 Pinout Diagram                         (Top  View)

                                                     Rev. 1.2                                          24
C8051F55x/56x/57x

                      XTAL1       XTAL2       UART0 TX  UART0 RX  CAN TX  CAN RX

                      /           /           /         /         /       /

                      P0.2        P0.3        P0.4      P0.5      P0.6    P0.7    P1.0  P1.1

                      32          31          30        29        28      27      26    25

    P0.1 / CNVSTR  1                          C8051F560-IQ                                    24  P1.2

    VIO            2                          C8051F561-IQ                                    23  P1.3

    VREGIN         3                          C8051F562-IQ                                    22  P1.4

    VDD            4                          C8051F563-IQ                                    21  P1.5

                                              C8051F564-IQ

    VDDA           5                          C8051F565-IQ                                    20  P1.6

    GND            6                          C8051F566-IQ                                    19  P1.7

    GNDA           7                          C8051F567-IQ                                    18  P2.0

                                              (Top View)

    P0.0 / VREF    8                                                                          17  P2.1

                      9           10          11        12        13      14      15    16

                      P3.0 / C2D  RST / C2CK  P2.7      P2.6      P2.5    P2.4    P2.3  P2.2

                      Figure 3.2. QFP-32 Pinout Diagram (Top View)

25                                            Rev. 1.2
                                                                                                    C8051F55x/56x/57x

                       P0.2 / XTAL1  P0.3 / XTAL2  P0.4 / UART0 TX  P0.5 / UART0 RX  P0.6 / CAN TX  P0.7 / CAN RX  P1.0  P1.1

                       32            31            30               29               28             27             26    25

P0.1 / CNVSTR  1                                                                                                               24  P1.2

VIO            2                                   C8051F560-IM                                                                23  P1.3

                                                   C8051F561-IM

VREGIN         3                                   C8051F562-IM                                                                22  P1.4

VDD            4                                   C8051F563-IM                                                                21  P1.5

                                                   C8051F564-IM

VDDA           5                                   C8051F565-IM                                                                20  P1.6

                                                   C8051F566-IM

GND            6                                   C8051F567-IM                                                                19  P1.7

GNDA           7                                                    (Top View)                                                 18  P2.0

                                                                    GND

P0.0 / VREF    8                                                                                                               17  P2.1

                       9             10            11               12               13             14             15    16

                       P3.0 / C2D    RST / C2CK    P2.7             P2.6             P2.5           P2.4           P2.3  P2.2

               Figure  3.3.  QFN-32                Pinout Diagram (Top                                             View)

                                                                    Rev. 1.2                                                       26
C8051F55x/56x/57x

                       P0.1/CNVSTR  P0.2/XTAL1  P0.3/XTAL2       P0.4/UART0 TX  P0.5/UART0 RX  P0.6/CAN0 TX

                       24           23          22               21             20             19

    VIO        1                                                                                             18     P0.7/CAN0 RX

                                                C8051F550-IM

    VREGIN     2                                C8051F551-IM                                                 17     P1.0

                                                C8051F552-IM

    VDD        3                                C8051F553-IM                                                 16     P1.1

                                                C8051F554-IM

    GND        4                                C8051F555-IM                                                 15     P1.2

                                                C8051F556-IM

                                                C8051F557-IM

    GNDA       5                                (Top View)                                                   14     P1.3

                                                            GND

    P0.0/VREF  6                                                                                             13     P1.4

                       7            8           9                10             11             12

                       P2.1/C2D     RST/C2CK    P2.0             P1.7           P1.6           P1.5

               Figure  3.4.         QFN-24 Pinout Diagram                                      (Top          View)

27                                              Rev. 1.2
                                                                       C8051F55x/56x/57x

4.    Package Specifications

4.1.  QFN-40 Package Specifications

                           Figure 4.1. QFN-40 Package Drawing

                           Table 4.1. QFN-40 Package Dimensions

      Dimension  Min       Typ       Max   Dimension                   Min           Typ               Max

          A      0.80      0.85      0.90                         E2   4.00          4.10              4.20

      A1         0.00                0.05                         L    0.35          0.40              0.45

          b      0.18      0.23      0.28                         L1                                   0.10

          D                6.00 BSC                               aaa                                  0.10

      D2         4.00      4.10      4.20                         bbb                                  0.10

          e                0.50 BSC                               ddd                                  0.05

          E                6.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 JEDEC Solid State Outline MO-220, variation VJJD-5, except for

              features A, D2, and E2 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.2                                                          28
C8051F55x/56x/57x

                         Figure 4.2. QFN-40 Landing Diagram

                         Table 4.2. QFN-40 Landing Diagram Dimensions

    Dimension            Min                      Max                Dimension    Min                 Max

             C1          5.80                     5.90               X2           4.10                4.20

             C2          5.80                     5.90               Y1           0.75                0.85

             e                          0.50 BSC                     Y2           4.10                4.20

             X1          0.15                     0.25

    Notes:

    General

    1.      All dimensions shown are in millimeters (mm) unless otherwise noted.

    2.      Dimension and Tolerancing is per the ANSI Y14.5M-1994 specification.

    3.      This Land Pattern Design is based on the 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 4x4 array of 0.80 mm square openings on a 1.05 mm pitch should be used for the center ground pad.

    Card Assembly

    10. A No-Clean, Type-3 solder paste is recommended.

    11. Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body

            Components.

29                                                      Rev. 1.2
                                                                       C8051F55x/56x/57x

4.2.  QFP-32 Package Specifications

                           Figure 4.3. QFP-32 Package Drawing

                           Table 4.3. QFP-32 Package Dimensions

      Dimension  Min       Typ        Max   Dimension                            Min    Typ        Max

          A      —         —          1.60                        E                     9.00 BSC.

      A1         0.05      —          0.15                        E1                    7.00 BSC.

      A2         1.35      1.40       1.45                        L              0.45   0.60       0.75

          b      0.30      0.37       0.45                        aaa                   0.20

          c      0.09      —          0.20                        bbb                   0.20

          D                9.00 BSC.                              ccc                   0.10

      D1                   7.00 BSC.                              ddd                   0.20

          e                0.80 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 the JEDEC outline MS-026, variation BBA.

      4.      Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body

              Components.

                                            Rev. 1.2                                                       30
C8051F55x/56x/57x

                         Figure 4.4. QFP-32 Landing Diagram

                         Table 4.4. QFP-32 Landing Diagram Dimensions

    Dimension            Min                      Max             Dimension       Min                    Max

             C1          8.40                     8.50            X1              0.40                   0.50

             C2          8.40                     8.50            Y1              1.25                   1.35

             E                          0.80 BSC

    Notes:

    General

    1.      All dimensions shown are in millimeters (mm) unless otherwise noted.

    2.      This Land Pattern Design is based on the IPC-7351 guidelines.

    Solder Mask Design

    3.      All metal pads are to be non-solder mask defined (NSMD). Clearance between the solder mask and the

            metal pad is to be 60 μm minimum, all the way around the pad.

    Stencil Design

    4.      A stainless steel, laser-cut and electro-polished stencil with trapezoidal walls should be used to assure

            good solder paste release.

    5.      The stencil thickness should be 0.125 mm (5 mils).

    6.      The ratio of stencil aperture to land pad size should be 1:1 for all perimeter pads.

    Card Assembly

    7.      A No-Clean, Type-3 solder paste is recommended.

    8.      Recommended card reflow profile is per the JEDEC/IPC J-STD-020 specification for Small Body

            Components.

31                                                      Rev. 1.2
                                                                       C8051F55x/56x/57x

4.3.  QFN-32 Package Specifications

                           Figure 4.5. QFN-32 Package Drawing

                           Table 4.5. QFN-32 Package Dimensions

      Dimension  Min       Typ        Max   Dimension                  Min                  Typ         Max

          A      0.80      0.9        1.00                        E2   3.20                 3.30        3.40

      A1         0.00      0.02       0.05                        L    0.30                 0.40        0.50

          b      0.18      0.25       0.30                        L1   0.00                 —           0.15

          D                5.00 BSC.                              aaa               —       —           0.15

      D2         3.20      3.30       3.40                        bbb               —       —           0.15

          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, 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.2                                                          32
C8051F55x/56x/57x

                         Figure 4.6. QFN-32 Landing Diagram

                         Table 4.6. QFN-32 Landing Diagram Dimensions

    Dimension            Min                      Max             Dimension       Min                    Max

             C1          4.80                     4.90            X2              3.20                   3.40

             C2          4.80                     4.90            Y1              0.75                   0.85

             e                          0.50 BSC                  Y2              3.20                   3.40

             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 3x3 array of 1.0 mm openings on a 1.20 mm pitch should be used for the center ground 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.

33                                                      Rev. 1.2
                                                                       C8051F55x/56x/57x

4.4.  QFN-24 Package Specifications

                           Figure 4.7. QFN-24 Package Drawing

                           Table 4.7. 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.2                                                        34
C8051F55x/56x/57x

                         Figure 4.8. QFN-24 Landing Diagram

                         Table 4.8. QFN-24 Landing Diagram Dimensions

    Dimension            Min                      Max             Dimension       Min             Max

             C1          3.90                     4.00            X2              2.70            2.80

             C2          3.90                     4.00            Y1              0.65            0.75

             E                          0.50 BSC                  Y2              2.70            2.80

             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 ground

            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.

35                                                      Rev. 1.2
                                                                              C8051F55x/56x/57x

5.    Electrical Characteristics

5.1.   Absolute Maximum Specifications

Table 5.1. Absolute Maximum Ratings

                     Parameter                      Conditions                Min   Typ  Max                           Units

Ambient Temperature under Bias                                                –55   —    135                           °C

Storage Temperature                                                           –65   —    150                           °C

Voltage on VREGIN with Respect to GND                                         –0.3  —    5.5                           V

Voltage on VDD with Respect to GND                                            –0.3  —    2.8                           V

Voltage on VDDA with Respect to GND                                           –0.3  —    2.8                           V

Voltage on VIO with Respect to GND                                            –0.3  —    5.5                           V

Voltage on any Port I/O Pin or RST with Respect to                            –0.3  —    VIO + 0.3                     V

GND

Maximum Total Current through VREGIN or GND                                   —     —    500                           mA

Maximum Output Current Sunk by RST or any Port Pin                            —     —    100                           mA

Maximum Output Current Sourced by any Port Pin                                —     —    100                           mA

Note:  Stresses outside of the range of the “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

       outside of 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.2                                                           36
C8051F55x/56x/57x

5.2.    Electrical Characteristics

Table 5.2. Global Electrical Characteristics

–40 to +125 °C, 24 MHz system clock unless otherwise specified.

        Parameter                                       Conditions                   Min    Typ  Max     Units

Supply Input Voltage (VREGIN)                                                        1.8    —    5.25    V

Digital Supply Voltage (VDD)            System Clock < 25 MHz                        VRST1  —    2.75

                                                                                     2      —    2.75    V

                                        System Clock > 25 MHz

Analog Supply Voltage (VDDA)            System Clock < 25 MHz                        VRST1  —    2.75

                                                                                     2      —    2.75    V

(Must be connected to VDD)              System Clock > 25 MHz

Port I/O Supply Voltage (VIO)           Normal Operation                             1.82   —    5.25    V

Digital Supply RAM Data                                                              —      1.5  —       V

Retention Voltage

SYSCLK (System Clock)3                                                               0      —    50      MHz

TSYSH (SYSCLK High Time)                                                             9      —    —       ns

TSYSL (SYSCLK Low Time)                                                              9      —    —       ns

Specified Operating                                                                  –40    —    +125    °C

Temperature Range

Digital Supply Current—CPU Active (Normal Mode, fetching instructions                       from Flash)

IDD4                                    VDD = 2.1 V, F = 200 kHz                     —      85   —       µA

                                        VDD = 2.1 V, F = 1.5 MHz                     —      660  —       µA

                                        VDD = 2.1 V, F = 25 MHz                      —      9.2  11      mA

                                        VDD = 2.1 V, F = 50 MHz                      —      17   21      mA

IDD4                                    VDD = 2.6 V, F = 200 kHz                     —      120  —       µA

                                        VDD = 2.6 V, F = 1.5 MHz                     —      920  —       µA

                                        VDD = 2.6 V, F = 25 MHz                      —      13   21      mA

                                        VDD = 2.6 V, F = 50 MHz                      —      22   33      mA

IDD Supply Sensitivity4                 F = 25 MHz                                   —      68   —       %/V

                                        F = 1 MHz                                    —      77   —       %/V

Notes:

    1.  Given in Table 5.4 on page 41.

    2.  VIO should not be lower than the VDD voltage.

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

    4.  Guaranteed by characterization. Does not include oscillator supply current.

    5.  IDD estimation for different frequencies.

    6.  Idle IDD estimation for different frequencies.

37                                                      Rev. 1.2
                                                                        C8051F55x/56x/57x

Table 5.2. Global Electrical Characteristics            (Continued)

–40 to +125 °C, 24 MHz system clock unless otherwise specified.

        Parameter                                       Conditions                   Min  Typ   Max     Units

IDD Frequency Sensitivity 4,5           VDD = 2.1 V, F < 12.5 MHz, T =               —    0.43  —       mA/MHz

                                        25 °C

                                        VDD = 2.1 V, F > 12.5 MHz, T =               —    0.33  —       mA/MHz

                                        25 °C

                                        VDD = 2.6 V, F < 12.5 MHz, T =               —    0.60  —       mA/MHz

                                        25 °C

                                        VDD = 2.6 V, F > 12.5 MHz, T =               —    0.42  —       mA/MHz

                                        25 °C

Digital Supply Current—CPU Inactive (Idle Mode, not fetching instructions from                  Flash)

IDD4                                    VDD = 2.1 V, F = 200 kHz                     —    50    —       µA

                                        VDD = 2.1 V, F = 1.5 MHz                     —    410   —       µA

                                        VDD = 2.1 V, F = 25 MHz                      —    6.5   8.0     mA

                                        VDD = 2.1 V, F = 50 MHz                      —    13    16      mA

IDD4                                    VDD = 2.6 V, F = 200 kHz                     —    67    —       µA

                                        VDD = 2.6 V, F = 1.5 MHz                     —    530   —       µA

                                        VDD = 2.6 V, F = 25 MHz                      —    8.0   15      mA

                                        VDD = 2.6 V, F = 50 MHz                      —    16    25      mA

IDD Supply Sensitivity4                 F = 25 MHz                                   —    55    —       %/V

                                        F = 1 MHz                                    —    58    —

IDD Frequency Sensitivity 4.6           VDD = 2.1V, F < 12.5 MHz, T = 25 °C          —    0.26  —

                                        VDD = 2.1V, F > 12.5 MHz, T = 25 °C          —    0.26  —

                                        VDD = 2.6V, F < 12.5 MHz, T = 25 °C          —    0.34  —       mA/MHz

                                        VDD = 2.6V, F > 12.5 MHz, T = 25 °C          —    0.34  —

Digital Supply Current4                 Oscillator not running,

(Stop or Suspend Mode)                  VDD Monitor Disabled

                                        Temp = 25 °C                                 —    1     —       µA

                                        Temp = 60 °C                                 —    6     —

                                        Temp= 125 °C                                 —    70    —

Notes:

1.      Given in Table 5.4 on page 41.

2.      VIO should not be lower than the VDD voltage.

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

4.      Guaranteed by characterization. Does not include oscillator supply current.

5.      IDD estimation for different frequencies.

6.      Idle IDD estimation for different frequencies.

                                                        Rev. 1.2                                               38
C8051F55x/56x/57x

       Figure 5.1. Minimum VDD Monitor Threshold vs. System Clock Frequency

Note:  With system clock frequencies greater than 25 MHz, the VDD monitor level should be set to the high threshold

       (VDMLVL = 1b in SFR VDM0CN) to prevent undefined CPU operation. The high threshold should only be used

       with an external regulator powering VDD directly. See Figure 9.2 on page 80 for the recommended power

       supply connections.

39                          Rev. 1.2
                                                                      C8051F55x/56x/57x

Table 5.3. Port I/O DC Electrical Characteristics

VDD = 1.8 to 2.75 V, –40 to +125 °C unless otherwise specified.

Parameters                          Conditions                        Min         Typ        Max        Units

Output High Voltage  IOH = –3 mA, Port I/O push-pull                  VIO – 0.4   —          —          V

                     IOH = –10 µA, Port I/O push-pull                 VIO – 0.02  —          —

                     IOH = –10 mA, Port I/O push-pull                 —           VIO – 0.7  —

Output Low Voltage   VIO = 1.8 V:

                     IOL = 70 µA                                      —           —          50

                     IOL = 8.5 mA                                     —           —          750

                     VIO = 2.7 V:

                     IOL = 70 µA                                      —           —          45         mV

                     IOL = 8.5 mA                                     —           —          550

                     VIO = 5.25 V:

                     IOL = 70 µA                                      —           —          40

                     IOL = 8.5 mA                                     —           —          400

Input High Voltage   VREGIN = 5.25 V                                  0.7 x VIO   —                     V

Input Low Voltage    VREGIN = 2.7 V                                   —           —          0.3 x VIO  V

                     Weak Pullup Off                                  —           —          ±2

                     Weak Pullup On, VIO = 2.1 V,

                     VIN = 0 V, VDD = 1.8 V                           —           7          9

Input Leakage        Weak Pullup On, VIO = 2.6 V,                                                       µA

Current              VIN = 0 V, VDD = 2.6 V

                                                                      —           17         22

                     Weak Pullup On, VIO = 5.0 V,

                     VIN = 0 V, VDD = 2.6 V                           —           49         115

                                                      Rev.       1.2                                    40
C8051F55x/56x/57x

Table 5.4. Reset Electrical Characteristics

–40 to +125 °C unless otherwise specified.

            Parameter                       Conditions                        Min     Typ           Max            Units

RST Output Low Voltage                VIO = 5 V; IOL = 70 µA                  —       —             40             mV

RST Input High Voltage                                                  0.7 x VIO     —             —

RST Input Low Voltage                                                         —       —             0.3 x VIO

RST Input Pullup Current              RST = 0.0 V, VIO = 5 V                  —       49            115            µA

VDD RST Threshold (VRST-LOW)                                                  1.65    1.75          1.80           V

VDD RST Threshold (VRST-HIGH)                                                 2.25    2.30          2.45           V

VREGIN Ramp Time for Power On         VREGIN Ramp 0–1.8 V                     —       —             1              ms

                                      Time from last system clock

                                      rising edge to reset initiation

Missing Clock Detector Timeout        VDD = 2.1 V                             200     340           600            µs

                                      VDD = 2.5 V                             200     250           600

                                      Delay between release of

Reset Time Delay                      any reset source and code               —       155           175            µs

                                      execution at location 0x0000

Minimum RST Low Time to                                                       6       —             —              µs

Generate a System Reset

VDD Monitor Turn-on Time                                                      —       60            100            µs

VDD Monitor Supply Current                                                    —             1       2              µA

Table 5.5. Flash Electrical Characteristics

VDD = 1.8 to 2.75 V, –40 to +125 °C unless otherwise specified.

        Parameter                  Conditions                     Min            Typ        Max           Units

                          C8051F550-3, ‘F560-3,                               327681

Flash Size                ‘F568-9, and ‘F570-1                                                            Bytes

                          C8051F554-7, ‘F564-7, and                           16384

                          ‘F572-5

Endurance                                                         20 k        150 k            —    Erase/Write

Retention                 125 °C                                  10             —             —          Years

Erase Cycle Time          25 MHz System Clock                     28             30            45              ms

Write Cycle Time          25 MHz System Clock                     79             84            125             µs

VDD                       Write/Erase operations                  VRST-HIGH2     —             —               V

Temperature during        –I Devices                              0              —          +125

Programming Opera-        –A Devices                              –40            —          +125               °C

tions

    1.  On the 32 kB Flash devices, 1024 bytes at addresses 0x7C00 to 0x7FFF are reserved.

    2.  See Table 5.4 for the VRST-HIGH specification.

41                                                      Rev. 1.2
                                                               C8051F55x/56x/57x

Table 5.6. Internal High-Frequency Oscillator Electrical Characteristics

VDD = 1.8 to 2.75 V, –40 to +125 °C unless otherwise specified; Using factory-calibrated settings.

    Parameter                     Conditions                   Min               Typ                Max    Units

Oscillator Frequency         IFCN = 111b;                      24 – 0.5%         242    24 + 0.5%          MHz

                             VDD > VREGMIN1

                             IFCN = 111b;                      24 – 1.0%         242    24 + 1.0%

                             VDD < VREGMIN1

Oscillator Supply Current    Internal Oscillator On                         —    880                1300   µA

(from VDD)                   OSCICN[7:6] = 11b

Internal Oscillator Suspend  Temp = 25 °C                                   —    67                 —

OSCICN[7:6] = 00b            Temp = 85 °C                                        90

ZTCEN = 1                    Temp = 125 °C                                       130

Wake-up Time From Suspend    OSCICN[7:6] = 00b                              —    1                  —      µs

Power Supply Sensitivity     Constant Temperature                           —    0.11               —      %/V

Temperature Sensitivity3     Constant Supply

                             TC1                                            —    5.0                —      ppm/°C

                             TC2                                            —    –0.65              —      ppm/°C2

1.  VREGMIN is the minimum output of the voltage regulator for its low setting (REG0CN: REG0MD = 0b). See

    Table 5.8, “Voltage Regulator Electrical Characteristics,” on page 43.

2.  This is the average frequency across the operating temperature range

3.  Use temperature coefficients TC1 and TC2 to calculate the new internal oscillator frequency using the

    following equation:

                             f(T) = f0 x (1 + TC1 x (T - T0) + TC2 x (T - T0)2)

    where f0 is the internal oscillator frequency at 25 °C and T0 is 25 °C.

                                                     Rev. 1.2                                                   42
C8051F55x/56x/57x

Table 5.7. Clock Multiplier Electrical Specifications

VDD = 1.8 to 2.75 V, –40 to +125 °C unless otherwise specified.

           Parameter          Conditions                         Min                     Typ   Max    Units

Input Frequency (Fcmin)                                          2                       —     —      MHz

Output Frequency                                                 —                       —     50     MHz

Power Supply Current                                             —                       0.9   1.9    mA

Table 5.8. Voltage Regulator Electrical Characteristics

VDD = 1.8 to 2.75 V, –40 to +125 °C unless otherwise specified.

           Parameter          Conditions                         Min                     Typ   Max    Units

Input Voltage Range (VREGIN)                                     1.8*                    —     5.25   V

Dropout Voltage (VDO)         Maximum Current = 50 mA            —                       10    —      mV/mA

Output Voltage (VDD)          2.1 V operation (REG0MD = 0)       2.0                     2.1   2.25   V

                              2.6 V operation (REG0MD = 1)       2.5                     2.6   2.75

Bias Current                                                     —                       1     9      µA

Dropout Indicator Detection   With respect to VDD                –0.21                   —     –0.02  V

Threshold

Output Voltage Temperature                                       —                       0.29  —      mV/°C

Coefficient

VREG Settling Time            50 mA load with VREGIN = 2.4 V     —                       450   —      µs

                              and VDD load capacitor of 4.8 µF

*Note:  The minimum input voltage is 1.8 V or VDD + VDO(max load), whichever is greater

43                            Rev. 1.2
                                                                        C8051F55x/56x/57x

Table 5.9. ADC0 Electrical Characteristics

VDDA = 1.8 to 2.75 V, –40 to +125 °C, VREF = 1.5 V (REFSL=0) unless otherwise specified.

            Parameter                        Conditions                 Min          Typ   Max               Units

DC Accuracy

Resolution                                                                           12                         bits

Integral Nonlinearity                                                   —            ±0.5  ±3                   LSB

Differential Nonlinearity          Guaranteed Monotonic                 —            ±0.5  ±1                   LSB

Offset Error1                                                           –10          3.0   10                   LSB

Full Scale Error                                                        –20          5.7   20                   LSB

Offset Temperature Coefficient                                          —            7.7   —                 ppm/°C

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

Signal-to-Noise Plus Distortion                                         63           65    —                    dB

Total Harmonic Distortion          Up to the 5th harmonic;              —            80    —                    dB

Spurious-Free Dynamic Range                                             —            -82   —                    dB

Conversion Rate

SAR Conversion Clock                                                    —            —     3.6                  MHz

Conversion Time in SAR Clocks2                                          13           —     —                 clocks

Track/Hold Acquisition Time3       VDDA > 2.0 V                         1.5          —     —                    µs

                                   VDDA < 2.0 V                         3.5          —     —

Throughput Rate4                   VDDA > 2.0 V                         —            —     200                  ksps

Analog Inputs

ADC Input Voltage Range5           gain = 1.0 (default)                 0            —     VREF                 V

                                   gain = n                             0                  VREF / n

Absolute Pin Voltage with respect                                       0            —     VIO                  V

to GND

Sampling Capacitance                                                    —            31    —                    pF

Input Multiplexer Impedance                                             —            3     —                    kΩ

Power Specifications

Power Supply Current               Operating Mode, 200 ksps             —            1100  1500                 µA

(VDDA supplied to ADC0)

Burst Mode (Idle)                                                       —            1100  1500                 µA

Power-On Time                                                           5            —     —                    µs

Power Supply Rejection                                                  —            –60   —                 mV/V

Notes:

1.      Represents one standard deviation from the mean. Offset and full-scale error can be removed through

        calibration.

2.      An additional 2 FCLK cycles are required to start and complete a conversion

3.      Additional tracking time may be required depending on the output impedance connected to the ADC input.

        See Section “6.2.1. Settling Time Requirements” on page 52.

4.      An increase in tracking time will decrease the ADC throughput.

5.      See Section “6.3. Selectable Gain” on page 53 for more information about the setting the gain.

                                                         Rev. 1.2                                                     44
C8051F55x/56x/57x

Table 5.10. Temperature Sensor Electrical Characteristics

VDDA = 1.8 to 2.75 V, –40 to +125 °C unless otherwise specified.

             Parameter                          Conditions               Min        Typ      Max   Units

Linearity                                                                —          ±0.1     —     °C

Slope                                                                    —          3.33     —     mV/°C

Slope Error*                                                             —          88       —     µV/°C

Offset                           Temp = 0 °C                             —          856      —     mV

Offset Error*                    Temp = 0 °C                             —          ±14      —     mV

Power Supply Current                                                     —          18       —     µA

Tracking Time                                                            12         —        —     µs

*Note:  Represents one standard  deviation from the mean.

Table 5.11. Voltage Reference Electrical Characteristics

VDDA = 1.8 to 2.75 V, –40 to +125 °C unless otherwise specified.

           Parameter                            Conditions                    Min      Typ   Max   Units

Internal Reference (REFBE = 1)

Output Voltage                   25 °C ambient (REFLV = 0)                    1.45  1.50     1.55

                                 25 °C ambient (REFLV = 1), VDD =   2.6  V    2.15  2.20     2.25  V

VREF Short-Circuit Current                                                    —           5  10    mA

VREF Temperature                                                              —          38  —     ppm/°C

Coefficient

Power Consumption                Internal                                     —          30  50    µA

Load Regulation                  Load = 0 to 200 µA to AGND                   —           3  —     µV/µA

VREF Turn-on Time 1              4.7 µF tantalum and 0.1 µF bypass            —         1.5  —     ms

VREF Turn-on Time 2              0.1 µF bypass                                —          46  —     µs

Power Supply Rejection                                                        —         1.2  —     mV/V

External Reference (REFBE = 0)

Input Voltage Range                                                           1.5        —   VDDA  V

Input Current                    Sample Rate = 200 ksps; VREF = 1.5 V         —         2.1  —     µA

Power Specifications

Reference Bias Generator         REFBE = 1 or TEMPE = 1                       —          21  40    µA

45                                              Rev. 1.2
                                                                       C8051F55x/56x/57x

Table 5.12. Comparator 0 and Comparator 1 Electrical                   Characteristics

VIO = 1.8 to 5.25 V, –40 to +125 °C unless otherwise noted.

        Parameter                         Conditions                   Min    Typ       Max         Units

Response Time:                    CPn+ – CPn– = 100 mV                 —      330       —           ns

Mode 0, Vcm* = 1.5 V              CPn+ – CPn– = –100 mV                —      390       —           ns

Response Time:                    CPn+ – CPn– = 100 mV                 —      490       —           ns

Mode 1, Vcm* = 1.5 V              CPn+ – CPn– = –100 mV                —      610       —           ns

Response Time:                    CPn+ – CPn– = 100 mV                 —      590       —           ns

Mode 2, Vcm* = 1.5 V              CP0+ – CP0– = –100 mV                —      750       —           ns

Response Time:                    CPn+ – CPn– = 100 mV                 —      2300      —           ns

Mode 3, Vcm* = 1.5 V              CPn+ – CPn– = –100 mV                —      3100      —           ns

Common-Mode Rejection Ratio                                            —      2.1       13          mV/V

Positive Hysteresis 1             CPnHYP1–0 = 00                       -2     0         2           mV

Positive Hysteresis 2             CPnHYP1–0 = 01                       2      6         10          mV

Positive Hysteresis 3             CPnHYP1–0 = 10                       5      11        20          mV

Positive Hysteresis 4             CPnHYP1–0 = 11                       13     21        40          mV

Negative Hysteresis 1             CPnHYN1–0 = 00                       -2     0         2           mV

Negative Hysteresis 2             CPnHYN1–0 = 01                       2      5         10          mV

Negative Hysteresis 3             CPnHYN1–0 = 10                       5      11        20          mV

Negative Hysteresis 4             CPnHYN1–0 = 11                       13     21        40          mV

Inverting or Non-Inverting Input                                       –0.25  —         VIO + 0.25  V

Voltage Range

Input Capacitance                                                      —      8         —           pF

Input Offset Voltage                                                   –10    —         +10         mV

Power Supply

Power Supply Rejection                                                 —      0.18      —           mV/V

Power-up Time                                                          —      3         —           µs

                                  Mode 0                               —      6.3       20          µA

                                  Mode 1                               —      3.4       10          µA

Supply Current at DC

                                  Mode 2                               —      2.6       7.5         µA

                                  Mode 3                               —      0.6       3           µA

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

                                                             Rev. 1.2                                   46
                                                                                                                                                                                  C8051F55x/56x/57x

6.  12-Bit ADC (ADC0)

The ADC0 on the C8051F55x/56x/57x consists of an analog multiplexer (AMUX0) with 33, 25, or 18 total

input  selections     and          a  200 ksps,             12-bit                     successive-approximation-register                                                                                                               (SAR)                    ADC     with  integrated

track-and-hold, programmable window detector, programmable attenuation (1:2), and hardware accumula-

tor. The ADC0 subsystem has a special Burst Mode which can automatically enable ADC0, capture and

accumulate samples, then place ADC0 in a low power shutdown mode without CPU intervention. The

AMUX0, data conversion modes, and window detector are all configurable under software control via the

Special Function Registers shows in Figure 6.1. ADC0 inputs are single-ended and may be configured to

measure P0.0-P3.7, the Temperature Sensor output, VDD, or GND with respect to GND. The voltage refer-

ence   for  ADC0      is     selected          as  described                                    in  Section                                     “6.6. Temperature                                                             Sensor”                           on  page 67.    ADC0      is

enabled when the AD0EN bit in the ADC0 Control register (ADC0CN) is set to logic 1, or when performing

conversions in Burst Mode. ADC0 is in low power shutdown when AD0EN is logic 0 and no Burst Mode

conversions are taking place.

                                               ADC0MX                                                                      ADC0TK                                                                            ADC0CN

       P2.2-P2.7, P3.0 available                   ADC0MX4  ADC0MX3  ADC0MX2  ADC0MX1  ADC0MX0      AD0PWR3  AD0PWR2  AD0PWR1  AD0PWR0  AD0TM1  AD0TM0  AD0TK1   AD0TK0                     AD0EN   BURSTEN  AD0INT  AD0BUSY  AD0WINT  AD0LJST  AD0CM1  AD0CM0

       on 40-pin and 32-pin

            packages

       P3.1-P3.7 available on 40-

            pin packages

                                                                                                                                                                                                                                                                00      AD0BUSY (W)

            P0.0                                                                       Start                                                                                                VDD                                                 Start

                                                                              Conversion                                                                                                                                               Conversion               01      Timer 1 Overflow

                                                                                       SYSCLK                         Burst Mode                                                                                                                                10      CNVSTR Input

                                                                                                                               Logic

            P0.7                                                                                                                                                                                                                                                11      Timer 2 Overflow

            P1.0                                            Burst Mode                                               FCLK

                                                            Oscillator                                                                                                                                                                                  ADC0L

                                                            25 MHz Max

                                                                                                                                                                 12-Bit

            P1.7                                                     Selectable                                                                                           SAR

            P2.0                                                     Gain                                                                                                                                                                                               Accumulator

                                      35-to-1                                                                                                                    ADC                                                                                    ADC0H

                                      AMUX0

            P2.7

            P3.0                               ADC0GNH ADC0GNL                                                       ADC0GNA                                                      AD0TM1:0  AD0PRE  AD0POST  FCLK    REF

                                                                                                                                                                                                                                                                        AD0WINT

            P3.7                                                                                                                                                                                                                                                        Window

                  VDD                                                                                                                                   AD0RPT1  AD0RPT0                                                                                                Compare

                                                                                                             AD0SC4   AD0SC3   AD0SC2   AD0SC1  AD0SC0                    GAINEN                                                                                    32  Logic

            Temp Sensor                                                                                                                                                                     ADC0LTH                           ADC0LTL

                  GND

                                                                                                                               ADC0CF                                             ADC0GTH                                     ADC0GTL

                                      Figure 6.1. ADC0 Functional Block Diagram

                                                                                                                                       Rev. 1.2                                                                                                                                       47
C8051F55x/56x/57x

6.1.  Modes of Operation

In a typical system, ADC0 is configured using the following steps:

1.  If a gain adjustment is required, refer to Section “6.3. Selectable Gain” on page 53.

2.  Choose the start of conversion source.

3.  Choose Normal Mode or Burst Mode operation.

4.  If Burst Mode, choose the ADC0 Idle Power State and set the Power-up Time.

5.  Choose the tracking mode. Note that Pre-Tracking Mode can only be used with Normal Mode.

6.  Calculate the required settling time and set the post convert-start tracking time using the AD0TK bits.

7.  Choose the repeat count.

8.  Choose the output word justification (Right-Justified or Left-Justified).

9.  Enable or disable the End of Conversion and Window Comparator Interrupts.

6.1.1. Starting a Conversion

A conversion can be initiated in one of four ways, depending on the programmed states of the ADC0 Start

of Conversion Mode bits (AD0CM1–0) in register ADC0CN. Conversions may be initiated by one of the fol-

lowing:

   Writing a 1 to the AD0BUSY bit of register ADC0CN

   A rising edge on the CNVSTR input signal (pin P0.1)

   A Timer 1 overflow (i.e., timed continuous conversions)

   A Timer 2 overflow (i.e., timed continuous conversions)

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). Note: When polling for ADC conversion completions, the ADC0 interrupt flag (AD0INT)

should be used. Converted data is available in the ADC0 data registers, ADC0H:ADC0L, when bit AD0INT

is logic 1. Note that when Timer 2 overflows are used as the conversion source, Low Byte overflows are

used if Timer2 is in 8-bit mode; High byte overflows are used if Timer 2 is in 16-bit mode. See Section

“25. Timers” on page 259 for timer configuration.

Important Note About Using CNVSTR: The CNVSTR input pin also functions as Port pin P0.1. When the

CNVSTR input is used as the ADC0 conversion source, Port pin P0.1 should be skipped by the Digital

Crossbar. To configure the Crossbar to skip P0.1, set to 1 Bit1 in register P0SKIP. See Section “19. Port

Input/Output” on page 169 for details on Port I/O configuration.

6.1.2. Tracking Modes

Each ADC0 conversion must be preceded by a minimum tracking time for the converted result to be accu-

rate. ADC0 has three tracking modes: Pre-Tracking, Post-Tracking, and Dual-Tracking. Pre-Tracking Mode

provides the minimum delay between the convert start signal and end of conversion by tracking continu-

ously before the convert start signal. This mode requires software management in order to meet minimum

tracking requirements. In Post-Tracking Mode, a programmable tracking time starts after the convert start

signal and is managed by hardware. Dual-Tracking Mode maximizes tracking time by tracking before and

after the convert start signal. Figure 6.2 shows examples of the three tracking modes.

Pre-Tracking Mode is selected when AD0TM is set to 10b. Conversions are started immediately following

the convert start signal. ADC0 is tracking continuously when not performing a conversion. Software must

allow at least the minimum tracking time between each end of conversion and the next convert start signal.

The minimum tracking time must also be met prior to the first convert start signal after ADC0 is enabled.

48                                                 Rev. 1.2
                                                                  C8051F55x/56x/57x

Post-Tracking Mode is selected when AD0TM is set to 01b. A programmable tracking time based on

AD0TK is started immediately following the convert start signal. Conversions are started after the pro-

grammed tracking time ends. After a conversion is complete, ADC0 does not track the input. Rather, the

sampling capacitor remains disconnected from the input making the input pin high-impedance until the

next convert start signal.

Dual-Tracking Mode is selected when AD0TM is set to 11b. A programmable tracking time based on

AD0TK is started immediately following the convert start signal. Conversions are started after the pro-

grammed tracking time ends. After a conversion is complete, ADC0 tracks continuously until the next con-

version is started.

Depending on the output connected to the ADC input, additional tracking time, more than is specified in

Table 5.9, may be required after changing MUX settings. See the settling time requirements described in

Section “6.2.1. Settling Time Requirements” on page 52.

Convert Start

Pre-Tracking         Track         Convert                        Track  Convert ...

AD0TM = 10

Post-Tracking        Idle   Track           Convert               Idle   Track              Convert..

AD0TM= 01

Dual-Tracking        Track  Track           Convert               Track  Track              Convert..

AD0TM = 11

                            Figure 6.2. ADC0 Tracking Modes

6.1.3. Timing

ADC0 has a maximum conversion speed specified in Table 5.9. ADC0 is clocked from the ADC0 Subsys-

tem Clock (FCLK). The source of FCLK is selected based on the BURSTEN bit. When BURSTEN is

logic 0, FCLK is derived from the current system clock. When BURSTEN is logic 1, FCLK is derived from

the Burst Mode Oscillator, an independent clock source with a maximum frequency of 25 MHz.

When ADC0 is performing a conversion, it requires a clock source that is typically slower than FCLK. The

ADC0 SAR conversion clock (SAR clock) is a divided version of FCLK. The divide ratio can be configured

using the AD0SC bits in the ADC0CF register. The maximum SAR clock frequency is listed in Table 5.9.

ADC0 can be in one of three states at any given time: tracking, converting, or idle. Tracking time depends

on the tracking mode selected. For Pre-Tracking Mode, tracking is managed by software and ADC0 starts

conversions immediately following the convert start signal. For Post-Tracking and Dual-Tracking Modes,

the tracking time after the convert start signal is equal to the value determined by the AD0TK bits plus 2

FCLK cycles. Tracking is immediately followed by a conversion. The ADC0 conversion time is always 13

SAR clock cycles plus an additional 2 FCLK cycles to start and complete a conversion. Figure 6.3 shows

timing diagrams for a conversion in Pre-Tracking Mode and tracking plus conversion in Post-Tracking or

Dual-Tracking Mode. In this example, repeat count is set to one.

                                            Rev. 1.2                                                        49
C8051F55x/56x/57x

    Convert Start

                                                     Pre-Tracking Mode

    Time           F    S1         S2        ...     S12    S13   F

    ADC0 State                            Convert

    AD0INT Flag

                                   Post-Tracking or Dual-Tracking Modes (AD0TK = ‘00')

    Time           F    S1         S2     F       F  S1     S2       ...   S12  S13  F

    ADC0 State                     Track                          Convert

    AD0INT Flag

                   Key

                   F               Equal to one period of FCLK.

                      Sn           Each Sn is equal to one period of the SAR clock.

                   Figure 6.3. 12-Bit ADC Tracking Mode Example

6.1.4. Burst Mode

Burst Mode is a power saving feature that allows ADC0 to remain in a very low power state between con-

versions. When Burst Mode is enabled, ADC0 wakes from a very low power state, accumulates 1, 4, 8, or

16 samples using an internal Burst Mode clock (approximately 25 MHz), then re-enters a very low power

state. Since the Burst Mode clock is independent of the system clock, ADC0 can perform multiple conver-

sions then enter a very low power state within a single system clock cycle, even if the system clock is slow

(e.g., 32.768 kHz), or suspended.

Burst Mode is enabled by setting BURSTEN to logic 1. When in Burst Mode, AD0EN controls the ADC0

idle power state (i.e. the state ADC0 enters when not tracking or performing conversions). If AD0EN is set

to logic 0, ADC0 is powered down after each burst. If AD0EN is set to logic 1, ADC0 remains enabled after

each burst. On each convert start signal, ADC0 is awakened from its Idle Power State. If ADC0 is powered

down, it will automatically power up and wait the programmable Power-up Time controlled by the AD0PWR

bits. Otherwise, ADC0 will start tracking and converting immediately. Figure 6.4 shows an example of Burst

Mode Operation with a slow system clock and a repeat count of 4.

Important Note: When Burst Mode is enabled, only Post-Tracking and Dual-Tracking modes can be used.

When Burst Mode is enabled, a single convert start will initiate a number of conversions equal to the repeat

count. When Burst Mode is disabled, a convert start is required to initiate each conversion. In both modes,

the ADC0 End of Conversion Interrupt Flag (AD0INT) will be set after “repeat count” conversions have

50                                                Rev. 1.2
                                                                             C8051F55x/56x/57x

been accumulated. Similarly, the Window Comparator will not compare the result                 to the greater-than   and

less-than registers until “repeat count” conversions have been accumulated.

Note:  When using Burst Mode, care must be taken to issue a convert start signal no faster     than once every four

       SYSCLK periods. This includes external convert start signals.

       System Clock

       Convert Start

(AD0BUSY or Timer

       Overflow)

       Post-Tracking  Powered         Power-Up                                        Powered  Power-Up

       AD0TM = 01     Down             and Idle     T  C  T  C  T     C  T   C         Down       and Idle     T     C..

       AD0EN = 0

       Dual-Tracking  Powered         Power-Up                                        Powered  Power-Up

       AD0TM = 11     Down            and Track     T  C  T  C  T     C  T   C         Down    and Track       T     C..

       AD0EN = 0

                                      AD0PWR

       Post-Tracking

       AD0TM = 01     Idle          T  C  T      C  T  C  T  C                  Idle           T  C  T      C  T     C..

       AD0EN = 1

       Dual-Tracking

       AD0TM = 11     Track         T  C  T      C  T  C  T  C                  Track          T  C  T      C  T     C..

       AD0EN = 1

                      T = Tracking

                      C = Converting

       Convert Start

       (CNVSTR)

       Post-Tracking  Powered         Power-Up                               Powered           Power-Up

       AD0TM = 01     Down             and Idle     T  C                     Down                 and Idle     T     C..

       AD0EN = 0

       Dual-Tracking  Powered         Power-Up                               Powered           Power-Up

       AD0TM = 11     Down            and Track     T  C                     Down              and Track       T     C..

       AD0EN = 0

                                      AD0PWR

       Post-Tracking

       AD0TM = 01     Idle          T  C                               Idle                    T  C         Idle..

       AD0EN = 1

       Dual-Tracking

       AD0TM = 11     Track         T  C                              Track                    T  C         Track..

       AD0EN = 1

                      T = Tracking

                      C = Converting

       Figure         6.4. 12-Bit ADC Burst         Mode  Example With Repeat          Count   Set to 4

                                                             Rev. 1.2                                                51
C8051F55x/56x/57x

6.2.    Output Code Formatting

The registers ADC0H and ADC0L contain the high and low bytes of the output conversion code. When the

repeat count is set to 1, conversion codes are represented in 12-bit unsigned integer format and the output

conversion code is updated after each conversion. Inputs are measured from 0 to VREF x 4095/4096. Data

can be right-justified or left-justified, depending on the setting of the AD0LJST bit (ADC0CN.2). Unused

bits in the ADC0H and ADC0L registers are set to 0. Example codes are shown below for both right-justi-

fied and left-justified data.

      Input Voltage            Right-Justified ADC0H:ADC0L                        Left-Justified ADC0H:ADC0L

                                       (AD0LJST = 0)                              (AD0LJST = 1)

    VREF x 4095/4096                          0x0FFF                              0xFFF0

    VREF x 2048/4096                          0x0800                              0x8000

    VREF x 2047/4096                          0x07FF                              0x7FF0

           0                                  0x0000                              0x0000

When the ADC0 Repeat Count is greater than 1, the output conversion code represents the accumulated

result of the conversions performed and is updated after the last conversion in the series is finished. Sets

of 4, 8, or 16 consecutive samples can be accumulated and represented in unsigned integer format. The

repeat count can be selected using the AD0RPT bits in the ADC0CF register. The value must be right-jus-

tified (AD0LJST = 0), and unused bits in the ADC0H and ADC0L registers are set to 0. The following

example shows right-justified codes for repeat counts greater than 1. Notice that accumulating 2n samples

is equivalent to left-shifting by n bit positions when all samples returned from the ADC have the same

value.

    Input Voltage     Repeat Count = 4                          Repeat Count = 8  Repeat Count = 16

VREF x 4095/4096               0x3FFC                           0x7FF8            0xFFF0

VREF x 2048/4096               0x2000                           0x4000            0x8000

VREF x 2047/4096               0x1FFC                           0x3FF8            0x7FF0

        0                      0x0000                           0x0000            0x0000

6.2.1. Settling Time Requirements

A minimum tracking time is required before an accurate conversion is performed. This tracking time is

determined by any series impedance, including the AMUX0 resistance, the ADC0 sampling capacitance,

and the accuracy required for the conversion.

Figure 6.5 shows the equivalent ADC0 input circuit. The required ADC0 settling time for a given settling

accuracy (SA) may be approximated by Equation 6.1. When measuring the Temperature Sensor output,

use the settling time specified in Table 5.10. When measuring VDD with respect to GND, RTOTAL reduces to

RMUX. See Table 5.9 for ADC0 minimum settling time requirements as well as the mux impedance and

sampling capacitor values.

                               t   =   ln    S--2---An--  ×  RTOTALCSAMPLE
                                           

                               Equation 6.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).

52                                                              Rev. 1.2
                                                                                     C8051F55x/56x/57x

                                   MUX       S e le ct

               P x.x

                                                                           R MUX

                                                                                                           C SAMPLE

                              R C In p u t=  R MUX                      *  C SAMPLE

                              Figure 6.5. ADC0 Equivalent Input Circuit

6.3.  Selectable Gain

ADC0 on the C8051F55x/56x/57x family of devices implements a selectable gain adjustment option. By

writing a value to the gain adjust address range, the user can select gain values between 0 and 1.016.

For example, three analog sources to be measured have full-scale outputs of 5.0 V, 4.0 V, and 3.0 V,

respectively. Each ADC measurement would ideally use the full dynamic range of the ADC with an internal

voltage reference of 1.5 V or 2.2 V (set to 2.2 V for this example). When selecting the first source (5.0 V

full-scale), a gain value of 0.44 (5 V full scale x 0.44 = 2.2 V full scale) provides a full-scale signal of 2.2 V

when the input signal is 5.0 V. Likewise, a gain value of 0.55 (4 V full scale x 0.55 = 2.2 V full scale) for the

second source and 0.73 (3 V full scale x 0.73 = 2.2 V full scale) for the third source provide full-scale ADC0

measurements when the input signal is full-scale.

Additionally,  some  sensors  or   other     input  sources                have      small  part-to-part   variations  that  must  be

accounted for to achieve accurate results. In this case, the programmable gain value could be used as a

calibration value to eliminate these part-to-part variations.

6.3.1. Calculating the Gain Value

The ADC0 selectable gain feature is controlled by 13 bits in three registers. ADC0GNH contains the 8

upper bits of the gain value and ADC0GNL contains the 4 lower bits of the gain value. The final GAINADD

bit (ADC0GNA.0) controls an optional extra 1/64 (0.016) of gain that can be added in addition to the

ADC0GNH and ADC0GNL gain. The ADC0GNA.0 bit is set to 1 after a power-on reset.

The equivalent gain for the ADC0GNH, ADC0GNL and ADC0GNA registers is as follows:

                              gain  =       G--4---0-A--9--I-6-N---  + GAINADD ×           6--1--4-
                                                                                           

        Equation 6.2. Equivalent Gain from the ADC0GNH and ADC0GNL Registers

Where:

GAIN is the 12-bit word of ADC0GNH[7:0] and ADC0GNL[7:4]

GAINADD is the value of the GAINADD bit (ADC0GNA.0)

gain is the equivalent gain value from 0 to 1.016

                                                                           Rev. 1.2                                                53
C8051F55x/56x/57x

For example, if ADC0GNH = 0xFC, ADC0GNL = 0x00, and GAINADD = 1, GAIN = 0xFC0 = 4032, and the

resulting equation is as follows:

                       GAIN     =       44----00---39----26-  +  1  ×    6--1--4--     =  0.984 + 0.016           =      1.0
                                                                         

The table below equates values in the ADC0GNH, ADC0GNL, and ADC0GNA registers to the equivalent

gain using this equation.

ADC0GNH Value          ADC0GNL Value                                   GAINADD Value                                 GAIN Value     Equivalent Gain

    0xFC (default)         0x00 (default)                                 1 (default)                                4032 + 64      1.0 (default)

        0x7C                       0x00                                                   1                          1984 + 64              0.5

        0xBC                       0x00                                                   1                          3008 + 64              0.75

        0x3C                       0x00                                                   1                          960 + 64               0.25

        0xFF                       0xF0                                                   0                          4095 + 0               ~1.0

        0xFF                       0xF0                                                   1                          4096 + 64              1.016

For any desired gain value, the GAIN registers can be calculated by the following:

                           GAIN = gain – GAINADD × 6--1-4-- × 4096

    Equation 6.3. Calculating the ADC0GNH and ADC0GNL Values from the Desired Gain

Where:

GAIN is the 12-bit word of ADC0GNH[7:0] and ADC0GNL[7:4]

GAINADD is the value of the GAINADD bit (ADC0GNA.0)

gain is the equivalent gain value from 0 to 1.016

When calculating the value of GAIN to load into the ADC0GNH and ADC0GNL registers, the GAINADD bit

can be turned on or off to reach a value closer to the desired gain value.

For example, the initial example in this section requires a gain of 0.44 to convert 5 V full scale to 2.2 V full

scale. Using Equation 6.3:

                            GAIN         =    0.44                 –  GAI   NADD               ×    6--1--4-   × 4096
                                                                                                  

If GAINADD is set to 1, this makes the equation:

        GAIN        =   0.44  –  1  ×    6--1--4-          × 4096      =            0.424 × 4096               =  1738     =  0x06CA
                                                       

The actual gain from setting GAINADD to 1 and ADC0GNH and ADC0GNL to 0x6CA is 0.4399. A similar

gain can be achieved if GAINADD is set to 0 with a different value for ADC0GNH and ADC0GNL.

54                                                                           Rev. 1.2
                                                             C8051F55x/56x/57x

6.3.2. Setting the Gain Value

The three programmable gain registers are accessed indirectly using the ADC0H and ADC0L registers

when the GAINEN bit (ADC0CF.0) bit is set. ADC0H acts as the address register, and ADC0L is the data

register. The programmable gain registers can only be written to and cannot be read. See Gain Register

Definition 6.1, Gain Register Definition 6.2, and Gain Register Definition 6.3 for more information.

The gain is programmed using the following steps:

1.  Set the GAINEN bit (ADC0CF.0)

2.  Load the ADC0H with the ADC0GNH, ADC0GNL, or ADC0GNA address.

3.  Load ADC0L with the desired value for the selected gain register.

4.  Reset the GAINEN bit (ADC0CF.0)

Notes:

    1.  An ADC conversion should not be performed while the GAINEN bit is set.

    2.  Even with gain enabled, the maximum input voltage must be less than VREGIN  and  the          maximum

        voltage of the signal after gain must be less than or equal to VREF.

In code, changing the value to 0.44 gain from the previous example looks like:

// in ‘C’:

ADC0CF |= 0x01;                // GAINEN = 1

ADC0H = 0x04;                  // Load the ADC0GNH address

ADC0L = 0x6C;                  // Load the upper byte of 0x6CA to ADC0GNH

ADC0H = 0x07;                  // Load the ADC0GNL address

ADC0L = 0xA0;                  // Load the lower nibble of 0x6CA to ADC0GNL

ADC0H = 0x08;                  // Load the ADC0GNA address

ADC0L = 0x01;                  // Set the GAINADD bit

ADC0CF &= ~0x01;               // GAINEN = 0

; in assembly

ORL ADC0CF,#01H                ; GAINEN = 1

MOV ADC0H,#04H                 ; Load the ADC0GNH address

MOV ADC0L,#06CH                ; Load the upper byte of 0x6CA to ADC0GNH

MOV ADC0H,#07H                 ; Load the ADC0GNL address

MOV ADC0L,#0A0H                ; Load the lower nibble of 0x6CA to ADC0GNL

MOV ADC0H,#08H                 ; Load the ADC0GNA address

MOV ADC0L,#01H                 ; Set the GAINADD bit

ANL ADC0CF,#0FEH               ; GAINEN = 0

                                                   Rev. 1.2                                             55
C8051F55x/56x/57x

Gain Register Definition 6.1. ADC0GNH: ADC0 Selectable Gain High Byte

    Bit  7                  6           5          4           3               2                         1  0

Name                                               GAINH[7:0]

Type                                                  W

Reset    1                  1           1          1           1               1                         0  0

Indirect Address = 0x04;

Bit      Name                                                Function

7:0      GAINH[7:0]  ADC0 Gain High Byte.

                     See Section 6.3.1 for details on calculating the value for this register.

Note:    This register is accessed indirectly; See Section 6.3.2 for details for writing this register.

Gain Register Definition 6.2. ADC0GNL: ADC0 Selectable Gain Low Byte

    Bit  7                  6           5          4           3               2                         1  0

Name                        GAINL[3:0]                       Reserved          Reserved  Reserved           Reserved

Type                           W                             W                 W                         W  W

Reset    0                  0           0          0           0               0                         0  0

Indirect Address =   0x07;

Bit      Name                                                Function

7:4      GAINL[3:0]  ADC0 Gain Lower 4 Bits.

                     See Figure 6.3.1 for details  for setting this register.

                     This register is only accessed indirectly through the ADC0H and ADC0L register.

3:0      Reserved    Must Write 0000b

Note:    This register is accessed indirectly; See Section 6.3.2 for details for writing this register.

56                                                 Rev. 1.2
                                                                   C8051F55x/56x/57x

Gain Register Definition 6.3. ADC0GNA: ADC0 Additional Selectable Gain

Bit    7                  6  5              4                   3         2                             1  0

Name   Reserved  Reserved    Reserved  Reserved                 Reserved  Reserved  Reserved               GAINADD

Type   W                  W  W              W                   W         W                             W  W

Reset  0                  0  0              0                   0         0                             0  1

Indirect Address = 0x08;

Bit    Name                                                     Function

7:1    Reserved  Must Write 0000000b.

0      GAINADD   ADC0 Additional Gain Bit.

                 Setting this bit add 1/64 (0.016) gain         to the gain value in the ADC0GNH and

                 ADC0GNL registers.

Note:  This register is accessed indirectly; See Section 6.3.2  for details for writing this register.

                                               Rev. 1.2                                                       57
C8051F55x/56x/57x

SFR Definition 6.4. ADC0CF: ADC0 Configuration

    Bit  7           6                 5                       4         3         2    1                   0

Name                          AD0SC[4:0]                                           AD0RPT[1:0]    GAINEN

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

Reset    1           1                 1                       1         1         0    0                   0

SFR    Address = 0xBC; SFR Page = 0x00

Bit      Name                                                            Function

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

                     BURSTEN = 0: FCLK is the current system clock

                     BURSTEN = 1: FCLK is a maximum of 30 MHz, independent of the current system

                     clock..

                     AD0SC    =  ---F----C----L---K------ – 1
                                 CLKSAR

                     Note: Round up the result of the calculation for AD0SC

2:1      A0RPT[1:0]  ADC0 Repeat Count.

                     Controls the number of conversions taken and accumulated between ADC0 End of

                     Conversion (ADCINT) and ADC0 Window Comparator (ADCWINT) interrupts. A con-

                     vert start is required for each conversion unless Burst Mode is enabled. In Burst

                     Mode, a single convert start can initiate multiple self-timed conversions. Results in

                     both modes are accumulated in the ADC0H:ADC0L register. When AD0RPT1–0 are

                     set to a value other than '00', the AD0LJST bit in the ADC0CN register must be

                     set to '0' (right justified).

                     00: 1 conversion is performed.

                     01: 4 conversions are performed and accumulated.

                     10: 8 conversions are performed and accumulated.

                     11: 16 conversions are performed and accumulated.

    0    GAINEN      Gain Enable Bit.

                     Controls the gain programming. Refer to Section “6.3. Selectable Gain” on page 53

                     for information about using this bit.

58                                                             Rev. 1.2
                                                               C8051F55x/56x/57x

SFR Definition 6.5. 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 = 0x00

Bit    Name                                        Function

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

                  For AD0LJST = 0 and AD0RPT as follows:

                  00: Bits 3–0 are the upper 4 bits of the 12-bit result. Bits 7–4 are 0000b.

                  01: Bits 4–0 are the upper 5 bits of the 14-bit result. Bits 7–5 are 000b.

                  10: Bits 5–0 are the upper 6 bits of the 15-bit result. Bits 7–6 are 00b.

                  11: Bits 7–0 are the upper 8 bits of the 16-bit result.

                  For AD0LJST = 1 (AD0RPT must be 00): Bits 7–0 are the most-significant        bits  of  the

                  ADC0 12-bit result.

SFR Definition 6.6. 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 = 0x00

Bit    Name                                        Function

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

                  For AD0LJST = 0: Bits 7–0 are the lower 8 bits of the ADC0 Accumulated Result.

                  For AD0LJST = 1 (AD0RPT must be '00'): Bits 7–4 are the lower 4 bits of the 12-bit

                  result. Bits 3–0 are 0000b.

                                                  Rev. 1.2                                                59
C8051F55x/56x/57x

SFR Definition 6.7. ADC0CN: ADC0 Control

    Bit  7           6                 5            4             3           2           1              0

Name     AD0EN       BURSTEN   AD0INT         AD0BUSY      AD0WINT        AD0LJST         AD0CM[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 = 0xE8; SFR Page = 0x00; 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    BURSTEN     ADC0 Burst Mode Enable Bit.

                     0: Burst Mode Disabled.

                     1: Burst Mode Enabled.

    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[1:0] = 00b

                                                    progress.

    3    AD0WINT     ADC0 Window Compare Interrupt Flag.

                     This bit must be cleared by software

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

                     cleared.

                     1: ADC0 Window Comparison Data match has occurred.

    2    AD0LJST     ADC0 Left Justify Select Bit.

                     0: Data in ADC0H:ADC0L registers is right-justified

                     1: Data in ADC0H:ADC0L registers is left-justified. This option should not be used

                     with a repeat count greater than 1 (when AD0RPT[1:0] is 01b, 10b, or 11b).

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

                     00: ADC0 start-of-conversion source is write of 1 to AD0BUSY.

                     01: ADC0 start-of-conversion source is overflow of Timer 1.

                     10: ADC0 start-of-conversion source is rising edge of external CNVSTR.

                     11: ADC0 start-of-conversion source is overflow of Timer 2.

60                                            Rev. 1.2
                                                                                           C8051F55x/56x/57x

SFR Definition 6.8. ADC0TK: ADC0 Tracking Mode Select

    Bit  7             6                  5                                4            3           2     1                   0

Name                   AD0PWR[3:0]                                                      AD0TM[1:0]        AD0TK[1:0]

Type                           R/W                                                         R/W                        R/W

Reset    1             1                  1                                1            1           1     1                   1

SFR   Address = 0xBA;  SFR Page = 0x00

Bit      Name                                                                    Function

7:4      AD0PWR[3:0]   ADC0 Burst Power-up Time.

                       For BURSTEN = 0: ADC0 Power state controlled by AD0EN

                       For BURSTEN = 1, AD0EN = 1: ADC0 remains enabled and does not enter the

                       very low power state

                       For BURSTEN = 1, AD0EN = 0: ADC0 enters the very low power state and is

                       enabled after each convert start signal. The Power-up time is programmed accord-

                       ing the following equation:

                       AD0PWR          =  T-----s---t--a----r--t--u----p-  –  1  or Tstartup = (AD0PWR + 1)200ns
                                             200ns

3:2      AD0TM[1:0]    ADC0 Tracking Mode Enable Select Bits.

                       00: Reserved.

                       01: ADC0 is configured to Post-Tracking Mode.

                       10: ADC0 is configured to Pre-Tracking Mode.

                       11: ADC0 is configured to Dual Tracking Mode.

1:0      AD0TK[1:0]    ADC0 Post-Track Time.

                       00: Post-Tracking time is equal to 2 SAR clock cycles + 2 FCLK cycles.

                       01: Post-Tracking time is equal to 4 SAR clock cycles + 2 FCLK cycles.

                       10: Post-Tracking time is equal to 8 SAR clock cycles + 2 FCLK cycles.

                       11: Post-Tracking time is equal to 16 SAR clock cycles + 2 FCLK cycles.

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

                                                                              Rev. 1.2                                           61
C8051F55x/56x/57x

SFR Definition 6.9. 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 = 0x00

Bit      Name                                       Function

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

SFR Definition 6.10. 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 = 0x00

Bit      Name                                       Function

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

62                                        Rev. 1.2
                                                                       C8051F55x/56x/57x

SFR Definition 6.11. 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 = 0x00

Bit         Name                                                Function

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

SFR Definition 6.12. 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 = 0x00

Bit         Name                                                Function

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

6.4.1. Window Detector In Single-Ended Mode

Figure 6.6  shows    two    example     window       comparisons          for      right-justified  data     with

ADC0LTH:ADC0LTL = 0x0200 (512d) and ADC0GTH:ADC0GTL = 0x0100 (256d). The input voltage can

range from 0 to VREF x (4095/4096) with respect to GND, and is represented by a 12-bit unsigned integer

value. The repeat count is set to one. 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 0x0100 < ADC0H:ADC0L < 0x0200). 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 < 0x0100 or ADC0H:ADC0L > 0x0200). Figure 6.7 shows an exam-

ple using left-justified data with the same comparison values.

                                                     Rev. 1.2                                                63
C8051F55x/56x/57x

                       ADC0H:ADC0L                                               ADC0H:ADC0L

    Input Voltage                                              Input Voltage

    (Px.x - GND)                                               (Px.x - GND)

VREF x (4095/4096)     0x0FFF                                  VREF x (1023/     0x0FFF

                                                               1024)

                                    AD0WINT                                                                 AD0WINT=1

                                    not affected

                       0x0201                                                    0x0201

    VREF x (512/4096)  0x0200       ADC0LTH:ADC0LTL          VREF x (512/4096)   0x0200       ADC0GTH:ADC0GTL

                       0x01FF                                                    0x01FF       AD0WINT

                                                  AD0WINT=1                                   not affected

                       0x0101                                                    0x0101

    VREF x (256/4096)  0x0100       ADC0GTH:ADC0GTL          VREF x (256/4096)   0x0100       ADC0LTH:ADC0LTL

                       0x00FF                                                    0x00FF

                                    AD0WINT                                                                 AD0WINT=1

                                    not affected

    0                  0x0000                                  0                 0x0000

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

                       ADC0H:ADC0L                                               ADC0H:ADC0L

    Input Voltage                                              Input Voltage

    (Px.x - GND)                                               (Px.x - GND)

VREF x (4095/4096)     0xFFF0                                VREF x (4095/4096)  0xFFF0

                                    AD0WINT                                                                 AD0WINT=1

                                    not affected

                       0x2010                                                    0x2010

    VREF x (512/4096)  0x2000       ADC0LTH:ADC0LTL          VREF x (512/4096)   0x2000       ADC0GTH:ADC0GTL

                       0x1FF0                                                    0x1FF0       AD0WINT

                                                  AD0WINT=1                                   not affected

                       0x1010                                                    0x1010

    VREF x (256/4096)  0x1000       ADC0GTH:ADC0GTL          VREF x (256/4096)   0x1000       ADC0LTH:ADC0LTL

                       0x0FF0                                                    0x0FF0

                                    AD0WINT                                                                 AD0WINT=1

                                    not affected

    0                  0x0000                                  0                 0x0000

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

64                                                   Rev. 1.2
                                            C8051F55x/56x/57x

6.5.  ADC0 Analog Multiplexer

ADC0 includes an analog multiplexer to enable multiple analog input sources. Any of the following may be

selected as an input: P0.0–P3.7, the on-chip temperature sensor, the core power supply (VDD), or ground

(GND). ADC0 is single-ended and all signals measured are with respect to GND. The ADC0 input

channels are selected using the ADC0MX register as described in SFR Definition 6.13.

                                            ADC0MX

                                            ADC0MX5  ADC0MX4  ADC0MX3  ADC0MX2  ADC0MX1  ADC0MX0

                            P0.0

                            P0.7

                            P1.0

                            P1.7

                            P2.0                     ADC0

                            P2.7  AMUX

                            P3.0

                            P3.7            P2.2-P2.7, P3.0 available as

                                            inputs on 40-pin and 32-pin

      Temp                                                    packages

      Sensor                VDD             P3.1-P3.7 available as inputs on

                            GND             48-pin and 40-pin packages

                            Figure 6.8. 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 to 0 the corresponding bit in register PnMDIN. To force the Crossbar to skip a Port pin, set to 1

the corresponding bit in register PnSKIP. See Section “19. Port Input/Output” on page 169 for more Port

I/O configuration details.

                                  Rev. 1.2                                                                    65
C8051F55x/56x/57x

SFR Definition 6.13. ADC0MX: ADC0 Channel Select

    Bit  7           6               5            4           3           2  1                0

Name                                                          ADC0MX[5:0]

Type     R           R                                            R/W

Reset    0           0               1            1           1           1  1                1

SFR  Address = 0xBB; SFR Page = 0x00;

Bit      Name                                           Function

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

5:0      AMX0P[5:0]  AMUX0 Positive Input Selection.

                     000000:            P0.0

                     000001:            P0.1

                     000010:            P0.2

                     000011:            P0.3

                     000100:            P0.4

                     000101:            P0.5

                     000110:            P0.6

                     000111:            P0.7

                     001000:            P1.0

                     001001:            P1.1

                     001010:            P1.2

                     001011:            P1.3

                     001100:            P1.4

                     001101:            P1.5

                     001110:            P1.6

                     001111:            P1.7

                     010000:            P2.0

                     010001:            P2.1

                     010010:            P2.2 (Only available  on  40-pin  and 32-pin package  devices)

                     010011:            P2.3 (Only available  on  40-pin  and 32-pin package  devices)

                     010100:            P2.4 (Only available  on  40-pin  and 32-pin package  devices)

                     010101:            P2.5 (Only available  on  40-pin  and 32-pin package  devices)

                     010110:            P2.6 (Only available  on  40-pin  and 32-pin package  devices)

                     010111:            P2.7 (Only available  on  40-pin  and 32-pin package  devices)

                     011000:            P3.0 (Only available  on  40-pin  and 32-pin package  devices)

                     011001:            P3.1 (Only available  on  40-pin  package devices)

                     011010:            P3.2 (Only available  on  40-pin  package devices)

                     011011:            P3.3 (Only available  on  40-pin  package devices)

                     011100:            P3.4 (Only available  on  40-pin  package devices)

                     011101:            P3.5 (Only available  on  40-pin  package devices)

                     011110:            P3.6 (Only available  on  40-pin  package devices)

                     011111:            P3.7 (Only available  on  40-pin  package devices)

                     100000–101111:     Reserved

                     110000:            Temp Sensor

                     110001:            VDD

                     110010–111111:     GND

66                                            Rev. 1.2
                                    C8051F55x/56x/57x

6.6.  Temperature Sensor

An on-chip temperature sensor is included on the C8051F55x/56x/57x devices which can be directly

accessed via the ADC multiplexer in single-ended configuration. To use the ADC to measure the tempera-

ture sensor, the ADC multiplexer channel should be configured to connect to the temperature sensor. The

temperature sensor transfer function is shown in Figure 6.9. The output voltage (VTEMP) is the positive

ADC input is selected by bits AD0MX[4:0] in register ADC0MX. The TEMPE bit in register REF0CN

enables/disables the temperature sensor, as described in SFR Definition 7.1. While disabled, the tempera-

ture sensor defaults to a high impedance state and any ADC measurements performed on the sensor will

result in meaningless data. Refer to Table 5.10 for the slope and offset parameters of the temperature sen-

sor.

               VTEMP = (Slope x TempC) + Offset

               TempC = (VTEMP - Offset) / Slope

      Voltage                                    Slope (V / deg C)

                          Offset (V at 0 Celsius)

                          Temperature

               Figure 6.9. Temperature Sensor Transfer Function

                          Rev. 1.2                                                                           67
                                                                                              C8051F55x/56x/57x

7.  Voltage Reference

The Voltage reference multiplexer on the C8051F55x/56x/57x devices is configurable to use an externally

connected voltage reference, the on-chip reference voltage generator routed to the VREF pin, or the VDD

power supply voltage (see Figure 7.1). The REFSL bit in the Reference Control register (REF0CN, SFR

Definition 7.1) selects the reference source for the ADC. For an external source or the on-chip reference,

REFSL should be set to 0 to select the VREF pin. To use VDD as the reference source, REFSL should be

set to 1.

The BIASE bit enables the internal voltage bias generator, which is used by the ADC, Temperature Sensor,

and internal oscillator. This bias is automatically enabled when any peripheral which requires it is enabled,

and it does not need to be enabled manually. The bias generator may be enabled manually by writing a 1

to the BIASE bit in register REF0CN. The electrical specifications for the voltage reference circuit are given

in Table 5.11.

The on-chip voltage reference circuit consists of a temperature stable bandgap voltage reference genera-

tor and a gain-of-two output buffer amplifier. The output voltage is selectable between 1.5 V and 2.25 V.

The on-chip voltage reference can be driven on the VREF pin by setting the REFBE bit in register REF0CN

to a 1. The maximum load seen by the VREF pin must be less than 200 µA to GND. Bypass capacitors of

0.1 µF and 4.7 µF are recommended from the VREF pin to GND. If the on-chip reference is not used, the

REFBE bit should be cleared to 0. Electrical specifications for the on-chip voltage reference are given in

Table 5.11.

Important Note about the VREF Pin: When using either an external voltage reference or the on-chip ref-

erence circuitry, the VREF pin should be configured as an analog pin and skipped by the Digital Crossbar.

Refer to Section “19. Port Input/Output” on page 169 for the location of the VREF pin, as well as details of

how to configure the pin in analog mode and to be skipped by the crossbar. If VDD is selected as the volt-

age reference in the REF0CN register and the ADC is enabled in the ADC0CN register, the P0.0/VREF pin

cannot operate as a general purpose I/O pin in open-drain mode. With the above settings, this pin can

operate in push-pull output mode or as an analog input.

                                                        REF0CN

                                                        REFSL  TEMPE  BIASE  REFBE

                                                                                        EN     Bias Generator  To ADC, Internal

                                                                                                               Oscillators

                                                                      IOSCE

                VDD       External                                           N

                          Voltage                                                       EN

                          Reference                                                            Temp Sensor     To Analog Mux

                R1        Circuit

                                          VREF          0

                                                                                                               VREF

                                                                                                               (to ADC)

                GND

                                                   VDD  1

                                                                                    REFBE

                4.7μF  +           0.1μF

                                                                                    EN

                                                                                    Internal

                Recommended Bypass                                                  Reference

                       Capacitors

                     Figure 7.1.          Voltage  Reference          Functional               Block        Diagram

                                                               Rev. 1.2                                                          68
C8051F55x/56x/57x

SFR Definition 7.1. REF0CN: Reference Control

    Bit  7        6  5                              4           3       2                       1        0

Name                 ZTCEN                         REFLV        REFSL   TEMPE          BIASE       REFBE

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

Reset    0        0  0                              0           0       0                       0        0

SFR    Address =  0xD1; SFR Page = 0x00

Bit      Name                                                 Function

7:6      Unused   Read = 00b; Write = don’t care.

    5    ZTCEN    Zero Temperature Coefficient Bias Enable Bit.

                  This bit must be set to 1b before entering oscillator suspend mode.

                  0: ZeroTC Bias Generator automatically enabled when required.

                  1: ZeroTC Bias Generator forced on.

    4    REFLV    Voltage Reference Output Level Select.

                  This bit selects the output voltage level for the internal voltage reference

                  0: Internal voltage reference set to 1.5 V.

                  1: Internal voltage reference set to 2.20 V.

    3    REFSL    Voltage Reference Select.

                  This bit selects the ADCs voltage reference.

                  0: VREF pin used as voltage reference.

                  1: VDD used as voltage reference. If VDD is selected as the voltage reference and the

                  ADC is enabled in the ADC0CN register, the P0.0/VREF pin cannot operate as a gen-

                  eral purpose I/O pin in open-drain mode. With the above settings, this pin can operate

                  in push-pull output mode or as an analog input.

    2    TEMPE    Temperature Sensor Enable Bit.

                  0: Internal Temperature Sensor off.

                  1: Internal Temperature Sensor on.

    1    BIASE    Internal Analog Bias Generator Enable Bit.

                  0: Internal Bias Generator off.

                  1: Internal Bias Generator on.

    0    REFBE    On-chip Reference Buffer Enable Bit.

                  0: On-chip Reference Buffer off.

                  1: On-chip Reference Buffer on. Internal voltage reference driven on the VREF pin.

69                                                  Rev. 1.2
                                                                                                                                                C8051F55x/56x/57x

8.  Comparators

The C8051F55x/56x/57x devices include two on-chip programmable voltage Comparators. A block dia-

gram of the comparators is shown in Figure 8.1, where “n” is the comparator number (0 or 1). The two

Comparators operate identically except that Comparator0 can also be used a reset source. For input

selection details, refer to SFR Definition 8.5 and SFR Definition 8.6.

Each 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, CP1), or an

asynchronous “raw” output (CP0A, CP1A). The asynchronous signal is available even when the system

clock is not active. This allows the Comparators to operate and generate an output with the device in

STOP mode. When assigned to a Port pin, the Comparator outputs may be configured as open drain or

push-pull (see Section “19.4. Port I/O Initialization” on page 174). Comparator0 may also be used as a

reset source (see Section “16.5. Comparator0 Reset” on page 142).

The Comparator0 inputs are selected in the CPT0MX register (SFR Definition 8.5). The CMX0P1-CMX0P0

bits select the Comparator0 positive input; the CMX0N1-CMX0N0 bits select the Comparator0 negative

input. The Comparator1 inputs are selected in the CPT1MX register (SFR Definition 8.6). The CMX1P1-

CMX1P0 bits select the Comparator1 positive input; the CMX1N1-CMX1N0 bits select the Comparator1

negative input.

Important Note About Comparator Inputs: The Port pins selected as Comparator inputs should be 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 “19.1. Port I/O Modes of Operation” on page 170).

                                                                      CPTnCN

                                                 CPnHYN0  CPnHYN1     CPnHYP0  CPnHYP1  CPnFIF  CPnRIF  CPnOUT  CPnEN

                                                                               VIO

                                         CPn +

                 Comparator                                        +                                                                                                CPn

                                                                                                                       D  SET  Q     D  SET  Q

                 Input Mux               CPn -                     -

                                                                                                                          CLR  Q        CLR  Q

                                                                                                                                                       Crossbar

                                                                                                                (SYNCHRONIZER)

                                                                               GND                                                                                  CPnA

                                 CPTnMD                                                                 Reset

                                                                                                Decision

                 CPnMD0  CPnMD1  CPnFIE  CPnRIE                                                         Tree

                                                                                                                                  0             CPnEN     EA        CPn

                                                                                                CPnRIF                            1                                 Interrupt

                                                                                                                                                       0         0

                                                                                                                                  0                    1         1

                                                                                                CPnFIF                            1

                                 Figure 8.1.              Comparator Functional                                                                 Block Diagram

                                                                                                                Rev. 1.2                                                       70
C8051F55x/56x/57x

Comparator outputs can be polled in software, used as an interrupt source, and/or routed to a Port pin.

When routed to a Port pin, Comparator outputs are 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 “19.3. Priority Crossbar Decoder” on

page 172 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 Table 5.12.

The Comparator response time may be configured in software via the CPTnMD registers (see SFR Defini-

tion 8.2). Selecting a longer response time reduces the Comparator supply current. See Table 5.12 for

complete timing and supply current requirements.

           VIN+    CPn+                   +

                   CPn-                   CPn   OUT

           VIN-                           _

                   CIRCUIT CONFIGURATION

           Positive Hysteresis Voltage

           (Programmed with CPnHYP Bits)

                   VIN-

           INPUTS                                                              Negative Hysteresis Voltage

                                                                               (Programmed by CPnHYN Bits)

                   VIN+

                                        VOH

           OUTPUT

                   VOL

                                                         Negative Hysteresis   Maximum

                                                                     Disabled  Negative Hysteresis

                   Positive Hysteresis          Maximum

                   Disabled                     Positive Hysteresis

                         Figure                8.2. Comparator Hysteresis      Plot

Comparator hysteresis is software-programmable via its Comparator Control register CPTnCN.

The amount of negative hysteresis voltage is determined by the settings of the CPnHYN bits. As shown in

Figure 8.2, various levels of negative hysteresis can be programmed, or negative hysteresis can be dis-

abled. In a similar way, the amount of positive hysteresis is determined by the setting the CPnHYP bits.

Comparator interrupts can be generated on both rising-edge and falling-edge output transitions. (For Inter-

rupt enable and priority control, see “13. Interrupts” .) The CPnFIF flag is set to 1 upon a Comparator fall-

ing-edge, and the CPnRIF flag is set to 1 upon the Comparator rising-edge. Once set, these bits remain

set until cleared by software. The output state of the Comparator can be obtained at any time by reading

the CPnOUT bit. The Comparator is enabled by setting the CPnEN bit to 1, and is disabled by clearing this

bit to 0.

71                                                Rev. 1.2
                                                                   C8051F55x/56x/57x

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.

SFR Definition 8.1. CPT0CN: Comparator0 Control

Bit    7           6       5                   4                3       2       1                 0

Name   CP0EN       CP0OUT  CP0RIF            CP0FIF             CP0HYP[1:0]     CP0HYN[1:0]

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

Reset  0           0       0                   0                0       0       0                 0

SFR  Address = 0x9A; SFR Page = 0x00

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.

                                                      Rev. 1.2                                              72
C8051F55x/56x/57x

SFR Definition 8.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 = 0x9B; SFR Page = 0x00

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)

73                                             Rev. 1.2
                                                                   C8051F55x/56x/57x

SFR Definition 8.3. CPT1CN: Comparator1 Control

Bit    7           6       5                   4                3       2       1                 0

Name   CP1EN       CP1OUT  CP1RIF            CP1FIF             CP1HYP[1:0]     CP1HYN[1:0]

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

Reset  0           0       0                   0                0       0       0                 0

SFR  Address = 0x9D; SFR Page = 0x00

Bit    Name                                           Function

7      CP1EN       Comparator1 Enable Bit.

                   0: Comparator1 Disabled.

                   1: Comparator1 Enabled.

6      CP1OUT      Comparator1 Output State Flag.

                   0: Voltage on CP1+ < CP1–.

                   1: Voltage on CP1+ > CP1–.

5      CP1RIF      Comparator1 Rising-Edge Flag. Must be cleared by software.

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

                   1: Comparator1 Rising Edge has occurred.

4      CP1FIF      Comparator1 Falling-Edge Flag. Must be cleared by software.

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

                   1: Comparator1 Falling-Edge has occurred.

3:2   CP1HYP[1:0]  Comparator1 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   CP1HYN[1:0]  Comparator1 Negative Hysteresis Control Bits.

                   00: Negative Hysteresis Disabled.

                   01: Negative Hysteresis = 5 mV.

                   10: Negative Hysteresis = 10 mV.

                   11: Negative Hysteresis = 20 mV.

                                                      Rev. 1.2                                       74
C8051F55x/56x/57x

SFR Definition 8.4. CPT1MD: Comparator1 Mode Selection

    Bit  7           6           5             4         3            2             1            0

Name                             CP1RIE  CP1FIE                                     CP1MD[1:0]

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

Reset    0           0           0             0         0            0             1            0

SFR    Address = 0x9E; SFR Page = 0x00

Bit      Name                                            Function

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

    5    CP1RIE      Comparator1 Rising-Edge Interrupt Enable.

                     0: Comparator1 Rising-edge interrupt disabled.

                     1: Comparator1 Rising-edge interrupt enabled.

    4    CP1FIE      Comparator1 Falling-Edge Interrupt Enable.

                     0: Comparator1 Falling-edge interrupt disabled.

                     1: Comparator1 Falling-edge interrupt enabled.

3:2      Unused      Read = 00b, Write = don’t care.

1:0      CP1MD[1:0]  Comparator1 Mode Select.

                     These bits affect the response time and power consumption for Comparator1.

                     00: Mode 0 (Fastest Response Time, Highest Power Consumption)

                     01: Mode 1

                     10: Mode 2

                     11: Mode 3 (Slowest Response Time, Lowest Power Consumption)

75                                             Rev. 1.2
                                                   C8051F55x/56x/57x

8.1.  Comparator Multiplexer

C8051F55x/56x/57x devices include an analog input multiplexer for each of the comparators to connect

Port I/O pins to the comparator inputs. The Comparator0 inputs are selected in the CPT0MX register (SFR

Definition 8.5). The CMX0P3–CMX0P0 bits select the Comparator0 positive input; the CMX0N3–CMX0N0

bits select the Comparator0 negative input. Similarly, the Comparator1 inputs are selected in the CPT1MX

register using the CMX1P3-CMX1P0 bits and CMX1N3–CMX1N0 bits. The same pins are available to both

multiplexers at the same time and can be used by both comparators simultaneously.

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 “19.6. Special Function Registers for Accessing

and Configuring Port I/O” on page 183).

              CMXnN3

              CMXnN2

      CPTnMX  CMXnN1

              CMXnN0

              CMXnP3

              CMXnP2

              CMXnP1

              CMXnP0

                              P0.0                                                    VDD

                              P0.2

      P0.1

                              P0.4                 CPn +

      P0.3

                              P0.6

      P0.5                                                                         +

                              P1.0

      P0.7

                              P1.2                                                 -

      P1.1

                              P1.4

      P1.3                                                                            GND

                              P1.6

      P1.5

                              P2.0

      P1.7

                              P2.2

      P2.1

                              P2.4

      P2.3

                              P2.6

      P2.5

      P2.7                                         CPn -

              Figure  8.3.  Comparator   Input  Multiplexer Block  Diagram

                                         Rev. 1.2                                                              76
C8051F55x/56x/57x

SFR Definition 8.5. CPT0MX: Comparator0 MUX Selection

    Bit  7                  6       5           4         3               2            1         0

Name                        CMX0N[3:0]                                         CMX0P[3:0]

Type                           R/W                                             R/W

Reset    0                  1       1           1         0               1            1         1

SFR  Address = 0x9C; SFR Page =     0x00

Bit      Name                                             Function

7:4      CMX0N[3:0]  Comparator0    Negative Input MUX Selection.

                     0000:                P0.1

                     0001:                P0.3

                     0010:                P0.5

                     0011:                P0.7

                     0100:                P1.1

                     0101:                P1.3

                     0110:                P1.5

                     0111:                P1.7

                     1000:                P2.1

                     1001:                P2.3 (only available on 40-pin  and  32-pin  devices)

                     1010:                P2.5 (only available on 40-pin  and  32-pin  devices)

                     1011:                P2.7 (only available on 40-pin  and  32-pin  devices)

                     1100–1111:           None

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

                     0000:                P0.0

                     0001:                P0.2

                     0010:                P0.4

                     0011:                P0.6

                     0100:                P1.0

                     0101:                P1.2

                     0110:                P1.4

                     0111:                P1.6

                     1000:                P2.0

                     1001:                P2.2 (only available on 40-pin  and  32-pin  devices)

                     1010:                P2.4 (only available on 40-pin  and  32-pin  devices)

                     1011:                P2.6 (only available on 40-pin  and  32-pin  devices)

                     1100–1111:           None

77                                              Rev. 1.2
                                                              C8051F55x/56x/57x

SFR Definition 8.6. CPT1MX: Comparator1 MUX Selection

Bit    7                  6       5           4            3            2            1         0

Name                      CMX1N[3:0]                                         CMX1P[3:0]

Type                         R/W                                             R/W

Reset  0                  1       1           1            0            1            1         1

SFR  Address = 0x9F; SFR Page =   0x00

Bit    Name                                      Function

7:4   CMX1N[3:0]   Comparator1    Negative Input MUX Selection.

                   0000:                P0.1

                   0001:                P0.3

                   0010:                P0.5

                   0011:                P0.7

                   0100:                P1.1

                   0101:                P1.3

                   0110:                P1.5

                   0111:                P1.7

                   1000:                P2.1

                   1001:                P2.3 (only available on 40-pin  and  32-pin  devices)

                   1010:                P2.5 (only available on 40-pin  and  32-pin  devices)

                   1011:                P2.7 (only available on 40-pin  and  32-pin  devices)

                   1100–1111:           None

3:0    CMX1P[3:0]  Comparator1    Positive Input MUX Selection.

                   0000:                P0.0

                   0001:                P0.2

                   0010:                P0.4

                   0011:                P0.6

                   0100:                P1.0

                   0101:                P1.2

                   0110:                P1.4

                   0111:                P1.6

                   1000:                P2.0

                   1001:                P2.2 (only available on 40-pin  and  32-pin  devices)

                   1010:                P2.4 (only available on 40-pin  and  32-pin  devices)

                   1011:                P2.6 (only available on 40-pin  and  32-pin  devices)

                   1100–1111:           None

                                                 Rev. 1.2                                         78
                                                                   C8051F55x/56x/57x

9.  Voltage Regulator (REG0)

C8051F55x/56x/57x devices include an on-chip low dropout voltage regulator (REG0). The input to REG0

at the VREGIN pin can be as high as 5.25 V. The output can be selected by software to 2.1 V or 2.6 V. When

enabled, the output of REG0 appears on the VDD pin, powers the microcontroller core, and can be used to

power external devices. On reset, REG0 is enabled and can be disabled by software.

The Voltage regulator can generate an interrupt (if enabled by EREG0, EIE2.0) that is triggered whenever

the VREGIN input voltage drops below the dropout threshold voltage. This dropout interrupt has no pending

flag and the recommended procedure to use it is as follows:

1.  Wait enough time to ensure the VREGIN input voltage is stable

2.  Enable the dropout interrupt (EREG0, EIE2.0) and select the proper priority (PREG0, EIP2.0)

3.  If triggered, inside the interrupt disable it (clear EREG0, EIE2.0), execute all procedures necessary to

    protect your application (put it in a safe mode and leave the interrupt now disabled.

4.  In the main application, now running in the safe mode, regularly checks the DROPOUT bit

    (REG0CN.0). Once it is cleared by the regulator hardware the application can enable the interrupt

    again (EREG0, EIE1.6) and return to the normal mode operation.

The input (VREGIN) and output (VDD) of the voltage regulator should both be bypassed with a large capaci-

tor (4.7 µF + 0.1 µF) to ground as shown in Figure 9.1. This capacitor will eliminate power spikes and pro-

vide any immediate power required by the microcontroller. The settling time associated with the voltage

regulator is shown in Table 5.8 on page 43.

Note: The output of the internal voltage regulator is calibrated by the MCU immediately after any reset

    event. The output of the un-calibrated internal regulator could be below the high threshold setting of

    the VDD Monitor. If this is the case and the VDD Monitor is set to the high threshold setting and if the

    MCU receives a non-power on reset (POR), the MCU will remain in reset until a POR occurs (i.e.,

    VDD Monitor will keep the device in reset). A POR will force the VDD Monitor to the low threshold

    setting which is guaranteed to be below the un-calibrated output of the internal regulator. The device

    will then exit reset and resume normal operation. It is for this reason Silicon Labs strongly

    recommends that the VDD Monitor is always left in the low threshold setting (i.e. default value upon

    POR).

                         REG0                                       VREGIN

                                   4.7 µF                    .1 µF

                         VDD                                        VDD

                                   4.7 µF                    .1 µF

           Figure  9.1.  External  Capacitors for Voltage Regulator Input/Output—

                                             Regulator Enabled

                                             Rev. 1.2                                                         79
C8051F55x/56x/57x

If the internal voltage regulator is not used, the VREGIN input should be tied to VDD, as shown in Figure 9.2.

                                                                           VREGIN

                             VDD                                           VDD

                                  4.7 µF                         .1 µF

Figure 9.2. External Capacitors for Voltage Regulator Input/Output—Regulator Disabled

SFR Definition 9.1. REG0CN: Regulator Control

    Bit  7              6         5                4             3         2       1  0

Name     REGDIS         Reserved          REG0MD                                      DROPOUT

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

Reset    0              1         0                1             0         0       0  0

SFR    Address = 0xC9;  SFR Page = 0x00

Bit      Name                                                    Function

    7    REGDIS         Voltage Regulator Disable Bit.

                        0: Voltage Regulator Enabled

                        1: Voltage Regulator Disabled

    6    Reserved       Read = 1b; Must Write 1b.

    5    Unused         Read = 0b; Write = Don’t Care.

    4    REG0MD         Voltage Regulator Mode Select Bit.

                        0: Voltage Regulator Output is 2.1 V.

                        1: Voltage Regulator Output is 2.6 V.

3:1      Unused         Read = 000b. Write = Don’t Care.

    0    DROPOUT        Voltage Regulator Dropout Indicator.

                        0: Voltage Regulator is not in dropout.

                        1: Voltage Regulator is in or near dropout.

80                                                 Rev. 1.2
                                                           C8051F55x/56x/57x

10.    CIP-51 Microcontroller

The MCU system controller core is the CIP-51 microcontroller. The CIP-51 is fully compatible with the

MCS-51™ 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 Section 27), and interfaces directly with the ana-

log and digital subsystems providing a complete data acquisition or control-system solution in a single inte-

grated 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 10.1 for a block diagram).

The CIP-51 includes the following features:

  Fully Compatible with MCS-51 Instruction Set

  50 MIPS Peak Throughput with 50 MHz Clock

  0 to 50 MHz Clock Frequency

  Extended Interrupt Handler

  Reset Input

  Power Management Modes

  On-chip Debug Logic

  Program and Data Memory Security

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

                                                 Rev. 1.2                                                      81
C8051F55x/56x/57x

                                                              DATA        BUS

                                      D8                                         D8                 D8

                                                    D8        D8

                                  ACCUMULATOR                                 B  REGISTER     STACK POINTER

                        BUS                    TMP1           TMP2

                        DATA      PSW                                                SRAM

                                                                                 ADDRESS      SRAM

                                                        ALU                      REGISTER

                                  D8                                                 D8       D8

                                                        D8

                                                              DATA        BUS

                                                                                              SFR_ADDRESS

                                          BUFFER              D8

                                                                                     SFR      SFR_CONTROL

                                                                          D8         BUS      SFR_WRITE_DATA

                                      DATA POINTER            D8                 INTERFACE

                                                                                              SFR_READ_DATA

                                  PC INCREMENTER

                                                                    BUS   D8                  MEM_ADDRESS

                                  PROGRAM    COUNTER (PC)

                                                                    DATA                      MEM_CONTROL

                                                                                 MEMORY

                                  PRGM. ADDRESS REG.                      A16    INTERFACE    MEM_WRITE_DATA

                                                                                              MEM_READ_DATA

                                                    PIPELINE              D8

                        RESET     CONTROL

                                  LOGIC                                                       SYSTEM_IRQs

                        CLOCK

                                                                                 INTERRUPT

                                                                          D8     INTERFACE    EMULATION_IRQ

                        STOP

                                  POWER      CONTROL          D8

                        IDLE              REGISTER

                                  Figure 10.1. CIP-51 Block Diagram

With the CIP-51's maximum system clock at 50 MHz, it has a peak throughput of 50 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

Programming and Debugging Support

In-system programming of the Flash program memory and communication with on-chip debug support

logic is accomplished via the Silicon Labs 2-Wire Development Interface (C2).

The on-chip debug support logic facilitates full speed in-circuit debugging, allowing the setting of hardware

breakpoints, starting, stopping and single stepping through program execution (including interrupt service

routines), examination of the program's call stack, and reading/writing the contents of registers and mem-

ory. This method of on-chip debugging is completely non-intrusive, requiring no RAM, Stack, timers, or

other on-chip resources. C2 details can be found in Section “27. C2 Interface” on page 300.

The CIP-51 is supported by development tools from Silicon Labs and third party vendors. Silicon Labs pro-

vides an integrated development environment (IDE) including editor, debugger and programmer. The IDE's

debugger and programmer interface to the CIP-51 via the C2 interface to provide fast and efficient in-sys-

tem device programming and debugging. Third party macro assemblers and C compilers are also avail-

able.

82                                                            Rev. 1.2
                                              C8051F55x/56x/57x

10.2.  Instruction Set

The instruction set of the CIP-51 System Controller is fully compatible with the standard MCS-51™ 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-51™ counterparts, including opcodes,

addressing modes and effect on PSW flags. However, instruction timing is different than that of the stan-

dard 8051.

10.2.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 10.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.2                                                                83
C8051F55x/56x/57x

Table 10.1. CIP-51 Instruction Set Summary

        Mnemonic                                Description         Bytes     Clock

                                                                              Cycles

Arithmetic Operations

ADD A, Rn              Add register to A                         1         1

ADD A, direct          Add direct byte to A                      2         2

ADD A, @Ri             Add indirect RAM to A                     1         2

ADD A, #data           Add immediate to A                        2         2

ADDC A, Rn             Add register to A with carry              1         1

ADDC A, direct         Add direct byte to A with carry           2         2

ADDC A, @Ri            Add indirect RAM to A with carry          1         2

ADDC A, #data          Add immediate to A with carry             2         2

SUBB A, Rn             Subtract register from A with borrow      1         1

SUBB A, direct         Subtract direct byte from A with borrow   2         2

SUBB A, @Ri            Subtract indirect RAM from A with borrow  1         2

SUBB A, #data          Subtract immediate from A with borrow     2         2

INC A                  Increment A                               1         1

INC Rn                 Increment register                        1         1

INC direct             Increment direct byte                     2         2

INC @Ri                Increment indirect RAM                    1         2

DEC A                  Decrement A                               1         1

DEC Rn                 Decrement register                        1         1

DEC direct             Decrement direct byte                     2         2

DEC @Ri                Decrement indirect RAM                    1         2

INC DPTR               Increment Data Pointer                    1         1

MUL AB                 Multiply A and B                          1         4

DIV AB                 Divide A by B                             1         8

DA A                   Decimal adjust A                          1         1

Logical Operations

ANL A, Rn              AND Register to A                         1         1

ANL A, direct          AND direct byte to A                      2         2

ANL A, @Ri             AND indirect RAM to A                     1         2

ANL A, #data           AND immediate to A                        2         2

ANL direct, A          AND A to direct byte                      2         2

ANL direct, #data      AND immediate to direct byte              3         3

ORL A, Rn              OR Register to A                          1         1

ORL A, direct          OR direct byte to A                       2         2

ORL A, @Ri             OR indirect RAM to A                      1         2

ORL A, #data           OR immediate to A                         2         2

ORL direct, A          OR A to direct byte                       2         2

ORL direct, #data      OR immediate to direct byte               3         3

XRL A, Rn              Exclusive-OR Register to A                1         1

XRL A, direct          Exclusive-OR direct byte to A             2         2

XRL A, @Ri             Exclusive-OR indirect RAM to A            1         2

Note:  Certain instructions take a variable number of clock cycles to execute depending on instruction alignment and

       the FLRT setting (SFR Definition 14.3).

84                                              Rev. 1.2
                                                             C8051F55x/56x/57x

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

         Mnemonic                               Description          Bytes     Clock

                                                                               Cycles

XRL A, #data          Exclusive-OR immediate to A                 2         2

XRL direct, A         Exclusive-OR A to direct byte               2         2

XRL direct, #data     Exclusive-OR immediate to direct byte       3         3

CLR A                 Clear A                                     1         1

CPL A                 Complement A                                1         2

RL A                  Rotate A left                               1         1

RLC A                 Rotate A left through Carry                 1         1

RR A                  Rotate A right                              1         1

RRC A                 Rotate A right through Carry                1         1

SWAP A                Swap nibbles of A                           1         1

Data Transfer

MOV A, Rn             Move Register to A                          1         1

MOV A, direct         Move direct byte to A                       2         2

MOV A, @Ri            Move indirect RAM to A                      1         2

MOV A, #data          Move immediate to A                         2         2

MOV Rn, A             Move A to Register                          1         1

MOV Rn, direct        Move direct byte to Register                2         2

MOV Rn, #data         Move immediate to Register                  2         2

MOV direct, A         Move A to direct byte                       2         2

MOV direct, Rn        Move Register to direct byte                2         2

MOV direct, direct    Move direct byte to direct byte             3         3

MOV direct, @Ri       Move indirect RAM to direct byte            2         2

MOV direct, #data     Move immediate to direct byte               3         3

MOV @Ri, A            Move A to indirect RAM                      1         2

MOV @Ri, direct       Move direct byte to indirect RAM            2         2

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

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

MOVC A, @A+DPTR       Move code byte relative DPTR to A           1         4-7*

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

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

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

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

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

PUSH direct           Push direct byte onto stack                 2         2

POP direct            Pop direct byte from stack                  2         2

XCH A, Rn             Exchange Register with A                    1         1

XCH A, direct         Exchange direct byte with A                 2         2

XCH A, @Ri            Exchange indirect RAM with A                1         2

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

Boolean Manipulation

CLR C                 Clear Carry                                 1         1

CLR bit               Clear direct bit                            2         2

Note:  Certain instructions take a variable number of clock cycles to execute depending on instruction alignment and

       the FLRT setting (SFR Definition 14.3).

                                                Rev. 1.2                                                              85
C8051F55x/56x/57x

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

         Mnemonic                                Description                                     Bytes        Clock

                                                                                                              Cycles

SETB C                Set Carry                                                               1            1

SETB bit              Set direct bit                                                          2            2

CPL C                 Complement Carry                                                        1            1

CPL bit               Complement direct bit                                                   2            2

ANL C, bit            AND direct bit to Carry                                                 2            2

ANL C, /bit           AND complement of direct bit to Carry                                   2            2

ORL C, bit            OR direct bit to carry                                                  2            2

ORL C, /bit           OR complement of direct bit to Carry                                    2            2

MOV C, bit            Move direct bit to Carry                                                2            2

MOV bit, C            Move Carry to direct bit                                                2            2

JC rel                Jump if Carry is set                                                    2            2/(4-6)*

JNC rel               Jump if Carry is not set                                                2            2/(4-6)*

JB bit, rel           Jump if direct bit is set                                               3            3/(5-7)*

JNB bit, rel          Jump if direct bit is not set                                           3            3/(5-7)*

JBC bit, rel          Jump if direct bit is set and clear bit                                 3            3/(5-7)*

Program Branching

ACALL addr11          Absolute subroutine call                                                2            4-6*

LCALL addr16          Long subroutine call                                                    3            5-7*

RET                   Return from subroutine                                                  1            6-8*

RETI                  Return from interrupt                                                   1            6-8*

AJMP addr11           Absolute jump                                                           2            4-6*

LJMP addr16           Long jump                                                               3            5-7*

SJMP rel              Short jump (relative address)                                           2            4-6*

JMP @A+DPTR           Jump indirect relative to DPTR                                          1            3-5*

JZ rel                Jump if A equals zero                                                   2            2/(4-6)*

JNZ rel               Jump if A does not equal zero                                           2            2/(4-6)*

CJNE A, direct, rel   Compare direct byte to A and jump if not equal                          3            4/(6-8)*

CJNE A, #data, rel    Compare immediate to A and jump if not equal                            3            3/(6-8)*

CJNE Rn, #data, rel   Compare immediate to Register and jump if not                           3            3/(5-7)*

                      equal

CJNE @Ri, #data, rel  Compare immediate to indirect and jump if not                           3            4/(6-8)*

                      equal

DJNZ Rn, rel          Decrement Register and jump if not zero                                 2            2/(4-6)*

DJNZ direct, rel      Decrement direct byte and jump if not zero                              3            3/(5-7)*

NOP                   No operation                                                            1            1

Note:   Certain instructions take a variable number of clock cycles to execute depending  on  instruction  alignment and

        the FLRT setting (SFR Definition 14.3).

86                                               Rev. 1.2
                                                               C8051F55x/56x/57x

Notes on Registers, Operands and Addressing Modes:

Rn—Register R0–R7 of the currently selected register bank.

@Ri—Data RAM location addressed indirectly through R0 or R1.

rel—8-bit, signed (two’s complement) offset relative to the first byte of the following instruction. Used by

SJMP and all conditional jumps.

direct—8-bit internal data location’s address. This could be a direct-access Data RAM location (0x00–

0x7F) or an SFR (0x80–0xFF).

#data—8-bit constant

#data16—16-bit constant

bit—Direct-accessed bit in Data RAM or SFR

addr11—11-bit destination address used by ACALL and AJMP. The destination must be within the

same 2 kB page of program memory as the first byte of the following instruction.

addr16—16-bit destination address used by LCALL and LJMP. The destination may be anywhere within

the 64 kB program memory space.

There is one unused opcode (0xA5) that performs the same function as NOP.

All mnemonics copyrighted © Intel Corporation 1980.

10.3.  CIP-51 Register Descriptions

Following are descriptions of SFRs related to the operation of the CIP-51 System Controller. Reserved bits

should not be set to logic l. Future product versions may use these bits to implement new features in which

case the reset value of the bit will be logic 0, selecting the feature's default state. Detailed descriptions of

the remaining SFRs are included in the sections of the datasheet associated with their corresponding sys-

tem function.

                                                     Rev. 1.2                                                     87
C8051F55x/56x/57x

SFR Definition 10.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

Bit      Name                                       Function

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

                   The DPL register is the low byte of the 16-bit DPTR.   DPTR  is  used  to  access  indi-

                   rectly addressed Flash memory or XRAM.

SFR Definition 10.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

Bit      Name                                       Function

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

                   The DPH register is the high byte of the 16-bit DPTR.  DPTR  is  used     to  access  indi-

                   rectly addressed Flash memory or XRAM.

88                                        Rev. 1.2
                                                              C8051F55x/56x/57x

SFR Definition 10.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

Bit    Name                                  Function

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

SFR Definition 10.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.

                                             Rev. 1.2                                                        89
C8051F55x/56x/57x

SFR Definition 10.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.

90                                          Rev. 1.2
                                                                   C8051F55x/56x/57x

10.4.  Serial Number Special Function Registers (SFRs)

The C8051F55x/56x/57x devices include four SFRs, SN0 through SN3, that are pre-programmed during

production with a unique, 32-bit serial number. The serial number provides a unique identification number

for each device and can be read from the application firmware. If the serial number is not used in the appli-

cation, these four registers can be used as general purpose SFRs.

SFR Definition 10.7. SNn: Serial Number n

Bit    7              6  5                 4            3          2                1             0

Name                                       SERNUMn[7:0]

Type                                          R/W

Reset                       Varies—Unique 32-bit value

SFR Addresses: SN0 =  0xF9; SN1 = 0xFA; SN2 = 0xFB; SN3 = 0xFC; SFR Page = 0x0F;

Bit    Name                                        Function

7:0    SERNUMn[7:0]   Serial Number Bits.

                      The four serial number registers form a 32-bit serial number, with SN3  as  the

                      most significant byte and SN0 as the least significant byte.

                                              Rev. 1.2                                                         91
                                                        C8051F55x/56x/57x

11.    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 is shown in

Figure 11.1

PROGRAM/DATA MEMORY                                     DATA MEMORY (RAM)

             (FLASH)                          INTERNAL DATA         ADDRESS SPACE

             C8051F550/1/2/3            0xFF  Upper 128 RAM                          Special Function

             C8051F560/1/2/3/8/9              (Indirect Addressing                   Register's

             C8051F570/1                      Only)                   (Direct Addressing Only)

                                        0x80

             RESERVED                   0x7F

0x7C00                                        (Direct and Indirect

0x7BFF                                        Addressing)                            Lower 128 RAM

                                        0x30                                         (Direct and Indirect

                                        0x2F  Bit Addressable                        Addressing)

             32 kB FLASH                0x20

             (In-System                 0x1F  General Purpose

             Programmable in 512        0x00  Registers

             Byte Sectors)

                                              EXTERNAL DATA ADDRESS                  SPACE

                                              0xFFFF

0x0000                                                     Same 2048 bytes as

             C8051F554/5/6/7                             from 0x0000 to 0x07FF,

                                                         wrapped on 2048-byte

             C8051F564/5/6/7                                        boundaries

             C8051F572/3/4/5                  0x8000

0x3FFF                                        0x07FF

             16 kB FLASH                                            XRAM

                                                                    2K Bytes

             (In-System                                    (accessable using

             Programmable in 512                           MOVX instruction)

             Byte Sectors)                    0x0000

0x0000

                          Figure 11.1.  C8051F55x/56x/57x Memory Map

11.1.  Program Memory

The CIP-51 core has a 64 kB program memory space. The C8051F55x/56x/57x devices implement 32 kB

or 16 kB of this program memory space as in-system, re-programmable Flash memory, organized in a con-

tiguous block from addresses 0x0000 to 0x7FFF in 32 kB devices and addresses 0x0000 to 0x3FFF in

16 kB devices. The address 0x7BFF in 32 kB devices and 0x3FFF in 16 kB devices serves as the security

lock byte for the device. Addresses above 0x7BFF are reserved in the 32 kB devices.

                                              Rev. 1.2                                                    92
C8051F55x/56x/57x

          C8051F550/1/2/3

          C8051F560/1/2/3/8/9

          C8051F570/1

                                   0x7FFF

          Reserved Area

                                   0x7C00

           Lock Byte               0x7BFF                                                                  FLASH memory organized in

                                   0x7BFE

          Lock Byte Page                                        C8051F554/5/6/7

                                   0x7A00                       C8051F564/5/6/7                                                       512-byte pages

                                                                C8051F572/3/4/5

                                                                  Lock Byte                 0x3FFF

                                                                                            0x3FFE

       Flash Memory Space                                       Lock Byte Page

          (32 kB Flash Device)                                                              0x3E00

                                                                Flash Memory Space

                                                                (16 kB Flash Device)

                                   0x0000                                                   0x0000

                                Figure 11.2. Flash Program Memory Map

11.1.1. MOVX Instruction and Program Memory

The  MOVX  instruction   in    an  8051  device  is  typically  used  to  access  external  data  memory.  On                         the

C8051F55x/56x/57x 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 C8051F55x/56x/57x to update program code and use the program

memory space for non-volatile data storage. Refer to Section “14. Flash Memory” on page 124 for further

details.

11.2.     Data Memory

The C8051F55x/56x/57x devices include 2304 bytes of RAM data memory. 256 bytes of this memory is

mapped into the internal RAM space of the 8051. The other 2048 bytes of this memory is on-chip “exter-

nal” memory. The data memory map is shown in Figure 11.1 for reference.

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

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 11.1  illustrates     the  data   memory    organization   of                         the

93                                                   Rev. 1.2
                                                       C8051F55x/56x/57x

C8051F55x/56x/57x.

11.2.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 10.6). This allows

fast context switching when entering subroutines and interrupt service routines. Indirect addressing modes

use registers R0 and R1 as index registers.

11.2.1.2.   Bit Addressable Locations

In addition to direct access to data memory organized as bytes, the sixteen data memory locations at 0x20

through 0x2F are also accessible as 128 individually addressable bits. Each bit has a bit address from

0x00 to 0x7F. Bit 0 of the byte at 0x20 has bit address 0x00 while bit7 of the byte at 0x20 has bit address

0x07. Bit 7 of the byte at 0x2F has bit address 0x7F. A bit access is distinguished from a full byte access by

the type of instruction used (bit source or destination operands as opposed to a byte source or destina-

tion).

The MCS-51™ assembly language allows an alternate notation for bit addressing of the form XX.B where

XX is the byte address and B is the bit position within the byte. For example, the instruction:

MOV     C,  22.3h

moves the Boolean value at 0x13 (bit 3 of the byte at location 0x22) into the Carry flag.

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

                                             Rev. 1.2                                                            94
                                                                          C8051F55x/56x/57x

12.    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 C8051F55x/56x/57x's resources and

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

C8051F55x/56x/57x. This allows the addition of new functionality while retaining compatibility with the

MCS-51™ instruction set. Table 12.3 lists the SFRs implemented in the C8051F55x/56x/57x 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 unoccupied addresses in the SFR

space will have an indeterminate effect and should be avoided. Refer to the corresponding pages of the

data sheet, as indicated in Table 12.3, for a detailed description of each register.

12.1.  SFR Paging

The CIP-51 features SFR paging, allowing the device to map many SFRs into the 0x80 to 0xFF memory

address space. The SFR memory space has 256 pages. In this way, each memory location from 0x80 to

0xFF can access up to 256 SFRs. The C8051F55x/56x/57x family of devices utilizes three SFR pages:

0x00, 0x0C, and 0x0F. SFR pages are selected using the Special Function Register Page Selection regis-

ter, SFRPAGE (see SFR Definition 11.3). The procedure for reading and writing an SFR is as follows:

1.  Select the appropriate SFR page number using the SFRPAGE register.

2.  Use direct accessing mode to read or write the special function register (MOV instruction).

12.2.  Interrupts and SFR Paging

When an interrupt occurs, the SFR Page Register will automatically switch to the SFR page containing the

flag bit that caused the interrupt. The automatic SFR Page switch function conveniently removes the bur-

den of switching SFR pages from the interrupt service routine. Upon execution of the RETI instruction, the

SFR page is automatically restored to the SFR Page in use prior to the interrupt. This is accomplished via

a three-byte SFR Page Stack. The top byte of the stack is SFRPAGE, the current SFR Page. The second

byte of the SFR Page Stack is SFRNEXT. The third, or bottom byte of the SFR Page Stack is SFRLAST.

Upon   an  interrupt,  the  current  SFRPAGE   value    is  pushed    to  the  SFRNEXT  byte,    and    the  value   of

SFRNEXT is pushed to SFRLAST. Hardware then loads SFRPAGE with the SFR Page containing the flag

bit associated with the interrupt. On a return from interrupt, the SFR Page Stack is popped resulting in the

value of SFRNEXT returning to the SFRPAGE register, thereby restoring the SFR page context without

software intervention. The value in SFRLAST (0x00 if there is no SFR Page value in the bottom of the

stack) of the stack is placed in SFRNEXT register. If desired, the values stored in SFRNEXT and SFR-

LAST may be modified during an interrupt, enabling the CPU to return to a different SFR Page upon exe-

cution of the RETI instruction (on interrupt exit). Modifying registers in the SFR Page Stack does not cause

a push or pop of the stack. Only interrupt calls and returns will cause push/pop operations on the SFR

Page Stack.

On the C8051F55x/56x/57x devices, vectoring to an interrupt will switch SFRPAGE to page 0x00, except

for the CAN0 interrupt which will switch SFRPAGE to page 0x0C.

                                                            Rev. 1.2                                             95
C8051F55x/56x/57x

                               SFRPGCN Bit

                    Interrupt

                    Logic

                                            SFRPAGE

                    CIP-51

                                            SFRNEXT

                                            SFRLAST

                               Figure 12.1. SFR Page Stack

Automatic hardware switching of the SFR Page on interrupts may be enabled or disabled as desired using

the SFR Automatic Page Control Enable Bit located in the SFR Page Control Register (SFR0CN). This

function defaults to “enabled” upon reset. In this way, the autoswitching function will be enabled unless dis-

abled in software.

A summary of the SFR locations (address and SFR page) are provided in Table 12.3 in the form of an SFR

memory map. Each memory location in the map has an SFR page row, denoting the page in which that

SFR resides. Certain SFRs are accessible from ALL SFR pages, and are denoted by the “(ALL PAGES)”

designation. For example, the Port I/O registers P0, P1, P2, and P3 all have the “(ALL PAGES)” designa-

tion, indicating these SFRs are accessible from all SFR pages regardless of the SFRPAGE register value.

96                             Rev. 1.2
                                                           C8051F55x/56x/57x

12.3.  SFR Page Stack Example

The following is an example that shows the operation of the SFR Page Stack during interrupts. In this

example, the SFR Control register is left in the default enabled state (i.e., SFRPGEN = 1), and the CIP-51

is executing in-line code that is writing values to SPI Data Register (SFR “SPI0DAT”, located at address

0xA3 on SFR Page 0x00). The device is also using the CAN peripheral (CAN0) and the Programmable

Counter Array (PCA0) peripheral to generate a PWM output. The PCA is timing a critical control function in

its interrupt service and so its associated ISR that is set to high priority. At this point, the SFR page is set to

access the SPI0DAT SFR (SFRPAGE = 0x00). See Figure 12.2.

                                                           SFR Page

                                                           Stack SFR's

       0x0

                                                           SFRPAGE

       (SPI0DAT)

                                                           SFRNEXT

                                                           SFRLAST

       Figure 12.2. SFR Page Stack While Using SFR Page 0x0 To Access SPI0DAT

                               Rev. 1.2                                                                              97
C8051F55x/56x/57x

While CIP-51 executes in-line code (writing values to SPI0DAT in this example), the CAN0 Interrupt

occurs. The CIP-51 vectors to the CAN0 ISR and pushes the current SFR Page value (SFR Page 0x00)

into SFRNEXT in the SFR Page Stack. The SFR page needed to access CAN’s SFRs is then automatically

placed in the SFRPAGE register (SFR Page 0x0C). SFRPAGE is considered the “top” of the SFR Page

Stack. Software can now access the CAN0 SFRs. Software may switch to any SFR Page by writing a new

value to the SFRPAGE register at any time during the CAN0 ISR to access SFRs that are not on SFR

Page 0x0C. See Figure 12.3.

                             SFR Page 0xC

                             Automatically

                             pushed on stack in

                             SFRPAGE on CAN0

                             interrupt

                             0xC

                                                 SFRPAGE

    SFRPAGE                  (CAN0)

    pushed to                0x0

    SFRNEXT

                                                 SFRNEXT

                             (SPI0DAT)

                                                 SFRLAST

    Figure 12.3. SFR Page Stack After CAN0 Interrupt Occurs

98                                Rev. 1.2
                                                    C8051F55x/56x/57x

While in the CAN0 ISR, a PCA interrupt occurs. Recall the PCA interrupt is configured as a high priority

interrupt, while the CAN0 interrupt is configured as a low priority interrupt. Thus, the CIP-51 will now vector

to the high priority PCA ISR. Upon doing so, the CIP-51 will automatically place the SFR page needed to

access the PCA’s special function registers into the SFRPAGE register, SFR Page 0x00. The value that

was in the SFRPAGE register before the PCA interrupt (SFR Page 0x0C for CAN0) is pushed down the

stack into SFRNEXT. Likewise, the value that was in the SFRNEXT register before the PCA interrupt (in

this case SFR Page 0x00 for SPI0DAT) is pushed down to the SFRLAST register, the “bottom” of the

stack. Note that a value stored in SFRLAST (via a previous software write to the SFRLAST register) will be

overwritten. See Figure 12.4.

                               SFR Page 0x0

                               Automatically

                               pushed on stack in

                               SFRPAGE on PCA

                               interrupt

                               0x0

                                                    SFRPAGE

SFRPAGE                        (PCA)

pushed to                      0xC

SFRNEXT

                                                    SFRNEXT

                               (CAN0)

SFRNEXT

pushed to                      0x0

SFRLAST

                                                    SFRLAST

                               (SPI0DAT)

Figure 12.4. SFR Page Stack Upon PCA Interrupt Occurring During a CAN0 ISR

                                          Rev. 1.2                                                               99
C8051F55x/56x/57x

On exit from the PCA interrupt service routine, the CIP-51 will return to the CAN0 ISR. On execution of the

RETI instruction, SFR Page 0x00 used to access the PCA registers will be automatically popped off of the

SFR Page Stack, and the contents of the SFRNEXT register will be moved to the SFRPAGE register. Soft-

ware in the CAN0 ISR can continue to access SFRs as it did prior to the PCA interrupt. Likewise, the con-

tents of SFRLAST are moved to the SFRNEXT register. Recall this was the SFR Page value 0x00 being

used to access SPI0DAT before the CAN0 interrupt occurred. See Figure 12.5.

                   SFR Page 0x0

                   Automatically

                popped off of the

                stack on return from

                   interrupt

                   0xC

                                                                             SFRPAGE

     SFRNEXT       (CAN0)

     popped to     0x0

     SFRPAGE

                                                                             SFRNEXT

                (SPI0DAT)

     SFRLAST

     popped to

     SFRNEXT

                                                                             SFRLAST

     Figure 12.5. SFR Page Stack Upon Return From PCA Interrupt

100                     Rev. 1.2
                                                                 C8051F55x/56x/57x

On the execution of the RETI instruction in the CAN0 ISR, the value in SFRPAGE register is overwritten

with the contents of SFRNEXT. The CIP-51 may now access the SPI0DAT register as it did prior to the

interrupts occurring. See Figure 12.6.

                                        SFR Page 0xC

                                        Automatically

                                        popped off of the

                                        stack on return from

                                        interrupt

                                        0x0

                                                                 SFRPAGE

SFRNEXT                                 (SPI0DAT)

popped to

SFRPAGE

                                                                 SFRNEXT

                                                                 SFRLAST

Figure 12.6. SFR Page Stack Upon Return From CAN0 Interrupt

In the example above, all three bytes in the SFR Page Stack are accessible via the SFRPAGE, SFRNEXT,

and SFRLAST special function registers. If the stack is altered while servicing an interrupt, it is possible to

return to a different SFR Page upon interrupt exit than selected prior to the interrupt call. Direct access to

the SFR Page stack can be useful to enable real-time operating systems to control and manage context

switching between multiple tasks.

Push operations on the SFR Page Stack only occur on interrupt service, and pop operations only occur on

interrupt exit (execution on the RETI instruction). The automatic switching of the SFRPAGE and operation

of the SFR Page Stack as described above can be disabled in software by clearing the SFR Automatic

Page Enable Bit (SFRPGEN) in the SFR Page Control Register (SFR0CN). See SFR Definition 12.1.

                                                       Rev. 1.2                                                  101
C8051F55x/56x/57x

SFR Definition 12.1. SFR0CN: SFR Page Control

     Bit        7  6                  5      4          3                2          1  0

Name                                                                                   SFRPGEN

Type      R        R                  R      R          R                R          R  R/W

Reset           0  0                  0      0          0                0          0  1

SFR  Address = 0x84; SFR Page = 0x0F

Bit       Name                                          Function

7:1       Unused   Read = 0000000b; Write = Don’t Care

0         SFRPGEN  SFR Automatic Page Control Enable.

                   Upon interrupt, the C8051 Core will vector to the specified interrupt service routine

                   and automatically switch the SFR page to the corresponding peripheral or function’s

                   SFR page. This bit is used to control this autopaging function.

                   0: SFR Automatic Paging disabled. The C8051 core will not automatically change to

                   the appropriate SFR page (i.e., the SFR page that contains the SFRs for the periph-

                   eral/function that was the source of the interrupt).

                   1: SFR Automatic Paging enabled. Upon interrupt, the C8051 will switch the SFR

                   page to the page that contains the SFRs for the peripheral or function that is the

                   source of the interrupt.

102                                          Rev. 1.2
                                                               C8051F55x/56x/57x

SFR Definition 12.2. 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                                            Function

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.

                    When enabled in the SFR Page Control Register (SFR0CN), the C8051 core will

                    automatically switch to the SFR Page that contains the SFRs of the correspond-

                    ing peripheral/function that caused the interrupt, and return to the previous SFR

                    page upon return from interrupt (unless SFR Stack was altered before a return-

                    ing from the interrupt). SFRPAGE is the top byte of the SFR Page Stack, and

                    push/pop events of this stack are caused by interrupts (and not by reading/writ-

                    ing to the SFRPAGE register)

                                                  Rev. 1.2                                             103
C8051F55x/56x/57x

SFR Definition 12.3. SFRNEXT: SFR Next

     Bit  7             6           5      4         3         2  1  0

Name                                       SFRNEXT[7:0]

Type                                          R/W

Reset     0             0           0      0         0         0  0  0

SFR  Address = 0x85; SFR Page = All Pages

Bit       Name                                       Function

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

                        This is the value that will go to the SFR Page register upon a return from inter-

                        rupt.

                        Write: Sets the SFR Page contained in the second byte of the SFR Stack. This

                        will cause the SFRPAGE SFR to have this SFR page value upon a return from

                        interrupt.

                        Read: Returns the value of the SFR page contained in the second byte of the

                        SFR stack.

                        SFR page context is retained upon interrupts/return from interrupts in a 3 byte

                        SFR Page Stack: SFRPAGE is the first entry, SFRNEXT is the second, and

                        SFRLAST is the third entry. The SFR stack bytes may be used alter the context

                        in the SFR Page Stack, and will not cause the stack to “push” or “pop”. Only

                        interrupts and return from interrupts cause pushes and pops of the SFR Page

                        Stack.

104                                        Rev. 1.2
                                                           C8051F55x/56x/57x

SFR Definition 12.4. SFRLAST: SFR Last

Bit    7            6       5              4            3    2  1                          0

Name                                       SFRLAST[7:0]

Type                                          R/W

Reset  0            0       0              0            0    0  0                          0

SFR  Address = 0xA7; SFR Page = All Pages

Bit    Name                                        Function

7:0   SFRLAST[7:0]  SFR Page Stack Bits.

                    This is the value that will go to the SFRNEXT register upon a return from inter-

                    rupt.

                    Write: Sets the SFR Page in the last entry of the SFR Stack. This will cause the

                    SFRNEXT SFR to have this SFR page value upon a return from interrupt.

                    Read: Returns the value of the SFR page contained in the last entry of the SFR

                    stack.

                    SFR page context is retained upon interrupts/return from interrupts in a 3 byte

                    SFR Page Stack: SFRPAGE is the first entry, SFRNEXT is the second, and

                    SFRLAST is the third entry. The SFR stack bytes may be used alter the context

                    in the SFR Page Stack, and will not cause the stack to “push” or “pop”. Only

                    interrupts and return from interrupts cause pushes and pops of the SFR Page

                    Stack.

                                              Rev. 1.2                                                105
C8051F55x/56x/57x

Table 12.1. Special Function Register (SFR) Memory Map for Pages 0x00 and 0x0F

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

F8       0     SPI0CN    PCA0L       PCA0H        PCA0CPL0     PCA0CPH0     PCACPL4      PCACPH4      VDM0CN

         F               SN0         SN1          SN2          SN3

F0       0     B         P0MAT       P0MASK       P1MAT        P1MASK                    EIP1         EIP2

         F  (All Pages)  P0MDIN      P1MDIN       P2MDIN       P3MDIN                    EIP1         EIP2

E8       0     ADC0CN    PCA0CPL1    PCA0CPH1     PCA0CPL2     PCA0CPH2     PCA0CPL3     PCA0CPL3     RSTSRC

         F

E0       0     ACC                                                                       EIE1         EIE2

         F  (All Pages)  XBR0        XBR1         CCH0CN       IT01CF                    (All Pages)  (All Pages)

D8       0     PCA0CN    PCA0MD      PCA0CPM0     PCA0CPM1     PCA0CPM2     PCA0CPM3     PCA0CPM4     PCA0CPM5

         F               PCA0PWM

D0       0     PSW       REF0CN      LIN0DATA     LIN0ADDR

         F  (All Pages)                                        P0SKIP       P1SKIP       P2SKIP       P3SKIP

C8       0     TMR2CN    REG0CN      TMR2RLL      TMR2RLH      TMR2L        TMR2H        PCA0CPL5     PCA0CPH5

         F               LIN0CF

C0       0     SMB0CN    SMB0CF      SMB0DAT      ADC0GTL      ADC0GTH      ADC0LTL      ADC0LTH

         F                                                                                            XBR2

B8       0     IP                    ADC0TK       ADC0MX       ADC0CF       ADC0L        ADC0H

         F  (All Pages)

B0       0     P3        P2MAT       P2MASK                                 P4           FLSCL        FLKEY

         F  (All Pages)              EMI0CF                                 (All Pages)  (All Pages)  (All Pages)

A8       0     IE        SMOD0       EMI0CN                                              P3MAT        P3MASK

         F  (All Pages)              EMI0TC       SBCON0       SBRLL0       SBRLH0       P3MDOUT      P4MDOUT

A0       0     P2        SPI0CFG     SPI0CKR      SPI0DAT                                             SFRPAGE

         F  (All Pages)  OSCICN      OSCICRS                   P0MDOUT      P1MDOUT      P2MDOUT      (All Pages)

98       0     SCON0     SBUF0       CPT0CN       CPT0MD       CPT0MX       CPT1CN       CPT1MD       CPT1MX

         F                                                                               OSCIFIN      OSCXCN

90       0     P1        TMR3CN      TMR3RLL      TMR3RLH      TMR3L        TMR3H

         F  (All Pages)                                                                               CLKMUL

88       0     TCON      TMOD        TL0          TL1          TH0          TH1          CKCON        PSCTL

         F  (All Pages) (All Pages)  (All Pages)  (All Pages)  (All Pages)  (All Pages)  (All Pages)  CLKSEL

80       0     P0        SP          DPL          DPH                       SFRNEXT      SFRLAST      PCON

         F  (All Pages) (All Pages)  (All Pages)  (All Pages)  SFR0CN       (All Pages)  (All Pages)  (All Pages)

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

               (bit addressable)

106                                               Rev. 1.2
                                                                     C8051F55x/56x/57x

Table 12.2. Special Function Register (SFR) Memory Map for Page 0x0C

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

F8                            CAN0IF2DA2L CAN0IF2DA2H CAN0IF2DB1L CAN0IF2DB1H     CAN0IF2DB2L  CAN0IF2DB2H

F0  B                         CAN0IF2A2L   CAN0IF2A2H                             CAN0IF2DA1L  CAN0IF2DA1H

    (All Pages)

E8                            CAN0IF2M1L   CAN0IF2M1H   CAN0IF2M2L   CAN0IF2M2H   CAN0IF2A1L   CAN0IF2A1H

E0  ACC                       CAN0IF2CML   CAN0IF2CMH                             EIE1         EIE2

    (All Pages)                                                                   (All Pages)  (All Pages)

D8                            CAN0IF1DB1L  CAN0IF1DB1H  CAN0IF1DB2L  CAN0IF1DB2H  CAN0IF2CRL   CAN0IF2CRH

D0  PSW                       CAN0IF1MCL   CAN0IF1MCH   CAN0IF1DA1L  CAN0IF1DA1H  CAN0IF1DA2L  CAN0IF1DA2H

    (All Pages)

C8                            CAN0IF1A1L   CAN0IF1A1H   CAN0IF1A2L   CAN0IF1A2H   CAN0IF2MCL   CAN0IF2MCH

C0  CAN0CN                    CAN0IF1CML   CAN0IF1CMH   CAN0IF1M1L   CAN0IF1M1H   CAN0IF1M2L   CAN0IF1M2H

B8  IP                        CAN0MV1L     CAN0MV1H     CAN0MV2L     CAN0MV2H     CAN0IF1CRL   CAN0IF1CRH

    (All Pages)

B0  P3                        CAN0IP2L     CAN0IP2H                  P4           FLSCL        FLKEY

    (All Pages)                                                      (All Pages)  (All Pages)  (All Pages)

A8  IE                        CAN0ND1L     CAN0ND1H     CAN0ND2L     CAN0ND2H     CAN0IP1L     CAN0IP1H

    (All Pages)

A0  P2           CAN0BRPE     CAN0TR1L     CAN0TR1H     CAN0TR2L     CAN0TR2H                  SFRPAGE

    (All Pages)                                                                                (All Pages)

98  SCON0                     CAN0BTL      CAN0BTH      CAN0IIDL     CAN0IIDH     CAN0TST

    (All Pages)

90  P1                        CAN0CFG                   CAN0STAT                  CAN0ERRL     CAN0ERRH

    (All Pages)

88  TCON         TMOD         TL0          TL1          TH0          TH1          CKCON

    (All Pages)  (All Pages)  (All Pages)  (All Pages)  (All Pages)  (All Pages)  (All Pages)

80  P0           SP           DPL          DPH                       SFRNEXT      SFRLAST      PCON

    (All Pages)  (All Pages)  (All Pages)  (All Pages)               (All Pages)  (All Pages)  (All Pages)

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

    (bit addressable)

                                                        Rev. 1.2                                            107
C8051F55x/56x/57x

Table 12.3. Special Function Registers

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

   Register  Address                                Description                  Page

ACC          0xE0     Accumulator                                                89

ADC0CF       0xBC     ADC0 Configuration                                         58

ADC0CN       0xE8     ADC0 Control                                               60

ADC0GTH      0xC4     ADC0 Greater-Than Compare High                             62

ADC0GTL      0xC3     ADC0 Greater-Than Compare Low                              62

ADC0H        0xBE     ADC0 High                                                  59

ADC0L        0xBD     ADC0 Low                                                   59

ADC0LTH      0xC6     ADC0 Less-Than Compare Word High                           63

ADC0LTL      0xC5     ADC0 Less-Than Compare Word Low                            63

ADC0MX       0xBB     ADC0 Mux Configuration                                     66

ADC0TK       0xBA     ADC0 Tracking Mode Select                                  61

B            0xF0     B Register                                                 89

CCH0CN       0xE3     Cache Control                                              134

CKCON        0x8E     Clock Control                                              260

CLKMUL       0x97     Clock Multiplier                                           163

CLKSEL       0x8F     Clock Select                                               158

CPT0CN       0x9A     Comparator0 Control                                        72

CPT0MD       0x9B     Comparator0 Mode Selection                                 73

CPT0MX       0x9C     Comparator0 MUX Selection                                  77

CPT1CN       0x9D     Comparator1 Control                                        72

CPT1MD       0x9E     Comparator1 Mode Selection                                 73

CPT1MX       0x9F     Comparator1 MUX Selection                                  77

DPH          0x83     Data Pointer High                                          88

DPL          0x82     Data Pointer Low                                           88

EIE1         0xE6     Extended Interrupt Enable 1                                118

EIE2         0xE7     Extended Interrupt Enable 2                                118

EIP1         0xF6     Extended Interrupt Priority 1                              119

EIP2         0xF7     Extended Interrupt Priority 2                              120

EMI0CF       0xB2     External Memory Interface Configuration                    148

EMI0CN       0xAA     External Memory Interface Control                          147

EMI0TC       0xAA     External Memory Interface Timing Control                   152

FLKEY        0xB7     Flash Lock and Key                                         132

FLSCL        0xB6     Flash Scale                                                133

IE           0xA8     Interrupt Enable                                           116

IP           0xB8     Interrupt Priority                                         117

108                                       Rev. 1.2
                                                         C8051F55x/56x/57x

Table 12.3. Special Function Registers  (Continued)

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

Register  Address                               Description                      Page

IT01CF    0xE4     INT0/INT1 Configuration                                       123

LIN0ADR   0xD3     LIN0 Address                                                  200

LIN0CF    0xC9     LIN0 Configuration                                            200

LIN0DAT   0xD2     LIN0 Data                                                     201

OSCICN    0xA1     Internal Oscillator Control                                   160

OSCICRS   0xA2     Internal Oscillator Coarse Control                            161

OSCIFIN   0x9E     Internal Oscillator Fine Calibration                          161

OSCXCN    0x9F     External Oscillator Control                                   165

P0        0x80     Port 0 Latch                                                  183

P0MASK    0xF2     Port 0 Mask Configuration                                     179

P0MAT     0xF1     Port 0 Match Configuration                                    179

P0MDIN    0xF1     Port 0 Input Mode Configuration                               184

P0MDOUT   0xA4     Port 0 Output Mode Configuration                              184

P0SKIP    0xD4     Port 0 Skip                                                   185

P1        0x90     Port 1 Latch                                                  185

P1MASK    0xF4     Port 1 Mask Configuration                                     180

P1MAT     0xF3     Port 1 Match Configuration                                    180

P1MDIN    0xF2     Port 1 Input Mode Configuration                               186

P1MDOUT   0xA5     Port 1 Output Mode Configuration                              186

P1SKIP    0xD5     Port 1 Skip                                                   187

P2        0xA0     Port 2 Latch                                                  187

P2MASK    0xB2     Port 2 Mask Configuration                                     181

P2MAT     0xB1     Port 2 Match Configuration                                    181

P2MDIN    0xF3     Port 2 Input Mode Configuration                               188

P2MDOUT   0xA6     Port 2 Output Mode Configuration                              188

P2SKIP    0xD6     Port 2 Skip                                                   189

P3        0xB0     Port 3 Latch                                                  189

P3MASK    0xAF     Port 3 Mask Configuration                                     182

P3MAT     0xAE     Port 3 Match Configuration                                    182

P3MDIN    0xF4     Port 3 Input Mode Configuration                               190

P3MDOUT   0xAE     Port 3 Output Mode Configuration                              190

P3SKIP    0xD7     Port 3 Skip                                                   191

P4        0xB5     Port 4 Latch                                                  191

P4MDOUT   0xAF     Port 4 Output Mode Configuration                              192

PCA0CN    0xD8     PCA Control                                                   294

PCA0CPH0  0xFC     PCA Capture 0 High                                            299

                                        Rev. 1.2                                 109
C8051F55x/56x/57x

Table 12.3. Special Function Registers  (Continued)

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

Register  Address                                 Description                     Page

PCA0CPH1  0xEA     PCA Capture 1 High                                             299

PCA0CPH2  0xEC     PCA Capture 2 High                                             299

PCA0CPH3  0xEE     PCA Capture 3 High                                             299

PCA0CPH4  0xFE     PCA Capture 4 High                                             299

PCA0CPH5  0xCF     PCA Capture 5 High                                             299

PCA0CPL0  0xFB     PCA Capture 0 Low                                              299

PCA0CPL1  0xE9     PCA Capture 1 Low                                              299

PCA0CPL2  0xEB     PCA Capture 2 Low                                              299

PCA0CPL3  0xED     PCA Capture 3 Low                                              299

PCA0CPL4  0xFD     PCA Capture 4 Low                                              299

PCA0CPL5  0xCE     PCA Capture 5 Low                                              299

PCA0CPM0  0xDA     PCA Module 0 Mode Register                                     297

PCA0CPM1  0xDB     PCA Module 1 Mode Register                                     297

PCA0CPM2  0xDC     PCA Module 2 Mode Register                                     297

PCA0CPM3  0xDD     PCA Module 3 Mode Register                                     297

PCA0CPM4  0xDE     PCA Module 4 Mode Register                                     297

PCA0CPM5  0xDF     PCA Module 5 Mode Register                                     297

PCA0H     0xFA     PCA Counter High                                               298

PCA0L     0xF9     PCA Counter Low                                                298

PCA0MD    0xD9     PCA Mode                                                       295

PCA0PWM   0xD9     PCA PWM Configuration                                          296

PCON      0x87     Power Control                                                  137

PSCTL     0x8F     Program Store R/W Control                                      131

PSW       0xD0     Program Status Word                                            90

REF0CN    0xD1     Voltage Reference Control                                      69

REG0CN    0xC9     Voltage Regulator Control                                      80

RSTSRC    0xEF     Reset Source Configuration/Status                              143

SBCON0    0xAB     UART0 Baud Rate Generator Control                              244

SBRLH0    0xAD     UART0 Baud Rate Reload High Byte                               245

SBRLL0    0xAC     UART0 Baud Rate Reload Low Byte                                245

SBUF0     0x99     UART0 Data Buffer                                              244

SCON0     0x98     UART0 Control                                                  241

SFR0CN    0x84     SFR Page Control                                               102

SFRLAST   0x86     SFR Stack Last Page                                            105

SFRNEXT   0x85     SFR Stack Next Page                                            104

SFRPAGE   0xA7     SFR Page Select                                                103

110                                     Rev. 1.2
                                                     C8051F55x/56x/57x

Table 12.3. Special Function Registers  (Continued)

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

Register  Address                           Description                           Page

SMB0CF    0xC1     SMBus0 Configuration                                           224

SMB0CN    0xC0     SMBus0 Control                                                 226

SMB0DAT   0xC2     SMBus0 Data                                                    228

SMOD0     0xA9     UART0 Mode                                                     243

SN0       0xF9     Serial Number 0                                                91

SN1       0xFA     Serial Number 1                                                91

SN2       0xFB     Serial Number 2                                                91

SN3       0xFC     Serial Number 3                                                91

SP        0x81     Stack Pointer                                                  89

SPI0CFG   0xA1     SPI0 Configuration                                             253

SPI0CKR   0xA2     SPI0 Clock Rate Control                                        255

SPI0CN    0xF8     SPI0 Control                                                   254

SPI0DAT   0xA3     SPI0 Data                                                      255

TCON      0x88     Timer/Counter Control                                          265

TH0       0x8C     Timer/Counter 0 High                                           268

TH1       0x8D     Timer/Counter 1 High                                           268

TL0       0x8A     Timer/Counter 0 Low                                            267

TL1       0x8B     Timer/Counter 1 Low                                            267

TMOD      0x89     Timer/Counter Mode                                             266

TMR2CN    0xC8     Timer/Counter 2 Control                                        272

TMR2H     0xCD     Timer/Counter 2 High                                           274

TMR2L     0xCC     Timer/Counter 2 Low                                            274

TMR2RLH   0xCB     Timer/Counter 2 Reload High                                    273

TMR2RLL   0xCA     Timer/Counter 2 Reload Low                                     273

TMR3CN    0x91     Timer/Counter 3 Control                                        278

TMR3H     0x95     Timer/Counter 3 High                                           280

TMR3L     0x94     Timer/Counter 3 Low                                            280

TMR3RLH   0x93     Timer/Counter 3 Reload High                                    279

TMR3RLL   0x92     Timer/Counter 3 Reload Low                                     279

VDM0CN    0xFF     VDD Monitor Control                                            141

XBR0      0xE1     Port I/O Crossbar Control 0                                    176

XBR1      0xE2     Port I/O Crossbar Control 1                                    177

XBR2      0xC7     Port I/O Crossbar Control 2                                    178

                                          Rev. 1.2                                111
                                                                         C8051F55x/56x/57x

13.      Interrupts

The C8051F55x/56x/57x devices include an extended interrupt system supporting a total of 18 interrupt

sources with two priority levels. The allocation of interrupt sources between on-chip peripherals and exter-

nal inputs pins varies according to the specific version of the device. Each interrupt source has one or

more associated interrupt-pending flag(s) located in an SFR. When a peripheral or external source meets

a valid interrupt condition, the associated interrupt-pending flag is set to logic 1.

If interrupts are enabled for the source, an interrupt request is generated when the interrupt-pending flag is

set. As soon as execution of the current instruction is complete, the CPU generates an LCALL to a 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, or EIE2). 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.

Note:    Any instruction that clears a bit to disable an interrupt should be immediately followed by an instruction that has

         two or more opcode bytes. Using EA (global interrupt enable) as an example:

//   in     'C':

EA   =   0;     //  clear     EA     bit.

EA   =   0;     //  this   is     a  dummy  instruction  with  two-byte  opcode.

;   in   assembly:

CLR     EA   ;  clear     EA     bit.

CLR     EA   ;  this   is     a   dummy    instruction  with  two-byte   opcode.

For example, if an interrupt is posted during the execution phase of a "CLR EA" opcode (or any instruction

which clears a bit to disable an interrupt source), and the instruction is followed by a single-cycle instruc-

tion, the interrupt may be taken. However, a read of the enable bit will return a 0 inside the interrupt service

routine. When the bit-clearing opcode is followed by a multi-cycle instruction, the interrupt will not be taken.

Some interrupt-pending flags are automatically cleared by the hardware when the CPU vectors to the ISR.

However, most are not cleared by the hardware and must be cleared by software before returning from the

ISR. If an interrupt-pending flag remains set after the CPU completes the return-from-interrupt (RETI)

instruction, a new interrupt request will be generated immediately and the CPU will re-enter the ISR after

the completion of the next instruction.

13.1.       MCU Interrupt Sources and Vectors

The C8051F55x/56x/57x MCUs support 18 interrupt sources. Software can simulate an interrupt by setting

any interrupt-pending flag to logic 1. If interrupts are enabled for the flag, an interrupt request will be gener-

ated 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 13.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).

                                                               Rev. 1.2                                                       112
C8051F55x/56x/57x

13.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 (IE, EIP1, or EIP2) 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 prior-

ity order is used to arbitrate, given in Table 13.1.

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

113                                                   Rev. 1.2
                                                                      C8051F55x/56x/57x

Table 13.1. Interrupt Summary

Interrupt Source             Interrupt   Priority       Pending Flag  Bit addressable?  Cleared by HW?  Enable      Priority

                             Vector         Order                                                       Flag        Control

Reset                        0x0000      Top       None               N/A               N/A             Always      Always

                                                                                                        Enabled     Highest

External Interrupt 0         0x0003      0         IE0 (TCON.1)       Y                 Y               EX0 (IE.0)  PX0 (IP.0)

(INT0)

Timer 0 Overflow             0x000B      1         TF0 (TCON.5)       Y                 Y               ET0 (IE.1)  PT0 (IP.1)

External Interrupt 1         0x0013      2         IE1 (TCON.3)       Y                 Y               EX1 (IE.2)  PX1 (IP.2)

(INT1)

Timer 1 Overflow             0x001B      3         TF1 (TCON.7)       Y                 Y               ET1 (IE.3)  PT1 (IP.3)

UART0                        0x0023      4         RI0 (SCON0.0)      Y                 N               ES0 (IE.4)  PS0 (IP.4)

                                                   TI0 (SCON0.1)

Timer 2 Overflow             0x002B      5         TF2H (TMR2CN.7)    Y                 N               ET2 (IE.5)  PT2 (IP.5)

                                                   TF2L (TMR2CN.6)

SPI0                         0x0033      6         SPIF (SPI0CN.7)    Y                 N               ESPI0       PSPI0

                                                   WCOL (SPI0CN.6)                                      (IE.6)      (IP.6)

                                                   MODF (SPI0CN.5)

                                                   RXOVRN (SPI0CN.4)

SMB0                         0x003B      7         SI (SMB0CN.0)      Y                 N               ESMB0       PSMB0

                                                                                                        (EIE1.0)    (EIP1.0)

ADC0 Window Com-             0x0043      8         AD0WINT            Y                 N               EWADC0      PWADC0

pare                                               (ADC0CN.3)                                           (EIE1.1)    (EIP1.1)

ADC0 Conversion              0x004B      9         AD0INT (ADC0CN.5)  Y                 N               EADC0       PADC0

Complete                                                                                                (EIE1.2)    (EIP1.2)

Programmable                 0x0053      10        CF (PCA0CN.7)      Y                 N               EPCA0       PPCA0

Counter Array                                      CCFn (PCA0CN.n)                                      (EIE1.3)    (EIP1.3)

                                                   COVF (PCA0PWM.6)

Comparator0                  0x005B      11        CP0FIF (CPT0CN.4)  N                 N               ECP0        PCP0

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

Comparator1                  0x0063      12        CP1FIF (CPT1CN.4)  N                 N               ECP1        PCP1

                                                   CP1RIF (CPT1CN.5)                                    (EIE1.5)    (EIP1.5)

Timer 3 Overflow             0x006B      13        TF3H (TMR3CN.7)    N                 N               ET3         PT3

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

LIN0                         0x0073      14        LIN0INT (LINST.3)  N                 N*              ELIN0       PLIN0

                                                                                                        (EIE1.7)    (EIP1.7)

Voltage Regulator            0x007B      15        N/A                N/A               N/A             EREG0       PREG0

Dropout                                                                                                 (EIE2.0)    (EIP2.0)

CAN0                         0x0083      16        CAN0INT            N                 Y               ECAN0       PCAN0

                                                   (CAN0CN.7)                                           (EIE2.1)    (EIP2.1)

Port Match                   0x008B      17        None               N/A               N/A             EMAT        PMAT

                                                                                                        (EIE2.2)    (EIP2.2)

*Note:  The LIN0INT bit  is  cleared by  setting  RSTINT (LINCTRL.3)

                                                         Rev. 1.2                                                            114
C8051F55x/56x/57x

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

115                                     Rev. 1.2
                                                                     C8051F55x/56x/57x

SFR Definition 13.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; Bit-Addressable; SFR Page = All Pages

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.

                                                        Rev. 1.2                                           116
C8051F55x/56x/57x

SFR Definition 13.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; Bit-Addressable; SFR Page = All Pages

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.

117                                             Rev. 1.2
                                                                    C8051F55x/56x/57x

SFR Definition 13.3. EIE1: Extended Interrupt Enable 1

Bit    7       6    5                           4                3         2          1   0

Name   ELIN0   ET3  ECP1                        ECP0  EPCA0         EADC0         EWADC0  ESMB0

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 = 0xE6; SFR Page = All Pages

Bit    Name                                           Function

7      ELIN0   Enable LIN0 Interrupt.

               This bit sets the masking of the LIN0 interrupt.

               0: Disable LIN0 interrupts.

               1: Enable interrupt requests generated by the LIN0INT flag.

6      ET3     Enable Timer 3 Interrupt.

               This bit sets the masking of the Timer 3 interrupt.

               0: Disable Timer 3 interrupts.

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

5      ECP1    Enable Comparator1 (CP1) Interrupt.

               This bit sets the masking of the CP1 interrupt.

               0: Disable CP1 interrupts.

               1: Enable interrupt requests generated by the CP1RIF or CP1FIF flags.

4      ECP0    Enable Comparator0 (CP0) Interrupt.

               This bit sets the masking of the CP0 interrupt.

               0: Disable CP0 interrupts.

               1: Enable interrupt requests generated by the CP0RIF or CP0FIF flags.

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

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

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

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.

                                                     Rev. 1.2                                  118
C8051F55x/56x/57x

SFR Definition 13.4. EIP1: Extended Interrupt Priority 1

Bit    7       6    5                            4                3      2            1    0

Name   PLIN0   PT3  PCP1  PCP0                                 PPCA0     PADC0    PWADC0   PSMB0

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 = 0xF6; SFR Page = 0x00 and 0x0F

Bit    Name                                                  Function

7      PLIN0   LIN0 Interrupt Priority Control.

               This bit sets the priority of the LIN0 interrupt.

               0: LIN0 interrupts set to low priority level.

               1: LIN0 interrupts set to high priority level.

6      PT3     Timer 3 Interrupt Priority Control.

               This bit sets the priority of the Timer 3 interrupt.

               0: Timer 3 interrupts set to low priority level.

               1: Timer 3 interrupts set to high priority level.

5      PCP1    Comparator0 (CP1) Interrupt Priority Control.

               This bit sets the priority of the CP1 interrupt.

               0: CP1 interrupt set to low priority level.

               1: CP1 interrupt set to high priority level.

4      PCP0    Comparator0 (CP0) Interrupt Priority Control.

               This bit sets the priority of the CP0 interrupt.

               0: CP0 interrupt set to low priority level.

               1: CP0 interrupt set to high priority level.

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

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

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

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.

119                                            Rev. 1.2
                                                                    C8051F55x/56x/57x

SFR Definition 13.5. EIE2: Extended Interrupt Enable 2

Bit    7        6  5                             4               3          2              1  0

Name                                                                    EMAT   ECAN0          EREG0

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

Reset  0        0  0                             0               0          0              0  0

SFR  Address =  0xE7; SFR Page = All Pages

Bit    Name                                            Function

7:3    Unused   Read = 00000b; Write = Don’t Care.

2      EMAT     Enable Port Match Interrupt.

                This bit sets the masking of the Port Match interrupt.

                0: Disable all Port Match interrupts.

                1: Enable interrupt requests generated by a Port Match

1      ECAN0    Enable CAN0 Interrupts.

                This bit sets the masking of the CAN0 interrupt.

                0: Disable all CAN0 interrupts.

                1: Enable interrupt requests generated by CAN0.

0      EREG0    Enable Voltage Regulator Dropout Interrupt.

                This bit sets the masking of the Voltage Regulator Dropout     interrupt.

                0: Disable the Voltage Regulator Dropout interrupt.

                1: Enable the Voltage Regulator Dropout interrupt.

                                                       Rev. 1.2                                    120
C8051F55x/56x/57x

SFR Definition 13.6. EIP2: Extended Interrupt Priority Enabled 2

Bit    7        6  5                            4                   3    2              1      0

Name                                                                     PMAT           PCAN0  PREG0

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

Reset  0        0  0                            0                   0    0              0      0

SFR  Address =  0xF7; SFR Page = 0x00 and 0x0F

Bit    Name                                               Function

7:3    Unused   Read = 00000b; Write = Don’t Care.

2      PMAT     Port Match Interrupt Priority Control.

                This bit sets the priority of the Port Match interrupt.

                0: Port Match interrupt set to low priority level.

                1: Port Match interrupt set to high priority level.

1      PCAN0    CAN0 Interrupt Priority Control.

                This bit sets the priority of the CAN0 interrupt.

                0: CAN0 interrupt set to low priority level.

                1: CAN0 interrupt set to high priority level.

0      PREG0    Voltage Regulator Dropout Interrupt Priority Control.

                This bit sets the priority of the Voltage Regulator Dropout interrupt.

                0: Voltage Regulator Dropout interrupt set to low priority level.

                1: Voltage Regulator Dropout interrupt set to high priority level.

121                                             Rev. 1.2
                                                                       C8051F55x/56x/57x

13.3.  External Interrupts INT0 and INT1

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 “25.1. Timer 0 and Timer 1” on page 261) 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 13.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 “19.3. Priority Crossbar

Decoder” on page 172 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.

                                                 Rev. 1.2                                                       122
C8051F55x/56x/57x

SFR Definition 13.7. IT01CF: INT0/INT1 Configuration

Bit    7           6                 5            4         3         2  1                                     0

Name   IN1PL                       IN1SL[2:0]               IN0PL        IN0SL[2:0]

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

Reset  0           0                 0            0         0         0  0                                     0

SFR  Address = 0xE4; SFR Page = 0x0F

Bit    Name                                                 Function

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

                   001: Select P1.1

                   010: Select P1.2

                   011: Select P1.3

                   100: Select P1.4

                   101: Select P1.5

                   110: Select P1.6

                   111: Select P1.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 P1.0

                   001: Select P1.1

                   010: Select P1.2

                   011: Select P1.3

                   100: Select P1.4

                   101: Select P1.5

                   110: Select P1.6

                   111: Select P1.7

123                                               Rev. 1.2
                                                                C8051F55x/56x/57x

14.    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, a single byte at a time, through the C2 interface or by soft-

ware using the MOVX 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 operation is not required. Code execution is stalled during a Flash write/erase oper-

ation. Refer to Table 5.5 for complete Flash memory electrical characteristics.

14.1.  Programming The Flash Memory

The simplest means of programming the Flash memory is through the C2 interface using programming

tools provided by Silicon Labs or a third party vendor. This is the only means for programming a non-initial-

ized device. For details on the C2 commands to program Flash memory, see Section “27. C2 Interface” on

page 300.

To ensure the integrity of Flash contents, it is strongly recommended that the on-chip VDD Monitor be

enabled in any system that includes code that writes and/or erases Flash memory from software. See Sec-

tion 14.4 for more details. Before performing any Flash write or erase procedure, set the FLEWT bit in

Flash Scale register (FLSCL) to 1. Also, note that 8-bit MOVX instructions cannot be used to erase or write

to Flash memory at addresses higher than 0x00FF.

For –I (Industrial Grade) parts, parts programmed at a cold temperature below 0 °C may exhibit weakly

programmed flash memory bits. If programmed at 0 °C or higher, there is no problem reading Flash across

the entire temperature range of -40 °C to 125 °C. This temperature restriction does not apply to –A (Auto-

motive Grade) devices.

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

                                                  Rev. 1.2                                                     124
C8051F55x/56x/57x

14.1.2. Flash Erase Procedure

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 writing to Flash memory using MOVX,

Flash write operations must be enabled by doing the following: (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.

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 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.   Disable interrupts (recommended).

2.   Set the FLEWT bit (register FLSCL).

3.   Set the PSEE bit (register PSCTL).

4.   Set the PSWE 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 data byte to any location within  the  512-byte  page  to  be  erased.

8.   Clear the PSWE and PSEE bits.

14.1.3. Flash Write Procedure

Flash bytes are programmed by software with the following sequence:

1.   Disable interrupts (recommended).

2.   Erase the 512-byte Flash page containing the target location, as described in Section 14.1.2.

3.   Set the FLEWT bit (register FLSCL).

4.   Set the PSWE bit (register PSCTL).

5.   Clear the PSEE bit (register PSCTL).

6.   Write the first key code to FLKEY: 0xA5.

7.   Write the second key code to FLKEY: 0xF1.

8.   Using the MOVX instruction, write a single data byte to the desired location within the 512-byte sector.

9.   Clear the PSWE bit.

Steps 5–7 must be repeated for each byte to be written. After Flash writes are complete, PSWE should be

cleared so that MOVX instructions do not target program memory.

125                                             Rev. 1.2
                                                         C8051F55x/56x/57x

14.1.4. Flash Write Optimization

The Flash write procedure includes a block write option to optimize the time to perform consecutive byte

writes. When block write is enabled by setting the CHBLKW bit (CCH0CN.0), writes to two consecutive

bytes in Flash require the same amount of time as a single byte write. This is performed by caching the first

byte that is written to Flash and then committing both bytes to Flash when the second byte is written. When

block writes are enabled, if the second write does not occur, the first data byte written is not actually written

to Flash. Flash bytes with block write enabled are programmed by software with the following sequence:

1.  Disable interrupts (recommended).

2.  Erase the 512-byte Flash page containing the target location, as described in Section 14.1.2.

3.  Set the FLEWT bit (register FLSCL).

4.  Set the CHBLKW bit (register CCH0CN).

5.  Set the PSWE bit (register PSCTL).

6.  Clear the PSEE bit (register PSCTL).

7.  Write the first key code to FLKEY: 0xA5.

8.  Write the second key code to FLKEY: 0xF1.

9.  Using the MOVX instruction, write the first data byte to the desired location within the 512-byte sector.

10.Write the first key code to FLKEY: 0xA5.

11. Write the second key code to FLKEY: 0xF1.

12.Using the MOVX instruction, write the second data byte to the desired location within the 512-byte

    sector. The location of the second byte must be the next higher address from the first data byte.

13.Clear the PSWE bit.

14.Clear the CHBLKW bit.

                                               Rev. 1.2                                                            126
C8051F55x/56x/57x

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

14.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, or erases) by unprotected code or the C2 interface. The Flash security

mechanism allows the user to lock n 512-byte Flash pages, starting at page 0 (addresses 0x0000 to

0x01FF), where n is the ones complement number represented by the Security Lock Byte. Note that the

page containing the Flash Security Lock Byte is unlocked when no other Flash pages are locked

(all bits of the Lock Byte are 1) and locked when any other Flash pages are locked (any bit of the

Lock Byte is 0). See example in Figure 14.1.

                                              Reserved Area

                     Locked when              Lock Byte

                     any other FLASH          Lock Byte Page

                     pages are locked

                                              Unlocked FLASH Pages

                     Access limit set

                     according to the

                     FLASH security

                     lock byte

                                              Locked Flash Pages

Security Lock Byte:  11111101b

1s Complement:       00000010b

Flash pages locked:  3 (First two Flash pages + Lock Byte Page)

                         Figure 14.1. Flash Program Memory Map

127                                           Rev. 1.2
                                                           C8051F55x/56x/57x

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

unlocked pages, and user firmware executing on locked pages. Table 14.1 summarizes the Flash security

features of the C8051F55x/56x/57x devices.

Table 14.1. Flash Security Summary

                         Action             C2 Debug                    User Firmware executing from:

                                            Interface      an unlocked page                         a locked page

Read, Write or Erase unlocked pages         Permitted                   Permitted                   Permitted

(except page with Lock Byte)

Read, Write or Erase locked pages           Not Permitted               Flash Error Reset           Permitted

(except page with Lock Byte)

Read or Write page containing Lock Byte     Permitted                   Permitted                   Permitted

(if no pages are locked)

Read or Write page containing Lock Byte     Not Permitted               Flash Error Reset           Permitted

(if any page is locked)

Read contents of Lock Byte                  Permitted                   Permitted                   Permitted

(if no pages are locked)

Read contents of Lock Byte                  Not Permitted               Flash Error Reset           Permitted

(if any page is locked)

Erase page containing Lock Byte             Permitted                   Flash Error Reset  Flash Error Reset

(if no pages are locked)

Erase page containing Lock Byte—Unlock all  C2 Device                   Flash Error Reset  Flash Error Reset

pages (if any page is locked)               Erase Only

Lock additional pages                       Not Permitted               Flash Error Reset  Flash Error Reset

(change '1's to '0's in the Lock Byte)

Unlock individual pages                     Not Permitted               Flash Error Reset  Flash Error Reset

(change '0's to '1's in the Lock Byte)

Read, Write or Erase Reserved Area          Not Permitted               Flash Error Reset  Flash Error Reset

C2 Device Erase—Erases all Flash pages including the page containing the Lock Byte.

Flash Error Reset—Not permitted; Causes Flash Error Device Reset (FERROR bit in RSTSRC is '1' after

reset).

- All prohibited operations that are performed via the C2 interface are ignored (do not cause device reset).

- Locking any Flash page also locks the page containing the Lock Byte.

- Once written to, the Lock Byte cannot be modified except by performing a C2 Device Erase.

- If user code writes to the Lock Byte, the Lock does not take effect until the next device reset.

                                            Rev. 1.2                                                           128
C8051F55x/56x/57x

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

The following guidelines are recommended for any system which contains routines which write or erase

Flash from code.

14.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 VREGIN 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 threshold and re-asserts RST if VDD drops

     below the minimum threshold.

3.   Enable the on-chip VDD monitor in the high setting 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 in the high setting 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.

4.   As an added precaution, explicitly enable the VDD monitor in the high setting 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.

Note: The output of the internal voltage regulator is calibrated by the MCU immediately after any reset

       event. The output of the un-calibrated internal regulator could be below the high threshold setting of

       the VDD Monitor. If this is the case and the VDD Monitor is set to the high threshold setting and if the

       MCU receives a non-power on reset (POR), the MCU will remain in reset until a POR occurs (i.e.,

       VDD Monitor will keep the device in reset). A POR will force the VDD Monitor to the low threshold

       setting which is guaranteed to be below the un-calibrated output of the internal regulator. The device

       will then exit reset and resume normal operation. It is for this reason Silicon Labs strongly

       recommends that the VDD Monitor is always left in the low threshold setting (i.e. default value upon

       POR). When programming the Flash in-system, the VDD Monitor must be set to the high threshold

       setting. For the highest system reliability, the time the VDD Monitor is set to the high threshold setting

       should be minimized (e.g., setting the VDD Monitor to the high threshold setting just before the Flash

       write operation and then changing it back to the low threshold setting immediately after the Flash

       write operation).

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

129                                                    Rev. 1.2
                                                                   C8051F55x/56x/57x

14.4.2. PSWE Maintenance

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

    PSWE and PSEE both to a 1 to erase Flash pages.

2.  Minimize the number of variable accesses while PSWE is set to a 1. Handle pointer address updates

    and loop variable maintenance outside the "PSWE = 1;... PSWE = 0;" area. Code examples showing

    this can be found in ”AN201: Writing to Flash from Firmware" available from the Silicon Laboratories

    web site.

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

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

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

14.4.3. System Clock

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

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

                                                         Rev. 1.2                                               130
C8051F55x/56x/57x

SFR Definition 14.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 = 0x00

Bit    Name                                            Function

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.

131                                          Rev. 1.2
                                                                    C8051F55x/56x/57x

SFR Definition 14.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

Bit    Name                                            Function

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.

                                                       Rev. 1.2                                              132
C8051F55x/56x/57x

SFR Definition 14.3. FLSCL: Flash Scale

Bit    7         6                 5       4              3         2           1            0

Name   Reserved  Reserved        Reserved  FLRT           Reserved  Reserved    FLEWT        Reserved

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 = 0xB6; SFR Page = All Pages

Bit    Name                                               Function

7:5    Reserved  Must Write 000b.

4      FLRT      Flash Read Time Control.

                 This bit should be programmed to the smallest allowed value, according  to  the system

                 clock speed.

                 0: SYSCLK < 25 MHz (Flash read strobe is one system clock).

                 1: SYSCLK > 25 MHz (Flash read strobe is two system clocks).

3:2    Reserved  Must Write 00b.

1      FLEWT     Flash Erase Write Time Control.

                 This bit should be set to 1b before Writing or Erasing Flash.

                 0: Short Flash Erase / Write Timing.

                 1: Extended Flash Erase / Write Timing.

0      Reserved  Must Write 0b.

133                                        Rev. 1.2
                                                                       C8051F55x/56x/57x

SFR Definition 14.4. CCH0CN: Cache Control

Bit    7            6                  5             4              3    2                1         0

Name   Reserved     Reserved  CHPFEN           Reserved   Reserved       Reserved         Reserved  CHBLKW

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

Reset  0            0                  1             0              0    0                0         0

SFR  Address = 0xE3; SFR Page = 0x0F

Bit    Name                                               Function

7:6    Reserved     Must Write 00b

5      CHPFEN       Cache Prefect Enable Bit.

                    0: Prefetch engine is disabled.

                    1: Prefetch engine is enabled.

4:1    Reserved     Must Write 0000b.

0      CHBLKW       Block Write Enable Bit.

                    This bit allows block writes to Flash memory from firmware.

                    0: Each byte of a software Flash write is written individually.

                    1: Flash bytes are written in groups of two.

SFR Definition 14.5. ONESHOT: Flash Oneshot Period

Bit    7            6                  5             4              3    2                1         0

Name                                                                     PERIOD[3:0]

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

Reset  0            0                  0             0              1    1                1         1

SFR Address = 0xBE; SFR Page = 0x0F

Bit    Name                                               Function

7:4    Unused       Read = 0000b. Write = don’t care.

3:0    PERIOD[3:0]  Oneshot Period Control Bits.

                    These bits limit the internal Flash read strobe width as follows. When the Flash read

                    strobe is de-asserted, the Flash memory enters a low-power state for the remainder

                    of the system clock cycle.

                                             FLASHRDMAX   =         5ns + (PERIOD × 5ns)

                                                          Rev. 1.2                                         134
                                                                          C8051F55x/56x/57x

15.      Power Management Modes

The C8051F55x/56x/57x 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 Match or Comparator low output. 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 15.1 describes the Power Control

Register (PCON) used to control the C8051F55x/56x/57x devices’ Stop and Idle power management

modes. Suspend mode is controlled by the SUSPEND bit in the OSCICN register (SFR Definition 18.2).

Although the C8051F55x/56x/57x 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 tim-

ers or serial buses, draw little power when they are not in use. Turning off oscillators lowers power con-

sumption considerably, at the expense of reduced functionality.

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

ORL     PCON,     #01h                     ;   set  IDLE  bit

MOV     PCON,     PCON                     ;   ...  followed   by   a     3-cycle  dummy  instruction

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 “16.6. PCA Watchdog Timer

Reset” on page 142 for more information on the use and configuration of the WDT.

                                                          Rev. 1.2                                                 135
C8051F55x/56x/57x

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

15.3.  Suspend Mode

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.

Suspend mode can be terminated by three types of events, a port match (described in Section “19.5. Port

Match” on page 179), a Comparator low output (if enabled), or a device reset event. When Suspend mode

is terminated, the device will continue execution on the instruction following the one that set the SUSPEND

bit. If the wake event 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 execution at address 0x0000.

Note: Before entering suspend mode, firmware must set the ZTCEN bit in REF0CN (SFR Definition 7.1).

136                     Rev. 1.2
                                                            C8051F55x/56x/57x

SFR Definition 15.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

Bit    Name                                    Function

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

                                               Rev. 1.2                                                     137
                                                                                           C8051F55x/56x/57x

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

during and after the reset. For VDD Monitor and power-on resets, the RST pin is driven low until the device

exits the reset state.

Note: When VIO rises faster than VDD, which can happen when VREGIN and VIO are tied together, a

     delay created between GPIO power (VIO) and the logic controlling GPIO (VDD) results in a

     temporary unknown state at the GPIO pins. When VIO rises faster than VDD, the GPIO may enter

     the following states: floating, glitch low, or glitch high. Cross coupling VIO and VDD with a 4.7 µF

     capacitor mitigates the root cause of the problem by allowing VIO and VDD to rise at the same rate.

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

                                                                                                             Power On

                                                                     Supply                                  Reset

                                                                     Monitor

                                                                     +                            '0'                              /RST

     Px.x               Comparator 0                                 -             Enable                              (wired-OR)

                        +

     Px.x               -

                           C0RSEF

                           Missing                                                                                      Reset

                           Clock                                                                                        Funnel

                           Detector

                           (one-

                           shot)                       PCA

                                      EN      WDT                                          (Software Reset)

                                                                                           SWRSF

                                                       EN                                                    Errant

                           MCD        Enable           WD T  Enable                                          FLASH

                                                                                                             Operation

           System

           Clock                              CIP-51

                                      Microcontroller                System Reset

                                              Core

                                          Extended Interrupt

                                              Handler

                                              Figure                 16.1. Reset   Sources

                                                                        Rev. 1.2                                                         138
C8051F55x/56x/57x

16.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 16.2. plots the

power-on and VDD monitor reset timing.

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.

Note: For devices with a date code before year 2011, work week 24 (1124), if the /RST pin is held low for

       more than 1 second while power is applied to the device, and then /RST is released, a percentage

       of devices may lock up and fail to execute code. Toggling the /RST pin does not clear the condition.

       The condition is cleared by cycling power. Most devices that are affected will show the lock up

       behavior only within a narrow range of temperatures (a 5 to 10 °C window). Parts with a date code

       of year 2011, work week 24 (1124) or later do not have any restrictions on /RST low time. The date

       code of a device is a four-digit number on the bottom-most line of each device with the format

       YYWW, where YY is the two-digit calendar year and WW is the two digit work week.

                       volts                                                             VDD

                 2.45               VRST

                 2.25

                 2.0                VDD

                 1.0

                                                                                              t

       Logic HIGH             /RST

                                                  TPORDelay

       Logic LOW

                                                                  VDD

                                           Power-On               Monitor

                                           Reset                  Reset

                       Figure       16.2.  Power-On and      VDD  Monitor Reset  Timing

139                                                  Rev. 1.2
                                                       C8051F55x/56x/57x

16.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 16.2). When VDD returns

to a level above VRST, the CIP-51 will be released from the reset state. Note that 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. To protect the integrity of Flash contents, the VDD

monitor must be enabled to the higher setting (VDMLVL = 1) and selected as a reset source if soft-

ware contains routines which erase or write Flash memory. If the VDD monitor is not enabled and

set to the high level, any erase or write performed on Flash memory will cause a Flash Error device

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 as follows:

1.  Enable the VDD monitor (VDMEN bit in VDM0CN = 1).

2.  If necessary, wait for the VDD monitor to stabilize (see Table 5.4 for the VDD Monitor turn-on time).

    Note: This delay should be omitted if software contains routines that erase or write Flash

    memory.

3.  Select the VDD monitor as a reset source (PORSF bit in RSTSRC = 1).

See Figure 16.2 for VDD monitor timing; note that the power-on-reset delay is not incurred after a                VDD

monitor reset. See Table 5.4 for complete electrical characteristics of the VDD monitor.

Note: The output of the internal voltage regulator is calibrated by the MCU immediately after any reset

        event. The output of the un-calibrated internal regulator could be below the high threshold setting of

        the VDD Monitor. If this is the case and the VDD Monitor is set to the high threshold setting and if the

        MCU receives a non-power on reset (POR), the MCU will remain in reset until a POR occurs (i.e.,

        VDD Monitor will keep the device in reset). A POR will force the VDD Monitor to the low threshold

        setting which is guaranteed to be below the un-calibrated output of the internal regulator. The device

        will then exit reset and resume normal operation. It is for this reason Silicon Labs strongly

        recommends that the VDD Monitor is always left in the low threshold setting (i.e. default value upon

        POR).

When programming the Flash in-system, the VDD Monitor must be set to the high threshold setting. For the

highest system reliability, the time the VDD Monitor is set to the high threshold setting should be minimized

(e.g., setting the VDD Monitor to the high threshold setting just before the Flash write operation and then

changing it back to the low threshold setting immediately after the Flash write operation).

Note: The VDD Monitor may trigger on fast changes in voltage on the VDD pin, regardless of whether the

        voltage increased or decreased.

                                         Rev. 1.2                                                                 140
C8051F55x/56x/57x

SFR Definition 16.1. VDM0CN: VDD Monitor Control

    Bit        7           6              5         4            3                 2            1         0

Name     VDMEN        VDDSTAT       VDMLVL

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

Reset    Varies            Varies         0         0            0                 0            0         0

SFR  Address = 0xFF;  SFR Page = 0x00

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

                      nition 16.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. See Table 5.4 for the minimum VDD Monitor turn-on time.

                      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        VDMLVL       VDD Monitor Level Select.

                      0: VDD Monitor Threshold is set to VRST-LOW

                      1: VDD Monitor Threshold is set to VRST-HIGH. This setting is required for any sys-

                      tem includes code that writes to and/or erases Flash.

4:0      Unused       Read = 00000b; Write = Don’t care.

16.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 Table 5.4 for complete RST pin spec-

ifications. The PINRSF flag (RSTSRC.0) is set on exit from an external reset.

16.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 value specified in Table 5.4, “Reset Electrical Characteristics,”

on   page 41,  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; otherwise, this bit reads 0. Writing a 1 to

the MCDRSF bit enables the Missing Clock Detector; writing a 0 disables it. The state of the RST pin is

unaffected by this reset.

141                                                 Rev. 1.2
                                                                     C8051F55x/56x/57x

16.5.    Comparator0 Reset

Comparator0 can be configured as a reset source by writing a 1 to the C0RSEF flag (RSTSRC.5). Com-

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

16.6.    PCA Watchdog Timer Reset

The programmable Watchdog Timer (WDT) function of the Programmable Counter Array (PCA) can be

used to prevent software from running out of control during a system malfunction. The PCA WDT function

can  be  enabled  or  disabled  by  software  as  described      in  Section  “26.4. Watchdog     Timer  Mode”  on

page 291; the WDT is enabled and clocked by SYSCLK/12 following any reset. If a system malfunction

prevents user software from updating the WDT, a reset is generated and the WDTRSF bit (RSTSRC.5) is

set to 1. The state of the RST pin is unaffected by this reset.

16.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 in or above the reserved space.

  A Flash read is attempted above user code space. This occurs when a MOVC operation targets an

   address in or above the reserved space.

  A Program read is attempted above user code space. This occurs when user code attempts to branch

   to an address in or above the reserved space.

  A Flash read, write or erase attempt is restricted due to a Flash security setting (see Section

   “14.3. Security Options” on page 127).

  A Flash read, write, or erase is attempted when the VDD Monitor is not enabled to the high threshold

   and set as a reset source.

The FERROR bit (RSTSRC.6) is set following a Flash error reset. The state of the RST pin is unaffected by

this reset.

16.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.2                                                      142
C8051F55x/56x/57x

SFR Definition 16.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 = 0x00

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 Com-         Set to 1 if Comparator0

                   and Flag.                             parator0 as a reset source       caused the last reset.

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

                   Reset Flag, and VDD monitor           VDD monitor as a reset           on or VDD monitor reset

                   Reset Enable.                         source.                          occurs.

                                                         Writing 1 to this bit            When set to 1 all other

                                                         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

                                                                                          the last reset.

Note:  Do not use  read-modify-write operations on this  register

143                                                      Rev. 1.2
                                                                    C8051F55x/56x/57x

17.    External Data Memory Interface and On-Chip XRAM

For C8051F55x/56x/57x devices, 2 kB of RAM are included on-chip and mapped into the external data

memory space (XRAM). Additionally, an External Memory Interface (EMIF) is available on the C8051F568-

9 and ‘F570-5 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 Register (EMI0CN, shown in SFR

Definition 17.1).

Note:  The MOVX instruction can also be used for writing to the Flash memory. See Section “14. Flash Memory” on

       page 124 for details. The MOVX instruction accesses XRAM by default.

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

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

17.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.2                                                   144
C8051F55x/56x/57x

17.2.  Configuring the External Memory Interface

Configuring the External Memory Interface consists of four steps:

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

     most common), and skip the associated pins in the crossbar.

2.   Configure Port latches to “park” the EMIF pins in a dormant state (usually by setting them to logic 1).

3.   Select the memory mode (on-chip only, split mode without bank select, split mode with bank select, or

     off-chip only).

4.   Set up timing to interface with off-chip memory or peripherals.

Each of these four steps is explained in detail in the following sections. The Port selection and Mode bits

are located in the EMI0CF register shown in SFR Definition .

17.3.  Port Configuration

The External Memory Interface appears on Ports 1, 2 and 3 when it is used for off-chip memory access.

These ports are multiplexed so that low-order address lines are shared with the data lines. When the EMIF

is used, the Crossbar should be configured to skip over the /RD control line (P1.6) and the /WR control line

(P1.7) using the P1SKIP register and also skip over the ALE control line (P1.5). For more information

about configuring the Crossbar, see Section “19.6. Special Function Registers for Accessing and Configur-

ing Port I/O” on page 183. The EMIF pinout is shown inTable 17.1 on page 146.

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 or to the Crossbar settings for those pins. See Section “19. Port Input/Out-

put” on page 169 for more information about the Crossbar and 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.

145                        Rev. 1.2
                               C8051F55x/56x/57x

Table  17.1. EMIF Pinout (C8051F568-9 and  ‘F570-5)

            Multiplexed  Mode

       Signal Name            Port Pin

       RD                      P1.6

       WR                      P1.7

       ALE                     P1.5

       D0/A0                   P3.0

       D1/A1                   P3.1

       D2/A2                   P3.2

       D3/A3                   P3.3

       D4/A4                   P3.4

       D5/A5                   P3.5

       D6/A6                   P3.6

       D7/A7                   P3.7

       A8                      P2.0

       A9                      P2.1

       A10                     P2.2

       A11                     P2.3

       A12                     P2.4

       A13                     P2.5

       A14                     P2.6

       A15                     P2.7

                    Rev. 1.2                         146
C8051F55x/56x/57x

SFR Definition 17.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 = 0x00

Bit    Name                                              Function

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

147                                            Rev. 1.2
                                                                 C8051F55x/56x/57x

SFR Definition 17.2. EMI0CF: External Memory Configuration

Bit    7          6         5                   4             3            2  1                      0

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

Type                                                    R/W

Reset  0          0         0                   0             0            0  1                      1

SFR  Address = 0xB2; SFR Page = 0x0F

Bit    Name                                             Function

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

4      Reserved   Read = 0b; Must Write 0b.

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 2 kB boundary are directed

                  on-chip. Accesses above the 2 kB 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 2 kB boundary are directed on-

                  chip. Accesses above the 2 kB 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.

                                                    Rev. 1.2                                             148
C8051F55x/56x/57x

17.4.   Multiplexed Mode

The External Memory Interface operates only in a Multiplexed mode. 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 17.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 “17.6.1. Multiplexed Mode” on page 153 for more information.

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

                                      74HC373

     E  ALE                           G

     M  AD[7:0]  ADDRESS/DATA BUS     D                                    Q  A[7:0]

                          VDD                                                     64 K X 8

     I                                (Optional)                                      SRAM

                                   8

     F                                                                        I/O[7:0]

                                                                              CE

        /WR                                                                   WE

        /RD                                                                   OE

                 Figure 17.1. Multiplexed Configuration Example

149                       Rev. 1.2
                                                                     C8051F55x/56x/57x

17.5.  Memory Mode Selection

The external data memory space can be configured in one of four modes, shown in Figure 17.2, based on

the EMIF Mode bits in the EMI0CF register (SFR Definition 17.2). These modes are summarized below.

More information about the different modes can be found in Section “17.6. Timing” on page 151.

   EMI0CF[3:2] = 00          EMI0CF[3:2] = 01          EMI0CF[3:2] = 10          EMI0CF[3:2] = 11

                     0xFFFF                    0xFFFF                    0xFFFF                                 0xFFFF

   On-Chip XRAM

   On-Chip XRAM              Off-Chip                  Off-Chip

                             Memory                    Memory

                             (No Bank Select)          (Bank Select)

   On-Chip XRAM

                                                                                 Off-Chip

                                                                                 Memory

   On-Chip XRAM

   On-Chip XRAM

                             On-Chip XRAM              On-Chip XRAM

   On-Chip XRAM

                     0x0000                    0x0000                    0x0000                                 0x0000

                                     Figure 17.2. EMIF Operating Modes

17.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 2 kB boundaries. As an

example, the addresses 0x800 and 0x1000 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.

17.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.2                                                 150
C8051F55x/56x/57x

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

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

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

SYSCLK 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 17.2 lists the ac parameters for the External

Memory Interface, and Figure 17.3 through Figure 17.5 show the timing diagrams for the different External

Memory Interface modes and MOVX operations.

151                                                  Rev. 1.2
                                                               C8051F55x/56x/57x

SFR Definition 17.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 = 0xAA; SFR Page = 0x0F

Bit    Name                                     Function

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.2                             152
C8051F55x/56x/57x

17.6.1. Multiplexed Mode

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

                          TALEH            TALEL

     ALE

                                                                TWDS                        TWDH

                                                        TACS               TACW             TACH

           WR

           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

                                 DPL

                          TALEH            T                                    T        T
                                            ALEL
                                                                                 RDS      RDH

     ALE

                                                        TACS               TACW             TACH

           RD

           WR

                          Figure 17.3. Multiplexed 16-bit MOVX Timing

153                                                   Rev. 1.2
                                                                        C8051F55x/56x/57x

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

                                            Muxed 8-bit WRITE Without Bank Select

ADDR[15:8]

AD[7:0]                   EMIF ADDRESS (8 LSBs) from                    EMIF  WRITE   DATA

                                 R0 or R1

                          TALEH             TALEL

           ALE

                                                                    T   WDS                         TWDH

                                                          TACS                TACW                  TACH

           WR

           RD

                                             Muxed 8-bit  READ Without  Bank  Select

ADDR[15:8]

AD[7:0]                   EMIF ADDRESS  (8 LSBs) from                            EMIF      READ  DATA

                                 R0 or  R1

                          TALEH             TALEL                                  T             T

                                                                                      RDS        RDH

           ALE

                                             &n