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

产品描述

搜索

C8051F389-GQ

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

器件描述

8-bit Microcontrollers - MCU Flash-64k-ADC-LQFP32

参数
产品属性属性值
Product AttributeAttribute Value
制造商:
Manufacturer:
Silicon Laboratories
产品种类:
Product Category:
8-bit Microcontrollers - MCU
RoHS:YES
安装风格:
Mounting Style:
SMD/SMT
封装 / 箱体:
Package / Case:
LQFP-32
系列:
Series:
C8051F389
Core:8051
Data Bus Width:8 bit
Maximum Clock Frequency:48 MHz
Program Memory Size:64 kB
Data RAM Size:4.25 kB
ADC Resolution:10 bit
Number of I/Os:25 I/O
工作电源电压:
Operating Supply Voltage:
3.3 V
最小工作温度:
Minimum Operating Temperature:
- 40 C
最大工作温度:
Maximum Operating Temperature:
+ 85 C
接口类型:
Interface Type:
I2C, SPI, UART
封装:
Packaging:
Reel
Program Memory Type:Flash
商标:
Brand:
Silicon Labs
Data RAM Type:RAM
Moisture Sensitive:Yes
Number of ADC Channels:2
Number of Timers/Counters:6 Timer
Processor Series:C8051F38x
产品类型:
Product Type:
8-bit Microcontrollers - MCU
工厂包装数量:
Factory Pack Quantity:
250
子类别:
Subcategory:
Microcontrollers - MCU
电源电压-最大:
Supply Voltage - Max:
5.25 V
电源电压-最小:
Supply Voltage - Min:
2.7 V
单位重量:
Unit Weight:
0.001368 oz

C8051F389-GQ器件文档内容

                                                                     C8051F380/1/2/3/4/5/6/7/C

                                                                                Full Speed USB Flash MCU Family

Analog Peripherals                                                   High Speed 8051 µC Core

-  10-Bit ADC (C8051F380/1/2/3/C only)                               -         Pipelined instruction architecture; executes 70% of

   •  Up to 500 ksps                                                           instructions in 1 or 2 system clocks

   •  Built-in analog multiplexer with single-ended and              -         Up to 48 MIPS operation

      differential mode                                              -         Expanded interrupt handler

   •  VREF from external pin, internal reference, or VDD             Memory

   •  Built-in temperature sensor                                              4352 or 2304 Bytes RAM

   •  External conversion start input option                         -

-  Two comparators                                                   -         64, 32, or 16 kB Flash; In-system programmable in

-  Internal voltage reference (C8051F380/1/2/3/C only)                         512-byte sectors

-  Brown-out detector and POR Circuitry                              Digital Peripherals

USB Function Controller                                              -         40/25 Port I/O; All 5 V tolerant with high sink current

-  USB specification 2.0 compliant                                   -         Hardware enhanced SPI™, two I2C/SMBus™, and two

-  Full speed (12 Mbps) or low speed (1.5 Mbps) operation                      enhanced UART serial ports

-  Integrated clock recovery; no external crystal required for       -         Six general purpose 16-bit counter/timers

   full speed or low speed                                           -         16-bit programmable counter array (PCA) with five cap-

-  Supports eight flexible endpoints                                           ture/compare modules

-  1 kB USB buffer memory                                            -         External Memory Interface (EMIF)

-  Integrated transceiver; no external resistors required            Clock Sources

On-Chip Debug                                                        -         Internal Oscillator: ±0.25% accuracy with clock recovery

-  On-chip debug circuitry facilitates full speed, non-intru-                  enabled. Supports all USB and UART modes

   sive in-system debug (No emulator required)                       -         External Oscillator: Crystal, RC, C, or clock (1 or 2 Pin

-  Provides breakpoints, single stepping,                                      modes)

   inspect/modify memory and registers                               -         Low Frequency (80 kHz) Internal Oscillator

-  Superior performance to emulation systems using                   -         Can switch between clock sources on-the-fly

   ICE-chips, target pods, and sockets                               Packages

Voltage Supply Input: 2.7 to 5.25 V                                  -         48-pin TQFP (C8051F380/2/4/6)

-  Voltages from 2.7 to 5.25 V supported using On-Chip               -         32-pin LQFP (C8051F381/3/5/7/C)

   Voltage Regulators                                                -         5x5 mm 32-pin QFN (C8051F381/3/5/7/C)

                                                                     Temperature Range: –40 to +85 °C

                                              ANALOG                           DIGITAL                     I/O

                                         PERIPHERALS                    UART0                              Port  0

                                                                        UART1   CROSSBAR

                                      A       10-bit           +        SPI               Ext. Memory I/F  Port  1

                                      M       500 ksps         -  +  SMBus0

                                      U       ADC                 -  SMBus1                                Port  2

                                      X                                 PCA

                                                                     6 Timers                              Port  3

                                      TEMP    VREF             VREG

                                      SENSOR                            48 Pin Only                        Port  4

                                         C8051F380/1/2/3 Only

                                      PRECISION INTERNAL                    USB Controller /

                                         OSCILLATORS                            Transceiver

                                              HIGH-SPEED CONTROLLER CORE

                                         64/32 kB                    8051 CPU          4/2 kB RAM

                                         ISP FLASH                   48 MIPS

                                         FLEXIBLE                    DEBUG             POR                 WDT

                                      INTERRUPTS                     CIRCUITRY

Rev. 1.4 10/13                                Copyright © 2013 by Silicon Laboratories                              C8051F380/1/2/3/4/5/6/7/C
C8051F380/1/2/3/4/5/6/7/C

2  Rev. 1.4
                   C8051F380/1/2/3/4/5/6/7/C

Table of Contents

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

2. C8051F34x Compatibility ........................................................................................ 20

2.1. Hardware Incompatibilities ................................................................................ 21

3. Pinout and Package Definitions ............................................................................. 22

4. Typical Connection Diagrams ................................................................................ 34

4.1. Power   ............................................................................................................ 34

4.2. USB     ............................................................................................................ 36

4.3. Voltage Reference (VREF)................................................................................ 36

5. Electrical Characteristics ........................................................................................ 37

5.1. Absolute Maximum Specifications..................................................................... 37

5.2. Electrical Characteristics ................................................................................... 38

6. 10-Bit ADC (ADC0, C8051F380/1/2/3/C only) ......................................................... 46

6.1. Output Code Formatting .................................................................................... 47

6.3. Modes of Operation ........................................................................................... 50

6.3.1. Starting a Conversion................................................................................ 50

6.3.2. Tracking Modes......................................................................................... 51

6.3.3. Settling Time Requirements...................................................................... 52

6.4. Programmable Window Detector....................................................................... 56

6.4.1. Window Detector Example........................................................................ 58

6.5. ADC0 Analog Multiplexer (C8051F380/1/2/3/C only) ........................................ 59

7. Voltage Reference Options ..................................................................................... 62

8. Comparator0 and Comparator1.............................................................................. 64

8.1. Comparator Multiplexers ................................................................................... 71

9. Voltage Regulators (REG0 and REG1)................................................................... 74

9.1. Voltage Regulator (REG0)................................................................................. 74

9.1.1. Regulator Mode Selection......................................................................... 74

9.1.2. VBUS Detection ........................................................................................ 74

9.2. Voltage Regulator (REG1)................................................................................. 74

10. Power Management Modes................................................................................... 76

10.1. Idle Mode......................................................................................................... 76

10.2. Stop Mode ....................................................................................................... 77

10.3. Suspend Mode ................................................................................................ 77

11. CIP-51 Microcontroller........................................................................................... 79

11.1. Instruction Set.................................................................................................. 80

11.1.1. Instruction and CPU Timing .................................................................... 80

11.2. CIP-51 Register Descriptions .......................................................................... 85

12. Prefetch Engine...................................................................................................... 88

13. Memory Organization ............................................................................................ 89

13.1. Program Memory............................................................................................. 91

13.2. Data Memory ................................................................................................... 91

13.3. General Purpose Registers ............................................................................. 92

13.4. Bit Addressable Locations ............................................................................... 92

13.5. Stack  ............................................................................................................ 92

                   Rev. 1.4                                                                                                   3
C8051F380/1/2/3/4/5/6/7/C

14. External Data Memory Interface and On-Chip XRAM ......................................... 93

   14.1. Accessing XRAM............................................................................................. 93

   14.1.1. 16-Bit MOVX Example ............................................................................ 93

   14.1.2. 8-Bit MOVX Example .............................................................................. 93

   14.2. Accessing USB FIFO Space ........................................................................... 94

   14.3. Configuring the External Memory Interface ..................................................... 95

   14.4. Port Configuration............................................................................................ 95

   14.5. Multiplexed and Non-multiplexed Selection..................................................... 98

   14.5.1. Multiplexed Configuration........................................................................ 98

   14.5.2. Non-multiplexed Configuration................................................................ 98

   14.6. Memory Mode Selection................................................................................ 100

   14.6.1. Internal XRAM Only .............................................................................. 100

   14.6.2. Split Mode without Bank Select............................................................. 100

   14.6.3. Split Mode with Bank Select.................................................................. 101

   14.6.4. External Only......................................................................................... 101

   14.7. Timing  .......................................................................................................... 102

   14.7.1. Non-multiplexed Mode .......................................................................... 104

   14.7.1.1. 16-bit MOVX: EMI0CF[4:2] = 101, 110, or 111............................. 104

   14.7.1.2. 8-bit MOVX without Bank Select: EMI0CF[4:2] = 101 or 111 ....... 105

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

   14.7.2. Multiplexed Mode .................................................................................. 107

   14.7.2.1. 16-bit MOVX: EMI0CF[4:2] = 001, 010, or 011............................. 107

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

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

15. Special Function Registers................................................................................. 111

   15.1. 13.1. SFR Paging .......................................................................................... 111

16. Interrupts .............................................................................................................. 118

   16.1. MCU Interrupt Sources and Vectors.............................................................. 119

   16.1.1. Interrupt Priorities.................................................................................. 119

   16.1.2. Interrupt Latency ................................................................................... 119

   16.2. Interrupt Register Descriptions ...................................................................... 119

   16.3. INT0 and INT1 External Interrupt Sources .................................................... 127

17. Reset Sources ...................................................................................................... 129

   17.1. Power-On Reset ............................................................................................ 130

   17.2. Power-Fail Reset / VDD Monitor ................................................................... 131

   17.3. External Reset ............................................................................................... 132

   17.4. Missing Clock Detector Reset ....................................................................... 132

   17.5. Comparator0 Reset ....................................................................................... 132

   17.6. PCA Watchdog Timer Reset ......................................................................... 133

   17.7. Flash Error Reset .......................................................................................... 133

   17.8. Software Reset .............................................................................................. 133

   17.9. USB Reset..................................................................................................... 133

18. Flash Memory....................................................................................................... 135

   18.1. Programming The Flash Memory .................................................................. 135

   18.1.1. Flash Lock and Key Functions .............................................................. 135

4                Rev. 1.4
C8051F380/1/2/3/4/5/6/7/C

18.1.2. Flash Erase Procedure ......................................................................... 135

18.1.3. Flash Write Procedure .......................................................................... 136

18.2. Non-Volatile Data Storage............................................................................. 137

18.3. Security Options ............................................................................................ 137

19. Oscillators and Clock Selection ......................................................................... 142

19.1. System Clock Selection................................................................................. 143

19.2. USB Clock Selection ..................................................................................... 143

19.3. Programmable Internal High-Frequency (H-F) Oscillator .............................. 145

19.3.1. Internal Oscillator Suspend Mode ......................................................... 145

19.4. Clock Multiplier .............................................................................................. 147

19.5. Programmable Internal Low-Frequency (L-F) Oscillator ............................... 148

19.5.1. Calibrating the Internal L-F Oscillator.................................................... 148

19.6. External Oscillator Drive Circuit..................................................................... 149

19.6.1. External Crystal Mode........................................................................... 149

19.6.2. External RC Example............................................................................ 151

19.6.3. External Capacitor Example.................................................................. 151

20. Port Input/Output ................................................................................................. 153

20.1. Priority Crossbar Decoder ............................................................................. 154

20.2. Port I/O Initialization ...................................................................................... 158

20.3. General Purpose Port I/O .............................................................................. 161

21. Universal Serial Bus Controller (USB0) ............................................................. 172

21.1. Endpoint Addressing ..................................................................................... 172

21.2. USB Transceiver ........................................................................................... 173

21.3. USB Register Access .................................................................................... 175

21.4. USB Clock Configuration............................................................................... 179

21.5. FIFO Management ........................................................................................ 181

21.5.1. FIFO Split Mode .................................................................................... 181

21.5.2. FIFO Double Buffering .......................................................................... 182

21.5.1. FIFO Access ......................................................................................... 182

21.6. Function Addressing...................................................................................... 183

21.7. Function Configuration and Control............................................................... 183

21.8. Interrupts ....................................................................................................... 186

21.9. The Serial Interface Engine ........................................................................... 193

21.10. Endpoint0 .................................................................................................... 193

21.10.1. Endpoint0 SETUP Transactions ......................................................... 193

21.10.2. Endpoint0 IN Transactions.................................................................. 193

21.10.3. Endpoint0 OUT Transactions.............................................................. 194

21.11. Configuring Endpoints1-3 ............................................................................ 196

21.12. Controlling Endpoints1-3 IN......................................................................... 197

21.12.1. Endpoints1-3 IN Interrupt or Bulk Mode.............................................. 197

21.12.2. Endpoints1-3 IN Isochronous Mode.................................................... 198

21.13. Controlling Endpoints1-3 OUT..................................................................... 201

21.13.1. Endpoints1-3 OUT Interrupt or Bulk Mode.......................................... 201

21.13.2. Endpoints1-3 OUT Isochronous Mode................................................ 201

22. SMBus0 and SMBus1 (I2C Compatible)............................................................. 205

Rev. 1.4                                                                                                                      5
C8051F380/1/2/3/4/5/6/7/C

   22.1. Supporting Documents ..................................................................................               206

   22.2. SMBus Configuration.....................................................................................              206

   22.3. SMBus Operation ..........................................................................................            206

   22.3.1. Transmitter Vs. Receiver.......................................................................                     207

   22.3.2. Arbitration..............................................................................................           207

   22.3.3. Clock Low Extension.............................................................................                    207

   22.3.4. SCL Low Timeout..................................................................................                   207

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

   22.4. Using the SMBus...........................................................................................            208

   22.4.1. SMBus Configuration Register..............................................................                          208

   22.4.2. SMBus Timing Control Register............................................................                           210

   22.4.3. SMBnCN Control Register ....................................................................                        214

   22.4.3.1. Software ACK Generation ............................................................                              214

   22.4.3.2. Hardware ACK Generation ...........................................................                               214

   22.4.4. Hardware Slave Address Recognition ..................................................                               217

   22.4.5. Data Register ........................................................................................              221

   22.5. SMBus Transfer Modes.................................................................................                 223

   22.5.1. Write Sequence (Master) ......................................................................                      223

   22.5.2. Read Sequence (Master) ......................................................................                       224

   22.5.3. Write Sequence (Slave) ........................................................................                     225

   22.5.4. Read Sequence (Slave) ........................................................................                      226

   22.6. SMBus Status Decoding................................................................................                 226

23. UART0 ...................................................................................................................  232

   23.1. Enhanced Baud Rate Generation..................................................................                       233

   23.2. Operational Modes ........................................................................................            234

   23.2.1. 8-Bit UART ............................................................................................             234

   23.2.2. 9-Bit UART ............................................................................................             235

   23.3. Multiprocessor Communications ...................................................................                     236

24. UART1 ...................................................................................................................  240

   24.1. Baud Rate Generator ....................................................................................              241

   24.2. Data Format...................................................................................................        242

   24.3. Configuration and Operation .........................................................................                 243

   24.3.1. Data Transmission ................................................................................                  243

   24.3.2. Data Reception .....................................................................................                243

   24.3.3. Multiprocessor Communications ...........................................................                           244

25. Enhanced Serial Peripheral Interface (SPI0) .....................................................                          250

   25.1. Signal Descriptions........................................................................................           251

   25.1.1. Master Out, Slave In (MOSI).................................................................                        251

   25.1.2. Master In, Slave Out (MISO).................................................................                        251

   25.1.3. Serial Clock (SCK) ................................................................................                 251

   25.1.4. Slave Select (NSS) ...............................................................................                  251

   25.2. SPI0 Master Mode Operation ........................................................................                   251

   25.3. SPI0 Slave Mode Operation ..........................................................................                  253

   25.4. SPI0 Interrupt Sources ..................................................................................             254

   25.5. Serial Clock Phase and Polarity ....................................................................                  254

6  Rev. 1.4
         C8051F380/1/2/3/4/5/6/7/C

25.6. SPI Special Function Registers ..................................................................... 256

26. Timers ................................................................................................................... 263

26.1. Timer 0 and Timer 1 ...................................................................................... 266

26.1.1. Mode 0: 13-bit Counter/Timer ............................................................... 266

26.1.2. Mode 1: 16-bit Counter/Timer ............................................................... 267

26.1.3. Mode 2: 8-bit Counter/Timer with Auto-Reload..................................... 267

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

26.2. Timer 2 .......................................................................................................... 274

26.2.1. 16-bit Timer with Auto-Reload............................................................... 274

26.2.2. 8-bit Timers with Auto-Reload............................................................... 275

26.2.3. Timer 2 Capture Modes: USB Start-of-Frame or LFO Falling Edge ..... 275

26.3. Timer 3 .......................................................................................................... 281

26.3.1. 16-bit Timer with Auto-Reload............................................................... 281

26.3.2. 8-bit Timers with Auto-Reload............................................................... 282

26.3.3. Timer 3 Capture Modes: USB Start-of-Frame or LFO Falling Edge ..... 282

26.4. Timer 4 .......................................................................................................... 288

26.4.1. 16-bit Timer with Auto-Reload............................................................... 288

26.4.2. 8-bit Timers with Auto-Reload............................................................... 289

26.5. Timer 5 .......................................................................................................... 293

26.5.1. 16-bit Timer with Auto-Reload............................................................... 293

26.5.2. 8-bit Timers with Auto-Reload............................................................... 294

27. Programmable Counter Array............................................................................. 298

27.1. PCA Counter/Timer ....................................................................................... 299

27.2. PCA0 Interrupt Sources................................................................................. 300

27.3. Capture/Compare Modules ........................................................................... 301

27.3.1. Edge-triggered Capture Mode............................................................... 302

27.3.2. Software Timer (Compare) Mode.......................................................... 303

27.3.3. High-Speed Output Mode ..................................................................... 304

27.3.4. Frequency Output Mode ....................................................................... 305

27.3.5.  8-bit Pulse Width Modulator Mode ....................................................... 306

27.3.6.  16-Bit Pulse Width Modulator Mode..................................................... 307

27.4. Watchdog Timer Mode .................................................................................. 308

27.4.1. Watchdog Timer Operation ................................................................... 308

27.4.2. Watchdog Timer Usage ........................................................................ 309

27.5. Register Descriptions for PCA0..................................................................... 311

28. C2 Interface .......................................................................................................... 316

28.1. C2 Interface Registers................................................................................... 316

28.2. C2 Pin Sharing .............................................................................................. 319

Document Change List.............................................................................................. 320

Contact Information................................................................................................... 321

         Rev. 1.4                                                                                                                   7
C8051F380/1/2/3/4/5/6/7/C

List of Figures

   Figure 1.1. C8051F380/2/4/6 Block Diagram .......................................................... 18

   Figure 1.2. C8051F381/3/5/7/C Block Diagram ....................................................... 19

   Figure 3.1. TQFP-48 Pinout Diagram (Top View)  ................................................... 25

   Figure 3.2. TQFP-48 Package Diagram .................................................................. 26

   Figure 3.3. TQFP-48 Recommended PCB Land Pattern ........................................ 27

   Figure 3.4. LQFP-32 Pinout Diagram (Top View) .................................................... 28

   Figure 3.5. LQFP-32 Package Diagram .................................................................. 29

   Figure 3.6. LQFP-32 Recommended PCB Land Pattern ........................................ 30

   Figure 3.7. QFN-32 Pinout Diagram (Top View) ..................................................... 31

   Figure 3.8. QFN-32 Package Drawing .................................................................... 32

   Figure 3.9. QFN-32 Recommended PCB Land Pattern .......................................... 33

   Figure 4.1. Connection Diagram with Voltage Regulator Used and No USB .......... 34

   Figure 4.2. Connection Diagram with Voltage Regulator Not Used and No USB ... 34

   Figure 4.3. Connection Diagram with Voltage Regulator Used and USB Connected

   (Bus-Powered) ................................................................................................... 35

   Figure 4.4. Connection Diagram with Voltage Regulator Used and USB Connected

   (Self-Powered) ................................................................................................... 35

   Figure 4.5. Connection Diagram for USB Pins ........................................................ 36

   Figure 4.6. Connection Diagram for Internal Voltage Reference ............................. 36

   Figure 6.1. ADC0 Functional Block Diagram ........................................................... 46

   Figure 6.2. Typical Temperature Sensor Transfer Function .................................... 48

   Figure 6.3. Temperature Sensor Error with 1-Point Calibration .............................. 49

   Figure 6.4. 10-Bit ADC Track and Conversion Example Timing  ............................. 51

   Figure 6.5. ADC0 Equivalent Input Circuits ............................................................. 52

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

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

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

   Figure 8.1. Comparator0 Functional Block Diagram ............................................... 64

   Figure 8.2. Comparator1 Functional Block Diagram ............................................... 65

   Figure 8.3. Comparator Hysteresis Plot .................................................................. 66

   Figure 8.4. Comparator Input Multiplexer Block Diagram ........................................ 71

   Figure 11.1. CIP-51 Block Diagram ......................................................................... 79

   Figure 13.1. On-Chip Memory Map for 64 kB Devices (C8051F380/1/4/5) ............. 89

   Figure 13.2. On-Chip Memory Map for 32 kB Devices (C8051F382/3/6/7) ............. 90

   Figure 13.3. On-Chip Memory Map for 16 kB Devices (C8051F38C) ..................... 91

   Figure 14.1. USB FIFO Space and XRAM Memory Map with USBFAE set to ‘1’ ... 94

   Figure 14.2. Multiplexed Configuration Example ..................................................... 98

   Figure 14.3. Non-multiplexed Configuration Example ............................................. 99

   Figure 14.4. EMIF Operating Modes ..................................................................... 100

   Figure 14.5. Non-Multiplexed 16-bit MOVX Timing ............................................... 104

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

   Figure 14.7. Non-multiplexed 8-bit MOVX with Bank Select Timing ..................... 106

   Figure 14.8. Multiplexed 16-bit MOVX Timing ....................................................... 107

8                Rev. 1.4
C8051F380/1/2/3/4/5/6/7/C

Figure 14.9. Multiplexed 8-bit MOVX without Bank Select Timing ........................ 108

Figure 14.10. Multiplexed 8-bit MOVX with Bank Select Timing ........................... 109

Figure 17.1. Reset Sources ................................................................................... 129

Figure 17.2. Power-On and VDD Monitor Reset Timing ....................................... 130

Figure 18.1. Flash Program Memory Map and Security Byte ................................ 137

Figure 19.1. Oscillator Options .............................................................................. 142

Figure 19.2. External Crystal Example .................................................................. 150

Figure 20.1. Port I/O Functional Block Diagram (Port 0 through Port 3) ............... 153

Figure 20.2. Port I/O Cell Block Diagram .............................................................. 154

Figure 20.3. Peripheral Availability on Port I/O Pins .............................................. 155

Figure 20.4. Crossbar Priority Decoder in Example Configuration

(No Pins Skipped) ............................................................................................ 156

Figure 20.5. Crossbar Priority Decoder in Example Configuration (3 Pins Skipped)

............................................................................................................. 157

Figure 21.1. USB0 Block Diagram ......................................................................... 172

Figure 21.2. USB0 Register Access Scheme ........................................................ 175

Figure 21.3. USB FIFO Allocation ......................................................................... 181

Figure 22.1. SMBus Block Diagram ...................................................................... 205

Figure 22.2. Typical SMBus Configuration ............................................................ 206

Figure 22.3. SMBus Transaction ........................................................................... 207

Figure 22.4. Typical SMBus SCL Generation ........................................................ 209

Figure 22.5. Typical Master Write Sequence  ........................................................ 223

Figure 22.6. Typical Master Read Sequence ........................................................ 224

Figure 22.7. Typical Slave Write Sequence   .......................................................... 225

Figure 22.8. Typical Slave Read Sequence .......................................................... 226

Figure 23.1. UART0 Block Diagram ...................................................................... 232

Figure 23.2. UART0 Baud Rate Logic ................................................................... 233

Figure 23.3. UART Interconnect Diagram ............................................................. 234

Figure 23.4. 8-Bit UART Timing Diagram .............................................................. 234

Figure 23.5. 9-Bit UART Timing Diagram .............................................................. 235

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

Figure 24.1. UART1 Block Diagram ...................................................................... 240

Figure 24.2. UART1 Timing Without Parity or Extra Bit ......................................... 242

Figure 24.3. UART1 Timing With Parity ................................................................ 242

Figure 24.4. UART1 Timing With Extra Bit ............................................................ 242

Figure 24.5. Typical UART Interconnect Diagram ................................................. 243

Figure 24.6. UART Multi-Processor Mode Interconnect Diagram ......................... 244

Figure 25.1. SPI Block Diagram ............................................................................ 250

Figure 25.2. Multiple-Master Mode Connection Diagram ...................................... 252

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

............................................................................................................. 252

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

............................................................................................................. 253

Figure 25.5. Master Mode Data/Clock Timing ....................................................... 255

Figure 25.6. Slave Mode Data/Clock Timing (CKPHA = 0) ................................... 255

Rev. 1.4                                                                                                            9
C8051F380/1/2/3/4/5/6/7/C

    Figure  25.7. Slave Mode Data/Clock Timing (CKPHA = 1) ...................................                   256

    Figure  25.8. SPI Master Timing (CKPHA = 0) .......................................................          260

    Figure  25.9. SPI Master Timing (CKPHA = 1) .......................................................          260

    Figure  25.10. SPI Slave Timing (CKPHA = 0) .......................................................          261

    Figure  25.11. SPI Slave Timing (CKPHA = 1) .......................................................          261

    Figure  26.1. T0 Mode 0 Block Diagram .................................................................      267

    Figure  26.2. T0 Mode 2 Block Diagram .................................................................      268

    Figure  26.3. T0 Mode 3 Block Diagram .................................................................      269

    Figure  26.4. Timer 2 16-Bit Mode Block Diagram   .................................................          274

    Figure  26.5. Timer 2 8-Bit Mode Block Diagram ...................................................           275

    Figure  26.6. Timer 2 Capture Mode (T2SPLIT = 0) ...............................................             276

    Figure  26.7. Timer 2 Capture Mode (T2SPLIT = 0) ...............................................             277

    Figure  26.8. Timer 3 16-Bit Mode Block Diagram   .................................................          281

    Figure  26.9. Timer 3 8-Bit Mode Block Diagram ...................................................           282

    Figure  26.10. Timer 3 Capture Mode (T3SPLIT = 0) .............................................              283

    Figure  26.11. Timer 3 Capture Mode (T3SPLIT = 0) .............................................              284

    Figure  26.12. Timer 4 16-Bit Mode Block Diagram  ...............................................            288

    Figure  26.13. Timer 4 8-Bit Mode Block Diagram   .................................................          289

    Figure  26.14. Timer 5 16-Bit Mode Block Diagram  ...............................................            293

    Figure  26.15. Timer 5 8-Bit Mode Block Diagram   .................................................          294

    Figure  27.1. PCA Block Diagram ...........................................................................  298

    Figure  27.2. PCA Counter/Timer Block Diagram ...................................................            299

    Figure  27.3. PCA Interrupt Block Diagram ............................................................       300

    Figure  27.4. PCA Capture Mode Diagram .............................................................         302

    Figure  27.5. PCA Software Timer Mode Diagram .................................................              303

    Figure  27.6. PCA High-Speed Output Mode Diagram ...........................................                 304

    Figure  27.7. PCA Frequency Output Mode ...........................................................          305

    Figure  27.8. PCA 8-Bit PWM Mode Diagram ........................................................            306

    Figure  27.9. PCA 16-Bit PWM Mode .....................................................................      307

    Figure  27.10. PCA Module 4 with Watchdog Timer Enabled ................................                     308

    Figure  28.1. Typical C2 Pin Sharing ......................................................................  319

10          Rev. 1.4
                C8051F380/1/2/3/4/5/6/7/C

List of Tables

Table 1.1. Product Selection Guide ......................................................................... 17

Table 2.1. C8051F38x Replacement Part Numbers ................................................ 20

Table 3.1. Pin Definitions for the C8051F380/1/2/3/4/5/6/7/C ................................. 22

Table 3.2. TQFP-48 Package Dimensions .............................................................. 26

Table 3.3. TQFP-48 PCB Land Pattern Dimensions ............................................... 27

Table 3.4. LQFP-32 Package Dimensions .............................................................. 29

Table 3.5. LQFP-32 PCB Land Pattern Dimensions ............................................... 30

Table 3.6. QFN-32 Package Dimensions ................................................................ 32

Table 3.7. QFN-32 PCB Land Pattern Dimensions ................................................. 33

Table 5.1. Absolute Maximum Ratings .................................................................... 37

Table 5.2. Global Electrical Characteristics ............................................................. 38

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

Table 5.4. Reset Electrical Characteristics .............................................................. 39

Table 5.5. Internal Voltage Regulator Electrical Characteristics ............................. 40

Table 5.6. Flash Electrical Characteristics .............................................................. 40

Table 5.7. Internal High-Frequency Oscillator Electrical Characteristics ................. 41

Table 5.8. Internal Low-Frequency Oscillator Electrical Characteristics  ................. 41

Table 5.9. External Oscillator Electrical Characteristics .......................................... 41

Table 5.10. ADC0 Electrical Characteristics ............................................................ 42

Table 5.11. Temperature Sensor Electrical Characteristics .................................... 43

Table 5.12. Voltage Reference Electrical Characteristics ....................................... 43

Table 5.13. Comparator Electrical Characteristics .................................................. 44

Table 5.14. USB Transceiver Electrical Characteristics .......................................... 45

Table 11.1. CIP-51 Instruction Set Summary .......................................................... 81

Table 14.1. AC Parameters for External Memory Interface ................................... 110

Table 15.1. Special Function Register (SFR) Memory Map .................................. 112

Table 15.2. Special Function Registers ................................................................. 113

Table 16.1. Interrupt Summary .............................................................................. 120

Table 21.1. Endpoint Addressing Scheme ............................................................ 173

Table 21.2. USB0 Controller Registers ................................................................. 178

Table 21.3. FIFO Configurations ........................................................................... 182

Table 22.1. SMBus Clock Source Selection .......................................................... 209

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

Table 22.3. Sources for Hardware Changes to SMBnCN ..................................... 217

Table 22.4. Hardware Address Recognition Examples (EHACK = 1) ................... 218

Table 22.5. SMBus Status Decoding: Hardware ACK Disabled (EHACK = 0) ...... 227

Table 22.6. SMBus Status Decoding: Hardware ACK Enabled (EHACK = 1)      ...... 229

Table 23.1. Timer Settings for Standard Baud Rates Using Internal Oscillator ..... 238

Table 24.1. Baud Rate Generator Settings for Standard Baud Rates ................... 241

Table 25.1. SPI Slave Timing Parameters ............................................................ 262

Table 27.1. PCA Timebase Input Options ............................................................. 299

Table 27.2. PCA0CPM Bit Settings for PCA Capture/Compare Modules ............. 301

Table 27.3. Watchdog Timer Timeout Intervals1 ................................................... 310

                Rev. 1.4                                                                                          11
C8051F380/1/2/3/4/5/6/7/C

List of Registers

SFR  Definition  6.1. ADC0CF: ADC0 Configuration ...................................................... 53

SFR  Definition  6.2. ADC0H: ADC0 Data Word MSB .................................................... 54

SFR  Definition  6.3. ADC0L: ADC0 Data Word LSB ...................................................... 54

SFR  Definition  6.4. ADC0CN: ADC0 Control ................................................................ 55

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

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

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

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

SFR  Definition  6.9. AMX0P: AMUX0 Positive Channel Select ..................................... 60

SFR  Definition  6.10. AMX0N: AMUX0 Negative Channel Select ................................. 61

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

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

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

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

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

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

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

SFR  Definition  9.1. REG01CN: Voltage Regulator Control  .......................................... 75

SFR  Definition  10.1. PCON: Power Control .................................................................. 78

SFR  Definition  11.1. DPL: Data Pointer Low Byte ........................................................ 85

SFR  Definition  11.2. DPH: Data Pointer High Byte ....................................................... 85

SFR  Definition  11.3. SP: Stack Pointer ......................................................................... 86

SFR  Definition  11.4. ACC: Accumulator ....................................................................... 86

SFR  Definition  11.5. B: B Register ................................................................................ 86

SFR  Definition  11.6. PSW: Program Status Word ........................................................ 87

SFR  Definition  12.1. PFE0CN: Prefetch Engine Control .............................................. 88

SFR  Definition  14.1. EMI0CN: External Memory Interface Control .............................. 96

SFR  Definition  14.2. EMI0CF: External Memory Interface Configuration ..................... 97

SFR  Definition  14.3. EMI0TC: External Memory TIming Control ................................ 103

SFR  Definition  15.1. SFRPAGE: SFR Page ............................................................... 111

SFR  Definition  16.1. IE: Interrupt Enable .................................................................... 121

SFR  Definition  16.2. IP: Interrupt Priority .................................................................... 122

SFR  Definition  16.3. EIE1: Extended Interrupt Enable 1 ............................................ 123

SFR  Definition  16.4. EIP1: Extended Interrupt Priority 1 ............................................ 124

SFR  Definition  16.5. EIE2: Extended Interrupt Enable 2 ............................................ 125

SFR  Definition  16.6. EIP2: Extended Interrupt Priority 2 ............................................ 126

SFR  Definition  16.7. IT01CF: INT0/INT1 ConfigurationO ........................................... 128

SFR  Definition  17.1. VDM0CN: VDD Monitor Control ................................................ 132

SFR  Definition  17.2. RSTSRC: Reset Source ............................................................ 134

SFR  Definition  18.1. PSCTL: Program Store R/W Control ......................................... 139

SFR  Definition  18.2. FLKEY: Flash Lock and Key ...................................................... 140

SFR  Definition  18.3. FLSCL: Flash Scale ................................................................... 141

SFR  Definition  19.1. CLKSEL: Clock Select ............................................................... 144

12                 Rev. 1.4
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 19.2. OSCICL: Internal H-F Oscillator Calibration .............................. 145

SFR Definition 19.3. OSCICN: Internal H-F Oscillator Control ................................... 146

SFR Definition 19.4. CLKMUL: Clock Multiplier Control ............................................. 147

SFR Definition 19.5. OSCLCN: Internal L-F Oscillator Control ................................... 148

SFR Definition 19.6. OSCXCN: External Oscillator Control ........................................ 152

SFR Definition 20.1. XBR0: Port I/O Crossbar Register 0 .......................................... 159

SFR Definition 20.2. XBR1: Port I/O Crossbar Register 1 .......................................... 160

SFR Definition 20.3. XBR2: Port I/O Crossbar Register 2 .......................................... 161

SFR Definition 20.4. P0: Port 0 ................................................................................... 162

SFR Definition 20.5. P0MDIN: Port 0 Input Mode ....................................................... 162

SFR Definition 20.6. P0MDOUT: Port 0 Output Mode ................................................ 163

SFR Definition 20.7. P0SKIP: Port 0 Skip ................................................................... 163

SFR Definition 20.8. P1: Port 1 ................................................................................... 164

SFR Definition 20.9. P1MDIN: Port 1 Input Mode ....................................................... 164

SFR Definition 20.10. P1MDOUT: Port 1 Output Mode .............................................. 165

SFR Definition 20.11. P1SKIP: Port 1 Skip ................................................................. 165

SFR Definition 20.12. P2: Port 2 ................................................................................. 166

SFR Definition 20.13. P2MDIN: Port 2 Input Mode ..................................................... 166

SFR Definition 20.14. P2MDOUT: Port 2 Output Mode .............................................. 167

SFR Definition 20.15. P2SKIP: Port 2 Skip ................................................................. 167

SFR Definition 20.16. P3: Port 3 ................................................................................. 168

SFR Definition 20.17. P3MDIN: Port 3 Input Mode ..................................................... 168

SFR Definition 20.18. P3MDOUT: Port 3 Output Mode .............................................. 169

SFR Definition 20.19. P3SKIP: Port 3 Skip ................................................................. 169

SFR Definition 20.20. P4: Port 4 ................................................................................. 170

SFR Definition 20.21. P4MDIN: Port 4 Input Mode ..................................................... 170

SFR Definition 20.22. P4MDOUT: Port 4 Output Mode .............................................. 171

SFR Definition 21.1. USB0XCN: USB0 Transceiver Control ...................................... 174

SFR Definition 21.2. USB0ADR: USB0 Indirect Address ........................................... 176

SFR Definition 21.3. USB0DAT: USB0 Data .............................................................. 177

USB Register Definition 21.4. INDEX: USB0 Endpoint Index ..................................... 179

USB Register Definition 21.5. CLKREC: Clock Recovery Control .............................. 180

USB Register Definition 21.6. FIFOn: USB0 Endpoint FIFO Access .......................... 182

USB Register Definition 21.7. FADDR: USB0 Function Address   ............................... 183

USB Register Definition 21.8. POWER: USB0 Power ................................................ 185

USB Register Definition 21.9. FRAMEL: USB0 Frame Number Low  ......................... 186

USB Register Definition 21.10. FRAMEH: USB0 Frame Number High ...................... 186

USB Register Definition 21.11. IN1INT: USB0 IN Endpoint Interrupt ......................... 187

USB Register Definition 21.12. OUT1INT: USB0 OUT Endpoint Interrupt ................. 188

USB Register Definition 21.13. CMINT: USB0 Common Interrupt  ............................. 189

USB Register Definition 21.14. IN1IE: USB0 IN Endpoint Interrupt Enable  ............... 190

USB Register Definition 21.15. OUT1IE: USB0 OUT Endpoint Interrupt Enable ....... 191

USB Register Definition 21.16. CMIE: USB0 Common Interrupt Enable .................... 192

USB Register Definition 21.17. E0CSR: USB0 Endpoint0 Control ............................. 195

USB Register Definition 21.18. E0CNT: USB0 Endpoint0 Data Count ....................... 196

Rev. 1.4                                                                                                                 13
C8051F380/1/2/3/4/5/6/7/C

USB Register Definition 21.19. EENABLE: USB0 Endpoint Enable ........................... 197

USB Register Definition 21.20. EINCSRL: USB0 IN Endpoint Control Low ............... 199

USB Register Definition 21.21. EINCSRH: USB0 IN Endpoint Control High .............. 200

USB Register Definition 21.22. EOUTCSRL: USB0 OUT Endpoint Control Low Byte 202

USB Register Definition 21.23. EOUTCSRH: USB0 OUT Endpoint Control High Byte ....

203

USB Register Definition 21.24. EOUTCNTL: USB0 OUT Endpoint Count Low  ......... 203

USB Register Definition 21.25. EOUTCNTH: USB0 OUT Endpoint Count High ........ 204

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

SFR Definition 22.2. SMB1CF: SMBus Clock/Configuration ...................................... 212

SFR Definition 22.3. SMBTC: SMBus Timing Control ................................................ 213

SFR Definition 22.4. SMB0CN: SMBus Control .......................................................... 215

SFR Definition 22.5. SMB1CN: SMBus Control .......................................................... 216

SFR Definition 22.6. SMB0ADR: SMBus0 Slave Address .......................................... 218

SFR Definition 22.7. SMB0ADM: SMBus0 Slave Address Mask ................................ 219

SFR Definition 22.8. SMB1ADR: SMBus1 Slave Address .......................................... 219

SFR Definition 22.9. SMB1ADM: SMBus1 Slave Address Mask ................................ 220

SFR Definition 22.10. SMB0DAT: SMBus Data .......................................................... 221

SFR Definition 22.11. SMB1DAT: SMBus Data .......................................................... 222

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

SFR Definition 23.2. SBUF0: Serial (UART0) Port Data Buffer .................................. 238

SFR Definition 24.1. SCON1: UART1 Control ............................................................ 245

SFR Definition 24.2. SMOD1: UART1 Mode .............................................................. 246

SFR Definition 24.3. SBUF1: UART1 Data Buffer ...................................................... 247

SFR Definition 24.4. SBCON1: UART1 Baud Rate Generator Control  ...................... 248

SFR Definition 24.5. SBRLH1: UART1 Baud Rate Generator High Byte ................... 248

SFR Definition 24.6. SBRLL1: UART1 Baud Rate Generator Low Byte ..................... 249

SFR Definition 25.1. SPI0CFG: SPI0 Configuration ................................................... 257

SFR Definition 25.2. SPI0CN: SPI0 Control ............................................................... 258

SFR Definition 25.3. SPI0CKR: SPI0 Clock Rate ....................................................... 259

SFR Definition 25.4. SPI0DAT: SPI0 Data  ................................................................. 259

SFR Definition 26.1. CKCON: Clock Control .............................................................. 264

SFR Definition 26.2. CKCON1: Clock Control 1 ......................................................... 265

SFR Definition 26.3. TCON: Timer Control ................................................................. 270

SFR Definition 26.4. TMOD: Timer Mode ................................................................... 271

SFR Definition 26.5. TL0: Timer 0 Low Byte ............................................................... 272

SFR Definition 26.6. TL1: Timer 1 Low Byte ............................................................... 272

SFR Definition 26.7. TH0: Timer 0 High Byte ............................................................. 273

SFR Definition 26.8. TH1: Timer 1 High Byte ............................................................. 273

SFR Definition 26.9. TMR2CN: Timer 2 Control ......................................................... 278

SFR Definition 26.10. TMR2RLL: Timer 2 Reload Register Low Byte ........................ 279

SFR Definition 26.11. TMR2RLH: Timer 2 Reload Register High Byte ...................... 279

SFR Definition 26.12. TMR2L: Timer 2 Low Byte ....................................................... 279

SFR Definition 26.13. TMR2H Timer 2 High Byte ....................................................... 280

SFR Definition 26.14. TMR3CN: Timer 3 Control ....................................................... 285

14                                       Rev. 1.4
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 26.15. TMR3RLL: Timer 3 Reload Register Low Byte ........................ 286

SFR Definition 26.16. TMR3RLH: Timer 3 Reload Register High Byte ...................... 286

SFR Definition 26.17. TMR3L: Timer 3 Low Byte ....................................................... 286

SFR Definition 26.18. TMR3H Timer 3 High Byte ....................................................... 287

SFR Definition 26.19. TMR4CN: Timer 4 Control ....................................................... 290

SFR Definition 26.20. TMR4RLL: Timer 4 Reload Register Low Byte ........................ 291

SFR Definition 26.21. TMR4RLH: Timer 4 Reload Register High Byte ...................... 291

SFR Definition 26.22. TMR4L: Timer 4 Low Byte ....................................................... 291

SFR Definition 26.23. TMR4H Timer 4 High Byte ....................................................... 292

SFR Definition 26.24. TMR5CN: Timer 5 Control ....................................................... 295

SFR Definition 26.25. TMR5RLL: Timer 5 Reload Register Low Byte ........................ 296

SFR Definition 26.26. TMR5RLH: Timer 5 Reload Register High Byte ...................... 296

SFR Definition 26.27. TMR5L: Timer 5 Low Byte ....................................................... 296

SFR Definition 26.28. TMR5H Timer 5 High Byte ....................................................... 297

SFR Definition 27.1. PCA0CN: PCA Control .............................................................. 311

SFR Definition 27.2. PCA0MD: PCA Mode ................................................................ 312

SFR Definition 27.3. PCA0CPMn: PCA Capture/Compare Mode .............................. 313

SFR Definition 27.4. PCA0L: PCA Counter/Timer Low Byte ...................................... 314

SFR Definition 27.5. PCA0H: PCA Counter/Timer High Byte ..................................... 314

SFR Definition 27.6. PCA0CPLn: PCA Capture Module Low Byte ............................. 315

SFR Definition 27.7. PCA0CPHn: PCA Capture Module High Byte ........................... 315

C2 Register Definition 28.1. C2ADD: C2 Address ...................................................... 316

C2 Register Definition 28.2. DEVICEID: C2 Device ID ............................................... 317

C2 Register Definition 28.3. REVID: C2 Revision ID .................................................. 317

C2 Register Definition 28.4. FPCTL: C2 Flash Programming Control ........................ 318

C2 Register Definition 28.5. FPDAT: C2 Flash Programming Data ............................ 318

Rev. 1.4                                                                                                     15
C8051F380/1/2/3/4/5/6/7/C

1.   System Overview

C8051F380/1/2/3/4/5/6/7/C     devices   are  fully  integrated  mixed-signal     System-on-a-Chip  MCUs.   High-

lighted features are listed below. Refer to Table 1.1 for specific product feature selection.

   High-speed pipelined 8051-compatible microcontroller core (up to 48 MIPS)

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

   Universal Serial Bus (USB) Function Controller with eight flexible endpoint pipes, integrated

    transceiver, and 1 kB FIFO RAM

   Supply Voltage Regulator

   True 10-bit 500 ksps differential / single-ended ADC with analog multiplexer

   On-chip Voltage Reference and Temperature Sensor

   On-chip Voltage Comparators (2)

   Precision internal calibrated 48 MHz internal oscillator

   Internal low-frequency oscillator for additional power savings

   Up to 64 kB of on-chip Flash memory

   Up to 4352 Bytes of on-chip RAM (256 + 4 kB)

   External Memory Interface (EMIF) available on 48-pin versions.

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

   Four general-purpose 16-bit timers

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

    function

   On-chip Power-On Reset, VDD Monitor, and Missing Clock Detector

   Up to 40 Port I/O (5 V tolerant)

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

C8051F380/1/2/3/4/5/6/7/C devices are truly stand-alone System-on-a-Chip solutions. The Flash memory

can be reprogrammed 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.

Each device is specified for 2.7–5.25 V operation over the industrial temperature range (–40 to +85 °C).

For voltages above 3.6 V, the on-chip Voltage Regulator must be used. A minimum of 3.0 V is required for

USB communication. The Port I/O and RST pins are tolerant of input signals up to 5 V. C8051F380/1/2/3/

4/5/6/7/C devices are available in 48-pin TQFP, 32-pin LQFP, or 32-pin QFN packages. See Table 1.1,

“Product Selection Guide,” on page 17 for feature and package choices.

16                                                  Rev. 1.4
                                                                                                                                                    C8051F380/1/2/3/4/5/6/7/C

Table 1.1. Product    Selection                          Guide

Ordering Part Number  MIPS (Peak)  Flash Memory (Bytes)  RAM    Calibrated Internal Oscillator  Low Frequency Oscillator  USB with 1k Endpoint RAM  Supply Voltage Regulator  SMBus/I2C  Enhanced SPI  UARTs  Timers (16-bit)  Programmable Counter Array  Digital Port I/O  External Memory Interface (EMIF)  10-bit 500ksps ADC  Temperature Sensor  Voltage Reference  Analog Comparators  Package

C8051F380-GQ          48           64k                   4352                                                                                                             2                       2      6                                           40                                                                                                         2                   TQFP48

C8051F381-GQ          48           64k                   4352                                                                                                             2                       2      6                                           25                —                                                                                         2                   LQFP32

C8051F381-GM          48           64k                   4352                                                                                                             2                       2      6                                           25                —                                                                                         2                   QFN32

C8051F382-GQ          48           32k                   2304                                                                                                             2                       2      6                                           40                                                                                                         2                   TQFP48

C8051F383-GQ          48           32k                   2304                                                                                                             2                       2      6                                           25                —                                                                                         2                   LQFP32

C8051F383-GM          48           32k                   2304                                                                                                             2                       2      6                                           25                —                                                                                         2                   QFN32

C8051F384-GQ          48           64k                   4352                                                                                                             2                       2      6                                           40                                                 —                   —                   —                  2                   TQFP48

C8051F385-GQ          48           64k                   4352                                                                                                             2                       2      6                                           25                —                                 —                   —                   —                  2                   LQFP32

C8051F385-GM          48           64k                   4352                                                                                                             2                       2      6                                           25                —                                 —                   —                   —                  2                   QFN32

C8051F386-GQ          48           32k                   2304                                                                                                             2                       2      6                                           40                                                 —                   —                   —                  2                   TQFP48

C8051F387-GQ          48           32k                   2304                                                                                                             2                       2      6                                           25                —                                 —                   —                   —                  2                   LQFP32

C8051F387-GM          48           32k                   2304                                                                                                             2                       2      6                                           25                —                                 —                   —                   —                  2                   QFN32

C8051F38C-GQ          48           16k                   2304                                                                                                             2                       2      6                                           25                —                                                                                         2                   LQFP32

C8051F38C-GM          48           16k                   2304                                                                                                             2                       2      6                                           25                —                                                                                         2                   QFN32

                                                                                                                          Rev.                                                1.4                                                                                                                                                                                                                      17
C8051F380/1/2/3/4/5/6/7/C

    C2D                       Debug / Programming                Port I/O Configuration

    C2CK/RST                         Hardware                    Digital Peripherals                                 P0.0

                                                                                                                     P0.1

                                                                                                       Port 0        P0.2

              Reset                                              UART0                                               P0.3

                              CIP-51 8051                                                              Drivers       P0.4

                                                                 UART1                                               P0.5

              Power-On        Controller Core                                                                        P0.6/XTAL1

                                                                                                                     P0.7/XTAL2

              Reset                                              Timers 0, 1,                                        P1.0

                              64/32k Byte ISP FLASH              2, 3, 4, 5           Priority                       P1.1

              Supply                                                                  Crossbar         Port 1        P1.2

                              Program Memory                                                                         P1.3

              Monitor                                            PCA/WDT              Decoder          Drivers       P1.4/CNVSTR

                                                                                                                     P1.5/VREF

    VDD                                                          SMBus0                                              P1.6

                       Power  256 Byte RAM                                                                           P1.7

                        Net                                      SMBus1                                              P2.0

                                                                                                                     P2.1

              Voltage                                            SPI                                   Port 2        P2.2

    VREG      Regulators      4/2k Byte XRAM                                                                         P2.3

                                                                                                       Drivers       P2.4

                                                                    Crossbar Control                                 P2.5

    GND                                                                                                              P2.6

                                                       SFR                                                           P2.7

                                                       Bus       External Memory                                     P3.0

                              System Clock Setup                                                                     P3.1

                                                                       Interface                       Port 3        P3.2

              XTAL1                                                                                                  P3.3

                              External Oscillator                                                  P1  Drivers       P3.4

              XTAL2                                                    Control                                       P3.5

                                                                                                                     P3.6

                                                                                           P2 / P3                   P3.7

                              Internal Oscillator                      Address                                       P4.0

                                                                                                   P4                P4.1

                                                                             Data                      Port 4        P4.2

                              Clock        Low Freq.                                                                 P4.3

                                                                                                       Drivers       P4.4

                              Recovery     Oscillator                                                                P4.5

                                                                 Analog Peripherals                                  P4.6

                                                                                      CP0                            P4.7

                                                                 VREF                           +

                              USB Peripheral                                                    -

                                                            VDD              VREF     CP1       +

                                                                                                -

    D+                                     Controller                                 2 Comparators

    D-                        Full / Low                                           A  VDD              AIN0 - AIN19

                              Speed                         10-bit                 M

    VBUS                      Transceiver  1k Byte          500ksps                U  Temp

                                               RAM          ADC                    X  Sensor

                              Figure 1.1. C8051F380/2/4/6 Block Diagram

18                                                     Rev. 1.4
                                                        C8051F380/1/2/3/4/5/6/7/C

          C2D             Debug / Programming                Port I/O Configuration

C2CK/RST                         Hardware                    Digital Peripherals                            P0.0

                                                                                                            P0.1

                                                                                              Port 0        P0.2/XTAL1

          Reset                                              UART0                                          P0.3/XTAL2

                          CIP-51 8051                                                         Drivers       P0.4

                                                             UART1                                          P0.5

          Power-On        Controller Core                                                                   P0.6/CNVSTR

                                                                                                            P0.7/VREF

          Reset                                              Timers 0, 1,                                   P1.0

                          64/32/16 kB ISP FLASH              2, 3, 4, 5                                     P1.1

          Supply                                                               Priority       Port 1        P1.2

                          Program Memory                                                                    P1.3

          Monitor                                                              Crossbar       Drivers       P1.4

                                                             PCA/WDT           Decoder                      P1.5

VDD                                                                                                         P1.6

                   Power  256 Byte RAM                                                                      P1.7

                    Net                                      SMBus0                                         P2.0

                                                                                                            P2.1

          Voltage                                            SMBus1                           Port 2        P2.2

VREG      Regulators      4/2 kB XRAM                                                                       P2.3

                                                                                              Drivers       P2.4

                                                             SPI                                            P2.5

GND                                                                                                         P2.6

                                                   SFR                                                      P2.7

                                                   Bus          Crossbar Control                            P3.0/C2D

                          System Clock Setup                                                  Port 3

          XTAL1           External Oscillator                                                 Drivers

          XTAL2

                          Internal Oscillator

                          Clock        Low Freq.

                          Recovery     Oscillator            Analog Peripherals

                                                             VREF              CP0       +

                          USB Peripheral                                                 -

                                                        VDD              VREF  CP1       +

                                                                                         -

D+                                     Controller                              2 Comparators

D-                        Full / Low                                       A      VDD         AIN0 - AIN20

                          Speed                         10-bit             M

VBUS                      Transceiver  1 kB RAM              500 ksps      U      Temp

                                                        ADC                X      Sensor

                          Figure 1.2. C8051F381/3/5/7/C Block Diagram

                                                   Rev. 1.4                                                              19
C8051F380/1/2/3/4/5/6/7/C

2.  C8051F34x Compatibility

The C8051F38x family is designed to be a pin and code compatible replacement for the C8051F34x

device family, with an enhanced feature set. The C8051F38x device should function as a drop-in replace-

ment for the C8051F34x devices in most applications. Table 2.1 lists recommended replacement part num-

bers for C8051F34x devices. See “2.1. Hardware Incompatibilities”  to determine if any changes are

necessary when upgrading an existing C8051F34x design to the C8051F38x.

    Table 2.1. C8051F38x     Replacement  Part Numbers

    C8051F34x Part Number                                          C8051F38x Part Number

    C8051F340-GQ                                                   C8051F380-GQ

    C8051F341-GQ                                                   C8051F382-GQ

    C8051F342-GQ                                                   C8051F381-GQ

    C8051F342-GM                                                   C8051F381-GM

    C8051F343-GQ                                                   C8051F383-GQ

    C8051F343-GM                                                   C8051F383-GM

    C8051F344-GQ                                                   C8051F380-GQ

    C8051F345-GQ                                                   C8051F382-GQ

    C8051F346-GQ                                                   C8051F381-GQ

    C8051F346-GM                                                   C8051F381-GM

    C8051F347-GQ                                                   C8051F383-GQ

    C8051F347-GM                                                   C8051F383-GM

    C8051F348-GQ                                                   C8051F386-GQ

    C8051F349-GQ                                                   C8051F387-GQ

    C8051F349-GM                                                   C8051F387-GM

    C8051F34A-GQ                                                   C8051F381-GQ

    C8051F34A-GM                                                   C8051F381-GM

    C8051F34B-GQ                                                   C8051F383-GQ

    C8051F34B-GM                                                   C8051F383-GM

    C8051F34C-GQ                                                   C8051F384-GQ

    C8051F34D-GQ                                                   C8051F385-GQ

20                           Rev. 1.4
                                  C8051F380/1/2/3/4/5/6/7/C

2.1.  Hardware Incompatibilities

While the C8051F38x family includes a number of new features not found on the C8051F34x family, there

are some differences that should be considered for any design port.

  Clock Multiplier: The C8051F38x does not include the 4x clock multiplier from the C8051F34x device

   families. This change only impacts systems which use the clock multiplier in conjunction with an

   external oscillator source.

  External Oscillator C and RC Modes: The C and RC modes of the oscillator have a divide-by-2 stage

   on the C8051F38x to aid in noise immunity. This was not present on the C8051F34x device family, and

   any clock generated with C or RC mode will change accordingly.

  Fab Technology: The C8051F38x is manufactured using a different technology process than the

   C8051F34x. As a result, many of the electrical performance parameters will have subtle differences.

   These differences should not affect most systems but it is nonetheless important to review the electrical

   parameters for any blocks that are used in the design, and ensure they are compatible with the existing

   hardware.

                                  Rev. 1.4                                                                    21
C8051F380/1/2/3/4/5/6/7/C

3.   Pinout   and Package Definitions

              Table 3.1. Pin Definitions for the C8051F380/1/2/3/4/5/6/7/C

        Name  Pin Numbers     Type                      Description

              48-pin  32-pin

VDD           10      6       Power In  2.7–3.6 V Power Supply Voltage Input.

                              Power     3.3 V Voltage Regulator Output.

                              Out

GND           7       3                 Ground.

RST/          13      9       D I/O     Device Reset. Open-drain output of internal POR or VDD

                                        monitor. An external source can initiate a system reset by

                                        driving this pin low for at least 15 µs.

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

C2D           14      —       D I/O     Bi-directional data signal for the C2 Debug Interface.

P3.0 /        —       10      D I/O     Port 3.0. See Section 20 for a complete description of Port 3.

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

REGIN         11      7       Power In  5 V Regulator Input. This pin is the input to the on-chip volt-

                                        age regulator.

VBUS          12      8       D In      VBUS Sense Input. This pin should be connected to the

                                        VBUS signal of a USB network. A 5 V signal on this pin indi-

                                        cates a USB network connection.

D+            8       4       D I/O     USB D+.

D–            9       5       D I/O     USB D–.

P0.0          6       2       D I/O or  Port 0.0. See Section 20 for a complete description of Port 0.

                              A In

P0.1          5       1       D I/O or  Port 0.1.

                              A In

P0.2          4       32      D I/O or  Port 0.2.

                              A In

P0.3          3       31      D I/O or  Port 0.3.

                              A In

P0.4          2       30      D I/O or  Port 0.4.

                              A In

P0.5          1       29      D I/O or  Port 0.5.

                              A In

P0.6          48      28      D I/O or  Port 0.6.

                              A In

22                                      Rev. 1.4
                                             C8051F380/1/2/3/4/5/6/7/C

      Table  3.1. Pin Definitions for  the C8051F380/1/2/3/4/5/6/7/C         (Continued)

      Name   Pin Numbers     Type                                Description

             48-pin  32-pin

P0.7         47      27      D I/O or  Port  0.7.

                             A In

P1.0         46      26      D I/O or  Port  1.0.  See  Section  20  for  a  complete  description  of  Port  1.

                             A In

P1.1         45      25      D I/O or  Port  1.1.

                             A In

P1.2         44      24      D I/O or  Port  1.2.

                             A In

P1.3         43      23      D I/O or  Port  1.3.

                             A In

P1.4         42      22      D I/O or  Port  1.4.

                             A In

P1.5         41      21      D I/O or  Port  1.5.

                             A In

P1.6         40      20      D I/O or  Port  1.6.

                             A In

P1.7         39      19      D I/O or  Port  1.7.

                             A In

P2.0         38      18      D I/O or  Port  2.0.  See  Section  20  for  a  complete  description  of  Port  2.

                             A In

P2.1         37      17      D I/O or  Port  2.1.

                             A In

P2.2         36      16      D I/O or  Port  2.2.

                             A In

P2.3         35      15      D I/O or  Port  2.3.

                             A In

P2.4         34      14      D I/O or  Port  2.4.

                             A In

P2.5         33      13      D I/O or  Port  2.5.

                             A In

P2.6         32      12      D I/O or  Port  2.6.

                             A In

P2.7         31      11      D I/O or  Port  2.7.

                             A In

P3.0         30      —       D I/O or  Port  3.0.  See  Section  20  for  a  complete  description  of  Port  3.

                             A In

                                       Rev. 1.4                                                               23
C8051F380/1/2/3/4/5/6/7/C

      Table  3.1. Pin Definitions for  the C8051F380/1/2/3/4/5/6/7/C         (Continued)

      Name   Pin Numbers     Type                                Description

             48-pin  32-pin

P3.1         29      —       D I/O or  Port  3.1.

                             A In

P3.2         28      —       D I/O or  Port  3.2.

                             A In

P3.3         27      —       D I/O or  Port  3.3.

                             A In

P3.4         26      —       D I/O or  Port  3.4.

                             A In

P3.5         25      —       D I/O or  Port  3.5.

                             A In

P3.6         24      —       D I/O or  Port  3.6.

                             A In

P3.7         23      —       D I/O or  Port  3.7.

                             A In

P4.0         22      —       D I/O or  Port  4.0.  See  Section  20  for  a  complete  description  of  Port  4.

                             A In

P4.1         21      —       D I/O or  Port  4.1.

                             A In

P4.2         20      —       D I/O or  Port  4.2.

                             A In

P4.3         19      —       D I/O or  Port  4.3.

                             A In

P4.4         18      —       D I/O or  Port  4.4.

                             A In

P4.5         17      —       D I/O or  Port  4.5.

                             A In

P4.6         16      —       D I/O or  Port  4.6.

                             A In

P4.7         15      —       D I/O or  Port  4.7.

                             A In

24                                     Rev. 1.4
                                         C8051F380/1/2/3/4/5/6/7/C

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

           48    47    46    45    44    43    42    41    40    39    38    37

P0.5   1                                                                           36  P2.2

P0.4   2                                                                           35  P2.3

P0.3   3                                                                           34  P2.4

P0.2   4                                                                           33  P2.5

P0.1   5                                                                           32  P2.6

P0.0   6         C8051F380/2/4/6-GQ                                                31  P2.7

GND    7                           Top View                                        30  P3.0

D+     8                                                                           29  P3.1

D-     9                                                                           28  P3.2

VDD    10                                                                          27  P3.3

REGIN  11                                                                          26  P3.4

VBUS   12                                                                          25  P3.5

           13    14    15    16    17    18    19    20    21    22    23    24

           C2CK  C2D   P4.7  P4.6  P4.5  P4.4  P4.3  P4.2  P4.1  P4.0  P3.7  P3.6

           /

           RS T

           Figure 3.1. TQFP-48 Pinout Diagram (Top View)

                                         Rev. 1.4                                            25
C8051F380/1/2/3/4/5/6/7/C

                          Figure 3.2. TQFP-48 Package Diagram

                          Table 3.2. TQFP-48 Package Dimensions

Dimension            Min  Nom       Max                     Dimension         Min   Nom                  Max

        A            —    —         1.20                    E                       9.00 BSC

        A1  0.05          —         0.15                    E1                      7.00 BSC

        A2  0.95          1.00      1.05                    L                 0.45  0.60                 0.75

        b   0.17          0.22      0.27                    aaa                     0.20

        c   0.09          —         0.20                    bbb                     0.20

        D                 9.00 BSC                          ccc                     0.08

        D1                7.00 BSC                          ddd                     0.08

        e                 0.50 BSC                          q                 0°    3.5°                 7°

Notes:

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

    2.  Dimensioning and Tolerancing per ANSI Y14.5M-1994.

    3.  This drawing conforms to JEDEC outline MS-026, variation ABC.

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

        Components.

26                                        Rev. 1.4
                     C8051F380/1/2/3/4/5/6/7/C

        Figure 3.3. TQFP-48 Recommended PCB Land Pattern

          Table 3.3. TQFP-48 PCB Land Pattern Dimensions

          Dimension  Min                                               Max

          C1         8.30                                              8.40

          C2         8.30                                              8.40

                  E                               0.50 BSC

          X1         0.20                                              0.30

          Y1         1.40                                              1.50

Notes:

General:

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

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

Solder Mask Design:

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

        the solder mask and the metal pad is to be 60 µm minimum, all the way around

        the pad.

Stencil Design:

4.      A stainless steel, laser-cut and electro-polished stencil with trapezoidal walls

        should be used to assure good solder paste release.

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

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

Card Assembly:

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

8.      The recommended card reflow profile is per the JEDEC/IPC J-STD-020

        specification for Small Body Components.

                     Rev. 1.4                                                             27
C8051F380/1/2/3/4/5/6/7/C

              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   1                                                              24  P1.2

    P0.0   2                                                              23  P1.3

    GND    3                                                              22  P1.4

    D+     4  C8051F381/3/5/7/C-GQ                                        21  P1.5

    D–     5                          Top View                            20  P1.6

    VDD    6                                                              19  P1.7

    REGIN  7                                                              18  P2.0

    VBUS   8                                                              17  P2.1

              9           10          11    12    13    14    15    16

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

              Figure 3.4. LQFP-32 Pinout Diagram (Top View)

28                                          Rev. 1.4
                                           C8051F380/1/2/3/4/5/6/7/C

                           Figure 3.5. LQFP-32 Package Diagram

                           Table 3.4. LQFP-32 Package Dimensions

Dimension            Min   Nom       Max                    Dimension         Min         Nom             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                         q                 0°          3.5°            7°

Notes:

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

2.      Dimensioning and Tolerancing per ANSI Y14.5M-1994.

3.      This drawing conforms to JEDEC outline MS-026, variation BBA.

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

        Components.

                                           Rev. 1.4                                                             29
C8051F380/1/2/3/4/5/6/7/C

            Figure 3.6. LQFP-32 Recommended PCB Land Pattern

              Table 3.5. LQFP-32 PCB Land Pattern Dimensions

              Dimension    Min                                             Max

              C1           8.40                                            8.50

              C2           8.40                                            8.50

                      E                               0.80 BSC

              X1           0.40                                            0.50

              Y1           1.25                                            1.35

    Notes:

    General:

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

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

    Solder Mask Design:

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

            the solder mask and the metal pad is to be 60 µm minimum, all the way around

            the pad.

    Stencil Design:

    4.      A stainless steel, laser-cut and electro-polished stencil with trapezoidal walls

            should be used to assure good solder paste release.

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

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

    Card Assembly:

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

    8.      The recommended card reflow profile is per the JEDEC/IPC J-STD-020

            specification for Small Body Components.

30                       Rev. 1.4
                                              C8051F380/1/2/3/4/5/6/7/C

          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   1                                                                  24  P1.2

P0.0   2                                                                  23  P1.3

GND    3                                                                  22  P1.4

D+     4              C8051F381/3/5/7/C-GM                                21  P1.5

D–     5                                Top View                          20  P1.6

VDD    6                                                                  19  P1.7

REGIN  7                                                                  18  P2.0

                                        GND (optional)

VBUS   8                                                                  17  P2.1

          9           10          11    12    13        14    15    16

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

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

                                        Rev. 1.4                                    31
C8051F380/1/2/3/4/5/6/7/C

                              Figure 3.8. QFN-32 Package Drawing

                              Table 3.6. QFN-32 Package Dimensions

    Dimension  Min            Typ       Max             Dimension    Min                  Typ         Max

        A      0.80           0.85      0.90                    E2   3.20                 3.30        3.40

        A1     0.00           0.02      0.05                    L    0.35                 0.40        0.45

        b      0.18           0.25      0.30                    aaa               —       —           0.10

        D                     5.00 BSC                          bbb               —       —           0.10

        D2     3.20           3.30      3.40                    ddd               —       —           0.05

        e                     0.50 BSC                          eee               —       —           0.08

        E                     5.00 BSC

    Notes:

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

    2.      Dimensioning and Tolerancing per ANSI Y14.5M-1994.

    3.      This drawing conforms to the JEDEC Solid State Outline MO-220, variation VHHD except for

            custom features D2, E2, and L which are toleranced per supplier designation.

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

            Body Components.

32                                            Rev. 1.4
                                              C8051F380/1/2/3/4/5/6/7/C

                 Figure 3.9. QFN-32 Recommended PCB Land Pattern

                 Table 3.7. QFN-32 PCB Land Pattern 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 pins.

7.      A 3x3 array of 1.0 mm openings on a 1.2mm pitch should be used for the center pad to assure

        the proper paste volume.

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.

                                              Rev. 1.4                                                   33
C8051F380/1/2/3/4/5/6/7/C

4.    Typical Connection Diagrams

This section provides typical connection diagrams for C8051F38x devices.

4.1.  Power

Figure 4.1 shows a typical connection diagram for the power pins of the     C8051F38x  devices  when  the

internal regulator is in use and USB is not used.

                             3.6-5.25 V (in)                                C8051F38x Device

                                                                            Voltage

                                                                REGIN       Regulator

                                                   3.3 V (out)

1 µF and 0.1 µF bypass

    capacitors required for                                            VDD

    each power pin placed

    as close to the pins as

      possible.                                                 VBUS

                                                                       GND

      Figure 4.1. Connection Diagram with Voltage Regulator                 Used and No USB

Figure 4.2 shows a typical connection diagram for the power pins of the     C8051F38x devices when    the

internal regulator and USB are not used.

                                                                            C8051F38x Device

                                          2.7-3.6 V (in)                    Voltage

                                                                REGIN       Regulator

    1 µF and 0.1 µF bypass                                      VDD

      capacitors required for

      each power pin placed

      as close to the pins as                                   VBUS

      possible.

                                                                GND

      Figure 4.2. Connection Diagram with Voltage Regulator Not Used and No USB

Figure 4.3 shows a typical connection diagram for the power pins of the C8051F38x devices when the

internal regulator used and USB is connected (bus-powered). The VBUS signal is used to detect when

34                                                 Rev. 1.4
                                                    C8051F380/1/2/3/4/5/6/7/C

USB is connected to a host device and is shown with a 100 Ω current-limiting resistor. This current-limiting

resistor is recommended for systems that may experience electrostatic discharge (ESD), latch-up, and

have a greater opportunity to share signals with systems that do not have the same ground potential. This

is not a required component for most applications.

                                          Recommended,

                                          not required                   C8051F38x Device

                         USB 5 V (in)               100 ȍ

                                                                  VBUS   Voltage

                                                                  REGIN  Regulator

1 μF and 0.1 μF bypass                    3.3 V (out)

capacitors required for

each power pin placed                                             VDD

as close to the pins as

possible.

                                                                  GND

Figure 4.3. Connection Diagram with Voltage Regulator Used and USB Connected

                                          (Bus-Powered)

Figure 4.4 shows a typical connection diagram for the power pins of the C8051F38x devices when the

internal regulator used and USB is connected (self-powered). The VBUS signal is used to detect when

USB is connected to a host device and is shown with a 100 Ω current-limiting resistor. This current-limiting

resistor is recommended for systems that may experience electrostatic discharge (ESD), latch-up, and

have a greater opportunity to share signals with systems that do not have the same ground potential. This

is not a required component for most applications.

                                                    Recommended,

                         USB 5 V                    not required

                         (sense)                       100 ȍ             C8051F38x Device

                         3.6-5.25 V (in)                          VBUS

                                                                         Voltage

                                                                  REGIN  Regulator

1 μF and 0.1 μF bypass                              3.3 V (out)

capacitors required for

each power pin placed                                             VDD

as close to the pins as

possible.

                                                                  GND

Figure 4.4. Connection   Diagram with Voltage Regulator                  Used and USB Connected

                                          (Self-Powered)

                                                    Rev. 1.4                                                  35
C8051F380/1/2/3/4/5/6/7/C

4.2.  USB

Figure 4.5 shows a typical connection diagram for the USB pins of the C8051F38x devices including a

100 Ω current-limiting resistor on the VBUS sense pin and ESD protection diodes on the USB pins. This

current-limiting resistor is recommended for systems that may experience electrostatic discharge (ESD),

latch-up, and have a greater opportunity to share signals with systems that do not have the same ground

potential. This is not a required component for most applications.

                                       Recommended,

                                                not required              C8051F38x Device

    USB                                          100 ȍ

    Connector  VBUS

                                                                    VBUS

               D+                                                                    USB

                                                                    D+

               D-

                                                                    D-

               Signal GND                       SP0503BAHT or

                                                equivalent USB

                                                ESD protection

                                                      diodes

                                                                    GND

               Figure 4.5. Connection Diagram for USB Pins

4.3.  Voltage Reference (VREF)

Figure 4.6 shows a typical connection diagram for the voltage reference (VREF) pin of the C8051F38x

devices when using the internal voltage reference. When using an external voltage reference, consult the

appropriate device’s data sheet for connection recommendations.

                                                                    C8051F38x Device

                                 2.42  V (out)

                                                                          Voltage

                                                VREF                      Reference

           4.7 µF and 0.1 µF

      capacitors recommended

           for internal voltage

               reference.

                                                GND

               Figure 4.6. Connection  Diagram  for Internal Voltage Reference

36                                     Rev. 1.4
                                        C8051F380/1/2/3/4/5/6/7/C

5.    Electrical Characteristics

5.1.   Absolute Maximum Specifications

Table 5.1. Absolute Maximum Ratings

       Parameter                     Conditions                        Min   Typ  Max                               Units

Junction Temperature Under Bias                                        –55   —    125                               °C

Storage Temperature                                                    –65   —    150                               °C

Voltage on RST, VBUS, or any         VDD > 2.2 V                       –0.3  —    5.8                               V

Port I/O Pin with Respect to GND     VDD < 2.2 V                       –0.3  —    VDD + 3.6                         V

Voltage on VDD with Respect to    Regulator1 in Normal Mode            –0.3  —    4.2                               V

GND                               Regulator1 in Bypass Mode            –0.3  —    1.98                              V

Maximum Total Current through                                          —     —    500                               mA

VDD or GND

Maximum Output Current sunk by                                         —     —    100                               mA

RST or any Port Pin

Note:  Stresses above those listed under “Absolute Maximum Ratings” may cause permanent damage to the device.

       This is a stress rating only and functional operation of the devices at those or any other conditions above

       those indicated in the operation listings of this specification is not implied. Exposure to maximum rating

       conditions for extended periods may affect device reliability.

                                        Rev. 1.4                                                                           37
C8051F380/1/2/3/4/5/6/7/C

5.2.    Electrical Characteristics

Table 5.2. Global Electrical Characteristics

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

           Parameter                       Test Condition                   Min    Typ      Max                   Unit

Digital Supply Voltage1                                                     VRST1  3.3      3.6                   V

Digital Supply RAM Data                                                     —      1.5      —                     V

Retention Voltage

SYSCLK (System Clock)2                                                      0      —        48                    MHz

Specified Operating                                                         –40    —        +85                   °C

Temperature Range

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

IDD3                                       SYSCLK = 48 MHz, VDD = 3.3 V     —      12       14                    mA

                                           SYSCLK = 24 MHz, VDD = 3.3 V     —      7        8                     mA

                                           SYSCLK = 1 MHz, VDD = 3.3 V      —      0.45     0.85                  mA

                                           SYSCLK = 80 kHz, VDD = 3.3 V     —      280      —                     µA

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

Idle IDD3                                  SYSCLK = 48 MHz, VDD = 3.3 V     —      6.5      8                     mA

                                           SYSCLK = 24 MHz, VDD = 3.3 V     —      3.5      5                     mA

                                           SYSCLK = 1 MHz, VDD = 3.3 V      —      0.35     —                     mA

                                           SYSCLK = 80 kHz, VDD = 3.3 V     —      220      —                     µA

Digital Supply Current          Oscillator not running (STOP mode),         —      1        —                     µA

(Stop or Suspend Mode, shut-    Internal Regulators OFF, VDD = 3.3 V

down)                           Oscillator not running (STOP or SUS-        —      100      —                     µA

                                PEND mode), REG0 and REG1 both in

                                           low power mode, VDD = 3.3 V.

                                Oscillator not running (STOP or SUS-        —      150      —                     µA

                                PEND mode), REG0 OFF, VDD = 3.3 V.

Digital Supply Current for USB             USB Clock = 48 MHz, VDD = 3.3 V  —      8        —                     mA

Module
(USB Active Mode4)

Notes:

    1.  USB Requires 3.0 V Minimum Supply Voltage.

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

    3.  Includes normal mode bias current for REG0 and REG1. Does not include current from internal oscillators,

        USB, or other analog peripherals.

    4.  An additional 220uA is sourced by the D+ or D- pull-up to the USB bus when the USB pull-up is active.

38                                                  Rev. 1.4
                                                        C8051F380/1/2/3/4/5/6/7/C

Table 5.3. Port I/O DC Electrical Characteristics

VDD = 2.7 to 3.6 V, –40 to +85 °C unless otherwise specified.

     Parameter                Test Condition                      Min        Typ        Max        Unit

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

                          IOH = –10 µA, Port I/O push-pull        VDD – 0.1  —          —

                          IOH = –10 mA, Port I/O push-pull        —          VDD – 0.8  —

Output Low Voltage            IOL = 8.5 mA                        —          —          0.6        V

                                           IOL = 10 µA            —          —          0.1

                                           IOL = 25 mA            —          1.0        —

Input High Voltage                                                2.0        —          —          V

Input Low Voltage                                                 —          —          0.8        V

Input Leakage                 Weak Pullup Off                     —          —          ±1         µA

Current                     Weak Pullup On, VIN = 0 V             —          15         50

Table 5.4. Reset Electrical Characteristics

–40 to +85 °C unless otherwise specified.

         Parameter                         Test Condition              Min   Typ        Max        Unit

RST Output Low Voltage                     IOL = 8.5 mA,               —        —       0.6        V
                                           VDD = 2.7 V to 3.6 V

RST Input High Voltage                                            0.7 x VDD     —       —          V

RST Input Low Voltage                                                  —        —       0.3 x VDD  V

RST Input Pullup Current                   RST = 0.0 V                 —     15         40         µA

VDD Monitor Threshold (VRST)                                           2.60  2.65       2.70       V

Missing Clock Detector Time-  Time from last system clock              80    580        800        µs

out                           rising edge to reset initiation

Reset Time Delay              Delay between release of any             —        —       250        µs

                                           reset source and code

                              execution at location 0x0000

Minimum RST Low Time to                                                15       —       —          µs

Generate a System Reset

VDD Monitor Turn-on Time                                               —        —       100        µs

VDD Monitor Supply Current                                             —     15         50         µA

                                                        Rev. 1.4                                       39
C8051F380/1/2/3/4/5/6/7/C

Table 5.5. Internal Voltage Regulator Electrical Characteristics

–40 to +85 °C unless otherwise specified.

        Parameter                          Test Condition          Min                            Typ        Max    Unit

Voltage Regulator (REG0)

Input Voltage Range1                                               2.7                            —          5.25       V

Output Voltage (VDD)2     Output Current = 1 to 100 mA             3.0                            3.3        3.6        V

Output Current2                                                    —                              —          100    mA

Dropout Voltage (VDO)3                                             —                              1          —      mV/mA

Voltage Regulator (REG1)

Input Voltage Range                                                1.8                            —          3.6        V

Notes:

    1.  Input range specified for regulation. When an external regulator is used, should be tied to VDD.

    2.  Output current is total regulator output, including any current required by the C8051F380/1/2/3/4/5/6/7/C.

    3.  The minimum input voltage is 2.70 V or VDD + VDO (max load), whichever is greater.

Table 5.6. Flash Electrical Characteristics

        Parameter         Test Condition                   Min                          Typ          Max            Unit

Flash Size                C8051F380/1/4/5*                 65536*                       —              —            Bytes

                          C8051F382/3/6/7                  32768                                                    Bytes

Endurance                                                  10k     100k                                —     Erase/Write

Erase Cycle Time          25 MHz System Clock              10                           15             22.5         ms

Write Cycle Time          25 MHz System Clock              10                           15             20           µs

Notes:

    1.  1024 bytes at location 0xFC00 to 0xFFFF are not available for program storage.

    2.  Data Retention Information is published in the Quarterly Quality and Reliability Report.

40                                           Rev. 1.4
                            C8051F380/1/2/3/4/5/6/7/C

Table 5.7. Internal High-Frequency Oscillator Electrical Characteristics

VDD = 2.7 to 3.6 V; TA = –40 to +85 °C unless otherwise specified; Using factory-calibrated settings.

Parameter                   Test Condition                          Min   Typ                          Max   Unit

Oscillator Frequency        IFCN = 11b                              47.3  48                           48.7  MHz

Oscillator Supply Current   25 °C, VDD = 3.0 V,                     —     900                          —     µA

(from VDD)                  OSCICN.7 = 1,

                            OCSICN.5 = 0

Power Supply Sensitivity    Constant Temperature                    —     110                          —     ppm/V

Temperature Sensitivity     Constant Supply                         —     25                           —     ppm/°C

Table 5.8. Internal Low-Frequency Oscillator Electrical Characteristics

VDD = 2.7 to 3.6 V; TA = –40 to +85 °C unless otherwise specified; Using factory-calibrated settings.

Parameter                   Test Condition                          Min   Typ                          Max   Unit

Oscillator Frequency        OSCLD = 11b                             75    80                           85    kHz

Oscillator Supply Current   25 °C, VDD = 3.0 V,                     —     4                            —     µA

(from VDD)                  OSCLCN.7 = 1

Power Supply Sensitivity    Constant Temperature                    —     0.05                         —     %/V

Temperature Sensitivity     Constant Supply                         —     65                           —     ppm/°C

Table 5.9. External Oscillator Electrical Characteristics

VDD = 2.7 to 3.6 V; TA = –40 to +85 °C unless otherwise specified.

Parameter                   Test Condition                          Min   Typ                          Max   Unit

External Crystal Frequency                                          0.02  —                            30    MHz

External CMOS Oscillator                                            0     —                            48    MHz

Frequency

                            Rev. 1.4                                                                                 41
C8051F380/1/2/3/4/5/6/7/C

Table 5.10. ADC0 Electrical Characteristics

VDD = 3.0 V, VREF = 2.40 V (REFSL=0), PGA Gain = 1, –40 to +85 °C unless otherwise specified.

              Parameter            Test Condition                Min    Typ                    Max   Unit

DC Accuracy

Resolution                                                              10                           bits

Integral Nonlinearity                                            —      ±0.5                   ±1    LSB

Differential Nonlinearity          Guaranteed Monotonic          —      ±0.5                   ±1    LSB

Offset Error                                                     –2     0                      2     LSB

Full Scale Error                                                 –5     –2                     0     LSB

Offset Temperature Coefficient                                   —      0.005                  —     LSB/°C

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

Signal-to-Noise Plus Distortion                                  55     58                     —     dB

Total Harmonic Distortion          Up to the 5th harmonic        —      –73                    —     dB

Spurious-Free Dynamic Range                                      —      78                     —     dB

Conversion Rate

SAR Conversion Clock                                             —      —                      8.33  MHz

Conversion Time in SAR Clocks      10-bit Mode                   13     —                      —     clocks

                                   8-bit Mode                    11     —                      —     clocks

Track/Hold Acquisition Time                                      300    —                      —     ns

Throughput Rate                                                  —      —                      500   ksps

Analog Inputs

ADC Input Voltage Range            Single Ended (AIN+ – GND)     0      —                      VREF  V

                                   Differential (AIN+ – AIN–)    –VREF  —                      VREF  V

Absolute Pin Voltage with respect  Single Ended or Differential  0      —                      VDD   V

to GND

Sampling Capacitance                                             —      30                     —     pF

Input Multiplexer Impedance                                      —      5                      —     k

Power Specifications

Power Supply Current               Operating Mode, 500 ksps      —      750                    1000  µA

(VDD supplied to ADC0)

Power Supply Rejection                                           —      1                      —     mV/V

Note:  Represents one standard deviation from the mean.

42                                           Rev. 1.4
                                                          C8051F380/1/2/3/4/5/6/7/C

Table 5.11. Temperature Sensor Electrical Characteristics

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

             Parameter            Test Condition                      Min      Typ    Max   Unit

Linearity                                                             —        ± 0.5  —     °C

Slope                                                                 —        2.87   —     mV/°C

Slope Error*                                                          —        ±120   —     µV/°C

Offset                            Temp = 0 °C                         —        764    —     mV

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

Note:   Represents one standard deviation from the mean.

Table 5.12. Voltage Reference Electrical Characteristics

VDD = 3.0 V; –40 to +85 °C unless otherwise specified.

           Parameter              Test Condition                         Min   Typ    Max   Unit

Internal Reference (REFBE   = 1)

Output Voltage                    25 °C ambient                          2.38  2.42   2.46  V

VREF Short-Circuit Current                                                 —   —      8     mA

VREF Temperature                                                           —   35     —     ppm/°C

Coefficient

Load Regulation                   Load = 0 to 200 µA to GND                —   1.5    —     ppm/µA

VREF Turn-on Time 1         4.7   µF tantalum, 0.1 µF ceramic bypass       —   3      —     ms

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

Power Supply Rejection                                                     —   140    —     ppm/V

External Reference (REFBE = 0)

Input Voltage Range                                                        1   —      VDD   V

Input Current               Sample Rate = 500 ksps; VREF = 3.0 V           —   9      —     µA

Power Specifications

Supply Current                                                             —   75     —     µA

                                                        Rev. 1.4                                   43
C8051F380/1/2/3/4/5/6/7/C

Table 5.13. Comparator Electrical Characteristics

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

       Parameter                  Test Condition              Min    Typ    Max         Unit

Response Time:                    CP0+ – CP0– = 100 mV        —      100    —           ns

Mode 0, Vcm* = 1.5 V              CP0+ – CP0– = –100 mV       —      250    —           ns

Response Time:                    CP0+ – CP0– = 100 mV        —      175    —           ns

Mode 1, Vcm* = 1.5 V              CP0+ – CP0– = –100 mV       —      500    —           ns

Response Time:                    CP0+ – CP0– = 100 mV        —      320    —           ns

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

Response Time:                    CP0+ – CP0– = 100 mV        —      1050   —           ns

Mode 3, Vcm* = 1.5 V              CP0+ – CP0– = –100 mV       —      5200   —           ns

Common-Mode Rejection Ratio                                   —      1.5    4           mV/V

Positive Hysteresis 1             CP0HYP1–0 = 00              —      0      1           mV

Positive Hysteresis 2             CP0HYP1–0 = 01              2      5      10          mV

Positive Hysteresis 3             CP0HYP1–0 = 10              7      10     20          mV

Positive Hysteresis 4             CP0HYP1–0 = 11              15     20     30          mV

Negative Hysteresis 1             CP0HYN1–0 = 00              —      0      1           mV

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

Negative Hysteresis 3             CP0HYN1–0 = 10              7      10     20          mV

Negative Hysteresis 4             CP0HYN1–0 = 11              15     20     30          mV

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

Voltage Range

Input Capacitance                                             —      4      —           pF

Input Bias Current                                            —      0.001  —           nA

Input Offset Voltage                                          –10    —      +10         mV

Power Supply

Power Supply Rejection                                        —      0.1    —           mV/V

Power-up Time                                                 —      10     —           µs

Supply Current at DC                                Mode 0    —      20     —           µA

                                                    Mode 1    —      10     —           µA

                                                    Mode 2    —      4      —           µA

                                                    Mode 3    —      1      —           µA

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

44                                                  Rev. 1.4
                            C8051F380/1/2/3/4/5/6/7/C

Table 5.14. USB Transceiver Electrical Characteristics

VDD = 3.0 V to 3.6 V, –40 to +85 °C unless otherwise specified.

         Parameter          Test Condition                       Min                Typ   Max    Unit

Transmitter

Output High Voltage (VOH)                                        2.8                —     —      V

Output Low Voltage (VOL)                                         —                  —     0.8    V

VBUS Detection Input Low                                         —                  —     1.0    V

Voltage

VBUS Detection Input High                                        3.0                —     —      V

Voltage

Output Crossover Point                                           1.3                —     2.0    V

(VCRS)

Output Impedance (ZDRV)     Driving High                         —                  38    —      W

                            Driving Low                          —                  38    —

Pull-up Resistance (RPU)    Full Speed (D+ Pull-up)              1.425              1.5   1.575  k

                            Low Speed (D– Pull-up)

Output Rise Time (TR)       Low Speed                            75                 —     300    ns

                            Full Speed                           4                  —     20

Output Fall Time (TF)       Low Speed                            75                 —     300    ns

                            Full Speed                           4                  —     20

Receiver

Differential Input          | (D+) – (D–) |                      0.2                —     —      V

Sensitivity (VDI)

Differential Input Common                                        0.8                —     2.5    V

Mode Range (VCM)

Input Leakage Current (IL)  Pullups Disabled                     —                  <1.0  —      µA

Note:   Refer to the USB Specification for timing diagrams and symbol definitions.

                            Rev. 1.4                                                                   45
C8051F380/1/2/3/4/5/6/7/C

6.  10-Bit ADC (ADC0, C8051F380/1/2/3/C only)

ADC0 on the C8051F380/1/2/3/C is a 500 ksps, 10-bit successive-approximation-register (SAR) ADC with

integrated track-and-hold, and a programmable window detector. The ADC is fully configurable under soft-

ware control via Special Function Registers. The ADC may be configured to measure various different sig-

nals using the analog multiplexer described in Section “6.5. ADC0 Analog Multiplexer (C8051F380/1/2/3/C

only)” on page 59. The voltage reference for the ADC is selected as described in Section “7. Voltage Refer-

ence Options” on page 62. The ADC0 subsystem is enabled only when the AD0EN bit in the ADC0 Control

register (ADC0CN) is set to logic 1. The ADC0 subsystem is in low power shutdown when this bit is logic 0.

                                   AMX0P                                                                                                               ADC0CN

                                   AMX0P5  AMX0P4  AMX0P3  AMX0P2  AMX0P1  AMX0P0                                                        AD0EN  AD0TM  AD0INT  AD0BUSY  AD0WINT  AD0CM2  AD0CM1  AD0CM0

Port I/O                                                                                                                            VDD                                                                  000      AD0BUSY (W)

Pins*     Positive                                                                                                                                                                       Start           001      Timer 0 Overflow

          Input                                                                                                                                                                  Conversion              010      Timer 2 Overflow

    VDD   (AIN+)                                                                                                                                                                                         011      Timer 1 Overflow

          AMUX                                                                                                                                                                                           100      CNVSTR Input

Temp                                                                                                                                10-Bit                                                       ADC0L   101      Timer 3 Overflow

Sensor                                                                                                                                                                                                   110      Timer 4 Overflow

                                                                                                   AIN+                             SAR                                                                  111      Timer 5 Overflow

                                                                                                   AIN-                             ADC                                                          ADC0H

Port I/O

Pins*     Negative

VREF      Input                                                                                                                                        SYSCLK  REF

          (AIN-)                                                                                                                                                                                                  AD0WINT

          AMUX

GND                                                                                                                                                                                                               Window

                                                                                                                           AD0LJST                                                                            32  Compare

                                   AMX0N5  AMX0N4  AMX0N3  AMX0N2  AMX0N1  AMX0N0  AD0SC4  AD0SC3  AD0SC2  AD0SC1  AD0SC0                ADC0LTH                        ADC0LTL                                   Logic

* 21 Selections on 32-pin package  AMX0N                                                           ADC0CF                                ADC0GTH                        ADC0GTL

32 Selections on 48-pin package

                                   Figure 6.1.             ADC0                    Functional                              Block Diagram

46                                                                                 Rev. 1.4
                                 C8051F380/1/2/3/4/5/6/7/C

6.1.  Output Code Formatting

The conversion code format differs between Single-ended and Differential modes. The registers ADC0H

and ADC0L contain the high and low bytes of the output conversion code from the ADC at the completion

of each conversion. Data can be right-justified or left-justified, depending on the setting of the AD0LJST bit

(ADC0CN.0). When in Single-ended Mode, conversion codes are represented as 10-bit unsigned integers.

Inputs are measured from 0 to VREF x 1023/1024. Example codes are shown below for both right-justified

and left-justified data. Unused bits in the ADC0H and ADC0L registers are set to 0.

Input Voltage     Right-Justified ADC0H:ADC0L  Left-Justified ADC0H:ADC0L

(Single-Ended)    (AD0LJST = 0)                (AD0LJST = 1)

VREF x 1023/1024  0x03FF                       0xFFC0

VREF x 512/1024   0x0200                       0x8000

VREF x 256/1024   0x0100                       0x4000

0                 0x0000                       0x0000

When in Differential Mode, conversion codes are represented as 10-bit signed 2s complement numbers.

Inputs are measured from –VREF to VREF x 511/512. Example codes are shown below for both right-jus-

tified and left-justified data. For right-justified data, the unused MSBs of ADC0H are a sign-extension of the

data word. For left-justified data, the unused LSBs in the ADC0L register are set to 0.

Input Voltage     Right-Justified ADC0H:ADC0L  Left-Justified ADC0H:ADC0L

(Differential)    (AD0LJST = 0)                (AD0LJST = 1)

VREF x 511/512    0x01FF                       0x7FC0

VREF x 256/512    0x0100                       0x4000

0                 0x0000                       0x0000

–VREF x 256/512   0xFF00                       0xC000

–VREF             0xFE00                       0x8000

                                 Rev. 1.4                                                                       47
C8051F380/1/2/3/4/5/6/7/C

6.2.  Temperature Sensor

The typical temperature sensor transfer function is shown in Figure 6.2. The output voltage (VTEMP) is the

positive ADC input when the temperature sensor is selected by bits AMX0P5-0 in register AMX0P.

               (mV)

               1200

               1100

               1000

               900

                                              VTEMP = Slope*(TEMPC) + Offset mV

               800

               700

                     -50                   0            50  100  (Celsius)

               Figure 6.2. Typical Temperature Sensor Transfer Function

The uncalibrated temperature sensor output is extremely linear and suitable for relative temperature mea-

surements (see Table 5.10, “ADC0 Electrical Characteristics,” on page 42 for linearity specifications). For

absolute temperature measurements, gain and/or offset calibration is recommended. Typically a 1-point

calibration includes the following steps:

      Step 1.  Control/measure the ambient temperature (this temperature must be known).

      Step 2.  Power the device, and delay for a few seconds to allow for self-heating.

      Step 3.  Perform an ADC conversion with the temperature sensor selected as the positive input

               and GND selected as the negative input.

      Step 4.  Calculate the offset and/or gain characteristics, and store these values in non-volatile

               memory for use with subsequent temperature sensor measurements.

Figure 6.3 shows the typical temperature sensor error assuming a 1-point calibration at 25 °C. Note that

parameters which affect ADC measurement, in particular the voltage reference value, will also

affect temperature measurement.

48                                            Rev. 1.4
                           C8051F380/1/2/3/4/5/6/7/C

Figure  6.3.  Temperature  Sensor Error  with  1-Point  Calibration

                           Rev. 1.4                                  49
C8051F380/1/2/3/4/5/6/7/C

6.3.  Modes of Operation

ADC0 has a maximum conversion speed of 500 ksps. The ADC0 conversion clock is a divided version of

the system clock, determined by the AD0SC bits in the ADC0CF register.

6.3.1. Starting a Conversion

A conversion can be initiated in one of several ways, depending on the programmed states of the ADC0

Start of Conversion Mode bits (AD0CM2–0) in register ADC0CN. Conversions may be initiated by one of

the following:

1.  Writing a 1 to the AD0BUSY bit of register ADC0CN

2.  A Timer 0 overflow (i.e., timed continuous conversions)

3.  A Timer 2 overflow

4.  A Timer 1 overflow

5.  A rising edge on the CNVSTR input signal

6.  A Timer 3 overflow

7.  A Timer 4 overflow

8.  A Timer 5 overflow

Writing a 1 to AD0BUSY provides software control of ADC0 whereby conversions are performed "on-

demand". During conversion, the AD0BUSY bit is set to logic 1 and reset to logic 0 when the conversion is

complete. The falling edge of AD0BUSY triggers an interrupt (when enabled) and sets the ADC0 interrupt

flag (AD0INT). 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, 3, 4, or 5 overflows are used as the conversion source, Low Byte over-

flows are used if the timer is in 8-bit mode; High byte overflows are used if the timer is in 16-bit mode. See

Section “26. Timers” on page 263 for timer configuration.

Important Note About Using CNVSTR: The CNVSTR input pin also functions as a Port I/O pin. When the

CNVSTR input is used as the ADC0 conversion source, the associated pin should be skipped by the Digi-

tal Crossbar. See Section “20. Port Input/Output” on page 153 for details on Port I/O configuration.

50                                            Rev. 1.4
                                                     C8051F380/1/2/3/4/5/6/7/C

6.3.2. Tracking Modes

The AD0TM bit in register ADC0CN controls the ADC0 track-and-hold mode. In its default state, the ADC0

input is continuously tracked, except when a conversion is in progress. When the AD0TM bit is logic 1,

ADC0 operates in low-power track-and-hold mode. In this mode, each conversion is preceded by a track-

ing period of 3 SAR clocks (after the start-of-conversion signal). When the CNVSTR signal is used to initi-

ate conversions in low-power tracking mode, ADC0 tracks only when CNVSTR is low; conversion begins

on the rising edge of CNVSTR. See Figure 6.4 for track and convert timing details. Tracking can also be

disabled (shutdown) when the device is in low power standby or sleep modes. Low-power track-and-hold

mode is also useful when AMUX settings are frequently changed, due to the settling time requirements

described in Section “6.3.3. Settling Time Requirements” on page 52.

                               A. ADC0 Timing              for   External          Trigger     Source

                  CNVSTR

(AD0CM[2:0]=100)

                                                        1  2  3  4     5     6  7  8  9  1  1

                                                                                         0  1

SAR Clocks

                  AD0TM=1      Low Power      Track                    Convert                   Low Power

                               or Convert                                                          Mode

                  AD0TM=0      Track or Convert                        Convert                     Track

Write '1' to AD0BUSY,          B. ADC0 Timing for Internal Trigger Source

Timer 0, Timer 2,

Timer 1, Timer 3  Overflow

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

                  011, 101)

                                           1  2  3   4  5  6  7     8     9  1  1  1  1  1

                       SAR                                                   0  1  2  3  4

                  Clocks

                  AD0TM=1      Low Power      Track              Convert                    Low  Power  Mode

                               or Convert

                                           1  2  3   4  5  6  7     8     9  1  1

                       SAR                                                   0  1

                  Clocks

                  AD0TM=0      Track or                 Convert                             Track

                               Convert

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

                                                 Rev. 1.4                                                     51
C8051F380/1/2/3/4/5/6/7/C

6.3.3. Settling Time Requirements

A minimum tracking time is required before each conversion to ensure that an accurate conversion is per-

formed. This tracking time is determined by the AMUX0 resistance, the ADC0 sampling capacitance, any

external source resistance, and the accuracy required for the conversion. Note that in low-power tracking

mode, three SAR clocks are used for tracking at the start of every conversion. For most applications, these

three SAR clocks will meet the minimum tracking time requirements.

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. See Table 5.10 for ADC0 minimum settling time

requirements as well as the mux impedance and sampling capacitor values.

                                          t  =  ln    S-2----nA--    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).

        Differential Mode                                                                 Single-Ended Mode

        MUX                                                                               MUX Select

        Select

Px.x                                                                                Px.x

                         RMUX                                                                               RMUX

                                             CSAMPLE                                                                 CSAMPLE

        RCInput= RMUX *  CSAMPLE                                                          RCInput= RMUX  *  CSAMPLE

                                             CSAMPLE

Px.x

                         RMUX

        MUX Select

                                  Figure  6.5. ADC0                    Equivalent Input   Circuits

52                                                                        Rev. 1.4
                                                                        C8051F380/1/2/3/4/5/6/7/C

SFR Definition 6.1. ADC0CF: ADC0 Configuration

Bit    7                 6         5                                    4         3         2        1                  0

Name                        AD0SC[4:0]                                                      AD0LJST     Reserved

Type                               R/W                                                      R/W            R/W

Reset  1                 1         1                                    1         1         0        0                  0

SFR Address = 0xBC; SFR Page = All Pages

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.

                  AD0SC     =  C-S----YL---K-S---S-C---A-L---RK--- – 1

                  Note:  If the Memory Power Controller is enabled (MPCE = '1'), AD0SC               must  be  set  to  at  least

                         "00001" for proper ADC operation.

2      AD0LJST    ADC0 Left Justify Select.

                  0: Data in ADC0H:ADC0L registers are right-justified.

                  1: Data in ADC0H:ADC0L registers are left-justified.

                  Note:  The AD0LJST bit is only valid for 10-bit mode (AD08BE = 0).

1:0    Reserved   Must Write 00b.

                                                                        Rev. 1.4                                            53
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 6.2. ADC0H: ADC0 Data Word MSB

    Bit  7           6              5     4                3                 2             1            0

Name                                      ADC0H[7:0]

Type                                                  R/W

Reset    0           0              0     0                0                 0             0            0

SFR Address = 0xBE; SFR Page = All Pages

Bit      Name                                         Function

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

                     For AD0LJST = 0: Bits 7–2 will read 000000b. Bits 1–0 are the upper 2 bits of the 10-

                     bit ADC0 Data Word.

                     For AD0LJST = 1: Bits 7–0 are the most-significant bits of the 10-bit ADC0 Data

                     Word.

SFR Definition 6.3. ADC0L: ADC0 Data Word LSB

    Bit  7           6              5     4                3                 2             1            0

Name                                      ADC0L[7:0]

Type                                                  R/W

Reset    0           0              0     0                0                 0             0            0

SFR Address = 0xBD; SFR Page = All Pages

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  10-bit  Data  Word.

                     For AD0LJST = 1: Bits 7–6 are the lower 2 bits of  the  10-bit  Data  Word.  Bits  5–0  will

                     read 000000b.

54                                        Rev. 1.4
                                                  C8051F380/1/2/3/4/5/6/7/C

SFR Definition 6.4. ADC0CN: ADC0 Control

Bit    7          6                 5             4         3          2              1           0

Name   AD0EN      AD0TM     AD0INT            AD0BUSY       AD0WINT               AD0CM[2:0]

Type   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 = All Pages; Bit-Addressable

Bit    Name                                                 Function

7      AD0EN      ADC0 Enable Bit.

                  0: ADC0 Disabled. ADC0 is in low-power shutdown.

                  1: ADC0 Enabled. ADC0 is active and ready for data conversions.

6      AD0TM      ADC0 Track Mode Bit.

                  0: Normal Track Mode: When ADC0 is enabled, tracking is continuous unless a con-

                  version is in progress. Conversion begins immediately on start-of-conversion event,

                  as defined by AD0CM[2:0].

                  1: Delayed Track Mode: When ADC0 is enabled, input is tracked when a conversion

                  is not in progress. A start-of-conversion signal initiates three SAR clocks of additional

                  tracking, and then begins the conversion. Note that there is not a tracking delay when

                  CNVSTR is used (AD0CM[2:0] = 100).

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 in    0: No Effect.

                                       progress.                       1: Initiates ADC0 Conversion if

                                       1: ADC0 conversion is in prog-  AD0CM[2:0] = 000b

                                       ress.

3      AD0WINT    ADC0 Window Compare Interrupt Flag.

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

                  cleared.

                  1: ADC0 Window Comparison Data match has occurred.

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

                  000: ADC0 start-of-conversion source is write of 1 to AD0BUSY.

                  001: ADC0 start-of-conversion source is overflow of Timer 0.

                  010: ADC0 start-of-conversion source is overflow of Timer 2.

                  011: ADC0 start-of-conversion source is overflow of Timer 1.

                  100: ADC0 start-of-conversion source is rising edge of external CNVSTR.

                  101: ADC0 start-of-conversion source is overflow of Timer 3.

                  110: ADC0 start-of-conversion source is overflow of Timer 4.

                  111: ADC0 start-of-conversion source is overflow of Timer 5.

                                                  Rev. 1.4                                                   55
C8051F380/1/2/3/4/5/6/7/C

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.

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

    Bit  7             6               5            4         3          2        1                 0

Name                                         ADC0GTH[7:0]

Type                                                     R/W

Reset    1             1               1            1         1          1        1                 1

SFR Address = 0xC4; SFR Page = All Pages

Bit      Name                                                 Function

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

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

    Bit  7             6               5            4         3          2        1                 0

Name                                                ADC0GTL[7:0]

Type                                                     R/W

Reset    1             1               1            1         1          1        1                 1

SFR Address = 0xC3;    SFR Page = All Pages

Bit      Name                                                 Function

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

56                                           Rev. 1.4
                                          C8051F380/1/2/3/4/5/6/7/C

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

Bit    7             6  5                 4         3           2     1  0

Name                                      ADC0LTH[7:0]

Type                                         R/W

Reset  0             0  0                 0         0           0     0  0

SFR Address = 0xC6; SFR Page = All Pages

Bit    Name                                         Function

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

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

Bit    7             6  5                 4         3           2     1  0

Name                                      ADC0LTL[7:0]

Type                                         R/W

Reset  0             0  0                 0         0           0     0  0

SFR Address = 0xC5; SFR Page = All Pages

Bit    Name                                         Function

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

                                          Rev. 1.4                          57
C8051F380/1/2/3/4/5/6/7/C

6.4.1. Window Detector Example

Figure 6.6          shows   two     example    window          comparisons        for    right-justified,        single-ended   data,  with

ADC0LTH:ADC0LTL = 0x0080 (128d) and ADC0GTH:ADC0GTL = 0x0040 (64d). The input voltage can

range from 0 to VREF x (1023/1024) with respect to GND, and is represented by a 10-bit unsigned integer

value.  In     the    left  example,      an   AD0WINT         interrupt    will  be   generated    if      the  ADC0  conversion      word

(ADC0H:ADC0L)               is  within    the  range         defined    by  ADC0GTH:ADC0GTL                 and  ADC0LTH:ADC0LTL

(if 0x0040 < ADC0H:ADC0L < 0x0080). In the right example, and AD0WINT interrupt will be generated if

the  ADC0         conversion        word  is  outside  of    the  range     defined      by    the  ADC0GT       and   ADC0LT        registers

(if ADC0H:ADC0L < 0x0040 or ADC0H:ADC0L > 0x0080). Figure 6.7 shows an example using left-justi-

fied data with the same comparison values.

                      ADC0H:ADC0L                                                              ADC0H:ADC0L

     Input Voltage                                                          Input Voltage

     (AIN - GND)                                                            (AIN - GND)

     VREF x (1023/          0x03FF                                          VREF x (1023/           0x03FF

        1024)                                                                     1024)

                                               AD0WINT                                                                               AD0WINT=1

                                               not affected

                            0x0081                                                                  0x0081

VREF x (128/1024)           0x0080            ADC0LTH:ADC0LTL               VREF x (128/1024)       0x0080       ADC0GTH:ADC0GTL

                            0x007F                                                                  0x007F             AD0WINT

                                                             AD0WINT=1                                                 not affected

                            0x0041                                                                  0x0041

    VREF x (64/1024)        0x0040        ADC0GTH:ADC0GTL                   VREF x (64/1024)        0x0040       ADC0LTH:ADC0LTL

                            0x003F                                                                  0x003F

                                               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

     (AIN - GND)                                                            (AIN - GND)

     VREF x (1023/    0xFFC0                                                VREF x (1023/           0xFFC0

        1024)                                                                     1024)

                                               AD0WINT                                                                               AD0WINT=1

                                               not affected

                            0x2040                                                                  0x2040

VREF x (128/1024)           0x2000            ADC0LTH:ADC0LTL               VREF x (128/1024)       0x2000       ADC0GTH:ADC0GTL

                      0x1FC0                                                                        0x1FC0             AD0WINT

                                                             AD0WINT=1                                                 not affected

                            0x1040                                                                  0x1040

VREF x (64/1024)            0x1000        ADC0GTH:ADC0GTL                   VREF x (64/1024)        0x1000       ADC0LTH:ADC0LTL

                      0x0FC0                                                                        0x0FC0

                                               AD0WINT                                                                               AD0WINT=1

                                               not affected

        0                   0x0000                                                0                 0x0000

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

58                                                                Rev. 1.4
                              C8051F380/1/2/3/4/5/6/7/C

6.5.  ADC0 Analog Multiplexer (C8051F380/1/2/3/C only)

AMUX0 selects the positive and negative inputs to the ADC. The positive input (AIN+) can be connected to

individual Port pins, the on-chip temperature sensor, or the positive power supply (VDD). The negative

input (AIN-) can be connected to individual Port pins, VREF, or GND. When GND is selected as the nega-

tive input, ADC0 operates in Single-ended Mode; at all other times, ADC0 operates in Differential Mode.

The ADC0 input channels are selected in the AMX0P and AMX0N registers as described in SFR Definition

6.9 and SFR Definition 6.10.

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 “20. Port Input/Output” on page 153 for more Port

I/O configuration details.

                              Rev. 1.4                                                                        59
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 6.9. AMX0P: AMUX0 Positive Channel Select

    Bit  7           6                5               4  3              2            1          0

Name                                                     AMX0P[5:0]

Type     R           R                                             R/W

Reset    0           0                0               0  0              0            0          0

SFR  Address = 0xBB; SFR Page = All Pages

Bit      Name                                            Function

7:6      Unused      Read = 00b; Write = don’t care.

5:0      AMX0P[5:0]  AMUX0 Positive Input Selection.

                     AMX0P    32-pin       48-pin        AMX0P          32-pin          48-pin

                              Packages     Packages                     Packages        Packages

                     000000:  P1.0         P2.0          010010:        P0.1            P0.4

                     000001:  P1.1         P2.1          010011:        P0.4            P1.1

                     000010:  P1.2         P2.2          010100:        P0.5            P1.2

                     000011:  P1.3         P2.3          010101:        Reserved        P1.0

                     000100:  P1.4         P2.5          010110:        Reserved        P1.3

                     000101:  P1.5         P2.6          010111:        Reserved        P1.6

                     000110:  P1.6         P3.0          011000:        Reserved        P1.7

                     000111:  P1.7         P3.1          011001:        Reserved        P2.4

                     001000:  P2.0         P3.4          011010:        Reserved        P2.7

                     001001:  P2.1         P3.5          011011:        Reserved        P3.2

                     001010:  P2.2         P3.7          011100:        Reserved        P3.3

                     001011:  P2.3         P4.0          011101:        Reserved        P3.6

                     001100:  P2.4         P4.3          011110:        Temp Sensor     Temp Sensor

                     001101:  P2.5         P4.4          011111:        VDD             VDD

                     001110:  P2.6         P4.5          100000:        Reserved        P4.1

                     001111:  P2.7         P4.6          100001:        Reserved        P4.2

                     010000:  P3.0         Reserved      100010:        Reserved        P4.7

                     010001:  P0.0         P0.3          100011 -       Reserved        Reserved

                                                         111111:

60                                         Rev. 1.4
                                                   C8051F380/1/2/3/4/5/6/7/C

SFR Definition 6.10. AMX0N: AMUX0 Negative Channel Select

Bit    7          6                5               4  3         2         1            0

Name                                                  AMX0N[5:0]

Type   R          R                                      R/W

Reset  0          0                0               0  0         0         0            0

SFR  Address = 0xBA; SFR Page = All Pages

Bit    Name                                           Function

7:6    Unused     Read = 00b; Write = don’t care.

5:0   AMX0N[5:0]  AMUX0 Negative Input Selection.

                  AMX0N    32-pin          48-pin     AMX0N     32-pin         48-pin

                           Packages        Packages             Packages       Packages

                  000000:  P1.0            P2.0       010010:   P0.1           P0.4

                  000001:  P1.1            P2.1       010011:   P0.4           P1.1

                  000010:  P1.2            P2.2       010100:   P0.5           P1.2

                  000011:  P1.3            P2.3       010101:   Reserved       P1.0

                  000100:  P1.4            P2.5       010110:   Reserved       P1.3

                  000101:  P1.5            P2.6       010111:   Reserved       P1.6

                  000110:  P1.6            P3.0       011000:   Reserved       P1.7

                  000111:  P1.7            P3.1       011001:   Reserved       P2.4

                  001000:  P2.0            P3.4       011010:   Reserved       P2.7

                  001001:  P2.1            P3.5       011011:   Reserved       P3.2

                  001010:  P2.2            P3.7       011100:   Reserved       P3.3

                  001011:  P2.3            P4.0       011101:   Reserved       P3.6

                  001100:  P2.4            P4.3       011110:   VREF           VREF

                  001101:  P2.5            P4.4       011111:   GND            GND

                                                                (Single-Ended  (Single-Ended

                                                                Measurement)   Measurement)

                  001110:  P2.6            P4.5       100000:   Reserved       P4.1

                  001111:  P2.7            P4.6       100001:   Reserved       P4.2

                  010000:  P3.0            Reserved   100010:   Reserved       P4.7

                  010001:  P0.0            P0.3       100011 -  Reserved       Reserved

                                                      111111:

                                           Rev. 1.4                                       61
C8051F380/1/2/3/4/5/6/7/C

7.  Voltage Reference Options

The Voltage reference multiplexer for the ADC is configurable to use an externally connected voltage refer-

ence, the on-chip reference voltage generator routed to the VREF pin, the unregulated power supply volt-

age (VDD), or the regulated 1.8 V internal supply (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. To override this selection and use the internal regulator as the reference

source, the REGOVR bit can be set to 1.

The BIASE bit enables the internal voltage bias generator, which is used by many of the analog peripherals

on the device. 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.12.

The C8051F380/1/2/3/C devices also include an on-chip voltage reference circuit which consists of a

1.2 V, temperature stable bandgap voltage reference generator and a selectable-gain output buffer ampli-

fier. The buffer is configured for 1x or 2x gain using the REFBGS bit in register REF0CN. On the 1x gain

setting the output voltage is nominally 1.2 V, and on the 2x gain setting the output voltage is nominally

2.4 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, and a minimum of 0.1uF is

required. If the on-chip reference is not used, the REFBE bit should be cleared to 0. Electrical specifica-

tions for the on-chip voltage reference are given in Table 5.12.

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 “20. Port Input/Output” on page 153 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.

                                                     REF0CN

                                             REFBGS  REGOVR  REFSL  TEMPE  BIASE  REFBE

                                                                                                                        To ADC, IDAC,

                                                                                                EN  Bias Generator      Internal Oscillators,

                                                                                                                        Reference,

                                                                           IOSCEN                                       TempSensor

             VDD       External                                                                 EN  Temp Sensor         To Analog Mux

                       Voltage

                       Reference

             R1        Circuit

                                       VREF                                              1x/2x      1.2V Reference  EN  REFBE

             GND                                                                  REFBGS

                                                             0

                                                                                                0

             4.7F  +           0.1F                                                                                   VREF

                                             VDD             1                                                          (to ADC)

             Recommended Bypass                                            Internal             1

                    Capacitors                                      Regulator

                                                                                         REGOVR

             Figure 7.1. Voltage             Reference Functional                                   Block           Diagram

62                                                   Rev. 1.4
                                                  C8051F380/1/2/3/4/5/6/7/C

SFR Definition 7.1. REF0CN: Reference Control

Bit    7       6               5                 4           3              2    1                    0

Name   REFBGS                              REGOVR          REFSL     TEMPE       BIASE            REFBE

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

Reset  0       0               0                 0           0              0    0                    0

SFR  Address = 0xD1; SFR Page = All Pages

Bit    Name                                                Function

7      REFBGS  Reference Buffer Gain Select.

               This bit selects between 1x and 2x gain for the on-chip voltage reference buffer.

               0: 2x Gain

               1: 1x Gain

6:5    Unused  Read = 00b; Write = don’t care.

4      REGOVR  Regulator Reference Override.

               This bit “overrides” the REFSL bit, and allows the internal regulator to be used as a     ref-

               erence source.

               0: The voltage reference source is selected by the REFSL bit.

               1: The internal regulator is used as the voltage reference.

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.

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.

                                                 Rev. 1.4                                                  63
C8051F380/1/2/3/4/5/6/7/C

8.   Comparator0 and Comparator1

C8051F380/1/2/3/4/5/6/7/C devices include two on-chip programmable voltage comparators: Comparator0

is shown in Figure 8.1, Comparator1 is shown in Figure 8.2. The two comparators operate identically with

the following exceptions: (1) Their input selections differ as described in Section “8.1. Comparator Multi-

plexers” on page 71; (2) Comparator0 can be used as a reset source.

The Comparators offer programmable response time and hysteresis, an analog input multiplexer, and two

outputs that are optionally available at the Port pins: a synchronous “latched” output (CP0 or CP1), or an

asynchronous “raw” output (CP0A or CP1A). The asynchronous signals are available even when the sys-

tem 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 “20.2. Port I/O Initialization” on page 158). Comparator0 may also be used as a

reset source (see Section “17.5. Comparator0 Reset” on page 132).

The  Comparator  inputs          are     selected                           by       the             comparator                        input  multiplexers,  as   detailed   in  Section

“8.1. Comparator Multiplexers” on page 71.

                                                                   CPT0CN

                                                 CP0HYN0  CP0HYN1  CP0HYP0  CP0HYP1  CP0FIF  CP0RIF  CP0OUT  CP0EN

                                                                   VDD

                                         CP0 +            +

     Comparator                                                                                                                                                   CP0

                                                                                                             D      SET  Q     D  SET  Q

     Input Mux                           CP0 -            -

                                                                                                                    CLR  Q        CLR  Q

                                                                                                                                                     Crossbar

                                                                                                             (SYNCHRONIZER)

                                                                            GND                                                                                   CP0A

                                 CPT0MD                                                      Reset

                                                                                             Decision

                 CP0MD0  CP0MD1  CP0FIE  CP0RIE                                                      Tree

                                                                                     CP0RIF                                 0                 CP0EN     EA        CP0

                                                                                                                            1                        0         0  Interrupt

                                                                                                                            0                        1         1

                                                                                     CP0FIF                                 1

                                 Figure 8.1.              Comparator0 Functional                                                          Block Diagram

64                                                                                                   Rev. 1.4
                                                                                            C8051F380/1/2/3/4/5/6/7/C

                                                  CPT1CN

                                CP1HYN0  CP1HYN1  CP1HYP0  CP1HYP1  CP1FIF  CP1RIF  CP1OUT  CP1EN

                                                  VDD

                        CP1 +            +

Comparator                                                                                                                                   CP1

                                                                                            D      SET  Q     D  SET  Q

Input Mux               CP1 -            -

                                                                                                   CLR  Q        CLR  Q

                                                                                                                                Crossbar

                                                                                            (SYNCHRONIZER)

                                                           GND                                                                               CP1A

                CPT1MD

CP1MD0  CP1MD1  CP1FIE  CP1RIE                                      CP1RIF                                 0             CP1EN     EA        CP1

                                                                                                           1                    0         0  Interrupt

                                                                                                           0                    1         1

                                                                    CP1FIF                                 1

                Figure 8.2. Comparator1 Functional Block Diagram

The Comparator output can be polled in software, used as an interrupt source, and/or routed to a Port pin.

When routed to a Port pin, the Comparator output is available asynchronous or synchronous to the system

clock; the asynchronous output is available even in STOP mode (with no system clock active). When dis-

abled, the Comparator output (if assigned to a Port I/O pin via the Crossbar) defaults to the logic low state,

and the power supply to the comparator is turned off. See Section “20.1. Priority Crossbar Decoder” on

page 154 for details on configuring Comparator outputs via the digital Crossbar. Comparator inputs can be

externally driven from –0.25 V to (VDD) + 0.25 V without damage or upset. The complete Comparator elec-

trical specifications are given in Section “5. Electrical Characteristics” on page 37.

The Comparator response time may be configured in software via the CPTnMD registers (see SFR Defini-

tion 8.2 and SFR Definition 8.4). Selecting a longer response time reduces the Comparator supply current.

                                                                                    Rev. 1.4                                                            65
C8051F380/1/2/3/4/5/6/7/C

                 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.3. Comparator Hysteresis          Plot

The  Comparator  hysteresis     is  software-programmable     via       its  Comparator  Control  register  CPTnCN

(for n = 0 or 1). The user can program both the amount of hysteresis voltage (referred to the input voltage)

and the positive and negative-going symmetry of this hysteresis around the threshold voltage.

The Comparator hysteresis is programmed using Bits 3–0 in the Comparator Control Register CPTnCN

(shown in SFR Definition 8.1). The amount of negative hysteresis voltage is determined by the settings of

the CPnHYN bits. Settings of 20, 10 or 5 mV of nominal negative hysteresis can be programmed, or nega-

tive hysteresis can be disabled. 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 Section “16.1. MCU Interrupt Sources and Vectors” on page 119). The

CPnFIF flag is set to logic 1 upon a Comparator falling-edge occurrence, and the CPnRIF flag is set to

logic 1 upon the Comparator rising-edge occurrence. Once set, these bits remain set until cleared by soft-

ware. The Comparator rising-edge interrupt mask is enabled by setting CPnRIE to a logic 1. The Compar-

ator falling-edge interrupt mask is enabled by setting CPnFIE to a logic 1.

The output state of the Comparator can be obtained at any time by reading the CPnOUT bit. The Compar-

ator is enabled by setting the CPnEN bit to logic 1, and is disabled by clearing this bit to logic 0.

Note that false rising edges and falling edges can be detected when the comparator is first powered on or

if changes are made to the hysteresis or response time control bits. Therefore, it is recommended that the

rising-edge and falling-edge flags be explicitly cleared to logic 0 a short time after the comparator is

enabled or its mode bits have been changed.

66                                           Rev. 1.4
                                                    C8051F380/1/2/3/4/5/6/7/C

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 = 0x9B; SFR Page = All Pages

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.4                                              67
C8051F380/1/2/3/4/5/6/7/C

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 = 0x9D; SFR Page = All Pages

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)

68                                             Rev. 1.4
                                                    C8051F380/1/2/3/4/5/6/7/C

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 = 0x9A; SFR Page = All Pages

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.4                                              69
C8051F380/1/2/3/4/5/6/7/C

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 = 0x9C; SFR Page = All Pages

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)

70                                             Rev. 1.4
                                                        C8051F380/1/2/3/4/5/6/7/C

8.1.  Comparator Multiplexers

C8051F380/1/2/3/4/5/6/7/C devices include an analog input multiplexer to connect Port I/O pins to the

comparator inputs. The Comparator inputs are selected in the CPTnMX registers (SFR Definition 8.5 and

SFR Definition 8.6). The CMXnP2–CMXnP0 bits select the Comparator positive input; the CMXnN2–CMX-

nN0 bits select the Comparator 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 “20.3. General Purpose Port I/O” on page 161).

                                                   VDD                                                               VDD

                        CP0 +                   +                                         CP1 +                   +

                                CP0 -           -                                                 CP1 -           -

                                                   GND                                                               GND

CMX0N2  CMX0N1  CMX0N0  CMX0P2  CMX0P1  CMX0P0                    CMX1N2  CMX1N1  CMX1N0  CMX1P2  CMX1P1  CMX1P0

        CPT0MX                                                            CPT1MX

                                Figure 8.4. Comparator Input Multiplexer Block Diagram

                                                        Rev. 1.4                                                          71
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 8.5. CPT0MX: Comparator0 MUX Selection

    Bit  7                 6    5                    4  3         2         1       0

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

Type     R                      R/W                     R                   R/W

Reset    0                 0    0                    0  0         0         0       0

SFR    Address = 0x9F; SFR Page = All Pages

Bit      Name                                           Function

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

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

                     Selection       32-pin Package               48-pin Package

                     000:            P1.1                         P2.1

                     001:            P1.5                         P2.6

                     010:            P2.1                         P3.5

                     011:            P2.5                         P4.4

                     100:            P0.1                         P0.4

                     101-111:        Reserved                     Reserved

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

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

                     Selection       32-pin Package               48-pin Package

                     000:            P1.0                         P2.0

                     001:            P1.4                         P2.5

                     010:            P2.0                         P3.4

                     011:            P2.4                         P4.3

                     100:            P0.0                         P0.3

                     101-111:        Reserved                     Reserved

72                                           Rev. 1.4
                                                   C8051F380/1/2/3/4/5/6/7/C

SFR Definition 8.6. CPT1MX: Comparator1 MUX Selection

Bit    7                 6    5                    4  3         2         1       0

Name                          CMX1N[2:0]                              CMX1P[2:0]

Type   R                      R/W                     R                   R/W

Reset  0                 0    0                    0  0         0         0       0

SFR  Address = 0x9E; SFR Page = All Pages

Bit    Name                                           Function

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

6:4   CMX1N[2:0]   Comparator1 Negative Input MUX Selection.

                   Selection       32-pin Package               48-pin Package

                   000:            P1.3                         P2.3

                   001:            P1.7                         P3.1

                   010:            P2.3                         P4.0

                   011:            Reserved                     P4.6

                   100:            P0.5                         P1.2

                   101-111:        Reserved                     Reserved

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

2:0    CMX1P[2:0]  Comparator1 Positive Input MUX Selection.

                   Selection       32-pin Package               48-pin Package

                   000:            P1.2                         P2.2

                   001:            P1.6                         P3.0

                   010:            P2.2                         P3.7

                   011:            Reserved                     P4.5

                   100:            P0.4                         P1.1

                   101-111:        Reserved                     Reserved

                                           Rev. 1.4                                  73
C8051F380/1/2/3/4/5/6/7/C

9.    Voltage Regulators (REG0 and REG1)

C8051F380/1/2/3/4/5/6/7/C devices include two internal voltage regulators: one regulates a voltage source

on REGIN to 3.3 V (REG0), and the other regulates the internal core supply to 1.8 V from a VDD supply of

1.8 to 3.6 V (REG1). When enabled, the REG0 output appears on the VDD pin and can be used to power

external devices. REG0 can be enabled/disabled by software using bit REG0DIS in register REG01CN

(SFR Definition 9.1). REG1 has two power-saving modes built into the regulator to help reduce current

consumption in low-power applications. These modes are accessed through the REG01CN register. Elec-

trical characteristics for the on-chip regulators are specified in Table 5.5 on page 40.

Note that the VBUS signal must be connected to the VBUS pin when using the device in a USB network.

The VBUS signal should only be connected to the REGIN pin when operating the device as a bus-powered

function.  REG0   configuration  options    are  shown  in  “4.  Typical  Connection      Diagrams”  Figure 4.1–

Figure 4.4.

9.1.  Voltage Regulator (REG0)

See “4. Typical Connection Diagrams” for typical connection diagrams using the REG0 voltage regulator.

9.1.1. Regulator Mode Selection

REG0 offers a low power mode intended for use when the device is in suspend mode. In this low power

mode, the REG0 output remains as specified; however the REG0 dynamic performance (response time) is

degraded. See Table 5.5 for normal and low power mode supply current specifications. The REG0 mode

selection is controlled via the REG0MD bit in register REG01CN.

9.1.2. VBUS Detection

When  the    USB  Function  Controller  is  used  (see  section  Section  “21. Universal  Serial  Bus  Controller

(USB0)” on page 172), the VBUS signal should be connected to the VBUS pin. The VBSTAT bit (register

REG01CN) indicates the current logic level of the VBUS signal. If enabled, a VBUS interrupt will be gener-

ated when the VBUS signal has either a falling or rising edge. The VBUS interrupt is edge-sensitive, and

has no associated interrupt pending flag. See Table 5.5 for VBUS input parameters.

Important Note: When USB is selected as a reset source, a system reset will be generated when a falling

or rising edge occurs on the VBUS pin. See Section “17. Reset Sources” on page 129 for details on select-

ing USB as a reset source.

9.2.  Voltage Regulator (REG1)

Under default conditions, the internal REG1 regulator will remain on when the device enters STOP mode.

This allows any enabled reset source to generate a reset for the device and bring the device out of STOP

mode. For additional power savings, the STOPCF bit can be used to shut down the regulator and the inter-

nal power network of the device when the part enters STOP mode. When STOPCF is set to 1, the RST pin

and a full power cycle of the device are the only methods of generating a reset.

REG1 offers an additional low power mode intended for use when the device is in suspend mode. This low

power mode should not be used during normal operation or if the REG0 Voltage Regulator is disabled. See

Table 5.5 for normal and low power mode supply current specifications. The REG1 mode selection is con-

trolled via the REG1MD bit in register REG01CN.

Important Note: At least 12 clock instructions must occur after placing REG1 in low power mode before

the Internal High Frequency Oscillator is Suspended (OSCICN.5 = 1b).

74                                                Rev. 1.4
                                                 C8051F380/1/2/3/4/5/6/7/C

SFR Definition 9.1. REG01CN: Voltage Regulator Control

Bit    7                  6         5            4          3              2            1      0

Name   REG0DIS   VBSTAT          Reserved  REG0MD          STOPCF    Reserved        REG1MD    Reserved

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

Reset  0                  0         0            0          0              0            0      0

SFR  Address = 0xC9; SFR Page = All Pages

Bit    Name                                                Function

7      REG0DIS   Voltage Regulator (REG0) Disable.

                 This bit enables or disables the REG0 Voltage Regulator.

                 0: Voltage Regulator Enabled.

                 1: Voltage Regulator Disabled.

6      VBSTAT    VBUS Signal Status.

                 This bit indicates whether the device is connected to a USB network.

                 0: VBUS signal currently absent (device not attached to USB network).

                 1: VBUS signal currently present (device attached to USB network).

5      Reserved  Must Write 0b.

4      REG0MD    Voltage Regulator (REG0) Mode Select.

                 This bit selects the Voltage Regulator mode for REG0. When REG0MD is set to 1, the

                 REG0 voltage regulator operates in lower power (suspend) mode.

                 0: REG0 Voltage Regulator in normal mode.

                 1: REG0 Voltage Regulator in low power mode.

3      STOPCF    Stop Mode Configuration (REG1).

                 This bit configures the REG1 regulator’s behavior when the device enters STOP mode.

                 0: REG1 Regulator is still active in STOP mode. Any enabled reset source will reset the

                 device.

                 1: REG1 Regulator is shut down in STOP mode. Only the RST pin or power cycle can

                 reset the device.

2      Reserved  Must Write 0b.

1      REG1MD    Voltage Regulator (REG1) Mode.

                 This bit selects the Voltage Regulator mode for REG1. When REG1MD is set to 1, the

                 REG1 voltage regulator operates in lower power mode.

                 0: REG1 Voltage Regulator in normal mode.

                 1: REG1 Voltage Regulator in low power mode.

                 This bit should not be set to '1' if the REG0 Voltage Regulator is disabled.

0      Reserved  Must Write 0b.

                                                 Rev. 1.4                                                 75
C8051F380/1/2/3/4/5/6/7/C

10.      Power Management Modes

The C8051F380/1/2/3/4/5/6/7/C 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 sus-

pend 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 is halted, but the device can wake on activ-

ity with the USB transceiver. The CPU is not halted in suspend mode, so it can run on another oscillator, if

desired. 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 10.1 describes the Power Control Register (PCON) used to control the C8051F380/1/2/3/4/5/6/

7/C's Stop and Idle power management modes. Suspend mode is controlled by the SUSPEND bit in the

OSCICN register (SFR Definition 19.3).

Although the C8051F380/1/2/3/4/5/6/7/C 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.

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

76                                               Rev. 1.4
                                                 C8051F380/1/2/3/4/5/6/7/C

nitely, waiting for an external stimulus to wake up the system. Refer to Section “17.6. PCA Watchdog Timer

Reset” on page 133 for more information on the use and configuration of the WDT.

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

By default, when in stop mode the internal regulator is still active. However, the regulator can be config-

ured to shut down while in stop mode to save power. To shut down the regulator in stop mode, the

STOPCF bit in register REG01CN should be set to 1 prior to setting the STOP bit (see SFR Definition 9.1).

If the regulator is shut down using the STOPCF bit, only the RST pin or a full power cycle are capable of

resetting the device.

10.3.  Suspend Mode

Setting the SUSPEND bit (OSCICN.5) causes the hardware to halt the high-frequency internal oscillator

and go into suspend mode as soon as the instruction that sets the bit completes execution. All internal reg-

isters and memory maintain their original data. The CPU is not halted in Suspend, so code can still be exe-

cuted using an oscillator other than the internal high-frequency oscillator.

Suspend mode can be terminated by resume signalling on the USB data pins, or a device reset event.

When suspend mode is terminated, if the oscillator source is the internal high-frequency oscillator, 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 sus-

pend mode is terminated by an internal or external reset, the CIP-51 performs a normal reset sequence

and begins program execution at address 0x0000.

                                                 Rev. 1.4                                                      77
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 10.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.)

78                                            Rev. 1.4
                                                                    C8051F380/1/2/3/4/5/6/7/C

11.  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 28), 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 11.1 for a block diagram).

The CIP-51 includes the following features:

  Fully Compatible with MCS-51 Instruction Set                                       Reset Input

  48 MIPS Peak Throughput with 48 MHz Clock                                          Power Management Modes

  0 to 48 MHz Clock Frequency                                                        On-chip Debug Logic

  Extended Interrupt Handler                                                         Program and Data Memory Security

Performance

The CIP-51 employs a pipelined architecture that greatly increases its instruction throughput over the stan-

dard 8051 architecture. In a standard 8051, all instructions except for MUL and DIV take 12 or 24 system

clock cycles to execute, and usually have a maximum system clock of 12 MHz. By contrast, the CIP-51

core executes 70% of its instructions in one or two system clock cycles, with no instructions taking more

than eight system clock cycles.

                                                                    DATA        BUS

                                            D8                                         D8               D8

                                        ACCUMULATOR       D8        D8              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

                                            DATA POINTER                        D8         BUS    SFR_WRITE_DATA

                                                                    D8                 INTERFACE

                                                                                                  SFR_READ_DATA

                                        PC INCREMENTER

                                        PROGRAM  COUNTER (PC)             BUS   D8                MEM_ADDRESS

                                                                          DATA                    MEM_CONTROL

                                        PRGM. ADDRESS REG.                             MEMORY     MEM_WRITE_DATA

                                                                                A16    INTERFACE

                                                                                                  MEM_READ_DATA

                                                          PIPELINE              D8

                                 RESET  CONTROL

                                        LOGIC                                                       SYSTEM_IRQs

                                 CLOCK                                                 INTERRUPT

                                 STOP                                           D8     INTERFACE  EMULATION_IRQ

                                 IDLE   POWER    CONTROL            D8

                                                REGISTER

                                       Figure 11.1. CIP-51 Block Diagram

                                                                  Rev. 1.4                                               79
C8051F380/1/2/3/4/5/6/7/C

With the CIP-51's maximum system clock at 48 MHz, it has a peak throughput of 48 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/4  3       3/5  4                    5               4/6  6          8

Number of Instructions        26    50  5    10      6    5                    2               2    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 “28. C2 Interface” on page 316.

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.

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

11.1.1. Instruction and CPU Timing

In many 8051 implementations, a distinction is made between machine cycles and clock cycles, with

machine cycles varying from 2 to 12 clock cycles in length. However, the CIP-51 implementation is based

solely on clock cycle timing. All instruction timings are specified in terms of clock cycles.

Due to the pipelined architecture of the CIP-51, most instructions execute in the same number of clock

cycles as there are program bytes in the instruction. Conditional branch instructions take one less clock

cycle to complete when the branch is not taken as opposed to when the branch is taken. Table 11.1 is the

CIP-51 Instruction Set Summary, which includes the mnemonic, number of bytes, and number of clock

cycles for each instruction.

80                                         Rev. 1.4
                                              C8051F380/1/2/3/4/5/6/7/C

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

XRL A, #data           Exclusive-OR immediate to A               2      2

XRL direct, A          Exclusive-OR A to direct byte             2      2

                                             Rev. 1.4                           81
C8051F380/1/2/3/4/5/6/7/C

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

         Mnemonic                         Description              Bytes  Clock

                                                                          Cycles

XRL direct, #data     Exclusive-OR immediate to direct byte        3      3

CLR A                 Clear A                                      1      1

CPL A                 Complement A                                 1      1

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      3

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

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

82                                        Rev. 1.4
                                                         C8051F380/1/2/3/4/5/6/7/C

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

         Mnemonic                                   Description                   Bytes               Clock

                                                                                                Cycles

ANL C, bit                    AND direct bit to Carry                             2                   2

ANL C, /bit                   AND complement of direct bit to Carry               2                   2

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

Program Flow

Timings are listed with  the  PFE on and FLRT = 0. Extra cycles are required for  branches  if  FLRT  = 1.

JC rel                        Jump if Carry is set                                2                   2/4

JNC rel                       Jump if Carry is not set                            2                   2/4

JB bit, rel                   Jump if direct bit is set                           3                   3/5

JNB bit, rel                  Jump if direct bit is not set                       3                   3/5

JBC bit, rel                  Jump if direct bit is set and clear bit             3                   3/5

ACALL addr11                  Absolute subroutine call                            2                   4

LCALL addr16                  Long subroutine call                                3                   5

RET                           Return from subroutine                              1                   6

RETI                          Return from interrupt                               1                   6

AJMP addr11                   Absolute jump                                       2                   4

LJMP addr16                   Long jump                                           3                   5

SJMP rel                      Short jump (relative address)                       2                   4

JMP @A+DPTR                   Jump indirect relative to DPTR                      1                   4

JZ rel                        Jump if A equals zero                               2                   2/4

JNZ rel                       Jump if A does not equal zero                       2                   2/4

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

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

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

                              equal

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

                              equal

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

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

NOP                           No operation                                        1                   1

                                                      Rev. 1.4                                               83
C8051F380/1/2/3/4/5/6/7/C

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 8 kB program memory space.

There is one unused opcode (0xA5) that performs the same function as NOP.

All mnemonics copyrighted © Intel Corporation 1980.

84                                            Rev. 1.4
                                               C8051F380/1/2/3/4/5/6/7/C

11.2.  CIP-51 Register Descriptions

Following are descriptions of SFRs related to the operation of the CIP-51 System Controller. Reserved bits

should always be written to the value indicated in the SFR description. Future product versions may use

these bits to implement new features in which case the reset value of the bit will be the indicated value,

selecting the feature's default state. Detailed descriptions of the remaining SFRs are included in the sec-

tions of the datasheet associated with their corresponding system function.

SFR Definition 11.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.

SFR Definition 11.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.

                                               Rev. 1.4                                                      85
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 11.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 11.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 11.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.

86                                        Rev. 1.4
                                                 C8051F380/1/2/3/4/5/6/7/C

SFR Definition 11.6. PSW: Program Status Word

Bit        7    6                    5    4                  3           2                1      0

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

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

Reset      0    0                    0    0                  0           0                0      0

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

Bit    Name                                         Function

7      CY       Carry Flag.

                This bit is set when the last arithmetic operation resulted in a carry (addition) or a bor-

                row (subtraction). It is cleared to logic 0 by all other arithmetic operations.

6      AC       Auxiliary Carry Flag.

                This bit is set when the last arithmetic operation resulted in a carry into (addition) or a

                borrow from (subtraction) the high order nibble. It is cleared to logic 0 by all other arith-

                metic operations.

5      F0       User Flag 0.

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

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

                These bits select which register bank is used during register accesses.

                00: Bank 0, Addresses 0x00-0x07

                01: Bank 1, Addresses 0x08-0x0F

                10: Bank 2, Addresses 0x10-0x17

                11: Bank 3, Addresses 0x18-0x1F

2      OV       Overflow Flag.

                This bit is set to 1 under the following circumstances:

                An ADD, ADDC, or SUBB instruction causes a sign-change overflow.

                A MUL instruction results in an overflow (result is greater than 255).

                A DIV instruction causes a divide-by-zero condition.

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

                other cases.

1      F1       User Flag 1.

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

0      PARITY   Parity Flag.

                This bit is set to logic 1 if the sum of the eight bits in the accumulator is odd and cleared

                if the sum is even.

                                          Rev. 1.4                                                             87
C8051F380/1/2/3/4/5/6/7/C

12.      Prefetch Engine

The    C8051F380/1/2/3/4/5/6/7/C  family  of  devices  incorporate  a   2-byte  prefetch        engine.  Because  the

access time of the Flash memory is 40 ns, and the minimum instruction time is roughly 20 ns, the prefetch

engine is necessary for full-speed code execution. Instructions are read from Flash memory two bytes at a

time by the prefetch engine and given to the CIP-51 processor core to execute. When running linear code

(code without any jumps or branches), the prefetch engine allows instructions to be executed at full speed.

When a code branch occurs, the processor may be stalled for up to two clock cycles while the next set of

code bytes is retrieved from Flash memory. It is recommended that the prefetch be used for optimal code

execution timing.

Note:    The prefetch engine can be disabled when the device is in suspend mode to save power.

SFR Definition 12.1. PFE0CN: Prefetch Engine Control

    Bit  7         6                 5              4            3              2               1        0

Name                                 PFEN                                                                FLBWE

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

Reset    0         0                 1              0            0              0               0        0

SFR    Address =  0xAF; SFR Page = All Pages

Bit      Name                                                 Function

7:6      Unused    Read = 00b, Write = don’t care.

    5    PFEN      Prefetch Enable.

                   This bit enables the prefetch engine.

                   0: Prefetch engine is disabled.

                   1: Prefetch engine is enabled.

4:1      Unused    Read = 0000b. Write = don’t care.

    0    FLBWE     Flash Block Write Enable.

                   This bit allows block writes to Flash memory from software.

                   0: Each byte of a software Flash write is written individually.

                   1: Flash bytes are written in groups of two.

88                                                  Rev. 1.4
                                               C8051F380/1/2/3/4/5/6/7/C

13.  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 CIP-51 memory organization is

shown in Figure 13.1 and Figure 13.2.

     PROGRAM/DATA MEMORY                                 DATA MEMORY (RAM)

        (FLASH)                                INTERNAL DATA               ADDRESS SPACE

0xFFFF  RESERVED                       0xFF    Upper 128 RAM               Special Function

0xFC00                                         (Indirect Addressing        Register's

0xFBFF                                 0x80    Only)                       (Direct Addressing Only)

                                       0x7F

                                               (Direct and Indirect

                                               Addressing)                 Lower 128 RAM

        FLASH                          0x30                                (Direct and Indirect

        (In-System                     0x2F    Bit Addressable             Addressing)

        Programmable in 512            0x20

        Byte Sectors)                  0x1F    General Purpose

                                       0x00    Registers

0x0000                                         EXTERNAL DATA ADDRESS SPACE

                                       0xFFFF

                                               Off-Chip XRAM

                                               (Available only on devices

                                               with EMIF)

                                       0x1000

                                       0x0FFF

                                               XRAM - 4096 Bytes           USB FIFOs                 0x07FF

                                               (Accessable using MOVX      1024 Bytes                0x0400

                                               instruction)

                                       0x0000

        Figure 13.1. On-Chip Memory            Map for 64 kB Devices (C8051F380/1/4/5)

                                               Rev. 1.4                                                   89
C8051F380/1/2/3/4/5/6/7/C

    PROGRAM/DATA MEMORY                        DATA MEMORY (RAM)

        (FLASH)                      INTERNAL DATA               ADDRESS SPACE

0x7FFF                       0xFF    Upper 128 RAM               Special Function

                                     (Indirect Addressing        Register's

        FLASH                0x80    Only)                       (Direct Addressing Only)

        (In-System           0x7F

        Programmable in 512          (Direct and Indirect

        Byte Sectors)                Addressing)                 Lower 128 RAM

                             0x30                                (Direct and Indirect

                             0x2F    Bit Addressable             Addressing)

0x0000                       0x20

                             0x1F    General Purpose

                             0x00    Registers

                                     EXTERNAL DATA ADDRESS SPACE

                             0xFFFF

                                     Off-Chip XRAM

                                     (Available only on devices

                                     with EMIF)

                             0x0800

                             0x07FF                              USB FIFOs                 0x07FF

                                     XRAM - 2048 Bytes           1024 Bytes                0x0400

                                     (Accessable using MOVX

                                     instruction)

                             0x0000

        Figure 13.2. On-Chip Memory  Map for 32 kB Devices       (C8051F382/3/6/7)

90                                   Rev. 1.4
                                     C8051F380/1/2/3/4/5/6/7/C

       PROGRAM/DATA MEMORY                     DATA MEMORY (RAM)

        (FLASH)                      INTERNAL DATA                         ADDRESS SPACE

0x3FFF                       0xFF    Upper 128 RAM                         Special Function

                                     (Indirect Addressing                  Register's

        FLASH                0x80    Only)                                 (Direct Addressing Only)

                             0x7F

        (In-System                   (Direct and Indirect

        Programmable in 512          Addressing)                           Lower 128 RAM

        Byte Sectors)        0x30                                          (Direct and Indirect

                             0x2F    Bit Addressable                       Addressing)

0x0000                       0x20

                             0x1F    General Purpose

                             0x00    Registers

                                     EXTERNAL DATA ADDRESS SPACE

                             0xFFFF

                                     Off-Chip XRAM

                                     (Available only on devices

                                     with EMIF)

                             0x0800

                             0x07FF                                        USB FIFOs                 0x07FF

                                     XRAM - 2048 Bytes                     1024 Bytes                0x0400

                                     (Accessable using MOVX

                                     instruction)

                             0x0000

        Figure 13.3. On-Chip Memory Map for 16 kB Devices (C8051F38C)

13.1.  Program Memory

The CIP-51 core has a 64k-byte program memory space. The C8051F380/1/2/3/4/5/6/7/C implements

64 kB, 32 kB, or 16 kB of this program memory space as in-system, re-programmable Flash memory. Note

that on the C8051F380/1/4/5 (64 kB version), addresses above 0xFBFF are reserved.

Program memory is normally assumed to be read-only. However, the CIP-51 can write to program memory

by setting the Program Store Write Enable bit (PSCTL.0) and using the MOVX instruction. This feature pro-

vides a mechanism for the CIP-51 to update program code and use the program memory space for non-

volatile data storage. Refer to Section “18. Flash Memory” on page 135 for further details.

13.2.  Data Memory

The CIP-51 includes 256 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.

                                     Rev. 1.4                                                              91
C8051F380/1/2/3/4/5/6/7/C

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 13.1 illustrates the data memory organization of the CIP-51.

13.3.   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 11.6). This allows

fast context switching when entering subroutines and interrupt service routines. Indirect addressing modes

use registers R0 and R1 as index registers.

13.4.   Bit Addressable Locations

In addition to direct access to data memory organized as bytes, the sixteen data memory locations at 0x20

through 0x2F are also 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,  22h.3

moves the Boolean value at 0x13 (bit 3 of the byte at location 0x22) into the Carry flag.

13.5.   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, 0x81) SFR. The SP will point to the last location used. The next value

pushed on the stack is placed at SP+1 and then SP is incremented. A reset initializes the stack pointer to

location 0x07. Therefore, the first value pushed on the stack is placed at location 0x08, which is also the

first register (R0) of register bank 1. Thus, if more than one register bank is to be used, the SP should be

initialized to a location in the data memory not being used for data storage. The stack depth can extend up

to 256 bytes.

92                                           Rev. 1.4
                                                 C8051F380/1/2/3/4/5/6/7/C

14.    External Data Memory Interface and On-Chip XRAM

4 kB (C8051F380/1/4/5) or 2 kB (C8051F382/3/6/7/C) of RAM are included on-chip, and mapped into the

external data memory space (XRAM). The 1 kB of USB FIFO space can also be mapped into XRAM

address space for additional general-purpose data storage. Additionally, an External Memory Interface

(EMIF) is available on the C8051F380/2/4/6 devices, which can be used to access off-chip data memories

and memory-mapped devices connected to the GPIO ports. The external memory space may be accessed

using the external move instruction (MOVX) and the data pointer (DPTR), or using the MOVX indirect

addressing mode using R0 or R1. If the MOVX instruction is used with an 8-bit address operand (such as

@R1), then the high byte of the 16-bit address is provided by the External Memory Interface Control Reg-

ister (EMI0CN, shown in SFR Definition 14.1). Note: the MOVX instruction can also be used for writing to

the FLASH memory. See Section “18. Flash Memory” on page 135 for details. The MOVX instruction

accesses XRAM by default.

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

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

14.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.4                                                   93
C8051F380/1/2/3/4/5/6/7/C

14.2.  Accessing USB FIFO Space

The C8051F380/1/2/3/4/5/6/7/C include 1k of RAM which functions as USB FIFO space. Figure 14.1

shows an expanded view of the FIFO space and user XRAM. FIFO space is normally accessed via USB

FIFO registers; see Section “21.5. FIFO Management” on page 181 for more information on accessing

these FIFOs. The MOVX instruction should not be used to load or modify USB data in the FIFO space.

Unused areas of the USB FIFO space may be used as general purpose XRAM if necessary. The FIFO

block operates on the USB clock domain; thus the USB clock must be active when accessing FIFO space.

Note that the number of SYSCLK cycles required by the MOVX instruction is increased when accessing

USB FIFO space.

To access the FIFO RAM directly using MOVX instructions, the following conditions must be met: (1) the

USBFAE bit in register EMI0CF must be set to 1, and (2) the USB clock must be greater than or equal to

twice the SYSCLK (USBCLK > 2 x SYSCLK). When this bit is set, the USB FIFO space is mapped into

XRAM space at addresses 0x0400 to 0x07FF. The normal XRAM (on-chip or external) at the same

addresses cannot be accessed when the USBFAE bit is set to 1.

Important Note: The USB clock must be active when accessing FIFO space.

                      0xFFFF

                              On/Off-Chip XRAM

                      0x0800

                      0x07FF

                              Endpoint0

                              (64 bytes)

                      0x07C0

                      0x07BF

                              Endpoint1

                      0x0740  (128 bytes)

                      0x073F

                              Endpoint2

                              (256 bytes)

                      0x0640                         USB FIFO Space

                      0x063F                                   (USB Clock Domain)

                              Endpoint3

                              (512 bytes)

                      0x0440

                      0x043F

                              Free

                              (64 bytes)

                      0x0400

                      0x03FF

                              On/Off-Chip XRAM

                      0x0000

       Figure  14.1.  USB FIFO Space and XRAM   Memory Map with USBFAE             set  to  ‘1’

94                                         Rev. 1.4
                                                   C8051F380/1/2/3/4/5/6/7/C

14.3.  Configuring the External Memory Interface

Configuring the External Memory Interface consists of five steps:

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

    most common), 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 Multiplexed mode or Non-multiplexed mode.

4.  Select the memory mode (on-chip only, split mode without bank select, split mode with bank select, or

    off-chip only).

5.  Set up timing to interface with off-chip memory or peripherals.

Each of these five steps is explained in detail in the following sections. The Port selection, Multiplexed

mode selection, and Mode bits are located in the EMI0CF register shown in SFR Definition 14.5.

14.4.  Port Configuration

The External Memory Interface appears on Ports 4, 3, 2, and 1 when it is used for off-chip memory access.

When the EMIF is used, the Crossbar should be configured to skip over the control lines P1.7 (WR), P1.6

(RD), and if multiplexed mode is selected P1.3 (ALE) using the P1SKIP register. For more information

about  configuring   the  Crossbar,  see  Section  “Figure 20.1.   Port  I/O  Functional  Block  Diagram     (Port  0

through Port 3)” on page 153.

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 “20. Port Input/Out-

put” on page 153 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.

                                                   Rev. 1.4                                                         95
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 14.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 = All Pages

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

                      ory 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

96                                            Rev. 1.4
                                                      C8051F380/1/2/3/4/5/6/7/C

SFR Definition 14.2. EMI0CF: External Memory Interface Configuration

Bit    7              6                5             4  3                 2         1                   0

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

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

Reset  0              0                0             0  0                 0         1                   1

SFR  Address = 0x85;  SFR Page = All Pages

Bit    Name                                             Function

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

6      USBFAE         USB FIFO Access Enable.

                      0: USB FIFO RAM not available through MOVX instructions.

                      1: USB FIFO RAM available using MOVX instructions. The 1k of USB RAM will be

                      mapped in XRAM space at addresses 0x0400 to 0x07FF. The USB clock must be

                      active and greater than or equal to twice the SYSCLK (USBCLK > 2 x

                      SYSCLK) to access this area with MOVX instructions.

5      Unused         Read = 0b; Write = don’t care.

4      EMD2           EMIF Multiplex Mode Select.

                      0: EMIF operates in multiplexed address/data mode.

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

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

                      These bits control the operating mode of the External Memory Interface.

                      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 on-chip XRAM boundary

                      are directed on-chip. Accesses above the on-chip XRAM boundary are directed

                      off-chip. 8-bit off-chip MOVX operations use the current contents of the Address

                      High port latches to resolve upper address byte. Note that in order to access

                      off-chip space, EMI0CN must be set to a page that is not contained in the on-chip

                      address space.

                      10: Split Mode with Bank Select: Accesses below the on-chip XRAM boundary are

                      directed on-chip. Accesses above the on-chip XRAM boundary are directed

                      off-chip. 8-bit off-chip MOVX operations use 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 visi-

                      ble to the CPU.

1:0    EALE[1:0]      ALE Pulse-Width Select Bits (only has 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.4                                                       97
C8051F380/1/2/3/4/5/6/7/C

14.5.  Multiplexed and Non-multiplexed Selection

The External Memory Interface is capable of acting in a Multiplexed mode or a Non-multiplexed mode,

depending on the state of the EMD2 (EMI0CF.4) bit.

14.5.1. Multiplexed Configuration

In Multiplexed mode, the Data Bus and the lower 8-bits of the Address Bus share the same Port pins:

AD[7:0]. In this mode, an external latch (74HC373 or equivalent logic gate) is used to hold the lower 8-bits

of the RAM address. The external latch is controlled by the ALE (Address Latch Enable) signal, which is

driven by the External Memory Interface logic. An example of a Multiplexed Configuration is shown in

Figure 14.2.

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 “14.7.2. Multiplexed Mode” on page 107 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                           64K X 8

    I                                                  (Optional)                     SRAM

    F                                               8

                                                                              I/O[7:0]

                                                                              CE

              WR                                                              WE

              RD                                                              OE

                       Figure 14.2. Multiplexed Configuration Example

14.5.2. Non-multiplexed Configuration

In Non-multiplexed mode, the Data Bus and the Address Bus pins are not shared. An example of a

Non-multiplexed Configuration is shown in Figure 14.3. See Section “14.7.1. Non-multiplexed Mode” on

page 104 for more information about Non-multiplexed operation.

98                                     Rev. 1.4
                   C8051F380/1/2/3/4/5/6/7/C

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

M                               VDD

                   (Optional)                              64K X 8

I                               8                          SRAM

   D[7:0]          DATA BUS                       I/O[7:0]

F                                                 CE

   WR                                             WE

   RD                                             OE

   Figure   14.3.  Non-multiplexed Configuration  Example

                   Rev. 1.4                                         99
C8051F380/1/2/3/4/5/6/7/C

14.6.  Memory Mode Selection

The external data memory space can be configured in one of four modes, shown in Figure 14.4, based on

the EMIF Mode bits in the EMI0CF register (SFR Definition 14.5). These modes are summarized below.

More information about the different modes can be found in Section “14.7. Timing” on page 102.

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 14.4. EMIF Operating Modes

14.6.1. Internal XRAM Only

When 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 2k or 4k boundaries (depending

on the RAM available on the device). As an example, the addresses 0x1000 and 0x2000 both evaluate to

address 0x0000 in on-chip XRAM space.

    8-bit MOVX operations use the contents of EMI0CN to determine the high-byte of the effective address

     and R0 or R1 to determine the low-byte of the effective address.

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

14.6.2. Split Mode without Bank Select

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

100                                           Rev. 1.4
                                              C8051F380/1/2/3/4/5/6/7/C

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

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

                                              Rev. 1.4                                                         101
C8051F380/1/2/3/4/5/6/7/C

14.7.  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 14.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 14.1 lists the AC parameters for the External

Memory Interface, and Figure 14.5 through Figure 14.10 show the timing diagrams for the different Exter-

nal Memory Interface modes and MOVX operations.

102                                                 Rev. 1.4
                                            C8051F380/1/2/3/4/5/6/7/C

SFR Definition 14.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 = 0x84;  SFR Page = All Pages

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.4                                      103
C8051F380/1/2/3/4/5/6/7/C

14.7.1. Non-multiplexed Mode

14.7.1.1.  16-bit MOVX: EMI0CF[4:2] = 101, 110, or 111

                                    Nonmuxed 16-bit WRITE

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

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

DATA[7:0]      P4                      EMIF WRITE DATA                  P4

                                    TWDS                         TWDH

                              TACS                      TACW     TACH

           WR  P1.7                                                     P1.7

           RD  P1.6                                                     P1.6

                                    Nonmuxed 16-bit READ

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

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

DATA[7:0]      P4                                       EMIF READ DATA  P4

                                                        TRDS  TRDH

                              TACS                      TACW     TACH

           RD  P1.6                                                     P1.6

           WR  P1.7                                                     P1.7

                   Figure 14.5. Non-Multiplexed 16-bit MOVX Timing

104                                    Rev. 1.4
                                               C8051F380/1/2/3/4/5/6/7/C

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

                                      Nonmuxed 8-bit WRITE without Bank Select

ADDR[15:8]                                                P2

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

DATA[7:0]         P4                           EMIF WRITE DATA                   P4

                                            TWDS                           TWDH

                                      TACS               TACW              TACH

           WR     P1.7                                                           P1.7

           RD     P1.6                                                           P1.6

                                      Nonmuxed 8-bit READ without Bank Select

ADDR[15:8]                                                P2

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

DATA[7:0]         P4                                        EMIF READ DATA       P4

                                                            T RDS       TRDH

                                      TACS               TACW              TACH

           RD     P1.6                                                           P1.6

           WR     P1.7                                                           P1.7

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

                                               Rev. 1.4                                105
C8051F380/1/2/3/4/5/6/7/C

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

                                               Muxed 8-bit WRITE with Bank Select

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

     AD[7:0]         P4    EMIF ADDRESS (8 LSBs) from               EMIF WRITE         DATA            P4

                                  R0 or R1

                           TALEH            TALEL

     ALE             P1.3                                                                              P1.3

                                                                 TWDS                            TWDH

                                                       TACS            T          ACW            TACH

     WR              P1.7                                                                              P1.7

     RD              P1.6                                                                              P1.6

                                               Muxed 8-bit READ with Bank Select

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

     AD[7:0]         P4    EMIF ADDRESS (8 LSBs) from                              EMIF READ  DATA     P4

                                  R0 or R1

                           TALEH            TALEL                                  T          T

                                                                                    RDS        RDH

     ALE             P1.3                                                                              P1.3

                                                       TACS            TACW                      TACH

     RD              P1.6                                                                              P1.6

     WR              P1.7                                                                              P1.7

              Figure 14.7. Non-multiplexed 8-bit MOVX with Bank Select Timing

106                                                    Rev. 1.4
                                                       C8051F380/1/2/3/4/5/6/7/C

14.7.2. Multiplexed Mode

14.7.2.1.   16-bit MOVX: EMI0CF[4:2] = 001, 010, or 011

                                                       Muxed 16-bit WRITE

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

AD[7:0]     P4            EMIF ADDRESS (8  LSBs) from            EMIF      WRITE  DATA         P4

                                 DPL

                          TALEH            TALEL

ALE         P1.3                                                                               P1.3

                                                                 TWDS                    TWDH

                                                         TACS              TACW          TACH

WR          P1.7                                                                               P1.7

RD          P1.6                                                                               P1.6

                                                       Muxed 16-bit READ

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

AD[7:0]     P4            EMIF ADDRESS (8 LSBs) from                          EMIF READ  DATA  P4

                                 DPL

                          TALEH            TALEL                                TRDS     TRDH

ALE         P1.3                                                                               P1.3

                                                         TACS              TACW          TACH

RD          P1.6                                                                               P1.6

WR          P1.7                                                                               P1.7

                          Figure 14.8. Multiplexed 16-bit MOVX Timing

                                                       Rev. 1.4                                      107
C8051F380/1/2/3/4/5/6/7/C

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

                                            Muxed 8-bit WRITE Without Bank    Select

ADDR[15:8]                                                       P3

     AD[7:0]  P4          EMIF ADDRESS (8 LSBs) from                    EMIF  WRITE   DATA                P4

                                 R0 or R1

                          TALEH             TALEL

     ALE      P1.3                                                                                        P1.3

                                                                     T  WDS                         TWDH

                                                          TACS                TACW                  TACH

     WR       P1.7                                                                                        P1.7

     RD       P1.6                                                                                        P1.6

                                             Muxed 8-bit  READ Without  Bank  Select

ADDR[15:8]                                                       P3

     AD[7:0]  P4          EMIF ADDRESS  (8 LSBs) from                         EMIF         READ  DATA     P4

                                 R0 or  R1

                          TALEH             TALEL                             T                  T

                                                                                      RDS         RDH

     ALE      P1.3                                                                                        P1.3

                                                          TACS                TACW                  TACH

     RD       P1.6                                                                                        P1.6

     WR       P1.7                                                                                        P1.7

              Figure 14.9. Multiplexed 8-bit MOVX without Bank Select Timing

108                                                    Rev. 1.4
                                                    C8051F380/1/2/3/4/5/6/7/C

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

                                            Muxed 8-bit WRITE with Bank Select

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

AD[7:0]     P4          EMIF ADDRESS (8 LSBs) from               EMIF WRITE         DATA         P4

                               R0 or R1

                        TALEH            TALEL

ALE         P1.3                                                                                 P1.3

                                                              TWDS                         TWDH

                                                    TACS            T          ACW         TACH

WR          P1.7                                                                                 P1.7

RD          P1.6                                                                                 P1.6

                                            Muxed 8-bit READ with Bank Select

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

AD[7:0]     P4          EMIF ADDRESS (8 LSBs) from                              EMIF READ  DATA  P4

                               R0 or R1

                        TALEH            TALEL                                  TRDS       TRDH

ALE         P1.3                                                                                 P1.3

                                                    TACS            T          ACW         TACH

RD          P1.6                                                                                 P1.6

WR          P1.7                                                                                 P1.7

            Figure 14.10. Multiplexed 8-bit MOVX with Bank Select Timing

                                                    Rev. 1.4                                           109
C8051F380/1/2/3/4/5/6/7/C

Table 14.1. AC Parameters for External Memory Interface

Parameter                  Description                                          Min*     Max*          Units

       TACS                Address/Control Setup Time                           0        3 x TSYSCLK   ns

       TACW                Address/Control Pulse Width               1  x       TSYSCLK  16 x TSYSCLK  ns

       TACH                Address/Control Hold Time                            0        3 x TSYSCLK   ns

       TALEH               Address Latch Enable High Time            1  x       TSYSCLK  4 x TSYSCLK   ns

       TALEL               Address Latch Enable Low Time             1  x       TSYSCLK  4 x TSYSCLK   ns

       TWDS                Write Data Setup Time                     1  x       TSYSCLK  19 x TSYSCLK  ns

       TWDH                Write Data Hold Time                                 0        3 x TSYSCLK   ns

       TRDS                Read Data Setup Time                                 20                     ns

       TRDH                Read Data Hold Time                                  0                      ns

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

110                                     Rev. 1.4
                                                           C8051F380/1/2/3/4/5/6/7/C

15.     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 C8051F380/1/2/3/4/5/6/7/C'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

C8051F380/1/2/3/4/5/6/7/C. This allows the addition of new functionality while retaining compatibility with

the MCS-51™ instruction set. Table 15.1 lists the SFRs implemented in the C8051F380/1/2/3/4/5/6/7/C

device family.

The SFR registers are accessed anytime the direct addressing mode is used to access memory locations

from 0x80 to 0xFF. SFRs with addresses ending in 0x0 or 0x8 (e.g. P0, TCON, SCON0, IE, etc.) are bit-

addressable     as  well  as  byte-addressable.       All  other     SFRs     are  byte-addressable     only.  Unoccupied

addresses in the SFR space are reserved for future use. Accessing these areas will have an indeterminate

effect   and  should  be  avoided.    Refer  to  the  corresponding        pages   of  the  data  sheet,  as   indicated  in

Table 15.2, for a detailed description of each register.

15.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 C8051F380/1/2/3/4/5/6/7/C devices utilize two SFR pages: 0x0,

and 0xF. Most SFRs are available on both pages. SFR pages are selected using the Special Function Reg-

ister Page Selection register, SFRPAGE. 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).

Important Note: When reading or writing SFRs that are not available on all pages within an ISR, it is rec-

ommended to save the state of the SFRPAGE register on ISR entry, and restore state on exit.

SFR Definition 15.1. SFRPAGE: SFR Page

    Bit         7             6              5             4               3           2             1             0

    Name                                                   SFRPAGE[7:0]

    Type                                                          R/W

    Reset       0             0              0             0               0           0             0             0

SFR   Address = 0xBF; 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.

                                                           Rev. 1.4                                                       111
C8051F380/1/2/3/4/5/6/7/C

Table 15.1. Special Function Register (SFR) Memory Map

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

F8              SPI0CN  PCA0L     PCA0H     PCA0CPL0  PCA0CPH0  PCA0CPL4                          PCA0CPH4  VDM0CN

F0              B       P0MDIN    P1MDIN    P2MDIN    P3MDIN    P4MDIN                            EIP1      EIP2

E8              ADC0CN  PCA0CPL1  PCA0CPH1  PCA0CPL2  PCA0CPH2  PCA0CPL3                          PCA0CPH3  RSTSRC

E0           0  ACC     XBR0      XBR1      XBR2      IT01CF    SMOD1                             EIE1      EIE2

             F                                        CKCON1

D8              PCA0CN  PCA0MD    PCA0CPM0  PCA0CPM1  PCA0CPM2  PCA0CPM3                          PCA0CPM4  P3SKIP

D0              PSW     REF0CN    SCON1     SBUF1     P0SKIP    P1SKIP                            P2SKIP    USB0XCN

C8           0  TMR2CN  REG01CN   TMR2RLL   TMR2RLH   TMR2L                                TMR2H  SMB0ADM   SMB0ADR

             F  TMR5CN            TMR5RLL   TMR5RLH   TMR5L                                TMR5H  SMB1ADM   SMB1ADR

C0           0  SMB0CN  SMB0CF    SMB0DAT   ADC0GTL   ADC0GTH   ADC0LTL                           ADC0LTH   P4

             F  SMB1CN  SMB1CF    SMB1DAT

B8           0  IP      CLKMUL    AMX0N     AMX0P     ADC0CF                               ADC0L  ADC0H     SFRPAGE

             F          SMBTC

B0              P3      OSCXCN    OSCICN    OSCICL    SBRLL1    SBRLH1                            FLSCL     FLKEY

A8              IE      CLKSEL    EMI0CN              SBCON1                                      P4MDOUT   PFE0CN

A0              P2      SPI0CFG   SPI0CKR   SPI0DAT   P0MDOUT   P1MDOUT                           P2MDOUT   P3MDOUT

98              SCON0   SBUF0     CPT1CN    CPT0CN    CPT1MD    CPT0MD                            CPT1MX    CPT0MX

90           0  P1      TMR3CN    TMR3RLL   TMR3RLH   TMR3L                                TMR3H  USB0ADR   USB0DAT

             F          TMR4CN    TMR4RLL   TMR4RLH   TMR4L                                TMR4H

88              TCON    TMOD      TL0       TL1       TH0                                  TH1    CKCON     PSCTL

80              P0      SP        DPL       DPH       EMI0TC    EMI0CF                            OSCLCN    PCON

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

Notes:

         1.     SFR Addresses ending in 0x0 or 0x8 are bit-addressable locations and can be used with bitwise instructions.

         2.     Unless indicated otherwise, SFRs are available on both page 0 and page F.

112                                         Rev. 1.4
                                                C8051F380/1/2/3/4/5/6/7/C

Table 15.2. Special Function Registers

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

   Register  Address  Page                              Description              Page

ACC          0xE0     All Pages  Accumulator                                     86

ADC0CF       0xBC     All Pages  ADC0 Configuration                              53

ADC0CN       0xE8     All Pages  ADC0 Control                                    55

ADC0GTH      0xC4     All Pages  ADC0 Greater-Than Compare High                  56

ADC0GTL      0xC3     All Pages  ADC0 Greater-Than Compare Low                   56

ADC0H        0xBE     All Pages  ADC0 High                                       54

ADC0L        0xBD     All Pages  ADC0 Low                                        54

ADC0LTH      0xC6     All Pages  ADC0 Less-Than Compare Word High                57

ADC0LTL      0xC5     All Pages  ADC0 Less-Than Compare Word Low                 57

AMX0N        0xBA     All Pages  AMUX0 Negative Channel Select                   61

AMX0P        0xBB     All Pages  AMUX0 Positive Channel Select                   60

B            0xF0     All Pages  B Register                                      86

CKCON        0x8E     All Pages  Clock Control                                   264

CKCON1       0xE4     F          Clock Control 1                                 265

CLKMUL       0xB9     0          Clock Multiplier                                147

CLKSEL       0xA9     All Pages  Clock Select                                    144

CPT0CN       0x9B     All Pages  Comparator0 Control                             67

CPT0MD       0x9D     All Pages  Comparator0 Mode Selection                      68

CPT0MX       0x9F     All Pages  Comparator0 MUX Selection                       72

CPT1CN       0x9A     All Pages  Comparator1 Control                             69

CPT1MD       0x9C     All Pages  Comparator1 Mode Selection                      70

CPT1MX       0x9E     All Pages  Comparator1 MUX Selection                       73

DPH          0x83     All Pages  Data Pointer High                               85

DPL          0x82     All Pages  Data Pointer Low                                85

EIE1         0xE6     All Pages  Extended Interrupt Enable 1                     123

EIE2         0xE7     All Pages  Extended Interrupt Enable 2                     125

EIP1         0xF6     All Pages  Extended Interrupt Priority 1                   124

EIP2         0xF7     All Pages  Extended Interrupt Priority 2                   126

EMI0CF       0x85     All Pages  External Memory Interface Configuration         97

EMI0CN       0xAA     All Pages  External Memory Interface Control               96

EMI0TC       0x84     All Pages  External Memory Interface Timing                103

FLKEY        0xB7     All Pages  Flash Lock and Key                              140

FLSCL        0xB6     All Pages  Flash Scale                                     141

                                              Rev. 1.4                               113
C8051F380/1/2/3/4/5/6/7/C

Table 15.2. Special Function Registers  (Continued)

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

Register  Address  Page                              Description                 Page

IE        0xA8     All Pages  Interrupt Enable                                   121

IP        0xB8     All Pages  Interrupt Priority                                 122

IT01CF    0xE4     0          INT0/INT1 Configuration                            128

OSCICL    0xB3     All Pages  Internal Oscillator Calibration                    145

OSCICN    0xB2     All Pages  Internal Oscillator Control                        146

OSCLCN    0x86     All Pages  Internal Low-Frequency Oscillator Control          148

OSCXCN    0xB1     All Pages  External Oscillator Control                        152

P0        0x80     All Pages  Port 0 Latch                                       162

P0MDIN    0xF1     All Pages  Port 0 Input Mode Configuration                    162

P0MDOUT   0xA4     All Pages  Port 0 Output Mode Configuration                   163

P0SKIP    0xD4     All Pages  Port 0 Skip                                        163

P1        0x90     All Pages  Port 1 Latch                                       164

P1MDIN    0xF2     All Pages  Port 1 Input Mode Configuration                    164

P1MDOUT   0xA5     All Pages  Port 1 Output Mode Configuration                   165

P1SKIP    0xD5     All Pages  Port 1 Skip                                        165

P2        0xA0     All Pages  Port 2 Latch                                       166

P2MDIN    0xF3     All Pages  Port 2 Input Mode Configuration                    166

P2MDOUT   0xA6     All Pages  Port 2 Output Mode Configuration                   167

P2SKIP    0xD6     All Pages  Port 2 Skip                                        167

P3        0xB0     All Pages  Port 3 Latch                                       168

P3MDIN    0xF4     All Pages  Port 3 Input Mode Configuration                    168

P3MDOUT   0xA7     All Pages  Port 3 Output Mode Configuration                   169

P3SKIP    0xDF     All Pages  Port 3Skip                                         169

P4        0xC7     All Pages  Port 4 Latch                                       170

P4MDIN    0xF5     All Pages  Port 4 Input Mode Configuration                    170

P4MDOUT   0xAE     All Pages  Port 4 Output Mode Configuration                   171

PCA0CN    0xD8     All Pages  PCA Control                                        311

PCA0CPH0  0xFC     All Pages  PCA Capture 0 High                                 315

PCA0CPH1  0xEA     All Pages  PCA Capture 1 High                                 315

PCA0CPH2  0xEC     All Pages  PCA Capture 2 High                                 315

PCA0CPH3  0xEE     All Pages  PCA Capture 3High                                  315

PCA0CPH4  0xFE     All Pages  PCA Capture 4 High                                 315

PCA0CPL0  0xFB     All Pages  PCA Capture 0 Low                                  315

PCA0CPL1  0xE9     All Pages  PCA Capture 1 Low                                  315

114                                        Rev. 1.4
                                           C8051F380/1/2/3/4/5/6/7/C

Table 15.2. Special Function Registers  (Continued)

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

Register  Address  Page                              Description                 Page

PCA0CPL2  0xEB     All Pages  PCA Capture 2 Low                                  315

PCA0CPL3  0xED     All Pages  PCA Capture 3 Low                                  315

PCA0CPL4  0xFD     All Pages  PCA Capture 4 Low                                  315

PCA0CPM0  0xDA     All Pages  PCA Module 0 Mode Register                         313

PCA0CPM1  0xDB     All Pages  PCA Module 1 Mode Register                         313

PCA0CPM2  0xDC     All Pages  PCA Module 2 Mode Register                         313

PCA0CPM3  0xDD     All Pages  PCA Module 3 Mode Register                         313

PCA0CPM4  0xDE     All Pages  PCA Module 4 Mode Register                         313

PCA0H     0xFA     All Pages  PCA Counter High                                   314

PCA0L     0xF9     All Pages  PCA Counter Low                                    314

PCA0MD    0xD9     All Pages  PCA Mode                                           312

PCON      0x87     All Pages  Power Control                                      78

PFE0CN    0xAF     All Pages  Prefetch Engine Control                            88

PSCTL     0x8F     All Pages  Program Store R/W Control                          139

PSW       0xD0     All Pages  Program Status Word                                87

REF0CN    0xD1     All Pages  Voltage Reference Control                          63

REG01CN   0xC9     All Pages  Voltage Regulator 0 and 1 Control                  75

RSTSRC    0xEF     All Pages  Reset Source Configuration/Status                  134

SBCON1    0xAC     All Pages  UART1 Baud Rate Generator Control                  248

SBRLH1    0xB5     All Pages  UART1 Baud Rate Generator High                     248

SBRLL1    0xB4     All Pages  UART1 Baud Rate Generator Low                      249

SBUF0     0x99     All Pages  UART0 Data Buffer                                  238

SBUF1     0xD3     All Pages  UART1 Data Buffer                                  247

SCON0     0x98     All Pages  UART0 Control                                      237

SCON1     0xD2     All Pages  UART1 Control                                      245

SFRPAGE   0xBF     All Pages  SFR Page Select                                    111

SMB0ADM   0xCE     0          SMBus0 Address Mask                                219

SMB0ADR   0xCF     0          SMBus0 Address                                     218

SMB0CF    0xC1     0          SMBus0 Configuration                               211

SMB0CN    0xC0     0          SMBus0 Control                                     215

SMB0DAT   0xC2     0          SMBus0 Data                                        221

SMB1ADM   0xCE     F          SMBus1 Address Mask                                220

SMB1ADR   0xCF     F          SMBus1 Address                                     219

SMB1CF    0xC1     F          SMBus1 Configuration                               211

                                        Rev. 1.4                                     115
C8051F380/1/2/3/4/5/6/7/C

Table 15.2. Special Function Registers  (Continued)

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

Register  Address  Page                               Description                Page

SMB1CN    0xC0     F          SMBus1 Control                                     216

SMB1DAT   0xC2     F          SMBus1 Data                                        222

SMBTC     0xB9     F          SMBus0/1 Timing Control                            213

SMOD1     0xE5     All Pages  UART1 Mode                                         246

SP        0x81     All Pages  Stack Pointer                                      86

SPI0CFG   0xA1     All Pages  SPI Configuration                                  257

SPI0CKR   0xA2     All Pages  SPI Clock Rate Control                             259

SPI0CN    0xF8     All Pages  SPI Control                                        258

SPI0DAT   0xA3     All Pages  SPI Data                                           259

TCON      0x88     All Pages  Timer/Counter Control                              270

TH0       0x8C     All Pages  Timer/Counter 0 High                               273

TH1       0x8D     All Pages  Timer/Counter 1 High                               273

TL0       0x8A     All Pages  Timer/Counter 0 Low                                272

TL1       0x8B     All Pages  Timer/Counter 1 Low                                272

TMOD      0x89     All Pages  Timer/Counter Mode                                 271

TMR2CN    0xC8     0          Timer/Counter 2 Control                            278

TMR2H     0xCD     0          Timer/Counter 2 High                               280

TMR2L     0xCC     0          Timer/Counter 2 Low                                279

TMR2RLH   0xCB     0          Timer/Counter 2 Reload High                        279

TMR2RLL   0xCA     0          Timer/Counter 2 Reload Low                         279

TMR3CN    0x91     0          Timer/Counter 3 Control                            285

TMR3H     0x95     0          Timer/Counter 3 High                               287

TMR3L     0x94     0          Timer/Counter 3 Low                                286

TMR3RLH   0x93     0          Timer/Counter 3 Reload High                        286

TMR3RLL   0x92     0          Timer/Counter 3 Reload Low                         286

TMR4CN    0x91     F          Timer/Counter 4 Control                            290

TMR4H     0x95     F          Timer/Counter 4 High                               292

TMR4L     0x94     F          Timer/Counter 4 Low                                291

TMR4RLH   0x93     F          Timer/Counter 4 Reload High                        291

TMR4RLL   0x92     F          Timer/Counter 4 Reload Low                         291

TMR5CN    0xC8     F          Timer/Counter 5 Control                            295

TMR5H     0xCD     F          Timer/Counter 5 High                               297

TMR5L     0xCC     F          Timer/Counter 5 Low                                296

TMR5RLH   0xCB     F          Timer/Counter 5 Reload High                        296

116                                        Rev. 1.4
                                        C8051F380/1/2/3/4/5/6/7/C

Table 15.2. Special Function Registers  (Continued)

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

Register  Address  Page                              Description                 Page

TMR5RLL   0xCA     F          Timer/Counter 5 Reload Low                         296

USB0ADR   0x96     All Pages  USB0 Indirect Address Register                     176

USB0DAT   0x97     All Pages  USB0 Data Register                                 177

USB0XCN   0xD7     All Pages  USB0 Transceiver Control                           174

VDM0CN    0xFF     All Pages  VDD Monitor Control                                132

XBR0      0xE1     All Pages  Port I/O Crossbar Control 0                        159

XBR1      0xE2     All Pages  Port I/O Crossbar Control 1                        160

XBR2      0xE3     All Pages  Port I/O Crossbar Control 2                        161

                                        Rev. 1.4                                 117
C8051F380/1/2/3/4/5/6/7/C

16.      Interrupts

The C8051F380/1/2/3/4/5/6/7/C include an extended interrupt system supporting multiple interrupt sources

with two priority levels. The allocation of interrupt sources between on-chip peripherals and external inputs

pins varies according to the specific version of the device. Each interrupt source has one or more associ-

ated interrupt-pending flag(s) located in an SFR. When a peripheral or external source meets a valid inter-

rupt 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 instruc-

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

118                                                      Rev. 1.4
                                                      C8051F380/1/2/3/4/5/6/7/C

16.1.  MCU Interrupt Sources and Vectors

The C8051F380/1/2/3/4/5/6/7/C MCUs support several interrupt sources. Software can simulate an inter-

rupt by setting any interrupt-pending flag to logic 1. If interrupts are enabled for the flag, an interrupt

request will be generated and the CPU will vector to the ISR address associated with the interrupt-pending

flag. MCU interrupt sources, associated vector addresses, priority order and control bits are summarized in

Table 16.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).

16.1.1. Interrupt Priorities

Each interrupt source can be individually programmed to one of two priority levels: low or high. A low prior-

ity interrupt service routine can be preempted by a high priority interrupt. A high priority interrupt cannot be

preempted. Each interrupt has an associated interrupt priority bit in an SFR (IP, 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 16.1.

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

system clock cycles: 1 clock cycle to detect the interrupt and 5 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

20 system clock cycles: 1 clock cycle to detect the interrupt, 6 clock cycles to execute the RETI, 8 clock

cycles to complete the DIV instruction and 5 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.

Note that the CPU is stalled during Flash write operations and USB FIFO MOVX accesses. Interrupt ser-

vice latency will be increased for interrupts occurring while the CPU is stalled. The latency for these situa-

tions will be determined by the standard interrupt service procedure (as described above) and the amount

of time the CPU is stalled.

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

                                                      Rev. 1.4                                                         119
C8051F380/1/2/3/4/5/6/7/C

                                  Table 16.1. Interrupt Summary

Interrupt Source       Interrupt  Priority       Pending Flag         Address?  Cleared  by HW?  Enable      Priority

                       Vector     Order                          Bit                             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)

USB0                   0x0043     8         Special              N              N                EUSB0       PUSB0

                                                                                                 (EIE1.1)    (EIP1.1)

ADC0 Window Com-       0x004B     9         AD0WINT              Y              N                EWADC0      PWADC0

pare                                        (ADC0CN.3)                                           (EIE1.2)    (EIP1.2)

ADC0 Conversion        0x0053     10        AD0INT (ADC0CN.5)    Y              N                EADC0       PADC0

Complete                                                                                         (EIE1.3)    (EIP1.3)

Programmable           0x005B     11        CF (PCA0CN.7)        Y              N                EPCA0       PPCA0

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

Comparator0            0x0063     12        CP0FIF (CPT0CN.4)    N              N                ECP0        PCP0

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

Comparator1            0x006B     13        CP1FIF (CPT1CN.4)    N              N                ECP1        PCP1

                                            CP1RIF (CPT1CN.5)                                    (EIE1.6)    (EIP1.6)

Timer 3 Overflow       0x0073     14        TF3H (TMR3CN.7)      N              N                ET3         PT3

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

VBUS Level             0x007B     15        N/A                  N/A            N/A              EVBUS       PVBUS

                                                                                                 (EIE2.0)    (EIP2.0)

UART1                  0x0083     16        RI1 (SCON1.0)        N              N                ES1         PS1

                                            TI1 (SCON1.1)                                        (EIE2.1)    (EIP2.1)

Reserved               0x008B     17        N/A                  N/A            N/A              N/A         N/A

SMB1                   0x0093     18        SI (SMB1CN.0)        Y              N                ESMB1       PSMB1

                                                                                                 (EIE2.3)    (EIP2.3)

Timer 4 Overflow       0x009B     19        TF4H (TMR4CN.7)      N              N                ET4         PT4

                                            TF4L (TMR4CN.6)                                      (EIE2.4)    (E!P2.4)

Timer 5 Overflow       0x00A3     20        TF5H (TMR5CN.7)      Y              N                ET5         PT5

                                            TF5L (TMR5CN.6)                                      (EIE2.5)    (E!P2.5)

120                                         Rev. 1.4
                                                   C8051F380/1/2/3/4/5/6/7/C

SFR Definition 16.1. IE: Interrupt Enable

Bit         7   6      5                           4         3             2                 1        0

Name   EA       ESPI0  ET2                         ES0       ET1           EX1               ET0      EX0

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

Reset       0   0      0                           0         0             0                 0        0

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

Bit    Name                                                  Function

7      EA       Enable All Interrupts.

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

                0: Disable all interrupt sources.

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

6      ESPI0    Enable Serial Peripheral Interface (SPI0) Interrupt.

                This bit sets the masking of the SPI0 interrupts.

                0: Disable all SPI0 interrupts.

                1: Enable interrupt requests generated by SPI0.

5      ET2      Enable Timer 2 Interrupt.

                This bit sets the masking of the Timer 2 interrupt.

                0: Disable Timer 2 interrupt.

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

4      ES0      Enable UART0 Interrupt.

                This bit sets the masking of the UART0 interrupt.

                0: Disable UART0 interrupt.

                1: Enable UART0 interrupt.

3      ET1      Enable Timer 1 Interrupt.

                This bit sets the masking of the Timer 1 interrupt.

                0: Disable all Timer 1 interrupt.

                1: Enable interrupt requests generated by the TF1 flag.

2      EX1      Enable External Interrupt 1.

                This bit sets the masking of External Interrupt 1.

                0: Disable external interrupt 1.

                1: Enable interrupt requests generated by the INT1 input.

1      ET0      Enable Timer 0 Interrupt.

                This bit sets the masking of the Timer 0 interrupt.

                0: Disable all Timer 0 interrupt.

                1: Enable interrupt requests generated by the TF0 flag.

0      EX0      Enable External Interrupt 0.

                This bit sets the masking of External Interrupt 0.

                0: Disable external interrupt 0.

                1: Enable interrupt requests generated by the INT0 input.

                                                   Rev. 1.4                                                121
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 16.2. IP: Interrupt Priority

Bit    7        6      5                        4                    3             2  1    0

Name            PSPI0  PT2                      PS0                PT1  PX1           PT0  PX0

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

Reset  1        0      0                        0                    0             0  0    0

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

Bit    Name                                                   Function

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

6      PSPI0    Serial Peripheral Interface (SPI0) Interrupt Priority Control.

                This bit sets the priority of the SPI0 interrupt.

                0: SPI0 interrupt set to low priority level.

                1: SPI0 interrupt set to high priority level.

5      PT2      Timer 2 Interrupt Priority Control.

                This bit sets the priority of the Timer 2 interrupt.

                0: Timer 2 interrupt set to low priority level.

                1: Timer 2 interrupt set to high priority level.

4      PS0      UART0 Interrupt Priority Control.

                This bit sets the priority of the UART0 interrupt.

                0: UART0 interrupt set to low priority level.

                1: UART0 interrupt set to high priority level.

3      PT1      Timer 1 Interrupt Priority Control.

                This bit sets the priority of the Timer 1 interrupt.

                0: Timer 1 interrupt set to low priority level.

                1: Timer 1 interrupt set to high priority level.

2      PX1      External Interrupt 1 Priority Control.

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

                0: External Interrupt 1 set to low priority level.

                1: External Interrupt 1 set to high priority level.

1      PT0      Timer 0 Interrupt Priority Control.

                This bit sets the priority of the Timer 0 interrupt.

                0: Timer 0 interrupt set to low priority level.

                1: Timer 0 interrupt set to high priority level.

0      PX0      External Interrupt 0 Priority Control.

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

                0: External Interrupt 0 set to low priority level.

                1: External Interrupt 0 set to high priority level.

122                                             Rev. 1.4
                                                C8051F380/1/2/3/4/5/6/7/C

SFR Definition 16.3. EIE1: Extended Interrupt Enable 1

Bit    7       6     5                          4               3          2          1   0

Name   ET3     ECP1  ECP0                       EPCA0     EADC0     EWADC0        EUSB0   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      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.

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

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

4      EPCA0   Enable Programmable Counter Array (PCA0) Interrupt.

               This bit sets the masking of the PCA0 interrupts.

               0: Disable all PCA0 interrupts.

               1: Enable interrupt requests generated by PCA0.

3      EADC0   Enable ADC0 Conversion Complete Interrupt.

               This bit sets the masking of the ADC0 Conversion Complete interrupt.

               0: Disable ADC0 Conversion Complete interrupt.

               1: Enable interrupt requests generated by the AD0INT flag.

2      EWADC0  Enable Window Comparison ADC0 Interrupt.

               This bit sets the masking of ADC0 Window Comparison interrupt.

               0: Disable ADC0 Window Comparison interrupt.

               1: Enable interrupt requests generated by ADC0 Window Compare flag         (AD0WINT).

1      EUSB0   Enable USB (USB0) Interrupt.

               This bit sets the masking of the USB0 interrupt.

               0: Disable all USB0 interrupts.

               1: Enable interrupt requests generated by USB0.

0      ESMB0   Enable SMBus0 Interrupt.

               This bit sets the masking of the SMB0 interrupt.

               0: Disable all SMB0 interrupts.

               1: Enable interrupt requests generated by SMB0.

                                                Rev. 1.4                                              123
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 16.4. EIP1: Extended Interrupt Priority 1

Bit    7       6     5                     4                      3      2            1      0

Name   PT3     PCP1  PCP0                  PPCA0              PADC0      PWADC0       PUSB0  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 = All Pages

Bit    Name                                                  Function

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

6      PCP1    Comparator1 (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.

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

4      PPCA0   Programmable Counter Array (PCA0) Interrupt Priority Control.

               This bit sets the priority of the PCA0 interrupt.

               0: PCA0 interrupt set to low priority level.

               1: PCA0 interrupt set to high priority level.

3      PADC0   ADC0 Conversion Complete Interrupt Priority Control.

               This bit sets the priority of the ADC0 Conversion Complete interrupt.

               0: ADC0 Conversion Complete interrupt set to low priority level.

               1: ADC0 Conversion Complete interrupt set to high priority level.

2      PWADC0  ADC0 Window Comparator Interrupt Priority Control.

               This bit sets the priority of the ADC0 Window interrupt.

               0: ADC0 Window interrupt set to low priority level.

               1: ADC0 Window interrupt set to high priority level.

1      PUSB0   USB (USB0) Interrupt Priority Control.

               This bit sets the priority of the USB0 interrupt.

               0: USB0 interrupt set to low priority level.

               1: USB0 interrupt set to high priority level.

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

124                                        Rev. 1.4
                                                  C8051F380/1/2/3/4/5/6/7/C

SFR Definition 16.5. EIE2: Extended Interrupt Enable 2

Bit    7         6               5                4         3           2               1    0

Name                             ET5              ET4       ESMB1                       ES1  EVBUS

Type   R         R               R/W              R/W       R/W         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:6    Unused    Read = 00b, Write = Don't Care.

5      ET5       Enable Timer 5 Interrupt.

                 This bit sets the masking of the Timer 5 interrupt.

                 0: Disable Timer 5 interrupts.

                 1: Enable interrupt requests generated by the TF5L or  TF5H    flags.

4      ET4       Enable Timer 4 Interrupt.

                 This bit sets the masking of the Timer 4 interrupt.

                 0: Disable Timer 4interrupts.

                 1: Enable interrupt requests generated by the TF4L or  TF4H    flags.

3      ESMB1     Enable SMBus1 Interrupt.

                 This bit sets the masking of the SMB1 interrupt.

                 0: Disable all SMB1 interrupts.

                 1: Enable interrupt requests generated by SMB1.

2      Reserved  Must Write 0b.

1      ES1       Enable UART1 Interrupt.

                 This bit sets the masking of the UART1 interrupt.

                 0: Disable UART1 interrupt.

                 1: Enable UART1 interrupt.

0      EVBUS     Enable VBUS Level Interrupt.

                 This bit sets the masking of the VBUS interrupt.

                 0: Disable all VBUS interrupts.

                 1: Enable interrupt requests generated by VBUS level   sense.

                                                  Rev. 1.4                                        125
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 16.6. EIP2: Extended Interrupt Priority                   2

Bit    7         6               5                4                 3       2    1    0

Name                             PT5       PT4                    PSMB1          PS1  PVBUS

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

Reset  0         0               0                0                 0       0    0    0

SFR  Address = 0xF7; SFR Page = All Pages

Bit    Name                                                 Function

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

5      PT5       Timer 5 Interrupt Priority Control.

                 This bit sets the priority of the Timer 5 interrupt.

                 0: Timer 5 interrupt set to low priority level.

                 1: Timer 5 interrupt set to high priority level.

4      PT4       Timer 4 Interrupt Priority Control.

                 This bit sets the priority of the Timer 4 interrupt.

                 0: Timer 4 interrupt set to low priority level.

                 1: Timer 4 interrupt set to high priority level.

3      PSMB1     SMBus1 Interrupt Priority Control.

                 This bit sets the priority of the SMB1 interrupt.

                 0: SMB1 interrupt set to low priority level.

                 1: SMB1 interrupt set to high priority level.

2      Reserved  Must Write 0b.

1      PS1       UART1 Interrupt Priority Control.

                 This bit sets the priority of the UART1 interrupt.

                 0: UART1 interrupt set to low priority level.

                 1: UART1 interrupt set to high priority level.

0      PVBUS     VBUS Level Interrupt Priority Control.

                 This bit sets the priority of the VBUS interrupt.

                 0: VBUS interrupt set to low priority level.

                 1: VBUS interrupt set to high priority level.

126                                               Rev. 1.4
                                                 C8051F380/1/2/3/4/5/6/7/C

16.3.  INT0 and INT1 External Interrupt Sources

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 “26.1. Timer 0 and Timer 1” on page 266) 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 16.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 PnSKIP (see Section “20.1. Priority Crossbar

Decoder” on page 154 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.4                                                       127
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 16.7. IT01CF: INT0/INT1 ConfigurationO

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                                     1

SFR  Address = 0xE4; SFR Page = 0

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

                   001: Select P0.1

                   010: Select P0.2

                   011: Select P0.3

                   100: Select P0.4

                   101: Select P0.5

                   110: Select P0.6

                   111: Select P0.7

3      IN0PL       INT0 Polarity.

                   0: INT0 input is active low.

                   1: INT0 input is active high.

2:0    IN0SL[2:0]  INT0 Port Pin Selection Bits.

                   These bits select which Port pin is assigned to INT0. Note that this pin assignment is

                   independent of the Crossbar; INT0 will monitor the assigned Port pin without disturb-

                   ing the peripheral that has been assigned the Port pin via the Crossbar. The Crossbar

                   will not assign the Port pin to a peripheral if it is configured to skip the selected pin.

                   000: Select P0.0

                   001: Select P0.1

                   010: Select P0.2

                   011: Select P0.3

                   100: Select P0.4

                   101: Select P0.5

                   110: Select P0.6

                   111: Select P0.7

128                                               Rev. 1.4
                                                                          C8051F380/1/2/3/4/5/6/7/C

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

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

                                        shot)            WDT                                    (Software  Reset)

                                                 EN

                                                                                                SWRSF

                                                                  EN                                               Errant Flash

       Low                              MC D     Enable  WD T     Enable                                           Operation

       Frequency

       Oscillator

       Internal         System

       Oscillator       Clock                            CIP-51

       External                                  Microcontroller          System Reset

XTAL1  Oscillator

XTAL2  Drive            Clock Select                     Core

                                                     Extended Interrupt

                                                         Handler

                                        Figure 17.1. Reset Sources

                                                                  Rev. 1.4                                                                           129
C8051F380/1/2/3/4/5/6/7/C

17.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 17.2. plots the

power-on and VDD monitor event timing. The maximum VDD ramp time is 1 ms; slower ramp times may

cause the device to be released from reset before VDD reaches the VRST level. For ramp times less than

1 ms, the power-on reset delay (TPORDelay) is typically less than 0.3 ms.

On exit from a power-on or VDD monitor 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 con-

tent of internal data memory should be assumed to be undefined after a power-on reset. The VDD monitor

is enabled following a power-on reset.

       Supply Voltage                                                                    VDD

                            VRST

                            VDD

                                                                                                            t

Logic HIGH             RST

Logic LOW                                  TPORDelay

                                                                           VDD

                                    Power-On                               Monitor

                                    Reset                                  Reset

                            Figure  17.2. Power-On and  VDD  Monitor       Reset Timing

130                                           Rev.      1.4
                                                     C8051F380/1/2/3/4/5/6/7/C

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

Important Note: If the VDD monitor is being turned on from a disabled state, it should be enabled before it

is selected as a reset source. Selecting the VDD monitor as a reset source before it is enabled and stabi-

lized may cause a system reset. In some applications, this reset may be undesirable. If this is not desirable

in the application, a delay should be introduced between enabling the monitor and selecting it as a reset

source. The procedure for enabling the VDD monitor and configuring it as a reset source from a disabled

state is shown below:

1.  Enable the VDD monitor (VDMEN bit in VDM0CN = 1).

2.  If necessary, wait for the VDD monitor to stabilize (see Table 5.4 for the VDD Monitor turn-on time).

3.  Select the VDD monitor as a reset source (PORSF bit in RSTSRC = 1).

See Figure 17.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.

                                                     Rev. 1.4                                                  131
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 17.1. VDM0CN: VDD Monitor Control

Bit    7               6                  5     4          3                   2  1                       0

Name   VDMEN          VDDSTAT

Type   R/W             R                  R     R          R                   R  R                       R

Reset  Varies         Varies       Varies       Varies     Varies       Varies    Varies          Varies

SFR  Address = 0xFF;  SFR Page = All Pages

Bit    Name                                                Function

7      VDMEN          VDD Monitor Enable.

                      This bit turns the VDD monitor circuit on/off. The VDD Monitor cannot generate sys-
                      tem resets until it is also selected as a reset source in register RSTSRC (SFR Defi-

                      nition 17.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:0    Unused         Read = 000000b; Write = Don’t care.

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

17.4.  Missing Clock Detector Reset

The Missing Clock Detector (MCD) is a one-shot circuit that is triggered by the system clock. If the system

clock remains high or low for more than the MCD time-out, a reset will be generated. 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.

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

132                                             Rev. 1.4
                                                      C8051F380/1/2/3/4/5/6/7/C

17.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  “27.4. Watchdog  Timer  Mode”  on

page 308; 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.

17.7.    Flash Error Reset

If a Flash program read, write, or erase operation targets an illegal address, a system reset is generated.

This may occur due to any of the following:

   Programming hardware attempts to write or erase a Flash location which is above the user code space

    address limit.

   A Flash read from firmware is attempted above user code space. This occurs when a MOVC operation

    is attempted above the user code space address limit.

   A Program read is attempted above user code space. This occurs when user code attempts to branch

    to an address above the user code space address limit.

   A Flash read, write, or erase attempt is restricted due to a Flash security setting.

   A Flash write or erase is attempted when the VDD monitor is not enabled.

The FERROR bit (RSTSRC.6) is set following a Flash error reset. The state of the RST pin is unaffected by

this reset.

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

17.9.    USB Reset

Writing 1 to the USBRSF bit in register RSTSRC selects USB0 as a reset source. With USB0 selected as

a reset source, a system reset will be generated when either of the following occur:

1.  RESET signaling is detected on the USB network. The USB Function Controller (USB0) must be

    enabled for RESET signaling to be detected. See Section “21. Universal Serial Bus Controller (USB0)”

    on page 172 for information on the USB Function Controller.

2.  A falling or rising voltage on the VBUS pin.

The USBRSF bit will read 1 following a USB reset. The state of the RST pin is unaffected by this reset.

                                                      Rev. 1.4                                               133
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 17.2. RSTSRC: Reset Source

Bit    7              6          5          4                    3       2                1              0

Name   USBRSF  FERROR         C0RSEF      SWRSF                  WDTRSF  MCDRSF  PORSF              PINRSF

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

Reset  Varies  Varies          Varies       Varies               Varies  Varies          Varies     Varies

SFR Address = 0xEF; SFR Page = All Pages

Bit    Name              Description                             Write                        Read

7      USBRSF  USB Reset Flag               Writing a 1 enables USB              Set to 1 if USB caused the

                                            as a reset source.                   last reset.

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
                                            source.                              occurs.
               Reset Enable.

                                            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

134                                         Rev. 1.4
                                               C8051F380/1/2/3/4/5/6/7/C

18.    Flash Memory

On-chip, re-programmable Flash memory is included for program code and non-volatile data storage. The

Flash memory can be programmed in-system through the C2 interface or by software using the MOVX

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

ically timed by hardware for proper execution; data polling to determine the end of the write/erase opera-

tion is not required. Code execution is stalled during a Flash write/erase operation.

18.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 “28. C2 Interface” on

page 316.

To ensure the integrity of Flash contents, it is strongly recommended that the VDD monitor be left enabled

in any system which writes or erases Flash memory from code. It is also crucial to ensure that the FLRT bit

in register FLSCL be set to '1' if a clock speed higher than 25 MHz is being used for the device.

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

18.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: (1) Writing the Flash key codes in sequence to the Flash Lock

register (FLKEY); and (2) Setting the PSWE Program Store Write Enable bit (PSCTL.0) to logic 1 (this

directs the MOVX writes to target Flash memory). 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 must 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.  Write the first key code to FLKEY: 0xA5.

3.  Write the second key code to FLKEY: 0xF1.

4.  Set the PSEE bit (register PSCTL).

5.  Set the PSWE bit (register PSCTL).

6.  Using the MOVX instruction, write a data byte to any location within the 512-byte page to be erased.

7.  Clear the PSWE bit (register PSCTL).

8.  Clear the PSEE bit (register PSCTI).

                                               Rev. 1.4                                                        135
C8051F380/1/2/3/4/5/6/7/C

18.1.3. Flash Write Procedure

Bytes in Flash memory can be written one byte at a time, or in groups of two. The FLBWE bit in register

PFE0CN (SFR Definition ) controls whether a single byte or a block of two bytes is written to Flash during

a write operation. When FLBWE is cleared to 0, the Flash will be written one byte at a time. When FLBWE

is set to 1, the Flash will be written in two-byte blocks. Block writes are performed in the same amount of

time as single-byte writes, which can save time when storing large amounts of data to Flash mem-

ory.During a single-byte write to Flash, bytes are written individually, and a Flash write will be performed

after each MOVX write instruction. The recommended procedure for writing Flash in single bytes is:

1.   Disable interrupts.

2.   Clear the FLBWE bit (register PFE0CN) to select single-byte write mode.

3.   Set the PSWE bit (register PSCTL).

4.   Clear the PSEE bit (register PSCTL).

5.   Write the first key code to FLKEY: 0xA5.

6.   Write the second key code to FLKEY: 0xF1.

7.   Using the MOVX instruction, write a single data byte to the desired location  within  the  512-byte  sector.

8.   Clear the PSWE bit.

9.   Re-enable interrupts.

Steps 5-7 must be repeated for each byte to be written.

For block Flash writes, the Flash write procedure is only performed after the last byte of each block is writ-

ten with the MOVX write instruction. A Flash write block is two bytes long, from even addresses to odd

addresses. Writes must be performed sequentially (i.e. addresses ending in 0b and 1b must be written in

order). The Flash write will be performed following the MOVX write that targets the address ending in 1b. If

a byte in the block does not need to be updated in Flash, it should be written to 0xFF. The recommended

procedure for writing Flash in blocks is:

1.   Disable interrupts.

2.   Set the FLBWE bit (register PFE0CN) to select block write mode.

3.   Set the PSWE bit (register PSCTL).

4.   Clear the PSEE bit (register PSCTL).

5.   Write the first key code to FLKEY: 0xA5.

6.   Write the second key code to FLKEY: 0xF1.

7.   Using the MOVX instruction, write the first data byte to the even block location (ending in 0b).

8.   Write the first key code to FLKEY: 0xA5.

9.   Write the second key code to FLKEY: 0xF1.

10.Using the MOVX instruction, write the second data byte to the odd block location (ending in 1b).

11. Clear the PSWE bit.

12.Re-enable interrupts.

Steps 5–10 must be repeated for each block to be written.

136                                             Rev. 1.4
                                                           C8051F380/1/2/3/4/5/6/7/C

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

18.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 1s complement number represented by the Security Lock Byte. Note that the page

containing the Flash Security Lock Byte is also locked when any other Flash pages are locked. See exam-

ple below.

Security Lock Byte:      11111101b

1s Complement:           00000010b

Flash pages locked:      3 (2 + Flash Lock Byte Page)

Addresses locked:        First two pages of Flash: 0x0000 to 0x03FF

                         Flash Lock Byte Page: (0xFA00 to 0xFBFF for 64k devices; 0x7E00 to

                         0x7FFF for 32k devices, 0x3E00 to 0x3FFF for 16k devices)

                       C8051F380/2/4/6

                                                                  Locked when any

                       Reserved                                   other FLASH pages

                                             0xFC00                  are locked

                       Lock Byte             0xFBFF

                                             0xFBFE

                                             0xFA00               C8051F381/3/5/7

FLASH memory                                                      Lock Byte          0x7FFF  C8051F38C

organized in 512-byte                                                                0x7FFE  Lock Byte             0x3FFF

       pages           Unlocked FLASH Pages                                          0x7E00

                                                                                                                   0x3FFE

                                                           Unlocked FLASH Pages                                    0x3E00

                                                                                             Unlocked FLASH Pages

                                             0x0000                                  0x0000                        0x0000

                                             Access limit set

                                             according to the

                                             FLASH security lock

                                                     byte

                       Figure 18.1. Flash Program Memory Map and Security Byte

The level of FLASH security depends on the FLASH access method. The three FLASH access methods

that can be restricted are reads, writes, and erases from the C2 debug interface, user firmware executing

on unlocked pages, and user firmware executing on locked pages.

                                                           Rev. 1.4                                                137
C8051F380/1/2/3/4/5/6/7/C

Accessing FLASH from the C2 debug interface:

1.   Any unlocked page may be read, written, or erased.

2.   Locked pages cannot be read, written, or erased.

3.   The page containing the Lock Byte may be read, written, or erased if it is unlocked.

4.   Reading the contents of the Lock Byte is always permitted.

5.   Locking additional pages (changing 1s to 0s in the Lock Byte) is not permitted.

6.   Unlocking FLASH pages (changing 0s to 1s in the Lock Byte) requires the C2 Device Erase command,

     which erases all FLASH pages including the page containing the Lock Byte and the Lock Byte itself.

7.   The Reserved Area cannot be read, written, or erased.

Accessing FLASH from user firmware executing on an unlocked page:

1.   Any unlocked page except the page containing the Lock Byte may be read, written, or erased.

2.   Locked pages cannot be read, written, or erased.

3.   The page containing the Lock Byte cannot be erased. It may be read or written only if it is unlocked.

4.   Reading the contents of the Lock Byte is always permitted.

5.   Locking additional pages (changing 1s to 0s in the Lock Byte) is not permitted.

6.   Unlocking FLASH pages (changing 0s to 1s in the Lock Byte) is not permitted.

7.   The Reserved Area cannot be read, written, or erased. Any attempt to access the reserved area, or any

     other locked page, will result in a FLASH Error device reset.

Accessing FLASH from user firmware executing on a locked page:

1.   Any unlocked page except the page containing the Lock Byte may be read, written, or erased.

2.   Any locked page except the page containing the Lock Byte may be read, written, or erased.

3.   The page containing the Lock Byte cannot be erased. It may only be read or written.

4.   Reading the contents of the Lock Byte is always permitted.

5.   Locking additional pages (changing 1s to 0s in the Lock Byte) is not permitted.

6.   Unlocking FLASH pages (changing 0s to 1s in the Lock Byte) is not permitted.

7.   The Reserved Area cannot be read, written, or erased. Any attempt to access the reserved area, or any

     other locked page, will result in a FLASH Error device reset.

138                                           Rev. 1.4
                                              C8051F380/1/2/3/4/5/6/7/C

SFR Definition 18.1. PSCTL: Program Store R/W Control

Bit    7         6                    5       4               3   2  1                                 0

Name                                                                 PSEE                          PSWE

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

Reset  0         0                    0       0               0   0  0                                 0

SFR  Address =0x8F; SFR Page = All Pages

Bit    Name                                             Function

7:2    Reserved  Must write 000000b.

1      PSEE      Program Store Erase Enable.

                 Setting this bit (in combination with PSWE) allows an entire page of Flash program

                 memory to be erased. If this bit is logic 1 and Flash writes are enabled (PSWE is logic

                 1), a write to Flash memory using the MOVX instruction will erase the entire page that

                 contains the location addressed by the MOVX instruction. The value of the data byte

                 written does not matter.

                 0: Flash program memory erasure disabled.

                 1: Flash program memory erasure enabled.

0      PSWE      Program Store Write Enable.

                 Setting this bit allows writing a byte of data to the Flash program memory using the

                 MOVX write instruction. The Flash location should be erased before writing data.

                 0: Writes to Flash program memory disabled.

                 1: Writes to Flash program memory enabled; the MOVX write instruction targets Flash

                 memory.

                                              Rev. 1.4                                                      139
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 18.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.

140                                        Rev. 1.4
                                              C8051F380/1/2/3/4/5/6/7/C

SFR Definition 18.3. FLSCL: Flash Scale

Bit    7         6                  5         4         3         2            1                    0

Name   FOSE         Reserved                  FLRT                   Reserved

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

Reset  1         0                  0         0         0         0            0                    0

SFR Address = 0xB6; SFR Page = All Pages

Bit    Name                                             Function

7      FOSE      Flash One-shot Enable.

                 This bit enables the Flash read one-shot. When the Flash one-shot disabled, the

                 Flash sense amps are enabled for a full clock cycle during Flash reads. At system

                 clock frequencies below 10 MHz, disabling the Flash one-shot will increase system

                 power consumption.

                 0: Flash one-shot disabled.

                 1: Flash one-shot enabled.

6:5    Reserved  Must write 00b.

4      FLRT      FLASH Read Time.

                 This bit should be programmed to the smallest allowed value, according to the system

                 clock speed.

                 0: SYSCLK <= 25 MHz.

                 1: SYSCLK <= 48 MHz.

3:0    Reserved  Must write 0000b.

                                              Rev. 1.4                                                 141
C8051F380/1/2/3/4/5/6/7/C

19.  Oscillators and Clock Selection

C8051F380/1/2/3/4/5/6/7/C devices include a programmable internal high-frequency oscillator, a program-

mable internal low-frequency oscillator, and an external oscillator drive circuit. The internal high-frequency

oscillator can be enabled/disabled and calibrated using the OSCICN and OSCICL registers, as shown in

Figure 19.1.        The   internal  low-frequency              oscillator                            can             be            enabled/disabled                                                           and      calibrated                                  using   the

OSCLCN register. The system clock can be sourced by the external oscillator circuit or either internal oscil-

lator. Both internal oscillators offer a selectable post-scaling feature. The USB clock (USBCLK) can be

derived from the internal oscillators or external oscillator.

                                    OSCICL                                                  OSCICN                                                            OSCLCN                                                   CLKSEL

                                                                             IOSCEN  IFRDY  SUSPEND                  IFCN1  IFCN0           OSCLEN   OSCLRDY  OSCLF3  OSCLF2  OSCLF1  OSCLF0  OSCLD1  OSCLD0  USBCLK2  USBCLK1  USBCLK0    CLKSL2  CLKSL1  CLKSL0

     Option 2

     VDD                 Option 3                                                                                           OSCLEN                            OSCLF                           OSCLD

                          XTAL2     Programmable                             EN

                                    Internal 48 MHz                                                                         2                                 2                               1, 2, 4, 8

     XTAL2                                            Clock                                                                                                                                           (12 MHz)

                                    OSCLF                                    OSCLEN                                                                                                                   (24 MHz)

                                                               EN                                                                                                                                     (48 MHz)                                                     SYSCLK

                                    80 kHz Low                                                                              1, 2, 4, 8

                                    Frequency Oscillator

          Option 1                                                                                                   OSCLD

                           XTAL1

                    10M            Input                      OSC

                                    Circuit

                           XTAL2

                                                                                                                                                                      Internal HFO

               Option 4                                                                                                                                       Internal HFO / 8

                    XTAL2           XOSCMD2  XOSCMD1  XOSCMD0                                                MULRDY                MULSEL1  MULSEL0                                   EXOSC

                                                               XFCN2  XFCN1  XFCN0          MULEN    MULINT                                                                   EXOSC / 2                                                                            USBCLK

                                                                                                                                                                              EXOSC / 3

                                             OSCXCN                                                          CLKMUL

                                                                                                                                                                              EXOSC / 4

                                                                                                                                                                      Internal LFO

                                                                                                                                                                                                                                USBCLK2-0

                                    Figure 19.1. Oscillator Options

142                                                                                  Rev. 1.4
                                                     C8051F380/1/2/3/4/5/6/7/C

19.1.  System Clock Selection

The CLKSL[2:0] bits in register CLKSEL select which oscillator source is used as the system clock.

CLKSL[2:0] must be set to 001b for the system clock to run from the external oscillator; however the exter-

nal oscillator may still clock certain peripherals (timers, PCA) when the internal oscillator is selected as the

system clock. The system clock may be switched on-the-fly between the internal oscillators and external

oscillator so long as the selected clock source is enabled and running.

The internal high-frequency and low-frequency oscillators require little start-up time and may be selected

as the system clock immediately following the register write which enables the oscillator. The external RC

and C modes also typically require no startup time.

19.2.  USB Clock Selection

The USBCLK[2:0] bits in register CLKSEL select which oscillator source is used as the USB clock. The

USB clock may be derived from the internal oscillators, a divided version of the internal High-Frequency

oscillator, or a divided version of the external oscillator. Note that the USB clock must be 48 MHz when

operating USB0 as a Full Speed Function; the USB clock must be 6 MHz when operating USB0 as a Low

Speed Function. See SFR Definition 19.1 for USB clock selection options.

Some example USB clock configurations for Full and Low Speed mode are given below:

                               USB Full Speed (48 MHz)

                               Internal Oscillator

       Clock Signal            Input Source Selection                    Register Bit Settings

       USB Clock               Internal Oscillator*                      USBCLK = 000b

       Internal Oscillator     Divide by 1                               IFCN = 11b

                               External Oscillator

       Clock Signal            Input Source Selection                    Register Bit Settings

       USB Clock               External Oscillator                       USBCLK = 010b

       External Oscillator     CMOS Oscillator Mode                      XOSCMD = 010b

                               48 MHz Oscillator

       Note:  Clock Recovery must be enabled for this configuration.

                               USB Low Speed (6 MHz)

                               Internal Oscillator

       Clock Signal            Input Source Selection                    Register Bit Settings

       USB Clock               Internal Oscillator / 8                   USBCLK = 001b

       Internal Oscillator     Divide by 1                               IFCN = 11b

                               External Oscillator

       Clock Signal            Input Source Selection                    Register Bit Settings

       USB Clock               External Oscillator / 4                   USBCLK = 101b

       External Oscillator     CMOS Oscillator Mode                      XOSCMD = 010b

                               24 MHz Oscillator

                               Crystal Oscillator Mode                   XOSCMD = 110b

                               24 MHz Oscillator                         XFCN = 111b

                                                     Rev. 1.4                                                     143
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 19.1. CLKSEL: Clock Select

Bit    7           6               5              4       3             2            1             0

Name                          USBCLK[2:0]                 OUTCLK              CLKSL[2:0]

Type   R                           R/W                    R/W                        R/W

Reset  0           0               0              0       0             0            0             0

SFR  Address = 0xA9; SFR Page = All Pages

Bit    Name                                               Function

7      Unused      Read = 0b; Write = don’t care

6:4   USBCLK[2:0]  USB Clock Source Select Bits.

                   000: USBCLK derived from the Internal High-Frequency Oscillator.

                   001: USBCLK derived from the Internal High-Frequency Oscillator / 8.

                   010: USBCLK derived from the External Oscillator.

                   011: USBCLK derived from the External Oscillator/2.

                   100: USBCLK derived from the External Oscillator/3.

                   101: USBCLK derived from the External Oscillator/4.

                   110: USBCLK derived from the Internal Low-Frequency Oscillator.

                   111: Reserved.

3      OUTCLK      Crossbar Clock Out Select.

                   If the SYSCLK signal is enabled on the Crossbar, this bit selects between outputting

                   SYSCLK and SYSCLK synchronized with the Port I/O pins.

                   0: Enabling the Crossbar SYSCLK signal outputs SYSCLK.

                   1: Enabling the Crossbar SYSCLK signal outputs SYSCLK synchronized with the

                   Port I/O.

2:0    CLKSL[2:0]  System Clock Source Select Bits.

                   000: SYSCLK derived from the Internal High-Frequency Oscillator / 4 and scaled

                   per the IFCN bits in register OSCICN.

                   001: SYSCLK derived from the External Oscillator circuit.

                   010: SYSCLK derived from the Internal High-Frequency Oscillator / 2.

                   011: SYSCLK derived from the Internal High-Frequency Oscillator.

                   100: SYSCLK derived from the Internal Low-Frequency Oscillator and scaled per

                   the OSCLD bits in register OSCLCN.

                   101-111: Reserved.

144                                        Rev. 1.4
                                                        C8051F380/1/2/3/4/5/6/7/C

19.3.     Programmable Internal High-Frequency (H-F) Oscillator

All  C8051F380/1/2/3/4/5/6/7/C  devices  include     a  programmable   internal     high-frequency  oscillator   that

defaults as the system clock after a system reset. The internal oscillator period can be adjusted via the

OSCICL register as defined by SFR Definition 19.2.

On C8051F380/1/2/3/4/5/6/7/C devices, OSCICL is factory calibrated to obtain a 48 MHz base frequency.

Note that the system clock may be derived from the programmed internal oscillator divided by 1, 2, 4, or 8

after a divide by 4 stage, as defined by the IFCN bits in register OSCICN. The divide value defaults to 8 fol-

lowing a reset, which results in a 1.5 MHz system clock.

19.3.1. Internal Oscillator Suspend Mode

When software writes a logic 1 to SUSPEND (OSCICN.5), the internal oscillator is suspended. If the sys-

tem clock is derived from the internal oscillator, the input clock to the peripheral or CIP-51 will be stopped

until a non-idle USB event is detected or a rising or falling edge occurs on the VBUS signal. Note that the

USB transceiver can still detect USB events when it is disabled.

When one of the oscillator awakening events occur, the internal oscillator, CIP-51, and affected peripherals

resume normal operation. The CPU resumes execution at the instruction following the write to the SUS-

PEND bit.

Note: The prefetch engine can be turned off in suspend mode to save power. Additionally, both Voltage

Regulators (REG0 and REG1) have low-power modes for additional power savings in suspend mode.

SFR Definition 19.2. OSCICL: Internal H-F Oscillator Calibration

     Bit   7           6        5                    4            3              2  1                         0

Name                                                           OSCICL[6:0]

Type       R                                                      R/W

Reset      0           Varies   Varies            Varies       Varies       Varies  Varies          Varies

SFR Address = 0xB3; SFR Page = All Pages

Bit        Name                                                Function

7         Unused       Read = 0; Write = don’t care

6:0       OSCICL[6:0]  Internal Oscillator Calibration Bits.

                       These bits determine the internal oscillator period. When set to 0000000b, the H-F

                       oscillator operates at its fastest setting. When set to 1111111b, the H-F oscillator

                       operates at its slowest setting. The reset value is factory calibrated to generate an

                       internal oscillator frequency of 48 MHz. OSCICL should only be changed by firm-

                       ware when the H-F oscillator is disabled (IOSCEN = 0).

                                                     Rev. 1.4                                                    145
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 19.3. OSCICN: Internal H-F Oscillator Control

Bit    7          6               5        4               3      2                   1             0

Name   IOSCEN     IFRDY  SUSPEND                                                         IFCN[1:0]

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

Reset  1          1               0        0               0      0                   0             0

SFR  Address = 0xB2; SFR Page = All Pages

Bit    Name                                             Function

7      IOSCEN     Internal H-F Oscillator Enable Bit.

                  0: Internal H-F Oscillator Disabled.

                  1: Internal H-F Oscillator Enabled.

6      IFRDY      Internal H-F Oscillator Frequency Ready Flag.

                  0: Internal H-F Oscillator is not running at programmed frequency.

                  1: Internal H-F Oscillator is running at programmed frequency.

5      SUSPEND    Internal Oscillator Suspend Enable Bit.

                  Setting this bit to logic 1 places the internal oscillator in SUSPEND mode. The inter-

                  nal oscillator resumes operation when one of the SUSPEND mode awakening

                  events occurs.

4:2    Unused     Read = 000b; Write = don’t care

1:0    IFCN[1:0]  Internal H-F Oscillator Frequency Divider Control Bits.

                  The Internal H-F Oscillator is divided by the IFCN bit setting after a divide-by-4 stage.

                  00: SYSCLK can be derived from Internal H-F Oscillator divided by 8 (1.5 MHz).

                  01: SYSCLK can be derived from Internal H-F Oscillator divided by 4 (3 MHz).

                  10: SYSCLK can be derived from Internal H-F Oscillator divided by 2 (6 MHz).

                  11: SYSCLK can be derived from Internal H-F Oscillator divided by 1 (12 MHz).

146                                        Rev. 1.4
                                                  C8051F380/1/2/3/4/5/6/7/C

19.4.  Clock Multiplier

The C8051F380/1/2/3/4/5/6/7/C device includes a 48 MHz high-frequency oscillator instead of a 12 MHz

oscillator and a 4x Clock Multiplier, so the USB0 module can be run directly from the internal high-fre-

quency oscillator. For compatibility with C8051F34x and C8051F32x devices however, the CLKMUL regis-

ter (SFR Definition 19.4) behaves as if the Clock Multiplier is present and working.

SFR Definition 19.4. CLKMUL: Clock Multiplier Control

Bit    7            6             5               4       3            2              1     0

Name   MULEN        MULINIT  MULRDY                                                   MULSEL[1:0]

Type   R            R             R              R        R            R                 R

Reset  1            1             1               0       0            0              0     0

SFR Address = 0xB9; SFR Page = 0

Bit    Name                                               Description

7      MULEN        Clock Multiplier Enable Bit.

                    This bit always reads 1.

6      MULINIT      Clock Multiplier Initialize Bit.

                    This bit always reads 1.

5      MULRDY       Clock Multiplier Ready Bit.

                    This bit always reads 1.

4:2    Unused       Read = 000b; Write = don’t care

1:0    MULSEL[1:0]  Clock Multiplier Input Select Bits.

                    These bits always read 00.

                                                Rev. 1.4                                                  147
C8051F380/1/2/3/4/5/6/7/C

19.5.    Programmable Internal Low-Frequency (L-F) Oscillator

All C8051F380/1/2/3/4/5/6/7/C devices include a programmable low-frequency internal oscillator, which is

calibrated to a nominal frequency of 80 kHz. The low-frequency oscillator circuit includes a divider that can

be changed to divide the clock by 1, 2, 4, or 8, using the OSCLD bits in the OSCLCN register (see SFR

Definition 19.5). Additionally, the OSCLF[3:0] bits can be used to adjust the oscillator’s output frequency.

19.5.1. Calibrating the Internal L-F Oscillator

Timers 2 and 3 include capture functions that can be used to capture the oscillator frequency, when run-

ning from a known time base. When either Timer 2 or Timer 3 is configured for L-F Oscillator Capture

Mode, a falling edge (Timer 2) or rising edge (Timer 3) of the low-frequency oscillator’s output will cause a

capture  event  on   the  corresponding  timer.  As   a    capture     event  occurs,  the  current  timer    value

(TMRnH:TMRnL) is copied into the timer reload registers (TMRnRLH:TMRnRLL). By recording the differ-

ence between two successive timer capture values, the low-frequency oscillator’s period can be calcu-

lated. The OSCLF bits can then be adjusted to produce the desired oscillator frequency.

SFR Definition 19.5. OSCLCN: Internal L-F Oscillator Control

Bit      7                6   5                  4                  3         2             1                 0

Name     OSCLEN      OSCLRDY                         OSCLF[3:0]                             OSCLD[1:0]

Type     R/W              R                                R.W                                 R/W

Reset    0                0   Varies             Varies         Varies        Varies        0                 0

SFR  Address = 0x86; SFR Page = All Pages

Bit      Name                                              Function

7        OSCLEN      Internal L-F Oscillator Enable.

                     0: Internal L-F Oscillator Disabled.

                     1: Internal L-F Oscillator Enabled.

6        OSCLRDY     Internal L-F Oscillator Ready.

                     0: Internal L-F Oscillator frequency not stabilized.

                     1: Internal L-F Oscillator frequency stabilized.

                     Note:   OSCLRDY is only set back to 0 in the event of a device reset or a change to the

                             OSCLD[1:0] bits.

5:2      OSCLF[3:0]  Internal L-F Oscillator Frequency Control Bits.

                     Fine-tune control bits for the Internal L-F oscillator frequency. When set to 0000b, the

                     L-F oscillator operates at its fastest setting. When set to 1111b, the L-F oscillator

                     operates at its slowest setting. The OSCLF bits should only be changed by firmware

                     when the L-F oscillator is disabled (OSCLEN = 0).

1:0    OSCLD[1:0]    Internal L-F Oscillator Divider Select.

                     00: Divide by 8 selected.

                     01: Divide by 4 selected.

                     10: Divide by 2 selected.

                     11: Divide by 1 selected.

148                                              Rev. 1.4
                                                      C8051F380/1/2/3/4/5/6/7/C

19.6.   External Oscillator Drive Circuit

The external oscillator circuit may drive an external crystal, ceramic resonator, capacitor, or RC network. A

CMOS clock may also provide a clock input. Figure 19.1 shows a block diagram of the four external oscil-

lator options. The external oscillator is enabled and configured using the OSCXCN register (see SFR Defi-

nition 19.6).

Important Note on External Oscillator Usage: Port pins must be configured when using the external

oscillator circuit. When the external oscillator drive circuit is enabled in crystal/resonator mode, Port pins

P0.2 and P0.3 are used as XTAL1 and XTAL2, respectively. When the external oscillator drive circuit is

enabled in capacitor, RC, or CMOS clock mode, Port pin P0.3 is used as XTAL2. The Port I/O Crossbar

should be configured to skip the Port pin used by the oscillator circuit; see Section “20.1. Priority Crossbar

Decoder” on page 154 for Crossbar configuration. Additionally, when using the external oscillator circuit in

crystal/resonator, capacitor, or RC mode, the associated Port pins should be configured as analog inputs.

In CMOS clock mode, the associated pin should be configured as a digital input. See Section “20.2. Port

I/O Initialization” on page 158 for details on Port input mode selection.

The external oscillator output may be selected as the system clock or used to clock some of the digital

peripherals (e.g. Timers, PCA, etc.). See the data sheet chapters for each digital peripheral for details. See

Section “5. Electrical Characteristics” on page 37 for complete oscillator specifications.

19.6.1. External Crystal Mode

If a crystal or ceramic resonator is used as the external oscillator, the crystal/resonator and a 10 Mresis-

tor must be wired across the XTAL1 and XTAL2 pins as shown in Figure 19.1, “Crystal Mode”. Appropriate

loading capacitors should be added to XTAL1 and XTAL2, and both pins should be configured for analog

I/O with the digital output drivers disabled.

The capacitors shown in the external crystal configuration provide the load capacitance required by the

crystal for correct oscillation. These capacitors are “in series” as seen by the crystal and “in parallel” with

the stray capacitance of the XTAL1 and XTAL2 pins.

Note: The recommended load capacitance depends upon the crystal and the manufacturer. Refer to the

crystal data sheet when completing these calculations.

The equation for determining the load capacitance for two capacitors is

                                               CL  =  -CC----AA------+----C-C----BB--- + CS

Where:

CA and CB are the capacitors connected to the crystal leads.

CS is the total stray capacitance of the PCB.

The stray capacitance for a typical layout where the crystal is as close as possible to the pins is 2-5 pF per

pin.

If CA and CB are the same (C), then the equation becomes

                                                   CL = C-2-- + CS

For example, a tuning-fork crystal of 32 kHz with a recommended load capacitance of 12.5 pF should use

the configuration shown in Figure 19.1, Option 1. With a stray capacitance of 3 pF per pin (6 pF total), the

13 pF capacitors yield an equivalent capacitance of 12.5 pF across the crystal, as shown in Figure 19.2.

                                                      Rev. 1.4                                                   149
C8051F380/1/2/3/4/5/6/7/C

                           13  pF

                                                                     XTAL1

                           32 kHz                             10 M

                                                                     XTAL2

                           13 pF

                           Figure 19.2. External Crystal Example

Important Note on External Crystals: Crystal oscillator circuits are quite sensitive to PCB layout. The

crystal should be placed as close as possible to the XTAL pins on the device. The traces should be as

short as possible and shielded with ground plane from any other traces which could introduce noise or

interference.

When using an external crystal, the external oscillator drive circuit must be configured by software for Crys-

tal Oscillator Mode or Crystal Oscillator Mode with divide by 2 stage. The divide by 2 stage ensures that the

clock derived from the external oscillator has a duty cycle of 50%. The External Oscillator Frequency Con-

trol value (XFCN) must also be specified based on the crystal frequency (see SFR Definition 19.6).

When the crystal oscillator is first enabled, the external oscillator valid detector allows software to deter-

mine when the external system clock is valid and running. Switching to the external oscillator before the

crystal oscillator has stabilized can result in unpredictable behavior. The recommended procedure for start-

ing the crystal is:

1.   Configure XTAL1 and XTAL2 for analog I/O.

2.   Disable the XTAL1 and XTAL2 digital output drivers by writing 1s to the appropriate bits in the Port

     Latch register.

3.   Configure and enable the external oscillator.

4.   Wait at least 1 ms.

5.   Poll for XTLVLD > 1.

6.   Switch the system clock to the external oscillator.

150                                                 Rev. 1.4
                                                  C8051F380/1/2/3/4/5/6/7/C

19.6.2. External RC Example

If an RC network is used as an external oscillator source for the MCU, the circuit should be configured as

shown in Figure 19.1, “RC Mode”. The capacitor should be no greater than 100 pF; however, for very small

capacitors, the total capacitance may be dominated by parasitic capacitance in the PCB layout. To deter-

mine the required External Oscillator Frequency Control value (XFCN) in the OSCXCN Register, first

select the RC network value to produce the desired frequency of oscillation, according to Equation , where

f = the frequency of oscillation in MHz, C = the capacitor value in pF, and R = the pull-up resistor value in

k.

                                    f = 1.23  103 § R  C

                            Equation 19.1. RC Mode Oscillator Frequency

For example: If the frequency desired is 100 kHz, let R = 246 k and C = 50 pF:

f = 1.23( 103 ) / RC = 1.23 ( 103 ) / [ 246 x 50 ] = 0.1 MHz = 100 kHz

Referring to the table in SFR Definition 19.6, the required XFCN setting is 010b.

19.6.3. External Capacitor Example

If a capacitor is used as an external oscillator for the MCU, the circuit should be configured as shown in

Figure 19.1, “C Mode”. The capacitor should be no greater than 100 pF; however, for very small capaci-

tors, the total capacitance may be dominated by parasitic capacitance in the PCB layout. To determine the

required External Oscillator Frequency Control value (XFCN) in the OSCXCN Register, select the capaci-

tor to be used and find the frequency of oscillation according to Equation , where f = the frequency of oscil-

lation in MHz, C = the capacitor value in pF, and VDD = the MCU power supply in Volts.

                                    f = KF  C  VDD

                            Equation 19.2. C Mode Oscillator Frequency

For example: Assume VDD = 3.0 V and f = 150 kHz:

f = KF / (C x VDD)

0.150 MHz = KF / (C x 3.0)

Since the frequency of roughly 150 kHz is desired, select the K Factor from the table   in  SFR  Definition     19.6

(OSCXCN) as KF = 22:

0.150 MHz = 22 / (C x 3.0)

C x 3.0 = 22 / 0.150 MHz

C = 146.6 / 3.0 pF = 48.8 pF

Therefore, the XFCN value to use in this example is 011b and C = 50 pF.

                                    Rev. 1.4                                                                    151
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 19.6. OSCXCN: External Oscillator Control

Bit    7              6     5                        4       3                2     1          0

Name   XCLKVLD              XOSCMD[2:0]                                             XFCN[2:0]

Type   R                    R/W                              R                      R/W

Reset  0              0     0                        0       0                0     0          0

SFR  Address = 0xB1;  SFR Page = All Pages

Bit    Name                                                  Function

7      XCLKVLD        External Oscillator Valid Flag.

                      Provides External Oscillator status and is valid at all times for all modes of opera-

                      tion except External CMOS Clock Mode and External CMOS Clock Mode with

                      divide by 2. In these modes, XCLKVLD always returns 0.

                      0: External Oscillator is unused or not yet stable.

                      1: External Oscillator is running and stable.

6:4   XOSCMD[2:0]     External Oscillator Mode Select.

                      00x: External Oscillator circuit off.

                      010: External CMOS Clock Mode.

                      011: External CMOS Clock Mode with divide-by-2 stage.

                      100: RC Oscillator Mode with divide-by-2 stage.

                      101: Capacitor Oscillator Mode with divide-by-2 stage.

                      110: Crystal Oscillator Mode.

                      111: Crystal Oscillator Mode with divide-by-2 stage.

3      Unused         Read = 0; Write = don’t care

2:0    XFCN[2:0]      External Oscillator Frequency Control Bits.

                      Set according to the desired frequency for RC mode.

                      Set according to the desired K Factor for C mode.

                      XFCN  Crystal Mode                     RC Mode                   C Mode

                      000   f 20 kHz                       f 25 kHz             K Factor = 0.87

                      001   20 kHz f 58 kHz              25 kHz f 50 kHz    K Factor = 2.6

                      010   58 kHz f 155 kHz             50 kHz f 100 kHz   K Factor = 7.7

                      011   155 kHz f 415 kHz            100 kHz f 200 kHz  K Factor = 22

                      100   415 kHz f 1.1 MHz            200 kHz f 400 kHz  K Factor = 65

                      101   1.1 MHz f 3.1 MHz            400 kHz f 800 kHz  K Factor = 180

                      110   3.1 MHz f 8.2 MHz            800 kHz f 1.6 MHz  K Factor = 664

                      111   8.2 MHz f 25 MHz             1.6 MHz f 3.2 MHz  K Factor = 1590

152                                         Rev. 1.4
                                                                            C8051F380/1/2/3/4/5/6/7/C

20.      Port Input/Output

Digital  and  analog                      resources  are        available  through  40  I/O    pins  (C8051F380/2/4/6)  or     25       I/O  pins

(C8051F381/3/5/7/C). Port pins are organized as shown in Figure 20.1. Each of the Port pins can be

defined as general-purpose I/O (GPIO) or analog input; Port pins P0.0-P3.7 can be assigned to one of the

internal digital resources as shown in Figure 20.3. The designer has complete control over which functions

are assigned, limited only by the number of physical I/O pins. This resource assignment flexibility is

achieved through the use of a Priority Crossbar Decoder. Note that the state of a Port I/O pin can always

be read in the corresponding Port latch, regardless of the Crossbar settings.

The Crossbar assigns the selected internal digital resources to the I/O pins based on the Priority Decoder

(Figure 20.3 and Figure 20.4). The registers XBR0, XBR1, and XBR2 defined in SFR Definition 20.1, SFR

Definition 20.2, and SFR Definition 20.3, are used to select internal digital functions.

All Port I/Os are 5 V tolerant (refer to Figure 20.2 for the Port cell circuit). The Port I/O cells are configured

as either push-pull or open-drain in the Port Output Mode registers (PnMDOUT, where n = 0,1,2,3,4).

                                                                            XBR0, XBR1, XBR2,        PnMDOUT,

                                                                            PnSKIP Registers      PnMDIN Registers

                                                                            Priority

                                                                            Decoder

         Highest                          UART0      2

         Priority                                    4

                                          SPI                                                  8     P0                        P0.0

                                                     2                                               I/O

                                          SMBus0                                                     Cells                     P0.7

              (Internal Digital Signals)  CP0        2

                                          Outputs                           Digital            8     P1                        P1.0

                                          CP1        2                      Crossbar                 I/O

                                          Outputs                                                    Cells                     P1.7

                                          SYSCLK                                                                               P2.0

                                                     6                                         8     P2

                                          PCA                                                        I/O

                                                     2                                               Cells                     P2.7

                                          T0, T1

                                          UART1      2                                         8     P3                        P3.0

         Lowest                                      2                                               I/O

         Priority                         SMBus1                                                     Cells                     P3.7*

                                                     8

                                          P0       (P0.0-P0.7)

                                                     8

              (Port Latches)              P1       (P1.0-P1.7)

                                                     8

                                          P2       (P2.0-P2.7)                                    *P3.1-P3.7  only available on 48-pin

                                                                                                  packages

                                                     8

                                          P3      (P3.0-P3.7*)

              Figure                      20.1. Port I/O        Functional  Block Diagram (Port 0             through Port 3)

                                                                            Rev. 1.4                                                         153
C8051F380/1/2/3/4/5/6/7/C

       W E A K -P U LLU P

       P U S H -P U LL                                          VDD         VDD

       P O R T -O U T E N A B LE                                            (W EAK)

                                                                                     PORT

       P O R T -O U T P U T                                                          PAD

                                  Analog Select                 GND

       ANALOG INPUT

       P O R T -IN P U T

                                  Figure 20.2. Port I/O Cell Block Diagram

20.1.  Priority Crossbar Decoder

The Priority Crossbar Decoder (Figure 20.3) assigns a priority to each I/O function, starting at the top with

UART0. When a digital resource is selected, the least-significant unassigned Port pin is assigned to that

resource (excluding UART0, which is always at pins 4 and 5). If a Port pin is assigned, the Crossbar skips

that pin when assigning the next selected resource. Additionally, the Crossbar will skip Port pins whose

associated bits in the PnSKIP registers are set. The PnSKIP registers allow software to skip Port pins that

are to be used for analog input, dedicated functions, or GPIO.

If a Port pin is claimed by a peripheral without use of the Crossbar, its corresponding PnSKIP bit should be

set. This applies to the VREF signal, external oscillator pins (XTAL1, XTAL2), the ADC’s external conver-

sion start signal (CNVSTR), EMIF control signals, and any selected ADC or Comparator inputs. The

PnSKIP registers may also be used to skip pins to be used as GPIO. The Crossbar skips selected pins as

if they were already assigned, and moves to the next unassigned pin. Figure 20.3 shows all the possible

pins available to each peripheral. Figure 20.4 shows an example Crossbar configuration with no Port pins

skipped. Figure 20.5 shows the same Crossbar example with pins P0.2, P0.3, and P1.0 skipped.

Registers XBR0, XBR1, and XBR2 are used to assign the digital I/O resources to the physical I/O Port

pins. Note that when either SMBus is selected, the Crossbar assigns both pins associated with the SMBus

(SDA and SCL); when either UART is selected, the Crossbar assigns both pins associated with the UART

(TX and RX). UART0 pin assignments are fixed for bootloading purposes: UART TX0 is always assigned

to P0.4; UART RX0 is always assigned to P0.5. Standard Port I/Os appear contiguously after the prioritized

functions have been assigned.

Important Note: The SPI can be operated in either 3-wire or 4-wire modes, depending on the state of the

NSSMD1-NSSMD0 bits in register SPI0CN. According to the SPI mode, the NSS signal may or may not be

routed to a Port pin.

154                                              Rev. 1.4
                                                                                 C8051F380/1/2/3/4/5/6/7/C

Port                           P0                                       P1                                P2                            P3

Pin Number    0  1      2      3  4   5       6  7      0  1    2       3  4     5    6    7  0  1     2  3  4    5   6  7  0  1     2  3  4    5  6   7

SF Signals       XTAL1  XTAL2         CNVSTR                                                                                   P3.1-P3.7

(32-pin                                          VREF                                                                          Unavailable on 32-pin

Package)                                                                                                                       packages

SF Signals                            XTAL1      XTAL2          CNVSTR

(48-pin                                                    ALE             VREF          /WR

Package)                                                                         /RD

TX0

RX0

SCK

MISO

MOSI

NSS*

SDA

SCL

CP0

CP0A

CP1

CP1A

SYSCLK

CEX0

CEX1

CEX2

CEX3

CEX4

ECI

T0

T1

TX1

RX1

SDA1

SCL1

Pin Skip      0  0      0      0   0  0       0  0      0  0    0       0   0    0    0    0  0  0     0  0   0   0   0  0  0  0     0  0   0   0   0  0

Settings                   P0SKIP                                  P1SKIP                                 P2SKIP                        P3SKIP

The crossbar  peripherals are assigned              in priority order from          top  to   bottom,  according  to  this diagram.

These boxes represent Port pins which can potentially be assigned to a peripheral.

Special Function Signals are not assigned by the crossbar. When these signals are                                     enabled, the Crossbar should     be

manually configured to skip the corresponding port pins.

Pins can be “skipped” by setting the corresponding bit in PnSKIP to 1.

* NSS is only pinned out when the SPI is in 4-wire mode.

                                  Figure 20.3. Peripheral Availability on Port I/O Pins

                                                                                 Rev. 1.4                                                              155
C8051F380/1/2/3/4/5/6/7/C

     Port                   P0                                   P1                                  P2                               P3

Pin Number     0  1  2      3      4  5  6       7      0  1  2  3    4       5     6   7   0  1  2  3  4    5  6         7  0  1  2  3   4   5  6  7

     32-pin                              CNVSTR

     Special         XTAL1  XTAL2                VREF                                                                           Unavailable on 32-pin

     Function                                                                                                                   packages

     Signals

     48-pin                                                           CNVSTR

     Special                             XTAL1   XTAL2                        VREF

     Function                                                    ALE                RD  WR

     Signals

     TX0                                                                                TX0 and RX0 are fixed at these locations

     RX0

     SCK

     MISO

     MOSI

     NSS*

     SDA

     SCL

     CP0                                                                                The other peripherals are assigned based on pin

     CP0A                                                                               availability, in priority order.

     CP1

     CP1A

     SYSCLK

     CEX0

     CEX1

     CEX2

     CEX3

     CEX4

     ECI

     T0

     T1

     TX1

     RX1

     SDA1

     SCL1

     Pin Skip  0  0  0      0      0  0  0       0      0  0  0  0    0       0     0   0   0  0  0  0  0    0  0         0  0  0  0  0   0   0  0  0

     Settings               P0SKIP                               P1SKIP                              P2SKIP                           P3SKIP

This example shows a crossbar configuration with XBR0 = 0x07 and XBR1 = 0x43.

     These boxes represent Port pins which are assigned to a peripheral.

                  Figure 20.4. Crossbar Priority Decoder in Example Configuration

                                                              (No Pins Skipped)

156                                                                   Rev. 1.4
                                                                                                    C8051F380/1/2/3/4/5/6/7/C

Port                            P0                                                     P1                                  P2                        P3

Pin Number  0  1  2             3             4  5  6       7      0             1  2  3    4       5     6   7   0  1  2  3  4    5  6  7  0  1  2  3   4   5        6  7

32-pin                                              CNVSTR

Special           XTAL1         XTAL2                       VREF                                                                               Unavailable on 32-pin

Function                                                                                                                                       packages

Signals

48-pin                                                                                      CNVSTR

Special                                             XTAL1   XTAL2                                   VREF

Function                                                                               ALE                RD  WR

Signals

TX0

RX0

SCK

MISO

MOSI

NSS*                                                                                                If a pin is skipped, it is not available for assignment, and the

SDA                                                                                                 crossbar will move the assignment to the next available pin

SCL

CP0

CP0A

CP1               P0.2 Skipped  P0.3 Skipped                       P1.0 Skipped

CP1A

SYSCLK

CEX0

CEX1

CEX2

CEX3

CEX4

ECI

T0

T1

TX1

RX1

SDA1

SCL1

Pin Skip    0  0  1             1             0  0  0       0      1             0  0  0    0       0     0   0   0  0  0  0  0    0  0  0  0  0  0  0   0   0        0  0

Settings                        P0SKIP                                                 P1SKIP                              P2SKIP                    P3SKIP

This example shows a crossbar configuration with XBR0 = 0x07 and XBR1 = 0x43.

These boxes represent Port pins which are assigned to a peripheral.

Figure 20.5. Crossbar Priority Decoder in Example Configuration (3 Pins Skipped)

                                                                                            Rev. 1.4                                                                     157
C8051F380/1/2/3/4/5/6/7/C

20.2.  Port I/O Initialization

Port I/O initialization consists of the following steps:

1.   Select the input mode (analog or digital) for all Port pins, using the Port Input Mode register (PnMDIN).

2.   Select the output mode (open-drain or push-pull) for all Port pins, using the Port Output Mode register

     (PnMDOUT).

3.   Select any pins to be skipped by the I/O Crossbar using the Port Skip registers (PnSKIP).

4.   Assign Port pins to desired peripherals (XBR0, XBR1).

5.   Enable the Crossbar (XBARE = 1).

All Port pins must be configured as either analog or digital inputs. Any pins to be used as Comparator or

ADC inputs should be configured as an analog inputs. When a pin is configured as an analog input, its

weak pull-up, digital driver, and digital receiver are disabled. This process saves power and reduces noise

on the analog input. Pins configured as digital inputs may still be used by analog peripherals; however this

practice is not recommended. To configure a Port pin for digital input, write 0 to the corresponding bit in

register PnMDOUT, and write 1 to the corresponding Port latch (register Pn).

Additionally, all analog input pins should be configured to be skipped by the Crossbar (accomplished by

setting the associated bits in PnSKIP). Port input mode is set in the PnMDIN register, where a 1 indicates a

digital input, and a 0 indicates an analog input. All pins default to digital inputs on reset.

The output driver characteristics of the I/O pins are defined using the Port Output Mode registers (PnMD-

OUT). Each Port Output driver can be configured as either open drain or push-pull. This selection is

required even for the digital resources selected in the XBRn registers, and is not automatic. The only

exception to this are the SMBus (SDA, SCL, SDA1 and SCL1) pins, which are configured as open-drain

regardless of the PnMDOUT settings. When the WEAKPUD bit in XBR1 is 0, a weak pull-up is enabled for

all Port I/O configured as open-drain. WEAKPUD does not affect the push-pull Port I/O. Furthermore, the

weak pull-up is turned off on an output that is driving a 0 to avoid unnecessary power dissipation.

Registers XBR0 and XBR1 must be loaded with the appropriate values to select the digital I/O functions

required by the design. Setting the XBARE bit in XBR1 to 1 enables the Crossbar. Until the Crossbar is

enabled, the external pins remain as standard Port I/O (in input mode), regardless of the XBRn Register

settings. For given XBRn Register settings, one can determine the I/O pin-out using the Priority Decode

Table; as an alternative, the Configuration Wizard utility of the Silicon Labs IDE software will determine the

Port I/O pin-assignments based on the XBRn Register settings.

Important Note: The Crossbar must be enabled to use Ports P0, P1, P2, and P3 as standard Port I/O in

output mode. These Port output drivers are disabled while the Crossbar is disabled. Port 4 always func-

tions as standard GPIO.

158                                                       Rev. 1.4
                                                  C8051F380/1/2/3/4/5/6/7/C

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

Bit    7              6           5             4         3              2         1             0

Name   CP1AE          CP1E      CP0AE           CP0E      SYSCKE         SMB0E     SPI0E         URT0E

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 = 0xE1; SFR Page = All Pages

Bit    Name                                               Function

7      CP1AE   Comparator1 Asynchronous Output Enable.

               0: Asynchronous CP1A unavailable at Port pin.

               1: Asynchronous CP1A routed to Port pin.

6      CP1E    Comparator1 Output Enable.

               0: CP1 unavailable at Port pin.

               1: CP1 routed to Port pin.

5      CP0AE   Comparator0 Asynchronous Output Enable.

               0: Asynchronous CP0A unavailable at Port pin.

               1: Asynchronous CP0A routed to Port pin.

4      CP0E    Comparator0 Output Enable.

               0: CP0 unavailable at Port pin.

               1: CP0 routed to Port pin.

3      SYSCKE  SYSCLK Output Enable.

               0: SYSCLK unavailable at Port pin.

               1: SYSCLK output routed to Port pin.

2      SMB0E   SMBus I/O Enable.

               0: SMBus I/O unavailable at Port pins.

               1: SMBus I/O routed to Port pins.

1      SPI0E   SPI I/O Enable.

               0: SPI I/O unavailable at Port pins.

               1: SPI I/O routed to Port pins. Note that the SPI can be  assigned  either 3  or  4 GPIO

               pins.

0      URT0E   UART I/O Output Enable.

               0: UART I/O unavailable at Port pin.

               1: UART TX0, RX0 routed to Port pins P0.4 and P0.5.

                                                Rev. 1.4                                                 159
C8051F380/1/2/3/4/5/6/7/C

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

Bit    7           6               5                4          3        2    1            0

Name   WEAKPUD     XBARE           T1E             T0E         ECIE          PCA0ME[2:0]

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

Reset  0           0               0                0          0        0    0            0

SFR  Address = 0xE2; SFR Page = All Pages

Bit    Name                                                  Function

7      WEAKPUD     Port I/O Weak Pullup Disable.

                   0: Weak Pullups enabled (except for Ports whose I/O  are  configured for analog

                   mode).

                   1: Weak Pullups disabled.

6      XBARE       Crossbar Enable.

                   0: Crossbar disabled.

                   1: Crossbar enabled.

5      T1E         T1 Enable.

                   0: T1 unavailable at Port pin.

                   1: T1 routed to Port pin.

4      T0E         T0 Enable.

                   0: T0 unavailable at Port pin.

                   1: T0 routed to Port pin.

3      ECIE        PCA0 External Counter Input Enable.

                   0: ECI unavailable at Port pin.

                   1: ECI routed to Port pin.

2:0   PCA0ME[2:0]  PCA Module I/O Enable Bits.

                   000: All PCA I/O unavailable at Port pins.

                   001: CEX0 routed to Port pin.

                   010: CEX0, CEX1 routed to Port pins.

                   011: CEX0, CEX1, CEX2 routed to Port pins.

                   100: CEX0, CEX1, CEX2, CEX3 routed to Port pins.

                   101: CEX0, CEX1, CEX2, CEX3 routed to Port pins.

                   11x: Reserved.

160                                                Rev. 1.4
                                           C8051F380/1/2/3/4/5/6/7/C

SFR Definition 20.3. XBR2: Port I/O Crossbar Register 2

Bit    7          6              5         4               3        2    1      0

Name                                                                     SMB1E  URT1E

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 = 0xE3; SFR Page = All Pages

Bit    Name                                               Function

7:2    Reserved   Must write 000000b

1      SMB1E      SMBus1 I/O Enable.

                  0: SMBus1 I/O unavailable at Port pins.

                  1: SMBus1 I/O routed to Port pins.

0      URT1E      UART1 I/OEnable.

                  0: UART1 I/O unavailable at Port pins.

                  1: UART1 TX1, RX1 routed to Port pins.

20.3.  General Purpose Port I/O

Port pins that remain unassigned by the Crossbar and are not used by analog peripherals can be used for

general purpose I/O. Ports 3-0 are accessed through corresponding special function registers (SFRs) that

are both byte addressable and bit addressable. Port 4 (C8051F380/2/4/6 only) uses an SFR which is

byte-addressable. When writing to a Port, the value written to the SFR is latched to maintain the output

data value at each pin. When reading, the logic levels of the Port's input pins are returned regardless of the

XBRn settings (i.e., even when the pin is assigned to another signal by the Crossbar, the Port register can

always read its corresponding Port I/O pin). The exception to this is the execution of the read-modify-write

instructions. The read-modify-write instructions when operating on a Port SFR are the following: ANL,

ORL, XRL, JBC, CPL, INC, DEC, DJNZ and MOV, CLR or SETB, when the destination is an individual bit

in a Port SFR. For these instructions, the value of the register (not the pin) is read, modified, and written

back to the SFR.

                                           Rev. 1.4                                                             161
C8051F380/1/2/3/4/5/6/7/C

SFR Definition 20.4. P0: Port 0

Bit    7             6           5               4            3           2               1                 0

Name                                                P0[7:0]

Type                                                   R/W

Reset  1             1           1               1            1           1               1                 1

SFR Address = 0x80; SFR Page = All Pages; Bit    Addressable

Bit    Name          Description                            Write                            Read

7:0    P0[7:0]  Port 0 Data.                     0: Set output latch  to  logic  0: P0.n  Port pin is  logic

                Sets the Port latch logic        LOW.                            LOW.

                value or reads the Port pin      1: Set output latch  to  logic  1: P0.n  Port pin is  logic

                logic state in Port cells con-   HIGH.                           HIGH.

                figured for digital I/O.

SFR Definition 20.5. P0MDIN: Port 0 Input Mode

Bit    7             6           5               4            3           2               1                 0

Name                                &