EasyManua.ls Logo

Silicon Laboratories EFM8 Series - User Manual

Silicon Laboratories EFM8 Series
362 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
Loading...
EFM8 Universal Bee Family
EFM8UB3 Reference Manual
The EFM8UB3, part of the Universal Bee family of MCUs, is a
multi-purpose line of 8-bit microcontrollers with USB feature set in
small packages.
These devices offer high value by integrating an innovative energy-smart USB peripheral
interface, charger detect circuit, 8 kV ESD protection, and enhanced high speed commu-
nication interfaces into small packages, making them ideal for space-constrained USB
applications. With an efficient 8051 core and precision analog, the EFM8UB3 family is
also optimal for embedded applications.
EFM8UB3 applications include the following:
KEY FEATURES
Pipelined 8-bit C8051 core with 48 MHz
maximum operating frequency
Up to 17 multifunction I/O pins
Low Energy USB with full- and low-speed
support saves up to 90% of the USB
energy
USB charger detect circuit (USB-BCS 1.2
compliant)
One 12-bit ADC and two analog
comparators with internal voltage DAC as
reference input
Six 16-bit timers
UART and SMBus master/slave
Priority crossbar for flexible pin mapping
USB I/O controls
Docking stations/USB hubs
Dongles
Consumer electronics
USB Type-C converters
USB Type-C billboard/alternate mode
SecurityI/O Ports
Core / Memory Clock Management
CIP-51 8051 Core
(48 MHz)
High Frequency
48 MHz RC
Oscillator
Energy Management
Internal LDO
Regulator
Brown-Out
Detector
Power-On Reset
8-bit SFR bus
Serial Interfaces Timers and Triggers Analog Interfaces
Pin Reset
ADC
Comparator 0
Internal Voltage
Reference
16-bit CRC
Flash Memory
40 KB
RAM Memory
3328 bytes
Debug Interface
with C2
Lowest power mode with peripheral operational:
IdleNormal ShutdownSuspend Snooze
5 V-to 3.3 V LDO
Regulator
USB
High Frequency
24.5 MHz RC
Oscillator
Pin Wakeup
External
Interrupts
General
Purpose I/O
SMBus
UART
External CMOS
Oscillator
Low Frequency
RC Oscillator
SPI
Charger Det
Comparator 1
Timer 3/4/5
4 x Configurable Logic Units
Watchdog
Timer
PCA/PWM
Timers
0/1/2
silabs.com | Building a more connected world. Rev. 0.2

Table of Contents

Question and Answer IconNeed help?

Do you have a question about the Silicon Laboratories EFM8 Series and is the answer not in the manual?

Summary

System Overview

1.1 Introduction

Provides a high-level overview of the EFM8UB3 family and its features.

Power Management

1.2 Power

Details the device's power consumption control through peripheral enabling/disabling and power modes.

1.3 I;O

Describes the multi-purpose I/O pins, port control block features, and digital/analog functions.

Clocking and Oscillators

1.4 Clocking

Explains how the CPU core and peripherals are clocked by internal and external oscillator resources.

1.5 Counters;Timers and PWM

Details the Programmable Counter Array (PCA) module, its channels, and operational modes.

Timers and Watchdog

Timers (Timer 0, Timer 1, Timer 2, Timer 3, Timer 4, and Timer 5)

Describes the two 16-bit counter/timers and four 16-bit auto-reload timers, including their features and modes.

Watchdog Timer (WDT0)

Explains the programmable watchdog timer, its function, and features to prevent system malfunction.

Communications and Peripherals

1.6 Communications and Other Digital Peripherals

Details peripherals like USB0, UART1, SPI0, SMBus, CRC, and CLUs.

Analog Peripherals

1.7 Analog

Covers the 12-Bit ADC0 and Low Current Comparators (CMP0, CMP1) and their features.

Reset and Debugging

1.8 Reset Sources

Lists and describes the various reset sources available on the device.

1.9 Debugging

Explains the on-chip Silicon Labs 2-Wire (C2) debug interface for programming and debugging.

Memory Organization

2. Memory

Details the memory organization of program memory and data memory spaces.

2.1 Memory Organization

Describes the memory organization of program memory and data memory spaces.

2.2 Program Memory

Details the CIP-51 core's 64 KB program memory space, including flash security.

2.3 Data Memory

Explains the internal RAM and XRAM areas, total RAM variation, and memory map.

Memory Maps and Registers

2.4 Memory Map

Presents the flash memory map for 40 KB devices.

2.5 XRAM Control Registers

Details the EMI0CN register for external memory interface control.

Special Function Registers

3. Special Function Registers

Explains the structure and access methods for Special Function Registers (SFRs).

3.1 Special Function Register Access

Explains access methods, bit-addressable SFRs, and the concept of SFR paging.

3.2 Special Function Register Memory Map

Provides a memory map of all Special Function Registers by address.

3.3 SFR Access Control Registers

Covers registers for controlling SFR page access, including SFRPAGE and SFRPGCN.

Flash Memory Operations

4. Flash Memory

Details the on-chip flash memory for program code and non-volatile data storage.

4.1 Introduction

Introduces the on-chip flash memory, its organization, and programming methods.

4.2 Features

Lists the key features of the flash memory, including size, programmability, and security.

4.3 Functional Description

Explains flash memory security options, programming, and write/erase precautions.

4.3.1 Security Options

Details flash memory protection options against accidental modification and unauthorized access.

4.3.2 Programming the Flash Memory

Describes procedures for writing and erasing flash memory bytes and pages.

4.3.2.1 Flash Lock and Key Functions

Explains the lock and key function for flash erasures and writes using the FLKEY register.

4.3.2.2 Flash Page Erase Procedure

Provides a step-by-step procedure for erasing a page of flash memory using firmware.

4.3.2.3 Flash Byte Write Procedure

Details the procedure for writing a single byte of flash memory using firmware.

4.3.3 Flash Write and Erase Precautions

Provides guidelines to prevent accidental flash modification by firmware.

4.4 Flash Control Registers

Covers registers for controlling flash memory operations, including PSCTL and FLKEY.

4.4.1 PSCTL: Program Store Control

Details the PSCTL register for enabling program store erase and write operations.

4.4.2 FLKEY: Flash Lock and Key

Explains the FLKEY register for flash lock and key functions for erasures and writes.

Device Identification

5. Device Identification

Explains how to identify the device family, derivative, and revision using SFRs.

5.1 Device Identification

Describes SFRs used to identify device capabilities at runtime.

5.2 Unique Identifier

Discusses the 128-bit universally unique identifier (UUID) pre-programmed into devices.

5.3 Device Identification Registers

Covers registers for device identification: DEVICEID, DERIVID, and REVID.

5.3.1 DEVICEID: Device Identification

Details the DEVICEID register, which returns the 8-bit device ID.

5.3.2 DERIVID: Derivative Identification

Explains the DERIVID register for identifying the device derivative and its revision letter.

5.3.3 REVID: Revision Identification

Describes the REVID register, which returns the 8-bit revision ID.

Interrupt System

6. Interrupts

Details the extended interrupt system, sources, vectors, priorities, and latency.

6.1 Introduction

Introduces the interrupt system supporting multiple sources and priority levels.

6.2 Interrupt Sources and Vectors

Explains interrupt sources, vectors, and the interrupt priority decoding table.

6.2.1 Interrupt Priorities

Describes how interrupt sources can be programmed to one of four priority levels.

6.2.2 Interrupt Latency

Explains how interrupt response time depends on CPU state and priority.

6.2.3 Interrupt Summary

Provides a summary table of interrupt sources, vectors, priorities, and pending flags.

6.3 Interrupt Control Registers

Details registers for controlling interrupts, including enable (IE, EIE1, EIE2) and priority (IP, EIP1, EIP2) settings.

6.3.1 IE: Interrupt Enable

Explains the IE register for globally enabling/disabling interrupts and overriding individual mask settings.

6.3.2 IP: Interrupt Priority

Details the IP register for controlling the LSB of interrupt priority levels.

6.3.3 IPH: Interrupt Priority High

Explains the IPH register for controlling the MSB of interrupt priority levels.

6.3.4 EIE1: Extended Interrupt Enable 1

Details the EIE1 register for enabling extended interrupts like Timer, Comparator, PCA, and ADC.

6.3.5 EIP1: Extended Interrupt Priority 1 Low

Explains the EIP1 register for setting the LSB of extended interrupt priorities.

6.3.6 EIP1 H: Extended Interrupt Priority 1 High

Details the EIP1H register for setting the MSB of extended interrupt priorities.

6.3.7 EIE2: Extended Interrupt Enable 2

Details the EIE2 register for enabling extended interrupts like CL0, Timer 4, Timer 5, VBUS, and USB0.

6.3.8 EIP2: Extended Interrupt Priority 2

Explains the EIP2 register for setting the LSB of extended interrupt priorities.

6.3.9 EIP2 H: Extended Interrupt Priority 2 High

Details the EIP2H register for setting the MSB of extended interrupt priorities.

Power Management

7. Power Management and Internal Regulators

Details power management features including power modes and internal regulators.

7.1 Introduction

Provides an overview of how to control device power consumption by enabling/disabling peripherals.

7.2 Features

Lists the key power management features of the EFM8UB3 devices.

7.3 Idle Mode

Details the Idle power mode where CPU execution halts but peripherals remain active.

7.4 Stop Mode

Explains Stop mode where CPU and peripheral clocks are stopped; terminated by reset.

7.5 Suspend Mode

Describes Suspend mode where internal oscillators halt, entering a low power state.

7.6 Snooze Mode

Explains Snooze mode where internal oscillators halt and LDO enters low-power mode.

7.7 Shutdown Mode

Details Shutdown mode where CPU halts and internal LDO powers down.

7.8 5 V-to-3.3 V Regulator

Describes the 5V-to-3.3V regulator, its voltage regulation, and power modes.

7.9 Power Management Control Registers

Covers registers for controlling power management, including PCON0, PCON1, PSTAT0, REG0CN, REG1CN.

7.9.1 PCON0: Power Control

Details the PCON0 register for selecting power modes like Idle and Stop.

7.9.2 PCON1: Power Control 1

Explains the PCON1 register for controlling Snooze and Suspend modes.

7.9.3 PSTAT0: Power Status

Describes the PSTAT0 register for reporting power status and wake-up events.

7.9.4 REG0 CN: Voltage Regulator 0 Control

Details the REG0CN register for controlling the voltage regulator's behavior in stop and shutdown modes.

7.9.5 REG1 CN: Voltage Regulator 1 Control

Explains the REG1CN register for controlling the 5V regulator's bias, suspend, and enable settings.

Clocking and Oscillators

8. Clocking and Oscillators

Details the clock control system, including internal and external oscillators.

8.1 Introduction

Introduces clocking and oscillator resources for the CPU core and peripherals.

8.2 Features

Lists the features of the clock control system, including internal and external oscillators.

8.3 Functional Description

Explains how the clock control system selects clock sources and uses dividers.

8.3.1 Clock Selection

Details the CLKSEL register for selecting the system clock source and CLKDIV for the divider.

8.4 Clocking and Oscillator Control Registers

Covers registers for controlling clocking and oscillators, including CLKSEL, HFO0CAL, HFO1CAL, HFOCN, LFO0CN.

8.4.1 CLKSEL: Clock Select

Details the CLKSEL register for selecting the system clock source and divider.

8.4.2 HFO0 CAL: High Frequency Oscillator 0 Calibration

Explains the HFO0CAL register for calibrating the 24.5 MHz internal oscillator.

8.4.3 HFO1 CAL: High Frequency Oscillator 1 Calibration

Details the HFO1CAL register for calibrating the 48 MHz internal oscillator.

8.4.4 HFOCN: High Frequency Oscillator Control

Covers the HFOCN register for enabling/disabling high-frequency oscillators.

8.4.5 LFO0 CN: Low Frequency Oscillator Control

Details the LFO0CN register for controlling the low-frequency oscillator and its divider.

Reset Sources and Supply Monitor

9. Reset Sources and Power Supply Monitor

Explains the device's reset circuitry, including various reset sources and the supply monitor.

9.1 Introduction

Introduces the reset circuitry and its function in placing the controller in a default condition.

9.2 Features

Lists the available reset sources on the device.

9.3 Functional Description

Describes the events that occur upon entering a reset state and the sequence upon exiting.

9.3.1 Device Reset

Details the events that occur upon entering any reset state.

9.3.2 Power-On Reset

Explains the Power-On Reset (POR) circuit and its timing during power-up.

9.3.3 Supply Monitor Reset

Describes the supply monitor's function to detect voltage drops and generate a reset.

9.3.4 External Reset

Explains the use of the external RSTb pin for forcing a reset.

9.3.5 Missing Clock Detector Reset

Details the Missing Clock Detector (MCD) reset functionality triggered by clock loss.

9.3.6 Comparator (CMP0) Reset

Explains how Comparator 0 can be configured as a reset source.

9.3.7 Watchdog Timer Reset

Describes how the Watchdog Timer (WDT) can generate a reset upon malfunction.

9.3.8 Flash Error Reset

Explains resets generated due to illegal flash access or security setting violations.

9.3.9 Software Reset

Details how software can force a reset by writing to the SWRSF bit.

9.3.10 USB Reset

Explains how USB0 can be selected as a reset source for system resets.

9.4 Reset Sources and Supply Monitor Control Registers

Covers registers for controlling reset sources and supply monitor settings.

9.4.1 RSTSRC: Reset Source

Details the RSTSRC register for indicating the source of the most recent reset.

9.4.2 VDM0 CN: Supply Monitor Control

Explains the VDM0CN register for enabling/disabling the supply monitor circuit.

CIP-51 Microcontroller Core

10. CIP-51 Microcontroller Core

Introduces the CIP-51 microcontroller core, its architecture, and compatibility.

10.1 Introduction

Introduces the CIP-51 core as a high-speed, pipelined, 8-bit core.

10.2 Features

Lists the key features of the CIP-51 core, including architecture, clock frequency, and MIPS.

10.3 Functional Description

Explains programming/debugging support, the prefetch engine, and the instruction set.

10.3.1 Programming and Debugging Support

Details in-system programming and debugging via the C2 interface.

10.3.2 Prefetch Engine

Explains the multi-byte prefetch engine for enabling faster core clock speeds.

10.3.3 Instruction Set

Describes the instruction set compatibility with MCS-51 and provides an instruction summary table.

10.4 CPU Core Registers

Details the core CPU registers, including Data Pointers, Stack Pointer, Accumulator, B Register, and PSW.

10.4.1 DPL: Data Pointer Low

Describes the DPL register, the low byte of the 16-bit DPTR.

10.4.2 DPH: Data Pointer High

Details the DPH register, the high byte of the 16-bit DPTR.

10.4.3 SP: Stack Pointer

Explains the SP register which holds the location of the top of the stack.

10.4.4 ACC: Accumulator

Describes the ACC register, the primary accumulator for arithmetic operations.

10.4.5 B: B Register

Details the B register, serving as a second accumulator for arithmetic operations.

10.4.6 PSW: Program Status Word

Explains the PSW register containing status flags and register bank select bits.

10.4.7 PFE0 CN: Prefetch Engine Control

Details the PFE0CN register for controlling the prefetch engine's flash read timing.

Port I;O and Crossbar

11. Port I;O, Crossbar, External Interrupts, and Port Match

Covers port I/O, crossbar, external interrupts, and port match functionality.

11.1 Introduction

Introduces digital and analog resources available on multi-purpose I/O pins.

11.2 Features

Lists the features of the port control block, including I/O pins and crossbar decoder.

11.3 Functional Description

Details how port pins are configured as digital or analog I/O using special function registers.

11.3.1 Port I;O Modes of Operation

Explains the steps for configuring port pins for digital I/O and analog modes.

11.3.1.1 Port Drive Strength

Describes how port drive strength is controlled on a port-by-port basis using the PRTDRV register.

11.3.2 Analog and Digital Functions

Details the mapping of port I/O pins to analog and digital functions.

11.3.2.1 Port I;O Analog Assignments

Shows the mapping of port I/O pins to analog functions like ADC, Comparators, VREF, and AGND.

11.3.2.2 Port I;O Digital Assignments

Displays the potential mapping of port I/O to each digital function via the crossbar.

11.3.3 Priority Crossbar Decoder

Explains how the priority crossbar decoder assigns I/O functions to physical pins.

11.3.3.1 Crossbar Functional Map

Illustrates the potential peripheral-to-pin assignments available to the crossbar.

11.3.4 INT0 and INT1

Describes the two direct-pin digital interrupt sources (INT0 and INT1).

11.3.5 Port Match

Explains Port Match functionality for triggering events based on logic value changes on port pins.

11.3.6 Direct Port I;O Access (Read;Write)

Details how to access port I/O pins directly through Special Function Registers.

11.4 Port I;O Control Registers

Covers registers for controlling port I/O behavior, including crossbar, mask, match, and mode registers.

11.4.1 XBR0: Port I;O Crossbar 0

Details the XBR0 register for controlling crossbar assignments for various peripherals.

11.4.2 XBR1: Port I;O Crossbar 1

Explains the XBR1 register for controlling crossbar assignments for Timers and PCA.

11.4.3 XBR2: Port I;O Crossbar 2

Details the XBR2 register for controlling UART1 and weak pull-up settings.

11.4.4 PRTDRV: Port Drive Strength

Describes the PRTDRV register for controlling port drive strength settings.

11.4.5 P0 MASK: Port 0 Mask

Details the P0MASK register for defining mask values for Port 0 bits in port mismatch events.

11.4.6 P0 MAT: Port 0 Match

Explains the P0MAT register for setting match values for Port 0 bits in port mismatch events.

11.4.7 P0: Port 0 Pin Latch

Details the P0 register, which sets the port latch logic value for Port 0 I/O pins.

11.4.8 P0 MDIN: Port 0 Input Mode

Explains the P0MDIN register for configuring Port 0 pins as analog or digital inputs.

11.4.9 P0 MDOUT: Port 0 Output Mode

Details the P0MDOUT register for configuring Port 0 pins as open-drain or push-pull outputs.

11.4.10 P0 SKIP: Port 0 Skip

Explains the P0SKIP register for skipping Port 0 pins from crossbar assignments.

11.4.11 P1 MASK: Port 1 Mask

Details the P1MASK register for defining mask values for Port 1 bits in port mismatch events.

11.4.12 P1 MAT: Port 1 Match

Explains the P1MAT register for setting match values for Port 1 bits in port mismatch events.

11.4.13 P1: Port 1 Pin Latch

Details the P1 register, which sets the port latch logic value for Port 1 I/O pins.

11.4.14 P1 MDIN: Port 1 Input Mode

Explains the P1MDIN register for configuring Port 1 pins as analog or digital inputs.

11.4.15 P1 MDOUT: Port 1 Output Mode

Details the P1MDOUT register for configuring Port 1 pins as open-drain or push-pull outputs.

11.4.16 P1 SKIP: Port 1 Skip

Explains the P1SKIP register for skipping Port 1 pins from crossbar assignments.

11.4.17 P2 MASK: Port 2 Mask

Details the P2MASK register for defining mask values for Port 2 bits in port mismatch events.

11.4.18 P2 MAT: Port 2 Match

Explains the P2MAT register for setting match values for Port 2 bits in port mismatch events.

11.4.19 P2: Port 2 Pin Latch

Details the P2 register, which sets the port latch logic value for Port 2 I/O pins.

11.4.20 P2 MDIN: Port 2 Input Mode

Explains the P2MDIN register for configuring Port 2 pins as analog or digital inputs.

11.4.21 P2 MDOUT: Port 2 Output Mode

Details the P2MDOUT register for configuring Port 2 pins as open-drain or push-pull outputs.

11.5 INT0 and INT1 Control Registers

Covers registers for configuring INT0 and INT1 interrupts, including polarity and port selection.

11.5.1 IT01 CF: INT0;INT1 Configuration

Details the IT01CF register for configuring INT0/INT1 polarity and port selection.

Analog-to-Digital Converter

12. Analog-to-Digital Converter (ADC0)

Details the SAR ADC with 12-, 10-, and 8-bit modes, track-and-hold, and window detector.

12.1 Introduction

Introduces the ADC, its modes, and voltage reference selection.

12.2 Features

Lists the key features of the ADC, including input channels, modes, and triggers.

12.3 Functional Description

Explains ADC clocking, voltage references, input selection, gain, and power considerations.

12.3.1 Clocking

Describes how the ADC is clocked by an adjustable conversion clock (SARCLK).

12.3.2 Voltage Reference Options

Details the configurable voltage reference options for the ADC.

12.3.2.1 Internal Voltage Reference

Explains the internal voltage reference with two programmable levels.

12.3.2.2 Supply or LDO Voltage Reference

Describes using the power supply or internal LDO as voltage references.

12.3.2.3 External Voltage Reference

Details how to apply an external reference voltage to the VREF pin.

12.3.2.4 Ground Reference

Explains the analog ground reference option to prevent ground noise.

12.3.3 Input Selection

Describes the analog multiplexer for selecting ADC input channels.

12.3.3.1 Multiplexer Channel Selection

Provides tables showing ADC0 input multiplexer channel selections.

12.3.4 Gain Setting

Details the ADC gain settings of 1x and 0.5x for full-scale reading.

12.3.5 Initiating Conversions

Explains the different methods to initiate ADC conversions: software, hardware, or external pin.

12.3.6 Input Tracking

Describes the minimum tracking time required for ADC conversion accuracy.

12.3.7 Burst Mode

Explains Burst mode for power saving, allowing ADC to remain in low power state between conversions.

12.3.8 8-Bit Mode

Details how to enable 8-bit mode for faster conversion using fewer SAR clock cycles.

12.3.9 12-Bit Mode

Explains 12-bit mode, which combines four 10-bit conversions for higher resolution.

12.3.10 Output Formatting

Describes how the ADC output data can be right-justified or left-justified.

12.3.11 Power Considerations

Provides guidelines for optimizing ADC power consumption using burst mode and low power options.

12.3.12 Window Comparator

Details the window comparator for continuous output comparison against user-programmed limits.

12.3.13 Temperature Sensor

Explains the on-chip temperature sensor available via the ADC multiplexer input.

12.3.13.1 Temperature Sensor Calibration

Provides steps for calibrating the temperature sensor for absolute measurements.

12.4 ADC0 Control Registers

Covers registers for controlling ADC0 operation, including enable, mode, and configuration.

12.4.1 ADC0 CN0: ADC0 Control 0

Details the ADC0CN0 register for ADC enable, burst mode, and interrupt flags.

12.4.2 ADC0 CN1: ADC0 Control 1

Explains the ADC0CN1 register for selecting the start of conversion source and common mode buffer.

12.4.3 ADC0 CF: ADC0 Configuration

Details the ADC0CF register for SAR clock divider, 8-bit mode, track mode, and gain control.

12.4.4 ADC0 AC: ADC0 Accumulator Configuration

Explains the ADC0AC register for 12-bit mode, accumulate enable, shift, and repeat count.

12.4.5 ADC0 PWR: ADC0 Power Control

Details the ADC0PWR register for bias power select, mux/reference low power, and burst mode power up time.

12.4.6 ADC0 TK: ADC0 Burst Mode Track Time

Explains the ADC0TK register for 12-bit sampling mode and burst mode tracking time.

12.4.7 ADC0 H: ADC0 Data Word High Byte

Details the ADC0H register for the most significant byte of the 16-bit ADC0 accumulator.

12.4.8 ADC0 L: ADC0 Data Word Low Byte

Explains the ADC0L register for the least significant byte of the 16-bit ADC0 accumulator.

12.4.9 ADC0 GTH: ADC0 Greater-Than High Byte

Details the ADC0GTH register for the greater-than window compare.

12.4.10 ADC0 GTL: ADC0 Greater-Than Low Byte

Explains the ADC0GTL register for the greater-than window compare.

12.4.11 ADC0 LTH: ADC0 Less-Than High Byte

Details the ADC0LTH register for the less-than window compare.

12.4.12 ADC0 LTL: ADC0 Less-Than Low Byte

Explains the ADC0LTL register for the less-than window compare.

12.4.13 ADC0 MX: ADC0 Multiplexer Selection

Details the ADC0MX register for selecting the positive input channel for ADC0.

12.4.14 REF0 CN: Voltage Reference Control

Explains the REF0CN register for selecting internal/external references and ground.

Comparators

13. Comparators (CMP0 and CMP1)

Covers the CMP0 and CMP1 analog comparators, their features, and control registers.

13.1 Introduction

Introduces analog comparators for comparing two analog inputs.

13.2 Features

Lists the features of the comparators, including input options, hysteresis, and response time.

13.3 Functional Description

Explains comparator response time, hysteresis, input selection, and output routing.

13.3.1 Response Time and Supply Current

Details the trade-off between comparator response time and supply current.

13.3.2 Hysteresis

Explains how comparator hysteresis is software-programmable.

13.3.3 Input Selection

Describes how comparator inputs are routed to port pins or internal signals.

13.3.3.1 Multiplexer Channel Selection

Provides tables for selecting multiplexer channels for CMP0 and CMP1 inputs.

13.3.3.2 Reference DAC

Details the comparator's dedicated reference DAC and its connection configurations.

13.3.4 Output Routing

Explains how comparator outputs can be routed to port pins or generate interrupts.

13.3.4.1 Output Inversion

Describes how the output state of the comparator can be inverted using the CPINV bit.

13.3.4.2 Output Inhibit

Explains the feature to inhibit output changes when PCA's CEX2 channel is low.

13.4 CMP0 Control Registers

Covers CMP0 control registers, including CMP0CN0, CMP0MD, CMP0MX, and CMP0CN1.

13.4.1 CMP0 CN0: Comparator 0 Control 0

Details the CMP0CN0 register for comparator enable, output state, and edge interrupts.

13.4.2 CMP0 MD: Comparator 0 Mode

Explains the CMP0MD register for selecting comparator mode and input connection.

13.4.3 CMP0 MX: Comparator 0 Multiplexer Selection

Details the CMP0MX register for selecting negative and positive input multiplexers.

13.4.4 CMP0 CN1: Comparator 0 Control 1

Explains the CMP0CN1 register for output inhibit and internal DAC reference level control.

13.5 CMP1 Control Registers

Covers CMP1 control registers, including CMP1CN0, CMP1MD, CMP1MX, and CMP1CN1.

13.5.1 CMP1 CN0: Comparator 1 Control 0

Details the CMP1CN0 register for comparator enable, output state, and edge interrupts.

13.5.2 CMP1 MD: Comparator 1 Mode

Explains the CMP1MD register for selecting comparator mode and input connection.

13.5.3 CMP1 MX: Comparator 1 Multiplexer Selection

Details the CMP1MX register for selecting negative and positive input multiplexers.

13.5.4 CMP1 CN1: Comparator 1 Control 1

Explains the CMP1CN1 register for output inhibit and internal DAC reference level control.

Configurable Logic Units

14. Configurable Logic Units (CLU0, CLU1, CLU2, CLU3)

Details the CLU module with four independent units for user-programmable digital logic.

14.1 Introduction

Introduces the configurable logic (CL) module for user-programmed digital logic.

14.2 Features

Lists the key features of the Configurable Logic block, including units, functions, and operations.

14.3 Functional Description

Explains CLU configuration sequence, input multiplexer selection, and output configuration.

14.3.1 Configuration Sequence

Outlines the general steps for configuring CLUs before enabling them.

14.3.2 Input Multiplexer Selection

Describes selecting inputs for the CLU's LUT using MXA, MXB, and carry inputs.

14.3.2.1 CLU Multiplexer Input Selection

Provides tables showing CLUnA and CLUnB input selections.

14.3.3 Output Configuration

Explains how CLU outputs can be asynchronous or synchronous, and routed to pins.

14.3.4 LUT Configuration

Details how the boolean logic function in each CLU is determined by the LUT and FNSEL field.

14.4 Configurable Logic Control Registers

Covers registers for controlling CLUs, including enable (CLEN0, CLIE0), flags (CLIF0), and output (CLOUT0).

14.4.1 CLEN0: Configurable Logic Enable 0

Details the CLEN0 register for enabling CLU0, CLU1, CLU2, and CLU3.

14.4.2 CLIE0: Configurable Logic Interrupt Enable 0

Explains the CLIE0 register for enabling interrupts based on CLU rising/falling edges.

14.4.3 CLIF0: Configurable Logic Interrupt Flag 0

Details the CLIF0 register, which holds interrupt flags for CLU rising/falling edges.

14.4.4 CLOUT0: Configurable Logic Output 0

Explains the CLOUT0 register for accessing the logic level of CLU outputs.

14.4.5 CLU0 MX: Configurable Logic Unit 0 Multiplexer

Details the CLU0MX register for selecting A and B inputs to CLU0.

14.4.6 CLU0 FN: Configurable Logic Unit 0 Function Select

Explains the CLU0FN register for selecting the LUT function for CLU0.

14.4.7 CLU0 CF: Configurable Logic Unit 0 Configuration

Details the CLU0CF register for output select, port enable, reset, and clock selection.

14.4.8 CLU1 MX: Configurable Logic Unit 1 Multiplexer

Details the CLU1MX register for selecting A and B inputs to CLU1.

14.4.9 CLU1 FN: Configurable Logic Unit 1 Function Select

Explains the CLU1FN register for selecting the LUT function for CLU1.

14.4.10 CLU1 CF: Configurable Logic Unit 1 Configuration

Details the CLU1CF register for output select, port enable, reset, and clock selection.

14.4.11 CLU2 MX: Configurable Logic Unit 2 Multiplexer

Details the CLU2MX register for selecting A and B inputs to CLU2.

14.4.12 CLU2 FN: Configurable Logic Unit 2 Function Select

Explains the CLU2FN register for selecting the LUT function for CLU2.

14.4.13 CLU2 CF: Configurable Logic Unit 2 Configuration

Details the CLU2CF register for output select, port enable, reset, and clock selection.

14.4.14 CLU3 MX: Configurable Logic Unit 3 Multiplexer

Details the CLU3MX register for selecting A and B inputs to CLU3.

14.4.15 CLU3 FN: Configurable Logic Unit 3 Function Select

Explains the CLU3FN register for selecting the LUT function for CLU3.

14.4.16 CLU3 CF: Configurable Logic Unit 3 Configuration

Details the CLU3CF register for output select, port enable, reset, and clock selection.

Cyclic Redundancy Check

15. Cyclic Redundancy Check (CRC0)

Details the CRC0 module for hardware calculations of CRC, flash verification, and protocols.

15.1 Introduction

Introduces the CRC module for performing CRC using a 16-bit polynomial.

15.2 Features

Lists CRC module features: CCITT-16 polynomial, bit reversal, and flash CRC calculation.

15.3 Functional Description

Explains the 16-bit CRC algorithm, its usage on data streams, and code memory checking.

15.3.1 16-bit CRC Algorithm

Describes the algorithm for generating a 16-bit CRC result.

15.3.2 Using the CRC on a Data Stream

Explains how to perform CRC calculations on arbitrary data sets using the CRC module.

15.3.3 Using the CRC to Check Code Memory

Details how to configure the CRC module for automatic CRC calculation on code memory blocks.

15.3.4 Bit Reversal

Explains the hardware feature to reverse the bit order of each byte in CRC0.

15.4 CRC0 Control Registers

Covers registers for controlling CRC0 operation, including CRC0CN0, CRC0IN, CRC0DAT, CRC0ST, CRC0CNT, CRC0FLIP, CRC0CN1.

15.4.1 CRC0 CN0: CRC0 Control 0

Details the CRC0CN0 register for CRC initialization and result pointer selection.

15.4.2 CRC0 IN: CRC0 Data Input

Explains the CRC0IN register for inputting data bytes into the CRC algorithm.

15.4.3 CRC0 DAT: CRC0 Data Output

Details the CRC0DAT register for outputting the CRC result.

15.4.4 CRC0 ST: CRC0 Automatic Flash Sector Start

Explains the CRC0ST register for specifying the flash block to start automatic CRC calculation.

15.4.5 CRC0 CNT: CRC0 Automatic Flash Sector Count

Details the CRC0CNT register for specifying the number of flash blocks for automatic CRC calculation.

15.4.6 CRC0 FLIP: CRC0 Bit Flip

Explains the CRC0FLIP register for performing bit reversal on data.

15.4.7 CRC0 CN1: CRC0 Control 1

Details the CRC0CN1 register for enabling automatic CRC calculation.

Programmable Counter Array

16. Programmable Counter Array (PCA0)

Details the PCA0 module, providing timer and PWM functionality with multiple channels.

16.1 Introduction

Introduces the PCA module, offering enhanced timer and PWM functionality.

16.2 Features

Lists the key features of the PCA, including time base, channels, and operational modes.

16.3 Functional Description

Explains PCA counter/timer operation, interrupt sources, and capture/compare modules.

16.3.1 Counter; Timer

Details the 16-bit PCA counter/timer, its SFRs, and timebase input options.

16.3.2 Interrupt Sources

Explains the PCA0 module's interrupt vector and how event flags generate interrupts.

16.3.3 Capture;Compare Modules

Describes how capture/compare modules operate independently in various modes.

16.3.3.1 Output Polarity

Explains how the output polarity of each PCA channel is selectable.

16.3.4 Edge-Triggered Capture Mode

Details edge-triggered capture mode for measuring system events against the clock source.

16.3.5 Software Timer (Compare) Mode

Explains Software Timer mode where the PCA counter/timer is compared to a capture/compare register.

16.3.6 High-Speed Output Mode

Describes High-Speed Output mode where the CEXn pin is toggled on PCA match.

16.3.7 Frequency Output Mode

Explains Frequency Output mode for generating programmable-frequency square waves.

16.3.8 PWM Waveform Generation

Details PWM waveform generation with edge- or center-aligned modes and resolutions.

Edge Aligned PWM

Details edge-aligned mode, including edge transitions, polarity, and match/overflow edges.

Center Aligned PWM

Describes center-aligned mode, including edge transitions, polarity, and center points.

16.3.8.1 8 to 11-Bit PWM Modes

Explains 8-bit and 9- to 11-bit PWM modes, including cycle length and auto-reload register usage.

16.3.8.2 16-Bit PWM Mode

Details how to operate a PCA module in 16-Bit PWM mode.

16.3.8.3 Comparator Clear Function

Explains the comparator clear function for utilizing Comparator 0 output to clear CEXn.

16.4 PCA0 Control Registers

Covers registers for controlling PCA0, including PCA0CN0, PCA0MD, PCA0PWM, PCA0CLR, PCA0L, PCA0H, PCA0POL, PCA0CENT.

16.4.1 PCA0 CN0: PCA Control

Details the PCA0CN0 register for PCA counter/timer run control and overflow flags.

16.4.2 PCA0 MD: PCA Mode

Explains the PCA0MD register for selecting PCA counter timebase and overflow interrupt.

16.4.3 PCA0 PWM: PCA PWM Configuration

Details the PCA0PWM register for selecting PWM cycle length and auto-reload options.

16.4.4 PCA0 CLR: PCA Comparator Clear Control

Explains the PCA0CLR register for configuring comparator clear polarity and select.

16.4.5 PCA0 L: PCA Counter;Timer Low Byte

Details the PCA0L register holding the low byte (LSB) of the 16-bit PCA Counter/Timer.

16.4.6 PCA0 H: PCA Counter;Timer High Byte

Explains the PCA0H register holding the high byte (MSB) of the 16-bit PCA Counter/Timer.

16.4.7 PCA0 POL: PCA Output Polarity

Details the PCA0POL register for selecting the polarity of PCA output channels.

16.4.8 PCA0 CENT: PCA Center Alignment Enable

Explains the PCA0CENT register for selecting center alignment properties for PWM modes.

16.4.9 PCA0 CPM0: PCA Channel 0 Capture;Compare Mode

Details the PCA0CPM0 register for configuring Channel 0 mode, including PWM and capture.

16.4.10 PCA0 CPL0: PCA Channel 0 Capture Module Low Byte

Explains the PCA0CPL0 register holding the low byte for Channel 0 capture/compare.

16.4.11 PCA0 CPH0: PCA Channel 0 Capture Module High Byte

Details the PCA0CPH0 register holding the high byte for Channel 0 capture/compare.

16.4.12 PCA0 CPM1: PCA Channel 1 Capture;Compare Mode

Details the PCA0CPM1 register for configuring Channel 1 mode, including PWM and capture.

16.4.13 PCA0 CPL1: PCA Channel 1 Capture Module Low Byte

Explains the PCA0CPL1 register holding the low byte for Channel 1 capture/compare.

16.4.14 PCA0 CPH1: PCA Channel 1 Capture Module High Byte

Details the PCA0CPH1 register holding the high byte for Channel 1 capture/compare.

16.4.15 PCA0 CPM2: PCA Channel 2 Capture;Compare Mode

Details the PCA0CPM2 register for configuring Channel 2 mode, including PWM and capture.

16.4.16 PCA0 CPL2: PCA Channel 2 Capture Module Low Byte

Explains the PCA0CPL2 register holding the low byte for Channel 2 capture/compare.

16.4.17 PCA0 CPH2: PCA Channel 2 Capture Module High Byte

Details the PCA0CPH2 register holding the high byte for Channel 2 capture/compare.

Serial Peripheral Interface

17. Serial Peripheral Interface (SPI0)

Details the SPI0 module for flexible, full-duplex synchronous serial bus communication.

17.1 Introduction

Introduces the SPI module for master/slave serial bus communication.

17.2 Features

Lists SPI features like master/slave modes, clock frequencies, and FIFO support.

17.3 Functional Description

Explains SPI signals, master/slave operation, and data transfer methods.

17.3.1 Signals

Details the SPI interface signals: MOSI, MISO, SCK, and NSS, and their roles in master/slave modes.

17.3.1.1 Routing Input Signals Through Configurable Logic

Explains how SPI signals can be routed through the crossbar or from CLU outputs.

17.3.2 Master Mode Operation

Describes how an SPI master device initiates data transfers, controls speed, and uses the transmit buffer.

17.3.3 Slave Mode Operation

Explains how the SPI block operates as a slave, shifting bytes and using the receive buffer.

17.3.4 Clock Phase and Polarity

Details how clock phase and polarity are selected using SPInCFG register bits.

17.3.5 Basic Data Transfer

Explains byte-by-byte SPI data transfer using SPInDAT register and SPIF flag.

17.3.6 Using the SPI FIFOs

Describes the implementation of independent two-byte FIFOs for transmit and receive paths.

17.3.7 SPI Timing Diagrams

Provides timing diagrams for SPI master and slave modes.

17.4 SPI0 Control Registers

Covers registers for SPI0 configuration and control, including SPI0CFG, SPI0CN0, SPI0CKR, SPI0DAT, SPI0FCN0, SPI0FCN1, SPI0FCT, SPI0PCF.

17.4.1 SPI0 CFG: SPI0 Configuration

Details the SPI0CFG register for configuring SPI0 operation mode, clock phase, and polarity.

17.4.2 SPI0 CN0: SPI0 Control

Explains the SPI0CN0 register for SPI interrupt flag, write collision, mode fault, and overrun flags.

17.4.3 SPI0 CKR: SPI0 Clock Rate

Details the SPI0CKR register for determining the SCK output frequency in master mode.

17.4.4 SPI0 DAT: SPI0 Data

Explains the SPI0DAT register used for transmitting and receiving SPI0 data.

17.4.5 SPI0 FCN0: SPI0 FIFO Control 0

Details the SPI0FCN0 register for transmit FIFO request and threshold settings.

17.4.6 SPI0 FCN1: SPI0 FIFO Control 1

Explains the SPI0FCN1 register for transmit hold, interrupt enables, and receive FIFO threshold.

17.4.7 SPI0 FCT: SPI0 FIFO Count

Details the SPI0FCT register indicating the number of bytes in the transmit and receive FIFOs.

17.4.8 SPI0 PCF: SPI0 Pin Configuration

Explains the SPI0PCF register for selecting clock, MISO, and MOSI sources.

System Management Bus; I2 C

18. System Management Bus; I2 C (SMB0)

Details the SMBus interface, its features, protocol, and configuration.

18.1 Introduction

Introduces the SMBus interface as a two-wire, bi-directional serial bus.

18.2 Features

Lists SMBus features like transfer speeds, modes, arbitration, and FIFO support.

18.3 Functional Description

Explains SMBus protocol, supporting documents, configuration, and operational modes.

18.3.2 SMBus Protocol

Describes the SMBus protocol, voltage levels, arbitration, and clock timing.

18.3.3 Configuring the SMBus Module

Explains how to configure the SMBus module for master/slave modes and serial transfers.

18.3.4 Operational Modes

Details the four operational modes: Master Transmitter, Master Receiver, Slave Transmitter, Slave Receiver.

18.4 SMB0 Control Registers

Covers SMB0 control registers, including SMB0CF, SMB0TC, SMB0CN0, SMB0ADR, SMB0ADM, SMB0DAT, SMB0FCN0, SMB0FCN1, SMB0RXLN, SMB0FCT.

18.4.1 SMB0 CF: SMBus 0 Configuration

Details the SMB0CF register for SMBus enable, slave inhibit, busy indicator, and clock source selection.

18.4.2 SMB0 TC: SMBus 0 Timing and Pin Control

Explains the SMB0TC register for SMBus pin swap and setup/hold delay extension.

18.4.3 SMB0 CN0: SMBus 0 Control

Details the SMB0CN0 register for master/slave indicator, transmit mode, start/stop flags, and ACK control.

18.4.4 SMB0 ADR: SMBus 0 Slave Address

Explains the SMB0ADR register for defining hardware slave addresses and general call enable.

18.4.5 SMB0 ADM: SMBus 0 Slave Address Mask

Details the SMB0ADM register for defining the slave address mask for hardware recognition.

18.4.6 SMB0 DAT: SMBus 0 Data

Explains the SMB0DAT register used to access the TX and RX FIFOs.

18.4.7 SMB0 FCN0: SMBus 0 FIFO Control 0

Details the SMB0FCN0 register for transmit/receive FIFO request and threshold settings.

18.4.8 SMB0 FCN1: SMBus 0 FIFO Control 1

Explains the SMB0FCN1 register for transmit hold, FIFO enable, and receive FIFO settings.

18.4.9 SMB0 RXLN: SMBus 0 Receive Length Counter

Details the SMB0RXLN register for setting the number of bytes to receive.

18.4.10 SMB0 FCT: SMBus 0 FIFO Count

Explains the SMB0FCT register indicating the number of bytes in the transmit and receive FIFOs.

Timers

19. Timers (Timer0, Timer1, Timer2, Timer3, Timer4, and Timer5)

Details the six counter/timers, their modes, features, and system connections.

19.1 Introduction

Introduces the six counter/timers, their compatibility with 8051, and modes of operation.

19.2 Features

Lists features of Timer 0/1 and Timer 2-5, including modes, clock sources, and capture capabilities.

19.3 Functional Description

Explains timer system connections, operational modes, and chaining capabilities.

19.3.1 System Connections

Details how timers connect to other peripherals and trigger system events.

19.3.2 Timer 0 and Timer 1

Describes Timer 0 and Timer 1 implementation, control registers, and operating modes.

19.3.2.1 Operational Modes

Explains the operational modes for Timer 0 and Timer 1: 13-bit, 16-bit, 8-bit auto-reload, and 8-bit split.

Mode 0: 13-bit Counter;Timer

Details the configuration and operation of Timer 0/1 in 13-bit counter/timer mode.

Mode 1: 16-bit Counter;Timer

Explains Mode 1 operation, which uses all 16 bits of the counter/timer registers.

Mode 2: 8-bit Counter;Timer with Auto-Reload

Describes Mode 2 configuration for 8-bit counter/timers with automatic reload.

Mode 3: Two 8-bit Counter;Timers (Timer 0 Only)

Explains Mode 3 where Timer 0 is configured as two separate 8-bit counter/timers.

19.3.3 Timer 2, Timer 3, Timer 4, and Timer 5

Describes Timer 2-5 as functionally equivalent 16-bit timers with auto-reload and capture modes.

19.3.3.1 16-bit Timer with Auto-Reload

Details the 16-bit timer operation with auto-reload.

19.3.3.2 8-Bit Timers with Auto-Reload (Split Mode)

Explains the 8-bit timers operation in split mode with auto-reload.

19.3.3.3 Capture Mode

Describes Capture mode for measuring system events against a selected clock source.

19.3.3.4 Timer 3 and Timer 4 Chaining and Wake Source

Explains chaining Timer 3 and Timer 4 for longer counters or wake source functionality.

19.4 Timer 0, 1, 2, 3, 4, and 5 Control Registers

Covers registers for controlling timer clock sources and modes, including CKCON0, CKCON1, TCON, TMOD.

19.4.1 CKCON0: Clock Control 0

Details the CKCON0 register for selecting clock sources for Timers 1, 2, and 3.

19.4.2 CKCON1: Clock Control 1

Explains the CKCON1 register for selecting clock sources for Timers 4 and 5.

19.4.3 TCON: Timer 0;1 Control

Details the TCON register for Timer 0/1 control, overflow flags, and interrupt types.

19.4.4 TMOD: Timer 0;1 Mode

Explains the TMOD register for selecting Timer 0/1 operation modes.

19.4.5 TL0: Timer 0 Low Byte

Details the TL0 register holding the low byte of the 16-bit Timer 0.

19.4.6 TL1: Timer 1 Low Byte

Explains the TL1 register holding the low byte of the 16-bit Timer 1.

19.4.7 TH0: Timer 0 High Byte

Details the TH0 register holding the high byte of the 16-bit Timer 0.

19.4.8 TH1: Timer 1 High Byte

Explains the TH1 register holding the high byte of the 16-bit Timer 1.

19.4.9 TMR2 CN0: Timer 2 Control 0

Details the TMR2CN0 register for Timer 2 overflow flags, run control, and clock select.

19.4.10 TMR2 RLL: Timer 2 Reload Low Byte

Explains the TMR2RLL register holding the reload value for Timer 2 low byte.

19.4.11 TMR2 RLH: Timer 2 Reload High Byte

Details the TMR2RLH register holding the reload value for Timer 2 high byte.

19.4.12 TMR2 L: Timer 2 Low Byte

Explains the TMR2L register containing the low byte of the 16-bit Timer 2.

19.4.13 TMR2 H: Timer 2 High Byte

Details the TMR2H register containing the high byte of the 16-bit Timer 2.

19.4.14 TMR3 CN1: Timer 3 Control 1

Explains the TMR3CN1 register for force reload select and capture select.

19.4.15 TMR3 CN0: Timer 3 Control 0

Details the TMR3CN0 register for Timer 3 overflow flags, run control, and clock select.

19.4.16 TMR3 RLL: Timer 3 Reload Low Byte

Explains the TMR3RLL register holding the reload value for Timer 3 low byte.

19.4.17 TMR3 RLH: Timer 3 Reload High Byte

Details the TMR3RLH register holding the reload value for Timer 3 high byte.

19.4.18 TMR3 L: Timer 3 Low Byte

Explains the TMR3L register containing the low byte of the 16-bit Timer 3.

19.4.19 TMR3 H: Timer 3 High Byte

Details the TMR3H register containing the high byte of the 16-bit Timer 3.

19.4.20 TMR3 CN1: Timer 3 Control 1

Explains the TMR3CN1 register for force reload select and capture select.

19.4.21 TMR4 CN0: Timer 4 Control 0

Details the TMR4CN0 register for Timer 4 overflow flags, run control, and clock select.

19.4.22 TMR4 RLL: Timer 4 Reload Low Byte

Explains the TMR4RLL register holding the reload value for Timer 4 low byte.

19.4.23 TMR4 RLH: Timer 4 Reload High Byte

Details the TMR4RLH register holding the reload value for Timer 4 high byte.

19.4.24 TMR4 L: Timer 4 Low Byte

Explains the TMR4L register containing the low byte of the 16-bit Timer 4.

19.4.25 TMR4 H: Timer 4 High Byte

Details the TMR4H register containing the high byte of the 16-bit Timer 4.

19.4.26 TMR4 CN1: Timer 4 Control 1

Explains the TMR4CN1 register for force reload select and capture select.

19.4.27 TMR5 RLL: Timer 5 Reload Low Byte

Explains the TMR5RLL register holding the reload value for Timer 5 low byte.

19.4.28 TMR5 RLH: Timer 5 Reload High Byte

Details the TMR5RLH register holding the reload value for Timer 5 high byte.

19.4.29 TMR5 L: Timer 5 Low Byte

Explains the TMR5L register containing the low byte of the 16-bit Timer 5.

19.4.30 TMR5 H: Timer 5 High Byte

Details the TMR5H register containing the high byte of the 16-bit Timer 5.

19.4.31 TMR5 CN0: Timer 5 Control 0

Details the TMR5CN0 register for Timer 5 overflow flags, run control, and clock select.

19.4.32 TMR5 CN1: Timer 5 Control 1

Explains the TMR5CN1 register for force reload select and capture select.

UART1

20. Universal Asynchronous Receiver;Transmitter 1 (UART1)

Details the UART1 serial port, its features, baud rate generation, and data formatting.

20.1 Introduction

Introduces UART1 as an asynchronous, full duplex serial port with baud rate generation.

20.2 Features

Lists UART1 features such as asynchronous transmission, baud rate generation, and FIFO support.

20.3 Functional Description

Explains UART1 baud rate generation, data format, flow control, and FIFO data transfer.

20.3.1 Baud Rate Generation

Details the dedicated 16-bit timer and prescaler for generating UART1 baud rates.

20.3.2 Data Format

Describes UART1 data formatting options: start bit, data bits, parity, and stop bits.

20.3.3 Flow Control

Explains hardware flow control using CTS and RTS pins.

20.3.4 Basic Data Transfer

Describes standard asynchronous, full duplex communication via SBUF1 register.

20.3.5 Data Transfer With FIFO

Explains UART1's receive and transmit buffers to reduce interrupt overhead.

20.3.6 Multiprocessor Communications

Details multiprocessor communication using the extra data bit and address byte.

20.3.7 LIN Break and Sync Detect

Explains UART1's LIN features like break detection and baud rate adjustment.

20.3.8 Autobaud Detection

Describes automatic baud rate detection and adjustment supported by the UART.

20.3.9 Routing RX Through Configurable Logic

Explains how the RX input of UART1 can be routed through the crossbar to CLU outputs.

20.4 UART1 Control Registers

Covers registers for controlling UART1 operation, including SCON1, SMOD1, SBUF1, SBCON1, SBRLH1, SBRLL1, UART1FCN0, UART1FCN1, UART1FCT, UART1LIN, UART1PCF.

20.4.1 SCON1: UART1 Serial Port Control

Details the SCON1 register for UART1 control, including overrun, parity, and receiver enable flags.

20.4.2 SMOD1: UART1 Mode

Explains the SMOD1 register for multiprocessor communication, parity, data length, and extra bit enable.

20.4.3 SBUF1: UART1 Serial Port Data Buffer

Details the SBUF1 register for accessing the transmit and receive FIFOs.

20.4.4 SBCON1: UART1 Baud Rate Generator Control

Explains the SBCON1 register for enabling the baud rate generator and selecting prescaler.

20.4.5 SBRLH1: UART1 Baud Rate Generator High Byte

Details the SBRLH1 register holding the high byte of the UART1 baud rate generator.

20.4.6 SBRLL1: UART1 Baud Rate Generator Low Byte

Explains the SBRLL1 register holding the low byte of the UART1 baud rate generator.

20.4.7 UART1 FCN0: UART1 FIFO Control 0

Details the UART1FCN0 register for transmit FIFO request and threshold settings.

20.4.8 UART1 FCN1: UART1 FIFO Control 1

Explains the UART1FCN1 register for transmit hold, interrupt enables, and receive FIFO settings.

20.4.9 UART1 FCT: UART1 FIFO Count

Details the UART1FCT register indicating the number of bytes in the transmit and receive FIFOs.

20.4.10 UART1 LIN: UART1 LIN Configuration

Explains the UART1LIN register for LIN mode, break detection, and autobaud settings.

20.4.11 UART1 PCF: UART1 Configuration

Details the UART1PCF register for selecting the RX source.

Universal Serial Bus

21. Universal Serial Bus (USB0)

Details the USB0 peripheral, its features, block diagram, and endpoints.

21.1 Introduction

Introduces the USB0 peripheral as a full-speed USB 2.0 compliant device controller.

21.2 Features

Lists USB0 features like full/low speed, endpoints, low energy mode, and charger detection.

21.3 Functional Description

Explains endpoint addressing, transceiver control, clock configuration, VBUS control, registers, FIFO management, function addressing, and interrupts.

21.3.1 Endpoint Addressing

Details the eight endpoint pipes and their associated USB protocol addresses.

21.3.2 Transceiver Control

Explains transceiver configuration via USB0XCN for enable, speed, and test modes.

21.3.3 Clock Configuration

Describes USB module clock configuration for full or low speed operation.

21.3.4 VBUS Control

Explains VBUS control for detecting host connection and generating system interrupts.

21.3.5 Register Access

Details indirect register access via USB0ADR and USB0DAT SFRs.

21.3.6 FIFO Management

Explains the 1024 bytes of on-chip XRAM used as FIFO space for USB block.

21.3.7 Function Addressing

Describes the FADDR register for holding the current USB function address.

21.3.8 Function Configuration and Control

Explains USB register POWER for USB block control: reset, suspend, resume, and enable.

21.3.9 Interrupts

Details USB interrupt flags and enable bits located in IN1INT, OUT1INT, CMINT, IN1IE, OUT1IE, CMIE registers.

21.3.10 Serial Interface Engine

Explains the SIE for performing low-level USB protocol tasks and interrupting the processor.

21.3.11 Endpoint 0

Describes Endpoint 0 management through E0CSR, E0CNT, and its transactions.

21.3.12 Endpoints 1, 2, and 3

Details configuration and control registers for Endpoints 1-3 (IN, OUT, Split Mode).

21.3.13 Low Energy Mode

Explains USB module controls for optimizing power usage based on bus activity.

21.3.14 Charger Detect Function

Details the USB charger detection circuit compliant with USB-IF Battery Charging Specification.

21.4 USB0 Control Registers

Covers USB0 control registers, including transceiver control, address, data, endpoint index, and clock recovery.

21.4.1 USB0 XCN: USB0 Transceiver Control

Details the USB0XCN register for transceiver control: enable, speed, and test modes.

21.4.2 USB0 ADR: USB0 Indirect Address

Explains the USB0ADR register for selecting USB0 registers via indirect access.

21.4.3 USB0 DAT: USB0 Data

Details the USB0DAT register used for indirectly reading and writing USB0 registers.

21.4.4 INDEX: USB0 Endpoint Index

Explains the INDEX register for selecting the target endpoint for indexed USB0 register access.

21.4.5 CLKREC: USB0 Clock Recovery Control

Details the CLKREC register for USB clock recovery control.

21.4.6 FIFO0: USB0 Endpoint 0 FIFO Access

Explains the FIFODATA register for accessing the Endpoint 0 FIFO.

21.4.7 FIFO1: USB0 Endpoint 1 FIFO Access

Details the FIFODATA register for accessing the Endpoint 1 FIFO.

21.4.8 FIFO2: USB0 Endpoint 2 FIFO Access

Explains the FIFODATA register for accessing the Endpoint 2 FIFO.

21.4.9 FIFO3: USB0 Endpoint 3 FIFO Access

Details the FIFODATA register for accessing the Endpoint 3 FIFO.

21.4.10 FADDR: USB0 Function Address

Explains the FADDR register for holding the current USB function address.

21.4.11 POWER: USB0 Power

Details the POWER register for USB0 power control: suspend, resume, and reset.

21.4.12 FRAMEL: USB0 Frame Number Low

Explains the FRAMEL register containing bits 7-0 of the last received frame number.

21.4.13 FRAMEH: USB0 Frame Number High

Details the FRAMEH register containing bits 10-8 of the last received frame number.

21.4.14 IN1 INT: USB0 IN Endpoint Interrupt

Explains the IN1INT register for IN endpoint interrupt flags.

21.4.15 OUT1 INT: USB0 OUT Endpoint Interrupt

Details the OUT1INT register for OUT endpoint interrupt flags.

21.4.16 CMINT: USB0 Common Interrupt

Explains the CMINT register for common USB interrupt flags like SOF, Reset, Resume, Suspend.

21.4.17 IN1 IE: USB0 IN Endpoint Interrupt Enable

Details the IN1IE register for enabling IN endpoint interrupts.

21.4.18 OUT1 IE: USB0 OUT Endpoint Interrupt Enable

Explains the OUT1IE register for enabling OUT endpoint interrupts.

21.4.19 CMIE: USB0 Common Interrupt Enable

Details the CMIE register for enabling common USB interrupts.

21.4.20 E0 CSR: USB0 Endpoint0 Control

Explains the E0CSR register for Endpoint 0 control: setup, stall, and packet status.

21.4.21 E0 CNT: USB0 Endpoint0 Data Count

Details the E0CNT register for the number of received data bytes in Endpoint 0 FIFO.

21.4.22 EENABLE: USB0 Endpoint Enable

Explains the EENABLE register for enabling or disabling Endpoints 1-3.

21.4.23 EINCSRL: USB0 IN Endpoint Control Low

Details the EINCSRL register for IN endpoint control: data toggle, stall, flush, and packet status.

21.4.24 EINCSRH: USB0 IN Endpoint Control High

Explains the EINCSRH register for IN endpoint control: double-buffer, isochronous, and direction select.

21.4.25 EOUTCSRL: USB0 OUT Endpoint Control Low

Details the EOUTCSRL register for OUT endpoint control: stall, FIFO flush, and packet status.

21.4.26 EOUTCSRH: USB0 OUT Endpoint Control High

Explains the EOUTCSRH register for OUT endpoint control: double-buffer and isochronous transfer enable.

21.4.27 EOUTCNTL: USB0 OUT Endpoint Count Low

Details the EOUTCNTL register holding the lower bits of the data byte count.

21.4.28 EOUTCNTH: USB0 OUT Endpoint Count High

Explains the EOUTCNTH register holding the upper bits of the data byte count.

21.4.29 USB0 CF: USB0 Configuration

Details the USB0CF register for VBUS control and USB0 clock source selection.

21.4.30 USB0 AEC: USB0 Advanced Energy Control

Explains the USB0AEC register for low energy mode status and control.

21.4.31 USB0 CDCF: USB0 Charger Detect Configuration

Details the USB0CDCF register for configuring charger detection features and interrupts.

21.4.32 USB0 CDCN: USB0 Charger Detect Control

Explains the USB0CDCN register for enabling charger detection, secondary, and primary detection.

21.4.33 USB0 CDSTA: USB0 Charger Detect Status

Details the USB0CDSTA register for reporting charger detection status.

Watchdog Timer

22. Watchdog Timer (WDT0)

Details the programmable watchdog timer (WDT0) and its control register.

22.1 Introduction

Introduces the watchdog timer (WDT) that runs off the low-frequency oscillator.

22.2 Features

Lists watchdog timer features: programmable timeout, low-frequency oscillator, and lock-out.

22.3 Using the Watchdog Timer

Explains how to enable, reset, disable, and set the watchdog timer interval.

22.4 WDT0 Control Registers

Covers the WDT0 control register, WDTCN.

22.4.1 WDTCN: Watchdog Timer Control

Details the WDTCN register for controlling the watchdog timer's behavior.

C2 Debug Interface

23. C2 Debug and Programming Interface

Details the C2 debug interface for flash programming and in-system debugging.

23.1 Introduction

Introduces the on-chip Silicon Labs 2-Wire (C2) debug interface.

23.2 Features

Lists C2 interface features: programming, debugging, non-intrusive, memory access, breakpoints.

23.3 Pin Sharing

Explains how C2 pins can be shared with user functions for debugging and programming.

23.4 C2 Interface Registers

Covers C2 interface registers: C2ADD, C2DEVID, C2REVID, C2FPCTL, C2FPDAT.

23.4.1 C2 ADD: C2 Address

Details the C2ADD register for selecting target data registers for C2 commands.

23.4.2 C2 DEVID: C2 Device ID

Explains the C2DEVID register returning the 8-bit device ID.

23.4.3 C2 REVID: C2 Revision ID

Details the C2REVID register returning the 8-bit revision ID.

23.4.4 C2 FPCTL: C2 Flash Programming Control

Explains the C2FPCTL register for enabling flash programming via the C2 interface.

23.4.5 C2 FPDAT: C2 Flash Programming Data

Details the C2FPDAT register for passing flash commands, addresses, and data.

Revision History

24. Revision History

Provides revision history for the document, detailing changes in each version.

Revision 0.2

Details updates made in Revision 0.2, including WDT diagram and sections.

Revision 0.1

Notes the initial release of the document.

Silicon Laboratories EFM8 Series Specifications

General IconGeneral
Operating Temperature-40 °C to +85 °C
Core8051
Flash MemoryUp to 64KB
RAMUp to 4KB
Clock SpeedUp to 72MHz
ADC Resolution10-bit to 12-bit
Communication InterfacesI2C, SPI, UART
DAC Resolution12-bit
Timers16-bit
Package OptionsQFN, TSSOP
Number of DAC ChannelsUp to 2

Related product manuals