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

型号

产品描述

搜索
 

ADuC841BCP62-3

器件型号:ADuC841BCP62-3
器件类别:半导体    嵌入式处理器和控制器   
厂商名称:ADI [Analog Devices Inc]
下载文档

器件描述

8-BIT, FLASH, 8.38 MHz, MICROCONTROLLER, PQFP52

参数

ADuC841BCP62-3功能数量 1
ADuC841BCP62-3端子数量 52
ADuC841BCP62-3最大工作温度 85 Cel
ADuC841BCP62-3最小工作温度 -40 Cel
ADuC841BCP62-3最大供电/工作电压 3.6 V
ADuC841BCP62-3最小供电/工作电压 2.7 V
ADuC841BCP62-3额定供电电压 3 V
ADuC841BCP62-3外部数据总线宽度 8
ADuC841BCP62-3输入输出总线数量 32
ADuC841BCP62-3线速度 8.38 MHz
ADuC841BCP62-3加工封装描述 塑料, MO-112交流1, MQFP-52
ADuC841BCP62-3状态 ACTIVE
ADuC841BCP62-3工艺 CMOS
ADuC841BCP62-3包装形状 SQUARE
ADuC841BCP62-3包装尺寸 FLATPACK
ADuC841BCP62-3表面贴装 Yes
ADuC841BCP62-3端子形式 GULL WING
ADuC841BCP62-3端子间距 0.6500 mm
ADuC841BCP62-3端子涂层 锡 铅
ADuC841BCP62-3端子位置
ADuC841BCP62-3包装材料 塑料/环氧树脂
ADuC841BCP62-3温度等级 INDUSTRIAL
ADuC841BCP62-3ADC通道 Yes
ADuC841BCP62-3地址总线宽度 24
ADuC841BCP62-3位数 8
ADuC841BCP62-3最大FCLK时钟频率 20 MHz
ADuC841BCP62-3DAC通道 Yes
ADuC841BCP62-3微处理器类型 单片机
ADuC841BCP62-3PWM通道 Yes
ADuC841BCP62-3ROM编程 FLASH

文档预览

ADuC841BCP62-3器件文档内容

MicroConverter 12-Bit ADCs and DACs with
    Embedded High Speed 62-kB Flash MCU
               ADuC841/ADuC842/ADuC843

FEATURES                                                                                       FUNCTIONAL BLOCK DIAGRAM

Pin compatable ugrade of ADuC812/ADuC831/ADuC832                                               ADuC841/ADuC842/ADuC843                       12-BIT   BUF              DAC1
    Increased performance                                                                                                                     DAC
         Single-cycle 20 MIPS 8052 core
         High speed 420 kSPS 12-bit ADC                                                  ADC0                                                 12-BIT  BUF              DAC1
    Increased memory                                                                     ADC1                                                   DAC
         Up to 62 kBytes on-chip Flash/EE program memory                                                            T/H         12-BIT ADC                             PWM0
         4 kBytes on-chip Flash/EE data memory                                           ADC5    MUX                                          16-BIT                   PWM1
    In-circuit reprogrammable                                                            ADC6                                   HARDWARE     - DAC
         Flash/EE, 100 year retention, 100 kCycle endurance                              ADC7    TEMP                          CALIBRATON
         2304 bytes on-chip data RAM                                                           SENSOR                                         16-BIT
    Smaller package                                                                                                                          - DAC    MUX
         8 mm 8 mm chip scale package
         52-lead PQFP--pin compatable upgrade                                                                                                 16-BIT
                                                                                                                                               PWM
Analog I/O
    8-channel, 420 kSPS high accuracy, 12-bit ADC                                                                                             16-BIT
    On-chip, 15 ppm/C voltage reference                                                                                                       PWM
    DMA controller, high speed ADC-to-RAM capture
    Two 12-bit voltage output DACs1                                                                                      PLL2  20 MIPS 8052 BASED MCU WITH ADDITIONAL
    Dual output PWM - DACs                                                                                               OSC                           PERIPHERALS
    On-chip temperature monitor function
                                                                                                                                62 kBYTES FLASH/EE PROGRAM MEMORY
8052 based core                                                                                                                      4 kBYTES FLASH/EE DATA MEMORY
    8051 compatible instruction set (20 MHz max)                                                                                              2304 BYTES USER RAM

High performance single-cycle core                                                             INTERNAL                          3 16 BIT TIMERS POWER SUPPLY MON
    32 kHz external crystal, on-chip programmable PLL                                          BAND GAP                        1 REAL TIME CLOCK WATCHDOG TIMER
    12 interrupt sources, 2 priority levels
    Dual data pointers, extended 11-bit stack pointer                                              VREF                        4 PARALLEL  UART, I2 C, AND SPI             03260-0-001
                                                                                                                                 PORTS             SERIAL I/O
On-chip peripherals
    Time interval counter (TIC)                                                                CREF         XTAL1 XTAL2
    UART, I2C, and SPI Serial I/O
    Watchdog timer (WDT)                                                                                                       Figure 1.
    Power supply monitor (PSM)
                                                                                         GENERAL DESCRIPTION
Power
    Normal: 4.5 mA @ 3 V (core CLK = 2.098 MHz)                                          The ADuC841/ADuC842/ADuC843 are complete smart
    Power-down: 10 A @ 3 V2                                                             transducer front ends, that integrates a high performance self-
                                                                                         calibrating multichannel ADC, a dual DAC, and an optimized
Development tools                                                                        single-cycle 20 MHz 8-bit MCU (8051 instruction set
    Low cost, comprehensive development system                                           compatible) on a single chip.
    incorporating nonintrusive single-pin emulation,
    IDE based assembly and C source debugging                                            The ADuC841 and ADuC842 are identical with the exception of
                                                                                         the clock oscillator circuit; the ADuC841 is clocked directly
APPLICATIONS                                                                             from an external crystal up to 20 MHz whereas the ADuC842
                                                                                         uses a 32 kHz crystal with an on-chip PLL generating a
Optical networking--laser power control                                                  programmable core clock up to 16.78 MHz.
Base station systems
Precision instrumentation, smart sensors                                                 The ADuC843 is identical to the ADuC842 except that the
Transient capture systems                                                                ADuC843 has no analog DAC outputs.
DAS and communications systems
                                                                                         The microcontroller is an optimized 8052 core offering up to
1 ADuC841/ADuC842 only.                                                                  20 MIPS peak performance. Three different memory options
2 ADuC842/ADuC843 only, ADuC841 driven directly by external crystal.                     are available offering up to 62 kBytes of nonvolatile Flash/EE
                                                                                         program memory. Four kBytes of nonvolatile Flash/EE data
Rev. 0                                                                                   memory, 256 bytes RAM, and 2 kBytes of extended RAM are
                                                                                         also integrated on-chip.
Information furnished by Analog Devices is believed to be accurate and reliable.
However, no responsibility is assumed by Analog Devices for its use, nor for any                      (continued on page 15)
infringements of patents or other rights of third parties that may result from its use.
Specifications subject to change without notice. No license is granted by implication    One Technology Way, P.O. Box 9106, Norwood, MA 02062-9106, U.S.A.
or otherwise under any patent or patent rights of Analog Devices. Trademarks and
registered trademarks are the property of their respective owners.                       Tel: 781.329.4700                                            www.analog.com

                                                                                         Fax: 781.326.8703 2003 Analog Devices, Inc. All rights reserved.
ADuC841/ADuC842/ADuC843                                                                                  Pulse-Width Modulator (PWM).............................................. 42
                                                                                                         Serial Peripheral Interface (SPI)............................................... 45
TABLE OF CONTENTS                                                                                        I2C Compatible Interface........................................................... 48
                                                                                                         Dual Data Pointer....................................................................... 51
Specifications..................................................................................... 3    Power Supply Monitor ............................................................... 52
Absolute Maximum Ratings............................................................ 8                   Watchdog Timer......................................................................... 53
                                                                                                         Time Interval Counter (TIC).................................................... 54
  ESD Caution.................................................................................. 8        8052 Compatible On-Chip Peripherals................................... 57
Pin Configurations and Functional Descriptions ........................ 9                                Timer/Counter 0 and 1 Operating Modes.............................. 62
Terminology .................................................................................... 11      Timer/Counter Operating Modes............................................ 64
                                                                                                         UART Serial Interface................................................................ 65
  ADC Specifications .................................................................... 11             SBUF ............................................................................................ 65
  DAC Specifications..................................................................... 11             Interrupt System ......................................................................... 70
Typical Performance Characteristics ........................................... 12                       Hardware Design Considerations ............................................ 72
Functional Description .................................................................. 16             Other Hardware Considerations.............................................. 76
  8052 Instruction Set ................................................................... 16            Development Tools .................................................................... 77
  Other Single-Cycle Core Features ............................................ 18                       QuickStart Development System ............................................. 77
  Memory Organization ............................................................... 19               Timing Specifications, , .................................................................. 78
  Special Function Registers (SFRs)............................................ 20                     Outline Dimensions ....................................................................... 86
  Accumulator SFR (ACC)........................................................... 21                    Ordering Guides......................................................................... 87
  Special Function Register Banks .............................................. 22
  ADC Circuit Information.......................................................... 23
  Calibrating the ADC .................................................................. 30
  Nonvolatile Flash/EE Memory ................................................. 31
  Using Flash/EE Data Memory .................................................. 34
  User Interface to On-Chip Peripherals.................................... 38
  On-Chip PLL............................................................................... 41

REVISION HISTORY
Revision 0: Initial Version

Rev. 0 | Page 2 of 88
                                                                                                ADuC841/ADuC842/ADuC843

SPECIFICATIONS1

Table 1. AVDD = DVDD = 2.7 V to 3.6 V or 4.75 V to 5.25 V; VREF = 2.5 V internal reference, fCORE = 16.78 MHz @ 5 V 8.38 MHz @ 3 V;

all specifications TA = TMIN to TMAX, unless otherwise noted

Parameter                         VDD = 5 V                   VDD = 3 V              Unit       Test Conditions/Comments

ADC CHANNEL SPECIFICATIONS

DC ACCURACY2, 3                                                                                 fSAMPLE = 120 kHz, see the Typical
                                                                                                Performance Characteristics for typical
                                                                                                performance at other values of fSAMPLE

Resolution                        12                          12                     Bits

Integral Nonlinearity             1                          1                     LSB max    2.5 V internal reference

                                  0.3                        0.3                   LSB typ

Differential Nonlinearity         +1/0.9                     +1/0.9                LSB max    2.5 V internal reference

Integral Nonlinearity4            0.3                        0.3                   LSB typ    1 V external reference
Differential Nonlinearity4        2                          1.5                   LSB max    1 V external reference
                                  +1.5/0.9                   +1.5/0.9              LSB max

Code Distribution                 1                           1                      LSB typ    ADC input is a dc voltage

CALIBRATED ENDPOINT ERRORS5, 6

Offset Error                      3                          2                     LSB max

Offset Error Match                1                          1                     LSB typ

Gain Error                        3                          2                     LSB max

Gain Error Match                  1                          1                     LSB typ

DYNAMIC PERFORMANCE                                                                             fIN = 10 kHz sine wave
    Signal-to-Noise Ratio (SNR)7
                                                                                                fSAMPLE = 120 kHz

                                  71                          71                     dB typ

Total Harmonic Distortion (THD)   85                         85                    dB typ

Peak Harmonic or Spurious Noise   85                         85                    dB typ

Channel-to-Channel Crosstalk8     80                         80                    dB typ

ANALOG INPUT

Input Voltage Range               0 to VREF                   0 to VREF              V
Leakage Current                   1                          1                     A max

Input Capacitance                 32                          32                     pF typ

TEMPERATURE SENSOR9

Voltage Output at 25C            700                         700                    mV typ

Voltage TC                        1.4                        1.4                   mV/C typ

Accuracy                          1.5                        1.5                   C typ     Internal/External 2.5 V VREF

DAC CHANNEL SPECIFICATIONS                                                                      DAC load to AGND
Internal Buffer Enabled                                                                         RL = 10 k, CL = 100 pF
ADuC841/ADuC842 Only
                                  12                          12                     Bits       Guaranteed 12-bit monotonic
DC ACCURACY10                     3                          3                     LSB typ
    Resolution                    1                          1                     LSB max    VREF range
    Relative Accuracy             1/2                        1/2                   LSB typ    AVDD range
    Differential Nonlinearity11   50                         50                    mV max     VREF range
                                  1                          1                     % max      % of full-scale on DAC1
    Offset Error                  1                          1                     % typ
    Gain Error                    0.5                         0.5                    % typ      DAC VREF = 2.5 V
                                                                                                DAC VREF = VDD
    Gain Error Mismatch           0 to VREF                   0 to VREF              V typ
ANALOG OUTPUTS                    0 to VDD                    0 to VDD               V typ
                                  0.5                         0.5                     typ
    Voltage Range_0
    Voltage Range_1
    Output Impedance

                                                              Rev. 0 | Page 3 of 88
ADuC841/ADuC842/ADuC843

Parameter                                                  VDD = 5 V VDD = 3 V Unit           Test Conditions/Comments
DAC AC CHARACTERISTICS
                                                           15         15          s typ      Full-scale settling time to within
    Voltage Output Settling Time                                                               LSB of final value
                                                           10         10          nV-sec typ  1 LSB change at major carry
    Digital-to-Analog Glitch Energy
DAC CHANNEL SPECIFICATIONS12, 13                           12         12          Bits        Guaranteed 12-bit monotonic
Internal Buffer Disabled ADuC841/ADuC842 Only              3         3          LSB typ
DC ACCURACY10                                              1         1          LSB max     VREF range
                                                           1/2       1/2        LSB typ     VREF range
    Resolution                                             5         5          mV max      % of full-scale on DAC1
    Relative Accuracy                                      0.5       0.5        % typ
    Differential Nonlinearity11                            0.5        0.5         % typ

    Offset Error                                           0 to VREF  0 to VREF   V typ       DAC VREF = 2.5 V
    Gain Error
    Gain Error Mismatch4                                   2.5        2.5         V           Of VREF measured at the CREF pin
ANALOG OUTPUTS                                             10        10         mV Max      TA = 25C
    Voltage Range_0
REFERENCE INPUT/OUTPUT REFERENCE OUTPUT14                  65         67          dB typ
    Output Voltage (VREF)                                  15        15         ppm/C typ
    Accuracy                                               2          2           ms typ

    Power Supply Rejection                                 1          1           V min       Internal band gap deselected via
    Reference Temperature Coefficient                      VDD        VDD         V max       ADCCON1.6
    Internal VREF Power-On Time                            20         20          k typ
EXTERNAL REFERENCE INPUT15                                 1          1           A max
    Voltage Range (VREF) 4
                                                                      2.93        V min       Two trip points selectable in this
    Input Impedance                                                   3.08        V max       range programmed via TPD10 in
    Input Leakage                                                                             PSMCON, 3 V part only
                                                                      2.5        % max
POWER SUPPLY MONITOR (PSM)
    DVDD Trip Point Selection Range                        0          0           ms min      Nine timeout periods selectable in
                                                           2000       2000        ms max      this range
    DVDD Power Supply Trip Point Accuracy
WATCHDOG TIMER (WDT) 4                                     100,000    100,000     Cycles min
                                                           100        100         Years min
    Timeout Period
                                                           10        10         A max      VIN = 0 V or VDD
FLASH/EE MEMORY RELIABILITY CHARACTERISTICS16                                     A typ      VIN = 0 V or VDD
    Endurance17                                            1         1
    Data Retention18
                                                           10        10         A max      VIN = VDD
DIGITAL INPUTS                                             1         1          A typ      VIN = VDD
    Input Leakage Current (Port 0, EA)                     75        25         A max
                                                           40        15         A typ      VIL = 450 mV
    Logic 1 Input Current                                  660       250        A max      VIL = 2 V
    (All Digital Inputs), SDATA, SCLOCK                    400       140        A typ      VIL = 2 V
                                                           10        10         A max      VIN = 0 V
    Logic 0 Input Current (Ports 1, 2, 3) SDATA, SCLOCK    10         5           A min      VIN = 5 V, 3 V Internal Pull Down
                                                           105        35          A max      VIN = 5 V, 3 V Internal Pull Down
    Logic 1 to Logic 0 Transition Current (Ports 2 and 3)

    RESET

                                                           Rev. 0 | Page 4 of 88
Parameter                                     VDD = 5 V  VDD = 3 V Unit              ADuC841/ADuC842/ADuC843
LOGIC INPUTS4
INPUT VOLTAGES                                                                             Test Conditions/Comments
All Inputs Except SCLOCK, SDATA, RESET, and
XTAL1                                         0.8        0.4                V max

  VINL, Input Low Voltage                     2.0        2.0                V min
  VINH, Input High Voltage
SDATA                                         0.8        0.8                V max
  VINL, Input Low Voltage
  VINH, Input High Voltage                    2.0        2.0                V min

SCLOCK and RESET Only4                        1.3        0.95               V min
(Schmitt-Triggered Inputs)
                                              3.0        0.25               V max
    VT+
                                              0.8        0.4                V min
    VT
                                              1.4        1.1                V max
    VT+ VT
                                              0.3        0.3                V min
CRYSTAL OSCILLATOR
    Logic Inputs, XTAL1 Only                  0.85       0.85               V max
    VINL, Input Low Voltage
    VINH, Input High Voltage                  0.8        0.4                V typ
    XTAL1 Input Capacitance
    XTAL2 Output Capacitance                  3.5        2.5                V typ

MCU CLOCK RATE                                18         18                 pF typ

DIGITAL OUTPUTS                               18         18                 pF typ
    Output High Voltage (VOH)
                                              16.78      8.38               MHz max  ADuC842/ADuC843 Only
    Output Low Voltage (VOL)
    ALE, Ports 0 and 2                        20         8.38               MHz max  ADuC841 Only

    Port 3                                    2.4                           V min    VDD = 4.5 V to 5.5 V
  SCLOCK/SDATA
                                              4                             V typ    ISOURCE = 80 A
    Floating State Leakage Current4
                                                         2.4                V min    VDD = 2.7 V to 3.3 V
STARTUP TIME
    At Power-On                                          2.6                V typ    ISOURCE = 20 A
    From Idle Mode
    From Power-Down Mode                      0.4        0.4                V max    ISINK = 1.6 mA
         Wake-up with INT0 Interrupt
         Wake-up with SPI/I2C Interrupt       0.2        0.2                V typ    ISINK = 1.6 mA
         Wake-up with External RESET
         After External RESET in Normal Mode  0.4        0.4                V max    ISINK = 4 mA
         After WDT Reset in Normal Mode
                                              0.4        0.4                V max    ISINK = 8 mA, I2C Enabled

                                              10        10                A max

                                              1         1                 A typ

                                                                                     At any core CLK

                                              500        500                ms typ

                                              100        100                s typ

                                              150        400                s typ

                                              150        400                s typ

                                              150        400                s typ

                                              30         30                 ms typ

                                              3          3                  ms typ   Controlled via WDCON SFR

                                                     Rev. 0 | Page 5 of 88
ADuC841/ADuC842/ADuC843

Parameter                                 VDD = 5 V  VDD = 3 V Unit            Test Conditions/Comments
POWER REQUIREMENTS19, 20
                                                     2.7               V min   AVDD/DVDD = 3 V nom
    Power Supply Voltages
         AVDD/DVDD AGND                                                      AVDD/DVDD = 5 V nom

                                                     3.6               V max   Core CLK = 2.097 MHz
                                                                               Core CLK = 2.097 MHz
                                          4.75                         V min   Core CLK = 16.78MHz/8.38 MHz 5 V/3 V
                                                                               Core CLK = 16.78MHz/8.38 MHz 5 V/3 V
                                          5.25                         V max   Core CLK = 16.78MHz/8.38 MHz 5 V/3 V
                                                                               Core CLK = 20MHz ADuC841 Only
Power Supply Currents Normal Mode21
                                                                               Core CLK = 2.097 MHz
DVDD Current4                             10         4.5               mA typ  Core CLK = 2.097 MHz
                                                                               Core CLK = 16.78MHz/8.38 MHz 5 V/3 V
AVDD Current                              1.7        1.7               mA max  Core CLK = 16.78MHz/8.38 MHz 5 V/3 V
                                                                               Core CLK = 16.78MHz/8.38 MHz 5 V/3 V
DVDD Current                              38         12                mA max  Core CLK = any frequency
                                                                               Oscillator Off / TIMECON.1 = 0
                                          33         10                mA typ
                                                                               Core CLK = any frequency
AVDD Current                              1.7        1.7               mA max  ADuC841 Only
                                                                               TIMECON.1 = 1
DVDD Current4                             45         N/A               mA max  Core CLK = any frequency
                                                                               ADuC842/ADuC843 Only
Power Supply Currents Idle Mode21                                              Oscillator On

DVDD Current                              4.5        2.2               mA typ  AVDD = DVDD
                                                                               MCLK Divider = 32
AVDD Current                              3          2                 A typ  MCLK Divider = 2

DVDD Current4                             12         5                 mA max

                                          10         3.5               mA typ

AVDD Current                              3          2                 A typ

Power Supply Currents Power-Down Mode21

DVDD Current                              28         18                A max

                                          20         10                A typ

AVDD Current                              2          1                 A typ

DVDD Current4                             3          1                 mA max

DVDD Current4                             50         22                A max

                                          40         15                A typ

Typical Additional Power Supply Currents

PSM Peripheral                            15         10                A typ

ADC4                                      1.0        1.0               mA min

                                          2.8        1.8               mA max

DAC                                       150        130               A typ

See footnotes on the next page.

                                                Rev. 0 | Page 6 of 88
                                                                                                                          ADuC841/ADuC842/ADuC843

1 Temperature Range 40C to +85C.

2 ADC linearity is guaranteed during normal MicroConverter core operation.

3 ADC LSB size = VREF/212, i.e., for internal VREF = 2.5 V, 1 LSB = 610 V, and for external VREF = 1 V, 1 LSB = 244 V.

4 These numbers are not production tested but are supported by design and/or characterization data on production release.

5 Offset and gain error and offset and gain error match are measured after factory calibration.

6 Based on external ADC system components, the user may need to execute a system calibration to remove additional external channel errors to achieve these

specifications.

7 SNR calculation includes distortion and noise components.

8 Channel-to-channel crosstalk is measured on adjacent channels.

9 The temperature monitor gives a measure of the die temperature directly; air temperature can be inferred from this result.

10 DAC linearity is calculated using:

Reduced code range of 100 to 4095, 0 V to VREF range.

Reduced code range of 100 to 3945, 0 V to VDD range.

DAC output load = 10 k and 100 pF.

11 DAC differential nonlinearity specified on 0 V to VREF and 0 V to VDD ranges.

12 DAC specification for output impedance in the unbuffered case depends on DAC code.

13 DAC specifications for ISINK, voltage output settling time, and digital-to-analog glitch energy depend on external buffer implementation in unbuffered mode. DAC in

unbuffered mode tested with OP270 external buffer, which has a low input leakage current.

14 Measured with CREF pin decoupled with 0.47 F capacitor to ground. Power-up time for the internal reference is determined by the value of the decoupling capacitor

chosen for the CREF pin.

15 When using an external reference device, the internal band gap reference input can be bypassed by setting the ADCCON1.6 bit.

16 Flash/EE memory reliability characteristics apply to both the Flash/EE program memory and the Flash/EE data memory.

17 Endurance is qualified to 100,000 cycles as per JEDEC Std. 22 method A117 and measured at 40C, +25C, and +85C. Typical endurance at 25C is 700,000 cycles.

18 Retention lifetime equivalent at junction temperature (TJ) = 55C as per JEDEC Std. 22 method A117. Retention lifetime based on an activation energy of 0.6 eV derates

with junction temperature as shown in Figure 38 in the Flash/EE Memory Reliability section.

19 Power supply current consumption is measured in normal, idle, and power-down modes under the following conditions:

Normal Mode:              Reset = 0.4 V, digital I/O pins = open circuit, Core Clk changed via CD bits in PLLCON (ADuC842/ADuC843), core executing internal

                          software loop.

Idle Mode:                Reset = 0.4 V, digital I/O pins = open circuit, Core Clk changed via CD bits in PLLCON (ADuC842/ADuC843), PCON.0 = 1, core execution

                          suspended in idle mode.

Power-Down Mode: Reset = 0.4 V, all Port 0 pins = 0.4 V, All other digital I/O and Port 1 pins are open circuit, Core Clk changed via CD bits in PLLCON

                          (ADuC842/ADuC843), PCON.0 = 1, core execution suspended in power-down mode, OSC turned on or off via OSC_PD bit (PLLCON.7) in

                          PLLCON SFR (ADuC842/ADuC843).

20 DVDD power supply current increases typically by 3 mA (3 V operation) and 10 mA (5 V operation) during a Flash/EE memory program or erase cycle.

21 Power supply currents are production tested at 5.25 V and 3.3 V for a 5 V and 3 V part, respectively.

                                                                  Rev. 0 | Page 7 of 88
ADuC841/ADuC842/ADuC843

ABSOLUTE MAXIMUM RATINGS

Table 2. TA = 25C, unless otherwise noted

Parameter                       Rating

AVDD to DVDD                    0.3 V to +0.3 V
AGND to DGND                    0.3 V to +0.3 V

DVDD to DGND, AVDD to AGND      0.3 V to +7 V                                                        Stresses above those listed under Absolute Maximum Ratings
Digital Input Voltage to DGND   0.3 V to DVDD + 0.3 V                                                may cause permanent damage to the device. This is a stress
Digital Output Voltage to DGND  0.3 V to DVDD + 0.3 V                                                rating only and functional operation of the device at these or
VREF to AGND                    0.3 V to AVDD + 0.3 V                                                any other conditions above those indicated in the operational
Analog Inputs to AGND           0.3 V to AVDD + 0.3 V                                                section of this specification is not implied. Exposure to absolute
                                                                                                      maximum rating conditions for extended periods may affect
Operating Temperature Range,    40C to +85C                                                        device reliability.
Industrial
ADuC841BS,ADuC842BS,ADuC843BS
ADuC841BCP, ADuC842BCP,
ADuC843BCP

Storage Temperature Range       65C to +150C

Junction Temperature            150C

JA Thermal Impedance (ADuC84xBS) 90C/W
JA Thermal Impedance (ADuC84xBCP) 52C/W

Lead Temperature, Soldering     215C
Vapor Phase (60 sec)           220C
Infrared (15 sec)

ESD CAUTION

ESD (electrostatic discharge) sensitive device. Electrostatic charges as high as 4000 V readily accumulate on the
human body and test equipment and can discharge without detection. Although this product features
proprietary ESD protection circuitry, permanent damage may occur on devices subjected to high energy
electrostatic discharges. Therefore, proper ESD precautions are recommended to avoid performance
degradation or loss of functionality.

                                                                   ADuC841/ADuC842/ADuC843                                                    12-BIT              DAC0
                                                                                                                                           VOLTAGE
              ADC0                                         T/H     12-BIT                                    ADC                    DAC  OUTPUT DAC               DAC1
              ADC..1.                 MUX                          ADC                                  CONTROL                 CONTROL
                                                                                                                                              12-BIT              PWM0
                   ...    TEMP                                                                               AND                           VOLTAGE                PWM1
              ADC6      SENSOR                                                                        CALIBRATION                        OUTPUT DAC
              ADC7                                                                                                                                                T0
                                   BAND GAP                                                                                                         16-BIT        T1
               CREF              REFERENCE                                                                                                          - DAC         T2
                                                                                                                                                                  T2EX
                                                  BUF                                                                              PWM               16-BIT  MUX  INT0
                                                                                                                                CONTROL              - DAC        INT1
                                                              POR
                                                                                                                                                     16-BIT
                                                                                                                                                      PWM

                                                                    62 kBYTES PROGRAM                 8052                      256 BYTES USER      16-BIT
                                                                    FLASH/EE INCLUDING                                                  RAM         PWM
                                                                                                      MCU
                                                                       USER DOWNLOAD                  CORE                         WATCHDOG               16-BIT
                                                                                MODE                                                   TIMER           COUNTER

                                                                         4 kBYTES DATA                                                                  TIMERS
                                                                             FLASH/EE
                                                                                                                                POWER SUPPLY
                                                                    2 kBYTES USER XRAM                                               MONITOR

                                                                     2 DATA POINTERS
                                                                   11-BIT STACK POINTER

                                                                   DOWNLOADER                                                            TIME INTERVAL
                                                                     DEBUGGER                                                                COUNTER

                                                                                                                                         (WAKE-UP CCT)

                                                                   ASYNCHRONOUS                       UART         SINGLE-PIN     SYNCHRONOUS       PLL                 03260-0-002
                                                                     SERIAL PORT                      TIMER           EMULATOR  SERIAL INTERFACE    OSC
                                                                          (UART)
                                                                                                                                    (I2C AND SPI )

                        AVDD                                                                          ALE                       SCLOCK              XTAL1
                              AGND                                                                         PSEN                      SDATA\MOSI            XTAL2
                                    DVDD
                                          DVDD                                                                   EA                        MISO
                                                 DVDD                                                                                           SS
                                                       DGND
                                                              DGND
                                                                     DGND
                                                                           RESET

                                                                                           RxD
                                                                                                 TxD

                             Figure 2. ADuC Block Diagram (Shaded Areas are Features Not Present on the ADuC812),
                                                No DACs on ADuC843, PLL on ADuC842/ADuC843 Only.

                                                                        Rev. 0 | Page 8 of 88
                                                               ADuC841/ADuC842/ADuC843
PIN CONFIGURATIONS AND FUNCTIONAL DESCRIPTIONS

                        P0.7/AD7
                            P0.6/AD6
                                 P0.5/AD5
                                     P0.4/AD4
                                          DVDD
                                               DGND
                                                   P0.3/AD3
                                                        P0.2/AD2
                                                             P0.1/AD1
                                                                 P0.0/AD0
                                                                      ALE
                                                                           PSEN
                                                                               EA
                                                                                                                                                              56 P1.0/ADC0/T2
                                                                                                                                                                   55 P0.7/AD7
                                                                                                                                                                        54 P0.6/AD6
                                                                                                                                                                             53 P0.5/AD5
                                                                                                                                                                                 52 P0.4/AD4
                                                                                                                                                                                      51 DVDD
                                                                                                                                                                                           50 DGND
                                                                                                                                                                                               49 P0.3/AD3
                                                                                                                                                                                                    48 P0.2/AD2
                                                                                                                                                                                                         47 P0.1/AD1
                                                                                                                                                                                                              46 P0.0/AD0
                                                                                                                                                                                                                   45 ALE
                                                                                                                                                                                                                       44 PSEN
                                                                                                                                                                                                                            43 EA
                        52 51 50 49 48 47 46 45 44 43 42 41 40

    P1.0/ADC0/T2 1          PIN 1                               39 P2.7/PWM1/A15/A23  P1.1/ADC1/T2EX        1                             42                                                                                       P2.7/A15/A23
P1.1/ADC1/T2EX 2            IDENTIFIER                          38 P2.6/PWM0/A14/A22          P1.2/ADC2                                                                                                                            P2.6/A14/A22
                                                                37 P2.5/A13/A21                             2 PIN 1                       41                                                                                       P2.5/A13/A21
        P1.2/ADC2 3     ADuC841/ADuC842/ADuC843                 36 P2.4/A12/A20               P1.3/ADC3                                                                                                                            P2.4/A12/A20
        P1.3/ADC3 4               52-LEAD PQFP                  35 DGND                              AVDD   3 IDENTIFIER                  40                                                                                       DGND
                                                                34 DVDD                               AVDD                                                                                                                         DGND
                AVDD 5                      TOP VIEW            33 XTAL2                             AGND   4                             39                                                                                       DVDD
               AGND 6                     (Not to Scale)        32 XTAL1                            AGND                                                                                                                           XTAL2
                                                                31 P2.3/A11/A19                     AGND    5                             38                                                                                       XTAL1
                CREF 7                                          30 P2.2/A10/A18                       CREF                                                                                                                         P2.3/A11/A19
                VREF 8                                          29 P2.1/A9/A17                        VREF  6 ADuC841/ADuC842/ADuC843 37                                                                                           P2.2/A10/A18
               DAC0 9                                           28 P2.0/A8/A16                       DAC0                                                                                                                          P2.1/A9/A17
               DAC1 10                                          27 SDATA/MOSI                               7        56-LEAD CSP          36                                                                                       P2.0/A8/A16
                                                                                                     DAC1                                                                                                                          SDATA/MOSI
        P1.4/ADC4 11                                                                          P1.4/ADC4     8             TOP VIEW        35
   P1.5/ADC5/SS 12                                                                       P1.5/ADC5/SS
                                                                                                            9             (Not to Scale)  34
        P1.6/ADC6 13
                                                                                                            10                            33

                                                                                                            11                            32

                        14 15 16 17 18 19 20 21 22 23 24 25 26                                              12                            31

                                                                                                            13                            30
                        P1.7/ADC7
                            RESET                                                                           14                            29

                                 P3.0/RXD
                                     P3.1/TXD
                                          P3.2/INT0
                                               P3.3/INT1/MISO/PWM1

                                                   DVDD
                                                        DGND
                                                             P3.4/T0/PWMC/PWM0/EXTCLK*
                                                                 P3.5/T1/CONVST
                                                                      P3.6/WR
                                                                          P3.7/RD
                                                                               SCLOCK

                                                                                                                                                                        03260-0-003

                                                                                                                                                              P1.6/ADC6 15
                                                                                                                                                                   P.7/ADC7 16
                                                                                                                                                                        RESET 17
                                                                                                                                                                             P3.0/RxD 18
                                                                                                                                                                                 P3.1/TxD 19
                                                                                                                                                                                      P3.2/INT0 20

                                                                                                                                                                                           P3.3/INT1/MISO/PWM1 21
                                                                                                                                                                                                DVDD 22
                                                                                                                                                                                                    DGND 23

                                                                                                                                                                                                         P3.4/T0/PWMC/PWM0/EXTCLK* 24
                                                                                                                                                                                                              P3.5/T1/CONVST 25
                                                                                                                                                                                                                  P3.6/WR 26
                                                                                                                                                                                                                       P3.7/RD 27
                                                                                                                                                                                                                            SCLOCK 28

                                                                                                                                                                                                                                                                                                                                                                                 03260-0-004
*EXTCLK NOT PRESENT ON THE ADuC841                                                    *EXTCLK NOT PRESENT ON THE ADuC841

                                  Figure 3. 52-Lead PQPF                                                          Figure 4. 56-Lead CSP

Table 3. Pin Function Descriptions

Mnemonic Type Function

DVDD                    P  Digital Positive Supply Voltage. 3 V or 5 V nominal.

AVDD                    P  Analog Positive Supply Voltage. 3 V or 5 V nominal.

CREF                    I/O Decoupling Input for On-Chip Reference. Connect a 0.47 F capacitor between this pin and AGND.

VREF                    NC Not connected. This was reference out on the ADuC812; the CREF pin should be used instead.

AGND                    G  Analog Ground. Ground reference point for the analog circuitry.

P1.0P1.7               I  Port 1 is an 8-bit input port only. Unlike other ports, Port 1 defaults to analog input mode. To configure any of

                           these port pins as a digital input, write a 0 to the port bit.

ADC0ADC7 I                Analog Inputs. Eight single-ended analog inputs. Channel selection is via ADCCON2 SFR.

T2                      I  Timer 2 Digital Input. Input to Timer/Counter 2. When enabled, Counter 2 is incremented in response to a 1-to-0

                           transition of the T2 input.

T2EX                    I  Digital Input. Capture/reload trigger for Counter 2; also functions as an up/down control input for Counter 2.

SS                      I  Slave Select Input for the SPI Interface.

SDATA                   I/O User Selectable, I2C Compatible, or SPI Data Input/Output Pin.

SCLOCK                  I/O Serial Clock Pin for I2C Compatible or for SPI Serial Interface Clock.

MOSI                    I/O SPI Master Output/Slave Input Data I/O Pin for SPI Interface.

MISO                    I/O SPI Master Input/Slave Output Data I/O Pin for SPI Serial Interface.

DAC0                    O  Voltage Output from DAC0. This pin is a no connect on the ADuC843.

DAC1                    O  Voltage Output from DAC1. This pin is a no connect on the ADuC843.

RESET                   I  Digital Input. A high level on this pin for 24 master clock cycles while the oscillator is running resets the device.

                                                                Rev. 0 | Page 9 of 88
ADuC841/ADuC842/ADuC843

Mnemonic Type Function

P3.0P3.7  I/O Port 3 is a bidirectional port with internal pull-up resistors. Port 3 pins that have 1s written to them are pulled high
                     by the internal pull-up resistors, and in that state can be used as inputs. As inputs, Port 3 pins being pulled
                     externally low source current because of the internal pull-up resistors. Port 3 pins also contain various secondary
                     functions, which are described below.

PWMC       I  PWM Clock Input.

PWM0       O  PWM0 Voltage Output. PWM outputs can be configured to use Ports 2.6 and 2.7 or Ports 3.4 and 3.3.

PWM1       O  PWM1 Voltage Output. See the CFG841/CFG842 register for further information.

RxD        I/O Receiver Data Input (Asynchronous) or Data Input/Output (Synchronous) of the Serial (UART) Port.

TxD        O  Transmitter Data Output (Asynchronous) or Clock Output (Synchronous) of the Serial (UART) Port.

INT0       I  Interrupt 0. Programmable edge or level triggered interrupt input; can be programmed to one of two priority

              levels. This pin can also be used as a gate control input to Timer 0.

INT1       I  Interrupt 1. Programmable edge or level triggered interrupt input; can be programmed to one of two priority

              levels. This pin can also be used as a gate control input to Timer 1.

T0         I  Timer/Counter 0 Input.

T1         I  Timer/Counter 1 Input.

CONVST     I  Active Low Convert Start Logic Input for the ADC Block when the External Convert Start Function is Enabled. A

              low-to-high transition on this input puts the track-and-hold into hold mode and starts the conversion.

EXTCLK     I  Input for External Clock Signal. Has to be enabled via the CFG842 register.

WR         O  Write Control Signal, Logic Output. Latches the data byte from Port 0 into the external data memory.

RD         O  Read Control Signal, Logic Output. Enables the external data memory to Port 0.

XTAL2      O  Output of the Inverting Oscillator Amplifier.

XTAL1      I  Input to the Inverting Oscillator Amplifier.

DGND       G  Digital Ground. Ground reference point for the digital circuitry.

P2.0P2.7  I/O Port 2 is a bidirectional port with internal pull-up resistors. Port 2 pins that have 1s written to them are pulled high
(A8A15)             by the internal pull-up resistors, and in that state can be used as inputs. As inputs, Port 2 pins being pulled
(A16A23)            externally low source current because of the internal pull-up resistors. Port 2 emits the middle and high-order
                     address bytes during accesses to the external 24-bit external data memory space.

PSEN       O  Program Store Enable, Logic Output. This pin remains low during internal program execution. PSEN is used to

              enable serial download mode when pulled low through a resistor on power-up or reset. On reset this pin will

              momentarily become an input and the status of the pin is sampled. If there is no pulldown resistor in place the pin

              will go momentarilly high and then user code will execute. If a pull-down resistor is in place, the embedded serial

              download/debug kernel will execute.

ALE        O  Address Latch Enable, Logic Output. This output is used to latch the low byte and page byte for 24-bit address

              space accesses of the address into external data memory.

EA         I  External Access Enable, Logic Input. When held high, this input enables the device to fetch code from internal

              program memory locations. The parts do not support external code memory. This pin should not be left floating.

P0.7P0.0  I/O Port 0 is an 8-bit open-drain bidirectional I/O port. Port 0 pins that have 1s written to them float, and in that state

(A0-A7)       can be used as high impedance inputs. Port 0 is also the multiplexed low-order address and data bus during

              accesses to external data memory. In this application, it uses strong internal pull-ups when emitting 1s.

Types: P = Power, G = Ground, I= Input, O = Output., NC = No Connect

                                                                      Rev. 0 | Page 10 of 88
TERMINOLOGY                                                                       ADuC841/ADuC842/ADuC843

ADC SPECIFICATIONS                                                   DAC SPECIFICATIONS

Integral Nonlinearity                                                Relative Accuracy
The maximum deviation of any code from a straight line               Relative accuracy or endpoint linearity is a measure of the
passing through the endpoints of the ADC transfer function.          maximum deviation from a straight line passing through the
The endpoints of the transfer function are zero scale, a point       endpoints of the DAC transfer function. It is measured after
LSB below the first code transition, and full scale, a point       adjusting for zero error and full-scale error.
LSB above the last code transition.                                Voltage Output Settling Time
                                                                     The amount of time it takes for the output to settle to a
Differential Nonlinearity                                            specified level for a full-scale input change.
The difference between the measured and the ideal 1 LSB              Digital-to-Analog Glitch Impulse
change between any two adjacent codes in the ADC.                    The amount of charge injected into the analog output when the
                                                                     inputs change state. It is specified as the area of the glitch in nV-sec.
Offset Error
The deviation of the first code transition (0000 . . . 000) to
(0000 . . . 001) from the ideal, i.e., + LSB.

Gain Error
The deviation of the last code transition from the ideal AIN
voltage (Full Scale LSB) after the offset error has been
adjusted out.

Signal-to-(Noise + Distortion) Ratio
The measured ratio of signal to (noise + distortion) at the
output of the ADC. The signal is the rms amplitude of the
fundamental. Noise is the rms sum of all nonfundamental
signals up to half the sampling frequency (fS/2), excluding dc.
The ratio depends on the number of quantization levels in the
digitization process; the more levels, the smaller the quantization
noise. The theoretical signal-to-(noise + distortion) ratio for an
ideal N-bit converter with a sine wave input is given by

          Signal-to-(Noise + Distortion) = (6.02N + 1.76) dB

Thus for a 12-bit converter, this is 74 dB.

Total Harmonic Distortion (THD)
The ratio of the rms sum of the harmonics to the fundamental.

Rev. 0 | Page 11 of 88
ADuC841/ADuC842/ADuC843

TYPICAL PERFORMANCE CHARACTERISTICS

The typical performance plots presented in this section              Figure 16 shows a histogram plot of 10,000 ADC conversion
illustrate typical performance of the ADuC841/ADuC842/               results on a dc input for VDD = 3 V. The plot again illustrates a
ADuC843 under various operating conditions.                          very tight code distribution of 1 LSB with the majority of codes
                                                                     appearing in one output pin.
Figure 5 and Figure 6 show typical ADC integral nonlinearity
(INL) errors from ADC Code 0 to Code 4095 at 5 V and 3 V             Figure 17 and Figure 18 show typical FFT plots for the parts.
supplies, respectively. The ADC is using its internal reference      These plots were generated using an external clock input. The
(2.5 V) and is operating at a sampling rate of 152 kHz; the          ADC is using its internal reference (2.5 V), sampling a full-scale,
typical worst-case errors in both plots are just less than 0.3 LSB.  10 kHz sine wave test tone input at a sampling rate of 149.79 kHz.
Figure 7 and Figure 8 also show ADC INL at a higher sampling         The resulting FFTs shown at 5 V and 3 V supplies illustrate an
rate of 400 kHz. Figure 9 and Figure 10 show the variation in        excellent 100 dB noise floor, 71 dB signal-to-noise ratio (SNR),
worst-case positive (WCP) INL and worst-case negative (WCN)          and THD greater than 80 dB.
INL versus external reference input voltage.
                                                                     Figure 19 and Figure 20 show typical dynamic performance
Figure 11 and Figure 12 show typical ADC differential                versus external reference voltages. Again, excellent ac perform-
nonlinearity (DNL) errors from ADC Code 0 to Code 4095 at            ance can be observed in both plots with some roll-off being
5 V and 3 V supplies, respectively. The ADC is using its internal    observed as VREF falls below 1 V.
reference (2.5 V) and is operating at a sampling rate of 152 kHz;
the typical worst-case errors in both plots are just less than       Figure 21 shows typical dynamic performance versus sampling
0.2 LSB. Figure 13 and Figure 14 show the variation in worst-        frequency. SNR levels of 71 dB are obtained across the sampling
case positive (WCP) DNL and worst-case negative (WCN) DNL            range of the parts.
versus external reference input voltage.
                                                                     Figure 22 shows the voltage output of the on-chip temperature
Figure 15 shows a histogram plot of 10,000 ADC conversion            sensor versus temperature. Although the initial voltage output at
results on a dc input with VDD = 5 V. The plot illustrates an        25C can vary from part to part, the resulting slope of -1. 4 mV/C
excellent code distribution pointing to the low noise                is constant across all parts.
performance of the on-chip precision ADC.

1.0                                                                                     1.0
                                                                                        0.8
0.8      AVDD / DVDD = 5V                                                               0.6                                                            AVDD /DVDD = 3V
                                                                                        0.4                                                     fS = 152kHz
         fS = 152kHz                                                                    0.2
                                                                                                511 1023 1535 2047 2559 3071 3583 4095
0.6                                                                                        0                                ADC CODES
                                                                                       0.2
0.4                                                                                    0.4
                                                                                       0.6
0.2                                                                                    0.8
                                                                                       1.0
LSBs0
                                                                                             0
                                                                                                                                                               03260-0-0050.2

                                                                                                                                           LSBs0.4

                                                                                                                                                                                                                                                                                                                                                                                    03260-0-0060.6

0.8     511 1023 1535 2047 2559 3071 3583 4095
                                    ADC CODES
1.0
      0

         Figure 5. Typical INL Error, VDD = 5 V, fs = 152 kHz                                   Figure 6. Typical INL Error, VDD = 3 V, fs = 152 kHz

                                                               Rev. 0 | Page 12 of 88
                                                                                                                                                               ADuC841/ADuC842/ADuC843

                       1.0                                                                                                                       0.8                                                                0.8
                       0.8
                       0.6                                                         AVDD/DVDD = 5V                                                                             AVDD/DVDD = 3V
                       0.4
                       0.2                                                  fS = 400kHz                                                          0.6                          fS = 152kHz                           0.6

                          0                                                        CD = 4                                                        0.4                          WCP INL                               0.4
                      0.2
                      0.4     511 1023 1535 2047 2559 3071 3583 4095                              03260-0-098                                   0.2                                                                0.2           WCNINL (LSBs)
                      0.6                                ADC CODES
                LSBs  0.8                                                                                                       WCPINL (LSBs)  0                                                                  0
                      1.0
                                                                                                                                                 0.2                                                               0.2
                            0
                                                                                                                                                 0.4                         WCN INL                               0.4

                                                                                                                                                 0.6                                                               0.6

                                                                                                                                                 0.8                                                               0.8                       03260-0-008

                                                                                                                                                          0.5  1.0  1.5  2.0  2.5      3.0

                                                                                                                                                               EXTERNAL REFERENCE (V)

                               Figure 7. Typical INL Error, VDD = 5 V, fS = 400 kHz                                                                    Figure 10. Typical Worst-Case INL Error vs. VREF, VDD = 3 V

                LSBs   1.0                                                         AVDD/DVDD = 3V  03260-0-099                                    1.0                                                            AV DD/DVDD = 5V
                       0.8                                                                                                                        0.8                                                     fS = 152kHz
                       0.6                                                  fS = 400kHz                                             LSBs          0.6                                                                             03260-0-009
                       0.4                                                                                                                        0.4     511 1023 1535 2047 2559 3071 3583 4095
                       0.2                                                         CD = 4                                                         0.2                                 ADC CODES

                          0    511 1023 1535 2047 2559 3071 3583 4095                                                                                0       Figure 11. Typical DNL Error, VDD = 5 V
                      0.2                                ADC CODES                                                                              0.2
                      0.4                                                                                                                       0.4
                      0.6                                                                                                                       0.6
                      0.8                                                                                                                       0.8
                      1.0                                                                                                                       1.0

                            0                                                                                                                          0

                               Figure 8. Typical INL Error, VDD = 3 V, fS = 400 kHz

                1.2                                                                  0.6                                                          1.0
                                                                                                                                                  0.8
                                                   AVDD/DVDD = 5V                                                                                 0.6                                                             AVDD/DVDD = 3V
                                                                                                                                                  0.4                                                     fS = 152kHz
                1.0                                fS = 152kHz                                                                                    0.2
                                                                                                                                                          511 1023 1535 2047 2559 3071 3583 4095
                                                                                     0.4                                                             0                                ADC CODES
                                                                                                                                                 0.2
                0.8                                                                                                                              0.4        Figure 12. Typical DNL Error, VDD = 3 V
                                                                                                                                                 0.6
WCPINL (LSBs)  0.6                                                                  0.2           WCNINL (LSBs)                                0.8
                                                                                                                                                 1.0
                                                   WCP INL
                                                                                                                                                       0
                0.4                                                                                                LSBs

                                                                                     0

                0.2

                    0                                                              0.2
                0.2
                0.4                               WCN INL
                                                                                   0.4

                0.6                                                                 0.6          03260-0-007                                                                                                                    03260-0-010

                               0.5  1.0  1.5  2.0  2.5      5.0

                                    EXTERNAL REFERENCE (V)

                       Figure 9. Typical Worst-Case INL Error vs. VREF, VDD = 5 V

                                                                                                   Rev. 0 | Page 13 of 88
ADuC841/ADuC842/ADuC843

                0.6                                                                      0.6                                          10000
                                                                                                                                       9000
                                                            AVDD /DVDD = 5V                                                            8000
                                                            fS = 152kHz                                                                7000
                                                                                                                                       6000
                0.4                                                                      0.4                                           5000
                                                                                                                                       4000
WCPDNL (LSBs)  0.2                                              WCP DNL 0.2                   WCNDNL (LSBs)                          3000
                                                                                                                                       2000
                0                                                                        0                                  OCCURRENCE 1000
                                                                                                                                             0
                0.2                                                                     0.2

                                                                 WCN DNL

                0.4                                                                     0.4

                0.6                                                                     0.6                  03260-0-011                                                                                03260-0-014

                                  0.5  1.0       1.5  2.0   2.5  5.0                                                                              817  818      819          820                 821

                                       EXTERNAL REFERENCE (V)                                                                                                   CODE

                            Figure 13. Typical Worst-Case DNL Error vs. VREF, VDD = 5 V                                                           Figure 16. Code Histogram Plot, VDD = 3 V

                0.7                                                                      0.7                                               20
                                                                                                                                             0
                                                            AVDD/DVDD = 3V                                                                                                   AVDD/DVDD = 5V
                                                                                                                                         20                                 fS = 152kHz
                0.5                                         fS = 152kHz                  0.5                                             40                                 fIN = 9.910kHz
                                                                                                                                         60                                 SNR = 71.3dB
                                                                 WCP DNL                                                                 80
                                                                                                                                        100                                 THD = 88.0dB
                0.3                                                                      0.3                                            120
                                                                                                                                        140                                 ENOB = 11.6
                                                                                                                                        160
WCPDNL (LSBs)  0.1                                                                      0.1   WCNDNL (LSBs)
                                                                                                                                               0
                0.1                                                                     0.1                               dBs
                0.3                                                                     0.3
                                                                 WCN DNL

                0.5                                                                     0.5

                0.7                                                                     0.7                  03260-0-012                                                                                03260-0-015

                                  0.5  1.0       1.5  2.0   2.5  3.0                                                                              10   20   30       40      50              60       70

                                       EXTERNAL REFERENCE (V)                                                                                               FREQUENCY (kHz)

                            Figure 14. Typical Worst-Case DNL Error vs. VREF, VDD = 3 V                                                           Figure 17. Dynamic Performance at VDD = 5 V

                10000                                                                                                                   20

                                                                                                                                                                             AVDD/DVDD = 3V

                                                                                                                                        0                                    fS = 149.79kHz
                                                                                                                                                                             fIN = 9.910kHz

                            8000                                                                                                        20                                  SNR = 71.0dB

                                                                                                                                                                             THD = 83.0dB

                                                                                                                                                                             ENOB = 11.5

                OCCURRENCE                                                                                                              40

                            6000

                                                                                                                                        60

                                                                                              03260-0-013                               80

                            4000                                                                                                 dBs

                                                                                                                                        100

                            2000                                                                                                        120

                                                                                                                                        140

                            0                                                                                                           160      10   20   30       40      50              60       70  03260-0-016
                                                                                                                                               0
                                  817       818       819   820                   821

                                                      CODE                                                                                                  FREQUENCY (kHz)

                                       Figure 15. Code Histogram Plot, VDD = 5 V                                                                  Figure 18. Dynamic Performance at VDD = 3 V

                                                                                               Rev. 0 | Page 14 of 88
                                                                                                                           ADuC841/ADuC842/ADuC843

           80                                       70                                                               80

                                   AVDD /DVDD = 5V                                                                    78                          AVDD /DVDD = 5V

           75                      fS = 152kHz                             75

                                                                                                                      76

                                            SNR

           70                                                              80                                        74

SNR (dBs)                                                                                  THD (dBs)       SNR (dBs)  72

           65                                                              85                                        70
                                                                                                                      68
                                            THD                                                                       66

           60                                                              90

           55                                                              95                                        64

           50                                                              100               03260-0-017             62  65.476
                                                                                                                      60            92.262
                                                                                                                                              119.050
               0.5  1.0  1.5  2.0  2.5      5.0                                                                                                         145.830
                                                                                                                                                                  172.620
                    EXTERNAL REFERENCE (V)                                                                                                                                  199.410
                                                                                                                                                                                      226.190
                                                                                                                                                                                                300.000
                                                                                                                                                                                                          350.000
                                                                                                                                                                                                                    400.000

                                                                                                                                                                                                                                                                         03260-0-019

               Figure 19. Typical Dynamic Performance vs. VREF, VDD = 5 V                                                                         FREQUENCY (kHz)

           80                                       70                                                    Figure 21. Typical Dynamic Performance vs. Sampling Frequency

                                   AVDD/DVDD = 3V                                                             0.9
                                                                                                                       AVDD/DVDD = 3V
                                   fS = 152kHz                                                                         SLOPE = 1.4mV/C

           75                                       75                                                       0.8

                                            SNR

                                                                                                                      0.7

           70                                       80

SNR (dBs)                                   THD                                 THD (dBs)                  VOLTAGE    0.6

           65                                       85

                                                                                                                      0.5

           60                                       90

                                                                                                                      0.4

           55                                       95                                                               0.3

           50                                       100                         03260-0-018                          0.2                                                           03260-0-100

               0.5  1.0  1.5  2.0  2.5      3.0                                                                            40  25                85

                    EXTERNAL REFERENCE (V)                                                                                      TEMPERATURE (C)

               Figure 20. Typical Dynamic Performance vs. VREF, VDD = 3 V                                             Figure 22. Typical Temperature Sensor Output vs. Temperature

GENERAL DESCRIPTION (continued)                                                                            However, there is also the option to allow SPI operate separately
                                                                                                           on P3.3, P3.4, and P3.5, while I2C uses the standard pins. The
The parts also incorporate additional analog functionality with                                            I2C interface has also been enhanced to offer repeated start,
two 12-bit DACs, power supply monitor, and a band gap                                                      general call, and quad addressing.
reference. On-chip digital peripherals include two 16-bit -.
DACs, a dual output 16-bit PWM, a watchdog timer, a time                                                   On-chip factory firmware supports in-circuit serial download
interval counter, three timers/counters, and three serial I/O                                              and debug modes (via UART) as well as single-pin emulation
ports (SPI, I2C, and UART).                                                                                mode via the EA pin. A functional block diagram of the parts is
                                                                                                           shown on the first page.
On the ADuC812 and the ADuC832, the I2C and SPI interfaces
share some of the same pins. For backwards compatibility, this
is also the case for the ADuC841/ADuC842/ADuC843.

                                                                                 Rev. 0 | Page 15 of 88
ADuC841/ADuC842/ADuC843

FUNCTIONAL DESCRIPTION

8052 INSTRUCTION SET

Table 4 documents the number of clock cycles required for each

instruction. Most instructions are executed in one or two clock

cycles, resulting in a 16 MIPS peak performance when operating

at PLLCON = 00H on the ADuC842/ADuC843. On the ADuC841,

20 MIPS peak performance is possible with a 20 MHz external

crystal.

Table 4. Instructions

Mnemonic               Description                                         Bytes  Cycles

Arithmetic                                                                 1      1
                                                                           1      2
ADD A,Rn               Add register to A                                   2      2
                                                                           2      2
ADD A,@Ri              Add indirect memory to A                            1      1
                                                                           1      2
ADD A,dir              Add direct byte to A                                2      2
                                                                           2      2
ADD A,#data            Add immediate to A                                  1      1
                                                                           1      2
ADDC A,Rn              Add register to A with carry                        2      2
                                                                           2      2
ADDC A,@Ri             Add indirect memory to A with carry                 1      1
                                                                           1      1
ADDC A,dir             Add direct byte to A with carry                     1      2
                                                                           2      2
ADD A,#data            Add immediate to A with carry                       1      3
                                                                           1      1
SUBB A,Rn              Subtract register from A with borrow                1      1
                                                                           1      2
SUBB A,@Ri             Subtract indirect memory from A with borrow         2      2
                                                                           1      9
SUBB A,dir             Subtract direct from A with borrow                  1      9
                                                                           1      2
SUBB A,#data           Subtract immediate from A with borrow
                                                                           1      1
INC A                  Increment A                                         1      2
                                                                           2      2
INC Rn                 Increment register                                  2      2
                                                                           2      2
INC @Ri                Increment indirect memory                           3      3
                                                                           1      1
INC dir                Increment direct byte                               1      2
                                                                           2      2
INC DPTR               Increment data pointer                              2      2
                                                                           2      2
DEC A                  Decrement A                                         3      3
                                                                           1      1
DEC Rn                 Decrement register                                  2      2
                                                                           2      2
DEC @Ri                Decrement indirect memory                           2      2

DEC dir                Decrement direct byte

MUL AB                 Multiply A by B

DIV AB                 Divide A by B

DA A                   Decimal adjust A

Logic

ANL A,Rn               AND register to A

ANL A,@Ri              AND indirect memory to A

ANL A,dir              AND direct byte to A

ANL A,#data            AND immediate to A

ANL dir,A              AND A to direct byte

ANL dir,#data          AND immediate data to direct byte

ORL A,Rn               OR register to A

ORL A,@Ri              OR indirect memory to A

ORL A,dir              OR direct byte to A

ORL A,#data            OR immediate to A

ORL dir,A              OR A to direct byte

ORL dir,#data          OR immediate data to direct byte

XRL A,Rn               Exclusive-OR register to A

XRL A,@Ri              Exclusive-OR indirect memory to A

XRL A,#data            Exclusive-OR immediate to A

XRL dir,A              Exclusive-OR A to direct byte

                                                   Rev. 0 | Page 16 of 88
                                                                                   ADuC841/ADuC842/ADuC843

Mnemonic            Description                                                    Bytes  Cycles
    XRL A,dir       Exclusive-OR indirect memory to A                              2      2
    XRL dir,#data   Exclusive-OR immediate data to direct                          3      3
    CLR A           Clear A                                                        1      1
    CPL A           Complement A                                                   1      1
    SWAP A          Swap nibbles of 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

Data Transfer       Move register to A                                             1      1
    MOV A,Rn        Move indirect memory to A                                      1      2
    MOV A,@Ri       Move A to register                                             1      1
    MOV Rn,A        Move A to indirect memory                                      1      2
    MOV @Ri,A       Move direct byte to A                                          2      2
    MOV A,dir       Move immediate to A                                            2      2
    MOV A,#data     Move register to immediate                                     2      2
    MOV Rn,#data    Move A to direct byte                                          2      2
    MOV dir,A       Move register to direct byte                                   2      2
    MOV Rn, dir     Move direct to register                                        2      2
    MOV dir, Rn     Move immediate to indirect memory                              2      2
    MOV @Ri,#data   Move indirect to direct memory                                 2      2
    MOV dir,@Ri     Move direct to indirect memory                                 2      2
    MOV @Ri,dir     Move direct byte to direct byte                                3      3
    MOV dir,dir     Move immediate to direct byte                                  3      3
    MOV dir,#data   Move immediate to data pointer                                 3      3
    MOV DPTR,#data  Move code byte relative DPTR to A                              1      4
    MOVC A,@A+DPTR  Move code byte relative PC to A                                1      4
    MOVC A,@A+PC    Move external (A8) data to A                                   1      4
    MOVX A,@Ri      Move external (A16) data to A                                  1      4
    MOVX A,@DPTR    Move A to external data (A8)                                   1      4
    MOVX @Ri,A      Move A to external data (A16)                                  1      4
    MOVX @DPTR,A    Push direct byte onto stack                                    2      2
    PUSH dir        Pop direct byte from stack                                     2      2
    POP dir         Exchange A and register                                        1      1
    XCH A,Rn        Exchange A and indirect memory                                 1      2
    XCH A,@Ri       Exchange A and indirect memory nibble                          1      2
    XCHD A,@Ri      Exchange A and direct byte                                     2      2
    XCH A,dir
                    Clear carry                                                    1      1
Boolean             Clear direct bit                                               2      2
    CLR C           Set carry                                                      1      1
    CLR bit         Set direct bit                                                 2      2
    SETB C          Complement carry                                               1      1
    SETB bit        Complement direct bit                                          2      2
    CPL C           AND direct bit and carry                                       2      2
    CPL bit         AND direct bit inverse to carry                                2      2
    ANL C,bit       OR direct bit and carry                                        2      2
    ANL C,/bit      OR direct bit inverse to carry                                 2      2
    ORL C,bit       Move direct bit to carry                                       2      2
    ORL C,/bit      Move carry to direct bit                                       2      2
    MOV C,bit
    MOV bit,C                                              Rev. 0 | Page 17 of 88
ADuC841/ADuC842/ADuC843

Mnemonic                Description                                                   Bytes       Cycles
Branching
                        Jump indirect relative to DPTR                                1           3
    JMP @A+DPTR         Return from subroutine                                        1           4
    RET                 Return from interrupt                                         1           4
    RETI                Absolute jump to subroutine                                   2           3
    ACALL addr11        Absolute jump unconditional                                   2           3
    AJMP addr11         Short jump (relative address)                                 2           3
    SJMP rel            Jump on carry equal to 1                                      2           3
    JC rel              Jump on carry equal to 0                                      2           3
    JNC rel             Jump on accumulator = 0                                       2           3
    JZ rel              Jump on accumulator not equal to 0                            2           3
    JNZ rel             Decrement register, JNZ relative                              2           3
    DJNZ Rn,rel         Long jump unconditional                                       3           4
    LJMP                Long jump to subroutine                                       3           4
    LCALL addr16        Jump on direct bit = 1                                        3           4
    JB bit,rel          Jump on direct bit = 0                                        3           4
    JNB bit,rel         Jump on direct bit = 1 and clear                              3           4
    JBC bit,rel         Compare A, direct JNE relative                                3           4
    CJNE A,dir,rel      Compare A, immediate JNE relative                             3           4
    CJNE A,#data,rel    Compare register, immediate JNE relative                      3           4
    CJNE Rn,#data,rel   Compare indirect, immediate JNE relative                      3           4
    CJNE @Ri,#data,rel  Decrement direct byte, JNZ relative                           3           4
    DJNZ dir,rel
Miscellaneous           No operation                                                  1           1
    NOP

1. One cycle is one clock.
2. Cycles of MOVX instructions are four cycles when they have 0 wait state. Cycles of MOVX instructions are 4 + n cycles when they have n wait states.
3. Cycles of LCALL instruction are three cycles when the LCALL instruction comes from interrupt.

OTHER SINGLE-CYCLE CORE FEATURES                                    External Memory Access
Timer Operation
                                                                    There is no support for external program memory access on the
Timers on a standard 8052 increment by 1 with each machine          parts. When accessing external RAM, the EWAIT register may
cycle. On the ADuC841/ADuC842/ADuC843, one machine                  need to be programmed to give extra machine cycles to MOVX
cycle is equal to one clock cycle; therefore the timers increment   commands. This is to account for differing external RAM access
at the same rate as the core clock.                                 speeds.

ALE                                                                 EWAIT SFR

The output on the ALE pin on a standard 8052 part is a clock at     SFR Address              9FH
1/6th of the core operating frequency. On the ADuC841/
ADuC842/ADuC843 the ALE pin operates as follows. For a              Power-On Default         00H
single machine cycle instruction,ALE is high for the first half of
the machine cycle and low for the second half. The ALE output       Bit Addressable          No
is at the core operating frequency. For a two or more machine
cycle instruction, ALE is high for the first half of the first      This special function register (SFR) is programmed with the
machine cycle and low for the rest of the machine cycles.           number of wait states for a MOVX instruction. This value can
                                                                    range from 0H to 7H.

                         Rev. 0 | Page 18 of 88
                                                                                              ADuC841/ADuC842/ADuC843

MEMORY ORGANIZATION                                              The lower 128 bytes of internal data memory are mapped as
                                                                 shown in Figure 23. The lowest 32 bytes are grouped into four
The ADuC841/ADuC842/ADuC843 each contain four different          banks of eight registers addressed as R0 to R7. The next 16 bytes
memory blocks:                                                   (128 bits), locations 20H to 2FH above the register banks, form
                                                                 a block of directly addressable bit locations at Bit Addresses
Up to 62 kBytes of on-chip Flash/EE program memory             00H to 7FH. The stack can be located anywhere in the internal
                                                                 memory address space, and the stack depth can be expanded up
4 kBytes of on-chip Flash/EE data memory                       to 2048 bytes.

256 bytes of general-purpose RAM                               Reset initializes the stack pointer to location 07H and incre-
                                                                 ments it once before loading the stack to start from location
2 kBytes of internal XRAM                                      08H, which is also the first register (R0) of register bank 1. Thus,
                                                                 if the user needs to use more than one register bank, the stack
Flash/EE Program Memory                                          pointer should be initialized to an area of RAM not used for
                                                                 data storage.
The parts provide up to 62 kBytes of Flash/EE program mem-
ory to run user code. The user can run code from this internal                                7FH
memory only. Unlike the ADuC812, where code execution can
overflow from the internal code space to external code space                                       GENERAL-PURPOSE
once the PC becomes greater than 1FFFH, the parts do not                                           AREA
support the roll-over from F7FFH in internal code space to
F800H in external code space. Instead, the 2048 bytes between                 30H
F800H and FFFFH appear as NOP instructions to user code.
                                                                 BANKS                        2FH
This internal code space can be downloaded via the UART                                                      BIT-ADDRESSABLE
serial port while the device is in-circuit. 56 kBytes of the     SELECTED                                    (BIT ADDRESSES)
program memory can be reprogrammed during run time; thus
the code space can be upgraded in the field by using a user      VIA          20H             1FH
defined protocol, or it can be used as a data memory. This is
discussed in more detail in the Flash/EE Memory section.         BITS IN PSW

For the 32 kBytes memory model, the top 8 kBytes function as                  11
the ULOAD space; this is explained in the Flash/EE Memory                                18H
section.
                                                                              10              17H  FOUR BANKS OF EIGHT
Flash/EE Data Memory                                                                     10H  0FH  REGISTERS
                                                                                              07H  R0 TO R7
4 kBytes of Flash/EE data memory are available to the user and                01
can be accessed indirectly via a group of control registers                              08H           RESET VALUE OF
mapped into the special function register (SFR) area. Access to                                        STACK POINTER
the Flash/EE data memory is discussed in detail in the Flash/EE               00                                              03260-0-021
Memory section.                                                                         00H

General-Purpose RAM                                                     Figure 23. Lower 128 Bytes of Internal Data Memory

The general-purpose RAM is divided into two separate             The parts contain 2048 bytes of internal XRAM, 1792 bytes of
memories: the upper and the lower 128 bytes of RAM. The          which can be configured to an extended 11-bit stack pointer.
lower 128 bytes of RAM can be accessed through direct or
indirect addressing. The upper 128 bytes of RAM can be           By default, the stack operates exactly like an 8052 in that it rolls
accessed only through indirect addressing because it shares the  over from FFH to 00H in the general-purpose RAM. On the
same address space as the SFR space, which can be accessed       parts, however, it is possible (by setting CFG841.7 or CFG842.7)
only through direct addressing.                                  to enable the 11-bit extended stack pointer. In this case, the
                                                                 stack rolls over from FFH in RAM to 0100H in XRAM.

                                                                 The 11-bit stack pointer is visible in the SP and SPH SFRs. The
                                                                 SP SFR is located at 81H as with a standard 8052. The SPH SFR
                                                                 is located at B7H. The 3 LSBs of this SFR contain the 3 extra bits
                                                                 necessary to extend the 8-bit stack pointer into an 11-bit stack
                                                                 pointer.

Rev. 0 | Page 19 of 88
ADuC841/ADuC842/ADuC843                                                                   FFFFFFH                            FFFFFFH

                                                           07FFH

                              UPPER 1792                                                               EXTERNAL                       EXTERNAL
                                BYTES OF                                                                  DATA                           DATA

                            ON-CHIP XRAM                                                                MEMORY                         MEMORY
                            (DATA + STACK                                                                SPACE                          SPACE
                             FOR EXSP = 1,                                                                (24-BIT                        (24-BIT

                               DATA ONLY                                                               ADDRESS                        ADDRESS
                             FOR EXSP = 0)                                                               SPACE)                         SPACE)

CFG841.7 = 0  CFG841.7 = 1
CFG842.7 = 0  CFG842.7 = 1

FFH  256 BYTES OF  100H                                                                                                      000800H  2 kBYTES
00H  ON-CHIP DATA                                                                                                            0007FFH  ON-CHIP
                                LOWER 256
             RAM                 BYTES OF                                                                                    000000H    XRAM
          (DATA +            ON-CHIP XRAM                         03260-0-022
          STACK)              (DATA ONLY)                                                                                                                                                                                                                                                 03260-0-023
                    00H                                                                   000000H                                     CFG841.0 = 1
                                                                                                                                      CFG842.0 = 0
                                                                                                          CFG841.0 = 0
                                                                                                          CFG842.0 = 0

                   Figure 24. Extended Stack Pointer Operation                                         Figure 25. Internal and External XRAM

External Data Memory (External XRAM)                              SPECIAL FUNCTION REGISTERS (SFRS)

Just like a standard 8051 compatible core, the ADuC841/           The SFR space is mapped into the upper 128 bytes of internal
ADuC842/ADuC843 can access external data memory by using          data memory space and is accessed by direct addressing only. It
a MOVX instruction. The MOVX instruction automatically            provides an interface between the CPU and all on-chip periph-
outputs the various control strobes required to access the data   erals. A block diagram showing the programming model of the
memory.                                                           parts via the SFR area is shown in Figure 26.

The parts, however, can access up to 16 MBytes of external data   All registers, except the program counter (PC) and the four
memory. This is an enhancement of the 64 kBytes of external       general-purpose register banks, reside in the SFR area. The SFR
data memory space available on a standard 8051 compatible core.   registers include control, configuration, and data registers, which
The external data memory is discussed in more detail in the       provide an interface between the CPU and all on-chip peripherals.
Hardware Design Considerations section.
                                                                          62-kBYTE                                                             4-kBYTE
Internal XRAM                                                         ELECTRICALLY                                                       ELECTRICALLY
                                                                  REPROGRAMMABLE                                                      REPROGRAMMABLE
The parts contain 2 kBytes of on-chip data memory. This               NONVOLATILE                                                         NONVOLATILE
memory, although on-chip, is also accessed via the MOVX           FLASH/EE PROGRAM                                                       FLASH/EE DATA
instruction. The 2 kBytes of internal XRAM are mapped into
the bottom 2 kBytes of the external address space if the                  MEMORY                                                              MEMORY
CFG841/CFG842 bit is set. Otherwise, access to the external
data memory occurs just like a standard 8051. When using the                                    8051               128-BYTE              8-CHANNEL
internal XRAM, Ports 0 and 2 are free to be used as general-                              COMPATIBLE                SPECIAL              12-BIT ADC
purpose I/O.                                                                                                       FUNCTION
                                                                                               CORE                REGISTER           OTHER ON-CHIP
                                                                                                                                       PERIPHERALS
                                                                                           2304 BYTES                 AREA            TEMPERATURE
                                                                                                RAM
                                                                                                                                           SENSOR
                                                                                                                                      2 12-BIT DACs                                                                                                                                                  03260-0-024

                                                                                                                                          SERIAL I/O
                                                                                                                                              WDT
                                                                                                                                              PSM
                                                                                                                                               TIC
                                                                                                                                              PWM

                                                                                                       Figure 26. Programming Model

                                                                  Rev. 0 | Page 20 of 88
                                                                                       ADuC841/ADuC842/ADuC843

ACCUMULATOR SFR (ACC)                                                Program Status Word (PSW)

ACC is the accumulator register and is used for math opera-          The PSW SFR contains several bits reflecting the current status
tions including addition, subtraction, integer multiplication and    of the CPU, as detailed in Table 5.
division, and Boolean bit manipulations. The mnemonics for
accumulator-specific instructions refer to the accumulator as A.     SFR Address                       D0H

B SFR (B)                                                            Power-On Default                  00H

The B register is used with the ACC for multiplication and           Bit Addressable                   Yes
division operations. For other instructions, it can be treated as a
general-purpose scratchpad register.                                 Table 5. PSW SFR Bit Designations

Stack Pointer (SP and SPH)                                           Bit Name          Description

The SP SFR is the stack pointer and is used to hold an internal      7  CY             Carry Flag.
RAM address that is called the top of the stack. The SP register
is incremented before data is stored during PUSH and CALL            6  AC             Auxiliary Carry Flag.
executions. While the stack may reside anywhere in on-chip
RAM, the SP register is initialized to 07H after a reset, which      5  F0             General-Purpose Flag.
causes the stack to begin at location 08H.
                                                                     4  RS1            Register Bank Select Bits.
As mentioned earlier, the parts offer an extended 11-bit stack
pointer. The 3 extra bits used to make up the 11-bit stack           3  RS0            RS1 RS0 Selected Bank
pointer are the 3 LSBs of the SPH byte located at B7H.
                                                                                       0            0         0
Data Pointer (DPTR)
                                                                                       0            1         1
The data pointer is made up of three 8-bit registers named DPP
(page byte), DPH (high byte), and DPL (low byte). These are                            1            0         2
used to provide memory addresses for internal and external
code access and for external data access. They may be manipu-                          1            1         3
lated as a 16-bit register (DPTR = DPH, DPL), although INC
DPTR instructions automatically carry over to DPP, or as three       2  OV             Overflow Flag.
independent 8-bit registers (DPP, DPH, DPL). The parts support
dual data pointers. Refer to the Dual Data Pointer section.          1  F1             General-Purpose Flag.

                                                                     0  P              Parity Bit.

                                                                     Power Control SFR (PCON)

                                                                     The PCON SFR contains bits for power-saving options and
                                                                     general-purpose status flags, as shown in Table 6.

                                                                     SFR Address                       87H

                                                                     Power-On Default                  00H

                                                                     Bit Addressable                   No

                                                                     Table 6. PCON SFR Bit Designations

                                                                     Bit No. Name Description

                                                                     7  SMOD Double UART Baud Rate.

                                                                     6  SERIPD I2C/SPI Power-Down Interrupt Enable.

                                                                     5  INT0PD INT0 Power-Down Interrupt Enable.

                                                                     4  ALEOFF Disable ALE Output.

                                                                     3  GF1            General-Purpose Flag Bit.

                                                                     2  GF0            General-Purpose Flag Bit.

                                                                     1  PD             Power-Down Mode Enable.

                                                                     0  IDL            Idle Mode Enable.

Rev. 0 | Page 21 of 88
ADuC841/ADuC842/ADuC843

SPECIAL FUNCTION REGISTER BANKS                                                                                          implemented, i.e., no register exists at this location. If an
                                                                                                                         unoccupied location is read, an unspecified value is returned.
All registers except the program counter and the four general-                                                           SFR locations reserved for on-chip testing are shown lighter
purpose register banks reside in the special function register                                                           shaded (RESERVED) and should not be accessed by user
(SFR) area. The SFR registers include control, configuration,                                                            software. Sixteen of the SFR locations are also bit addressable
and data registers, which provide an interface between the CPU                                                           and denoted by 1 in Figure 27, i.e., the bit addressable SFRs are
and other on-chip peripherals. Figure 27 shows a full SFR                                                                those whose address ends in 0H or 8H.
memory map and SFR contents on reset. Unoccupied SFR
locations are shown dark-shaded in the figure (NOT USED).
Unoccupied locations in the SFR address space are not

  ISPI WCOL SPE SPIM CPOL CPHA SPR1 SPR0 BITS                                                                 SPICON1 DAC0L           DAC0H    DAC1L     DAC1H DACCON
FFH 0 FEH 0 FDH 0 FCH 0 FBH 0 FAH 1 F9H 0 F8H 0                                                                                                                                                RESERVED RESERVED

                                                                                                              F8H 04H F9H 00H FAH 00H FBH 00H FCH 00H FDH 04H

                                                                                                        BITS  B1         ADCOFSL3 ADCOFSH3 ADCGAINL3 ADCGAINH3 ADCCON3     RESERVED                        SPIDAT
F7H 0 F6H 0 F5H 0 F4H 0 F3H 0 F2H 0 F1H 0 F0H 0
                                                                                                              F0H 00H F1H 00H F2H 20H F3H 00H F4H 00H F5H 00H                                              F7H 00H

I2CSI/MDO I2CGC/MDE I2C1O1MCO I2C1O0/MDI I2CM I2CRS I2CTX I2CI  BITS                                          I2CCON1    RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED                             ADCCON1

EFH 0 EEH 0 EDH 0 ECH 0 EBH 0 EAH 0 E9H 0 E8H 0                                                               E8H 00H                                                                                      EFH 40H

E7H 0 E6H 0 E5H 0 E4H 0 E3H 0 E2H 0 E1H 0 E0H 0 BITS                                                          ACC1       RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED RESERVED

                                                                                                              E0H 00H

ADCI DMA CCONV SCONV CS3 CS2 CS1 CS0 BITS                                                                    ADCCON21 ADCDATAL ADCDATAH                                                                   PSMCON
DFH 0 DEH 0 DDH 0 DCH 0 DBH 0 DAH 0 D9H 0 D8H 0
                                                                                                                                               RESERVED RESERVED RESERVED RESERVED

                                                                                                              D8H 00H D9H 00H DAH 00H                                                                      DFH DEH

CY  AC        F0  RS1 RS0 OV  FI                           P    BITS                                          PSW1       RESERVED     DMAL     DMAH      DMAP      RESERVED RESERVED                       PLLCON

D7H 0 D6H 0 D5H 0 D4H 0 D3H 0 D2H 0 D1H 0 D0H 0                                                               D0H 00H                 D2H 00H D3H 00H D4H 00H                                              D7H 53H

  TF2 EXF2 RCLK TCLK EXEN2 TR2 CNT2 CAP2 BITS                                                                 T2CON1     RESERVED     RCAP2L RCAP2H      TL2       TH2     RESERVED RESERVED
CFH 0 CEH 0 CDH 0 CCH 0 CBH 0 CAH 0 C9H 0 C8H 0
                                                                                                              C8H 00H                 CAH 00H CBH 00H CCH 00H CDH 00H

PRE3 PRE2 PRE1 PRE0 WDIR WDS WDE WDWR BITS                                                                   WDCON1 RESERVED         CHIPID                                                        EDARL  EDARH
C7H 0 C6H 0 C5H 0 C4H 1 C3H 0 C2H 0 C1H 0 C0H 0                                                                                                RESERVED RESERVED RESERVED

                                                                                                              C0H 10H                 C2H XXH                              C6H 00H C7H 00H

PSI PADC PT2      PS  PT1 PX1 PT0 PX0 BITS                                                                    IP1        ECON         RESERVED RESERVED  EDATA1 EDATA2 EDATA3 EDATA4

BFH 0 BEH 0 BDH 0 BCH 0 BBH 0 BAH 0 B9H 0 B8H 0                                                               B8H 00H B9H 00H                            BCH 00H BDH 00H BEH 00H BFH 00H

RD  WR        T1  T0  INT1 INT0 TxD RxD BITS                                                                  P31        PWM0L PWM0H PWM1L PWM1H                   NOT USED NOT USED                       SPH

B7H 1 B6H 1 B5H 1 B4H 1 B3H 1 B2H 1 B1H 1 B0H 1                                                               B0H FFH B1H 00H B2H 00H B3H 00H B4H 00H                                                      B7H 00H

EA EADC ET2       ES  ET1 EX1 ET0 EX0 BITS                                                                         IE1   IEIP2        RESERVED RESERVED RESERVED RESERVED  PWMCON CFG841/
                                                                                                              A8H 00H                                                                                      CFG842
AFH 0 AEH 0 ADH 0 ACH 0 ABH 0 AAH 0 A9H 0 A8H 0
                                                                                                                         A9H A0H                                           AEH 00H AFH 00H

                                                                                                        BITS  P21        TIMECON HTHSEC SEC              MIN       HOUR INTVAL DPCON
A7H 1 A6H 1 A5H 1 A4H 1 A3H 1 A2H 1 A1H 1 A0H 1
                                                                                                              A0H FFH    A1H 00H A2H 00H A3H 00H A4H 00H A5H 00H A6H 00H A7H 00H
                                                                                                                SCON1
SM0 SM1 SM2 REN TB8 RB8       TI                           RI   BITS                                                     SBUF         I2CDAT I2CADD      NOT USED  T3FD    T3CON
                                                                                                              98H 00H                                                                         NOT USED
9FH 0 9EH 0 9DH 0 9CH 0 9BH 0 9AH 0 99H 0 98H 0
                                                                                                                         99H 00H 9AH 00H 9BH 55H                   9DH 00H 9EH 00H

                              T2EX T2                           BITS                                             P11, 2  I2CADD1 I2CADD2 I2CADD3
                                                                                                              90H FFH                                                                 NOT USED NOT USED NOT USED NOT USED
97H 1 96H 1 95H 1 94H 1 93H 1 92H 1 91H 1 90H 1
                                                                                                                         91H 7FH 92H 7FH 93H 7FH

TF1 TR1 TF0 TR0 IE1   IT1     IE0                          IT0 BITS                                            TCON1     TMOD         TL0          TL1   TH0       TH1     RESERVED RESERVED
                                                                                                              88H 00H
8FH 0 8EH 0 8DH 0 8CH 0 8BH 0 8AH 0 89H 0 88H 0                                                                          89H 00H 8AH 00H 8BH 00H 8CH 00H 8DH 00H

                                                                                                        BITS  P01        SP           DPL          DPH   DPP       RESERVED RESERVED                       PCON
87H 1 86H 1 85H 1 84H 1 83H 1 82H 1 81H 1 80H 1
                                                                                                              80H FFH 81H 07H 82H 00H 83H 00H 84H 00H                                                      87H 00H

SFR MAP KEY:                  THESE BITS ARE CONTAINED IN THIS BYTE.

                        MNEMONIC                              IE0 IT0                                           TCON                  MNEMONIC
                      SFR ADDRESS                          89H 0 88H 0                                        88H 00H                 DEFAULT VALUE

                      DEFAULT VALUE                                                                                                   SFR ADDRESS

NOTES                                                                                                                                                                                                                      03260-0-025

1SFRs WHOSE ADDRESS ENDS IN 0H OR 8H ARE BIT ADDRESSABLE.

2THE PRIMARY FUNCTION OF PORT1 IS AS AN ANALOG INPUT PORT; THEREFORE, TO ENABLE THE DIGITAL SECONDARY FUNCTIONS ON THESE
PORT PINS, WRITE A 0 TO THE CORRESPONDING PORT 1 SFR BIT.

3CALIBRATION COEFFICIENTS ARE PRECONFIGURED ON POWER-UP TO FACTORY CALIBRATED VALUES.

                              Figure 27. Special Function Register Locations and Reset Values

                                                                                                              Rev. 0 | Page 22 of 88
                                                                                   ADuC841/ADuC842/ADuC843

ADC CIRCUIT INFORMATION                                              ADC Transfer Function
General Overview
                                                                     The analog input range for the ADC is 0 V to VREF. For this
The ADC conversion block incorporates a fast, 8-channel,             range, the designed code transitions occur midway between
12-bit, single-supply ADC. This block provides the user with         successive integer LSB values, i.e., 0.5 LSB, 1.5 LSB, 2.5 LSB . . .
multichannel mux, track-and-hold, on-chip reference, calibra-        FS 1.5 LSB. The output coding is straight binary with 1 LSB =
tion features, and ADC. All components in this block are easily      FS/4096 or 2.5 V/4096 = 0.61 mV when VREF = 2.5 V. The ideal
configured via a 3-register SFR interface.                           input/output transfer characteristic for the 0 V to VREF range is
                                                                     shown in Figure 28.
The ADC converter consists of a conventional successive
approximation converter based around a capacitor DAC. The            OUTPUT
converter accepts an analog input range of 0 V to VREF. A high         CODE
precision, 15 ppm, low drift, factory calibrated 2.5 V reference is
provided on-chip. An external reference can be connected as          111...111
described in the Voltage Reference Connections section. This
external reference can be in the range 1 V to AVDD.                  111...110

Single-step or continuous conversion modes can be initiated in       111...101
software or alternatively by applying a convert signal to an
external pin. Timer 2 can also be configured to generate a           111...100
repetitive trigger for ADC conversions. The ADC may be
configured to operate in a DMA mode whereby the ADC block                          1LSB = FS
continuously converts and captures samples to an external                                    4096
RAM space without any interaction from the MCU core. This
automatic capture facility can extend through a 16 MByte             000...011
external data memory space.                                          000...010

The ADuC841/ADuC842/ADuC843 are shipped with factory                 000...001                                            03260-0-026
programmed calibration coefficients that are automatically
downloaded to the ADC on power-up, ensuring optimum ADC              000...000
performance. The ADC core contains internal offset and gain
calibration registers that can be hardware calibrated to                           0V 1LSB                           +FS
minimize system errors.
                                                                                   Figure 28. ADC Transfer Function
A voltage output from an on-chip band gap reference propor-
tional to absolute temperature can also be routed through the        Typical Operation
front end ADC multiplexer (effectively a 9th ADC channel
input), facilitating a temperature sensor implementation.            Once configured via the ADCCON 13 SFRs, the ADC converts
                                                                     the analog input and provides an ADC 12-bit result word in the
                                                                     ADCDATAH/L SFRs. The top 4 bits of the ADCDATAH SFR
                                                                     are written with the channel selection bits to identify the channel
                                                                     result. The format of the ADC 12-bit result word is shown in
                                                                     Figure 29.

                                                                            CHID                                                         ADCDATAH SFR
                                                                     TOP 4 BITS
                                                                                                                       HIGH 4 BITS OF
                                                                                                                       ADC RESULT WORD                03260-0-027

                                                                                                                                          ADCDATAL SFR

                                                                                                               LOW 8 BITS OF THE
                                                                                                               ADC RESULT WORD

                                                                                   Figure 29. ADC Result Word Format

Rev. 0 | Page 23 of 88
ADuC841/ADuC842/ADuC843

ADCCON1--(ADC Control SFR 1)

The ADCCON1 register controls conversion and acquisition
times, hardware conversion modes, and power-down modes as
detailed below.

SFR Address                EFH

SFR Power-On Default       40H

Bit Addressable            No

Table 7. ADCCON1 SFR Bit Designations

Bit No.      Name Description

7            MD1      The mode bit selects the active operating mode of the ADC.

                      Set by the user to power up the ADC.

                      Cleared by the user to power down the ADC.

6            EXT_REF Set by the user to select an external reference.

                      Cleared by the user to use the internal reference.

5            CK1      The ADC clock divide bits (CK1, CK0) select the divide ratio for the PLL master clock (ADuC842/ADuC843) or the

4            CK0      external crystal (ADuC841) used to generate the ADC clock. To ensure correct ADC operation, the divider ratio

                      must be chosen to reduce the ADC clock to 8.38 MHz or lower. A typical ADC conversion requires 16 ADC clocks

                      plus the selected acquisition time.

                      The divider ratio is selected as follows:

                      CK1       CK0                    MCLK Divider

                      0         0                      32

                      0         1                      4 (Do not use with a CD setting of 0)

                      1         0                      8

                      1         1                      2

3            AQ1      The ADC acquisition select bits (AQ1, AQ0) select the time provided for the input track-and-hold amplifier to

2            AQ0      acquire the input signal. An acquisition of three or more ADC clocks is recommended; clocks are as follows:

                      AQ1       AQ0                    No. ADC Clks

                      0         0                      1

                      0         1                      2

                      1         0                      3

                      1         1                      4

1            T2C      The Timer 2 conversion bit (T2C) is set by the user to enable the Timer 2 overflow bit to be used as the ADC

                      conversion start trigger input.

0            EXC      The external trigger enable bit (EXC) is set by the user to allow the external Pin P3.5 (CONVST) to be used as the

                      active low convert start input. This input should be an active low pulse (minimum pulse width >100 ns) at the

                      required sample rate.

                                                           Rev. 0 | Page 24 of 88
                                                                                ADuC841/ADuC842/ADuC843

ADCCON2--(ADC Control SFR 2)

The ADCCON2 register controls ADC channel selection and
conversion modes as detailed below.

SFR Address                D8H
SFR Power-On Default       00H
Bit Addressable            Yes

Table 8. ADCCON2 SFR Bit Designations

Bit No. Name          Description

7  ADCI               ADC Interrupt Bit.

                      Set by hardware at the end of a single ADC conversion cycle or at the end of a DMA block conversion.

                      Cleared by hardware when the PC vectors to the ADC interrupt service routine. Otherwise, the ADCI bit is cleared
                      by user code.

6  DMA                DMA Mode Enable Bit.

                      Set by the user to enable a preconfigured ADC DMA mode operation. A more detailed description of this mode is
                      given in the ADC DMA Mode section. The DMA bit is automatically set to 0 at the end of a DMA cycle. Setting this
                      bit causes the ALE output to cease; it will start again when DMA is started and will operate correctly after DMA is
                      complete.

5  CCONV              Continuous Conversion Bit.

                      Set by the user to initiate the ADC into a continuous mode of conversion. In this mode, the ADC starts converting
                      based on the timing and channel configuration already set up in the ADCCON SFRs; the ADC automatically starts
                      another conversion once a previous conversion has completed.

4  SCONV              Single Conversion Bit.

                      Set to initiate a single conversion cycle. The SCONV bit is automatically reset to 0 on completion of the single
                      conversion cycle.

3  CS3                Channel Selection Bits.

2  CS2                Allow the user to program the ADC channel selection under software control. When a conversion is initiated, the
                      converted channel is the one pointed to by these channel selection bits. In DMA mode, the channel selection is
1  CS1                derived from the channel ID written to the external memory.

0  CS0

                      CS3  CS2            CS1 CS0 CH#

                      0    0              0       0      0

                      0    0              0       1      1

                      0    0              1       0      2

                      0    0              1       1      3

                      0    1              0       0      4

                      0    1              0       1      5

                      0    1              1       0      6

                      0    1              1       1      7

                      1    0              0       0      Temp Monitor Requires minimum of 1 s to acquire.

                      1    0              0       1      DAC0                   Only use with internal DAC output buffer on.

                      1    0              1       0      DAC1                   Only use with internal DAC output buffer on.

                      1    0              1       1      AGND

                      1    1              0       0      VREF

                      1    1              1       1      DMA STOP               Place in XRAM location to finish DMA sequence; refer to

                                                                                the ADC DMA Mode section.

                      All other combinations reserved.

                                                        Rev. 0 | Page 25 of 88
ADuC841/ADuC842/ADuC843

ADCCON3--(ADC Control SFR 3)

The ADCCON3 register controls the operation of various
calibration modes and also indicates the ADC busy status.

SFR Address                  F5H

SFR Power-On Default         00H

Bit Addressable              No

Table 9. ADCCON3 SFR Bit Designations

Bit No. Name          Description

7  BUSY               ADC Busy Status Bit.

                      A read-only status bit that is set during a valid ADC conversion or during a calibration cycle.

                      Busy is automatically cleared by the core at the end of conversion or calibration.

6  RSVD               Reserved. This bit should always be written as 0.

5  AVGS1              Number of Average Selection Bits.

4  AVGS0              This bit selects the number of ADC readings that are averaged during a calibration cycle.

                      AVGS1            AVGS0               Number of Averages

                      0                0                   15

                      0                1                   1

                      1                0                   31

                      1                1                   63

3  RSVD               Reserved. This bit should always be written as 0.

2  RSVD               This bit should always be written as 1 by the user when performing calibration.

1  TYPICAL            Calibration Type Select Bit.

                      This bit selects between offset (zero-scale) and gain (full-scale) calibration.

                      Set to 0 for offset calibration.

                      Set to 1 for gain calibration.

0  SCAL               Start Calibration Cycle Bit.

                      When set, this bit starts the selected calibration cycle.

                      It is automatically cleared when the calibration cycle is completed.

                                                           Rev. 0 | Page 26 of 88
                                                                                         ADuC841/ADuC842/ADuC843

The ADC incorporates a successive approximation architecture       kHz sample rate. Though the R/C does help to reject some
(SAR) involving a charge-sampled input stage. Figure 30 shows      incoming high frequency noise, its primary function is to ensure
the equivalent circuit of the analog input section. Each ADC       that the transient demands of the ADC input stage are met.
conversion is divided into two distinct phases, as defined by the
position of the switches in Figure 30. During the sampling                               10                 ADuC841/
phase (with SW1 and SW2 in the track position), a charge                                 0.1 F             ADuC842/
proportional to the voltage on the analog input is developed                                                ADuC843
across the input sampling capacitor. During the conversion
phase (with both switches in the hold position), the capacitor                                            AIN0
DAC is adjusted via internal SAR logic until the voltage on
Node A is 0, indicating that the sampled charge on the input     03260-0-028             Figure 31. Buffering Analog Inputs
capacitor is balanced out by the charge being output by the                                                                                                                                                                                                                           03260-0-029
capacitor DAC. The final digital value contained in the SAR is     It does so by providing a capacitive bank from which the 32 pF
then latched out as the result of the ADC conversion. Control of   sampling capacitor can draw its charge. Its voltage does not
the SAR and timing of acquisition and sampling modes is            change by more than one count (1/4096) of the 12-bit transfer
handled automatically by built-in ADC control logic.               function when the 32 pF charge from a previous channel is
Acquisition and conversion times are also fully configurable       dumped onto it. A larger capacitor can be used if desired, but
under user control.                                                not a larger resistor (for reasons described below). The Schottky
                                                                   diodes in Figure 31 may be necessary to limit the voltage
          ADuC841/ADuC842/ADuC843                                  applied to the analog input pin per the Absolute Maximum
                                                                   Ratings. They are not necessary if the op amp is powered from
        VREF                                                       the same supply as the part since in that case the op amp is
        AGND                                                       unable to generate voltages above VDD or below ground. An op
        DAC1                                                       amp of some kind is necessary unless the signal source is very
        DAC0                                                       low impedance to begin with. DC leakage currents at the parts'
        TEMPERATURE MONITOR                                        analog inputs can cause measurable dc errors with external
                                                                   source impedances as low as 100  or so. To ensure accurate
AIN7                                                               ADC operation, keep the total source impedance at each analog
                                                                   input less than 61 . The Table 10 illustrates examples of how
        200                      CAPACITOR                         source impedance can affect dc accuracy.
                                      DAC
  AIN0
AGND    TRACK sw1

        HOLD                     COMPARATOR

              32pF

        200   NODE A                                               Table 10. Source Impedance and DC Accuracy
                            sw2
                                                                   Source                Error from 1 A Error from 10 A
              TRACK  HOLD                                          Impedance             Leakage Current Leakage Current

                                                                   61                    61 V = 0.1 LSB  610 V = 1 LSB

                          Figure 30. Internal ADC Structure        610                   610 V = 1 LSB   6.1 mV = 10 LSB

Note that whenever a new input channel is selected, a residual     Although Figure 31 shows the op amp operating at a gain of 1,
charge from the 32 pF sampling capacitor places a transient on     one can, of course, configure it for any gain needed. Also, one
the newly selected input. The signal source must be capable of     can just as easily use an instrumentation amplifier in its place to
recovering from this transient before the sampling switches go     condition differential signals. Use an amplifier that is capable of
into hold mode. Delays can be inserted in software (between        delivering the signal (0 V to VREF) with minimal saturation.
channel selection and conversion request) to account for input     Some single-supply rail-to-rail op amps that are useful for this
stage settling, but a hardware solution alleviates this burden     purpose are described in Table 11. Check Analog Devices website
from the software design task and ultimately results in a cleaner  www.analog.com for details on these and other op amps and
system implementation. One hardware solution is to choose a        instrumentation amps.
very fast settling op amp to drive each analog input. Such an op
amp would need to fully settle from a small signal transient in
less than 300 ns in order to guarantee adequate settling under
all software configurations. A better solution, recommended for
use with any amplifier, is shown in Figure 31. Though at first
glance the circuit in Figure 31 may look like a simple antialias-
ing filter, it actually serves no such purpose since its corner
frequency is well above the Nyquist frequency, even at a 200

                                                                 Rev. 0 | Page 27 of 88
ADuC841/ADuC842/ADuC843

Table 11. Some Single-Supply Op Amps                                 If an external voltage reference is preferred, it should be
                                                                     connected to the CREF pin as shown in Figure 33. Bit 6 of the
Op Amp Model            Characteristics                              ADCCON1 SFR must be set to 1 to switch in the external
                                                                     reference voltage.
OP281/OP481             Micropower
                                                                     To ensure accurate ADC operation, the voltage applied to CREF
OP191/OP291/OP491       I/O Good up to VDD, Low Cost                 must be between 1 V and AVDD. In situations where analog
                                                                     input signals are proportional to the power supply (such as in
OP196/OP296/OP496       I/O to VDD, Micropower, Low Cost             some strain gage applications), it may be desirable to connect
                                                                     the CREF pin directly to AVDD. Operation of the ADC or DACs
OP183/OP283             High Gain-Bandwidth Product                  with a reference voltage below 1 V, however, may incur loss of
                                                                     accuracy, eventually resulting in missing codes or non-
OP162/OP262/OP462 High GBP, Micro Package                            monotonicity. For that reason, do not use a reference voltage
                                                                     lower than 1 V.
AD820/AD822/AD824 FET Input, Low Cost

AD823                   FET Input, High GBP

Keep in mind that the ADC's transfer function is 0 V to VREF,                                                 ADuC841/ADuC842/ADuC843
and that any signal range lost to amplifier saturation near
ground will impact dynamic range. Though the op amps in                                        VDD            51  2.5V
Table 11 are capable of delivering output signals that very                               EXTERNAL
closely approach ground, no amplifier can deliver signals all the                          VOLTAGE                BAND GAP
way to ground when powered by a single supply. Therefore, if a                           REFERENCE
negative supply is available, you might consider using it to                                                      REFERENCE
power the front end amplifiers. If you do, however, be sure to                                  VREF = NC
include the Schottky diodes shown in Figure 31 (or at least the                                                              BUFFER
lower of the two diodes) to protect the analog input from                                               CREF
undervoltage conditions. To summarize this section, use the                                          0.1 F   0 = INTERNAL
circuit in Figure 31 to drive the analog input pins of the parts.                                             1 = EXTERNAL

Voltage Reference Connections                                                                                     ADCCON1.6

The on-chip 2.5 V band gap voltage reference can be used as the  03260-0-030             Figure 33. Using an External Voltage Reference
reference source for the ADC and DACs. To ensure the accuracy                                                                                                                                                                                                                               03260-0-031
of the voltage reference, you must decouple the CREF pin to
ground with a 0.47 F capacitor, as shown in Figure 32. Note
that this is different from the ADuC812/ADuC831/ADuC832.

                        ADuC841/ADuC842/ADuC843                      Configuring the ADC

                        51      2.5V                                 The parts' successive approximation ADC is driven by a divided
                                                                     down version of the master clock. To ensure adequate ADC
                                BAND GAP                             operation, this ADC clock must be between 400 kHz and
                                                                     8.38 MHz. Frequencies within this range can be achieved easily
                                REFERENCE                            with master clock frequencies from 400 kHz to well above
                                                                     16 MHz, with the four ADC clock divide ratios to choose from.
                        BUFFER                                       For example, set the ADC clock divide ratio to 8 (i.e., ADCCLK
                                                                     = 16.777216 MHz/8 = 2 MHz) by setting the appropriate bits in
             VREF = NC                                               ADCCON1 (ADCCON1.5 = 1, ADCCON1.4 = 0). The total
                                                                     ADC conversion time is 15 ADC clocks, plus 1 ADC clock for
BUFFER         CREF                                                  synchronization, plus the selected acquisition time (1, 2, 3, or 4
              0.47F                                                 ADC clocks). For the preceding example, with a 3-clock
                                                                     acquisition time, total conversion time is 19 ADC clocks (or
                         Figure 32. Decoupling VREF and CREF         9.05 s for a 2 MHz ADC clock).

If the internal voltage reference is to be used as a reference for   In continuous conversion mode, a new conversion begins each
external circuitry, the CREF output should be used. However, a       time the previous one finishes. The sample rate is then simply
buffer must be used in this case to ensure that no current is        the inverse of the total conversion time described previously. In
drawn from the CREF pin itself. The voltage on the CREF pin is that  the preceding example, the continuous conversion mode sample
of an internal node within the buffer block, and its voltage is      rate is 110.3 kHz.
critical for ADC and DAC accuracy. The parts power up with
their internal voltage reference in the off state.

                                                                 Rev. 0 | Page 28 of 88
                                                                   ADuC841/ADuC842/ADuC843

If using the temperature sensor as the ADC input, the ADC          00000AH 1 1 1 1            STOP COMMAND
should be configured to use an ADCCLK of MCLK/32 and four                           00 1 1    REPEAT LAST CHANNEL
acquisition clocks.                                                                 00 1 1    FOR A VALID STOP
                                                                                    100 0     CONDITION
Increasing the conversion time on the temperature monitor                                     CONVERT ADC CH 3
channel improves the accuracy of the reading. To further
improve the accuracy, an external reference with low tempera-                                 CONVERT TEMP SENSOR
ture drift should also be used.
                                                                   010 1                      CONVERT ADC CH 5                         03260-0-033
ADC DMA Mode
                                                                   000000H 0 0 1 0            CONVERT ADC CH 2
The on-chip ADC has been designed to run at a maximum
conversion speed of 2.38 s (420 kHz sampling rate). When                     Figure 34. Typical DMA External Memory Preconfiguration
converting at this rate, the ADuC841/ADuC842/ADuC843
MicroConverter has 2 s to read the ADC result and to store the    4. The DMA is initiated by writing to the ADC SFRs in the
result in memory for further postprocessing; otherwise the next         following sequence:
ADC sample could be lost. In an interrupt driven routine, the
MicroConverter would also have to jump to the ADC interrupt        a. ADCCON2 is written to enable the DMA mode, i.e.,
service routine, which also increases the time required to store        MOV ADCCON2, #40H; DMA mode enabled.
the ADC results. In applications where the parts cannot sustain
the interrupt rate, an ADC DMA mode is provided.                   b. ADCCON1 is written to configure the conversion
                                                                        time and power-up of the ADC. It can also enable
To enable DMA mode, Bit 6 in ADCCON2 (DMA) must be set,                 Timer 2 driven conversions or external triggered
which allows the ADC results to be written directly to a 16 MByte       conversions if required.
external static memory SRAM (mapped into data memory
space) without any interaction from the core of the part. This     c. ADC conversions are initiated. This is done by starting
mode allows the part to capture a contiguous sample stream at           single conversions, starting Timer 2, running for
full ADC update rates (420 kHz).                                        Timer 2 conversions, or receiving an external trigger.

Typical DMA Mode Configuration Example                             When the DMA conversions are complete, the ADC interrupt
                                                                   bit, ADCI, is set by hardware, and the external SRAM contains
Setting the parts to DMA mode consists of the following steps:     the new ADC conversion results as shown in Figure 35. Note
                                                                   that no result is written to the last two memory locations.
1. The ADC must be powered down. This is done by ensuring
     that MD1 and MD0 are both set to 0 in ADCCON1.                When the DMA mode logic is active, it takes the responsibility
                                                                   of storing the ADC results away from both the user and the core
2. The DMA address pointer must be set to the start address        logic of the part. As the DMA interface writes the results of the
     of where the ADC results are to be written. This is done by   ADC conversions to external memory, it takes over the external
     writing to the DMA mode address pointers DMAL, DMAH,          memory interface from the core. Thus, any core instructions
     and DMAP. DMAL must be written to first, followed by          that access the external memory while DMA mode is enabled
     DMAH, and then by DMAP.                                       does not get access to the external memory. The core executes
                                                                   the instructions, and they take the same time to execute, but
3. The external memory must be preconfigured. This consists        they cannot access the external memory.
     of writing the required ADC channel IDs into the top four
     bits of every second memory location in the external          00000AH 1 1 1 1            STOP COMMAND                             03260-0-034
     SRAM, starting at the first address specified by the DMA                         0011
     address pointer. Because the ADC DMA mode operates                               0011    NO CONVERSION
     independently from the ADuC841/ADuC842/ADuC843                                   1 00 0  RESULT WRITTEN HERE
     core, it is necessary to provide it with a stop command.                         0 10 1
     This is done by duplicating the last channel ID to be                                    CONVERSION RESULT
     converted followed by 1111 into the next channel selection    000000H 0 0 1 0            FOR ADC CH 3
     field. A typical preconfiguration of external memory is
     shown in Figure 34.                                                                      CONVERSION RESULT
                                                                                              FOR TEMP SENSOR

                                                                                              CONVERSION RESULT
                                                                                              FOR ADC CH 5

                                                                                              CONVERSION RESULT
                                                                                              FOR ADC CH 2

                                                                   Figure 35. Typical External Memory Configuration Post ADC DMA Operation

Rev. 0 | Page 29 of 88
ADuC841/ADuC842/ADuC843

The DMA logic operates from the ADC clock and uses pipelin-         ADC Offset and Gain Calibration Coefficients
ing to perform the ADC conversions and to access the external
memory at the same time. The time it takes to perform one ADC       The ADuC841/ADuC842/ADuC843 have two ADC calibration
conversion is called a DMA cycle. The actions performed by the      coefficients, one for offset calibration and one for gain calibra-
logic during a typical DMA cycle are shown in Figure 36.            tion. Both the offset and gain calibration coefficients are 14-bit
                                                                    words, and are each stored in two registers located in the special
CONVERT CHANNEL READ DURING PREVIOUS DMA CYCLE                      function register (SFR) area. The offset calibration coefficient is
                                                                    divided into ADCOFSH (six bits) and ADCOFSL (8 bits), and
  WRITE ADC RESULT        READ CHANNEL ID       03260-0-035         the gain calibration coefficient is divided into ADCGAINH
CONVERTED DURING   TO BE CONVERTED DURING                          (6 bits) and ADCGAINL (8 bits).
PREVIOUS DMA CYCLE
                           NEXT DMA CYCLE                           The offset calibration coefficient compensates for dc offset
                                                                    errors in both the ADC and the input signal. Increasing the
                                                    DMA CYCLE       offset coefficient compensates for positive offset, and effectively
                                                                    pushes the ADC transfer function down. Decreasing the offset
                                 Figure 36. DMA Cycle               coefficient compensates for negative offset, and effectively
                                                                    pushes the ADC transfer function up. The maximum offset that
Figure 36 shows that during one DMA cycle, the following            can be compensated is typically 5% of VREF, which equates to
actions are performed by the DMA logic:                             typically 125 mV with a 2.5 V reference.

1. An ADC conversion is performed on the channel whose ID           Similarly, the gain calibration coefficient compensates for dc
     was read during the previous cycle.                            gain errors in both the ADC and the input signal. Increasing the
                                                                    gain coefficient compensates for a smaller analog input signal
2. The 12-bit result and the channel ID of the conversion           range and scales the ADC transfer function up, effectively
     performed in the previous cycle is written to the external     increasing the slope of the transfer function. Decreasing the
     memory.                                                        gain coefficient compensates for a larger analog input signal
                                                                    range and scales the ADC transfer function down, effectively
3. The ID of the next channel to be converted is read from          decreasing the slope of the transfer function. The maximum
     external memory.                                               analog input signal range for which the gain coefficient can
                                                                    compensate is 1.025 VREF, and the minimum input range is
For the previous example, the complete flow of events is shown      0.975 VREF, which equates to typically 2.5% of the reference
in Figure 36. Because the DMA logic uses pipelining, it takes       voltage.
three cycles before the first correct result is written out.
                                                                    CALIBRATING THE ADC
Micro Operation during ADC DMA Mode
                                                                    Two hardware calibration modes are provided, which can be
During ADC DMA mode, the MicroConverter core is free to             easily initiated by user software. The ADCCON3 SFR is used to
continue code execution, including general housekeeping and         calibrate the ADC. Bit 1 (typical) and CS3 to CS0 (ADCCON2) set
communication tasks. However, note that MCU core accesses to        up the calibration modes.
Ports 0 and 2 (which of course are being used by the DMA con-
troller) are gated off during the ADC DMA mode of operation.        Device calibration can be initiated to compensate for significant
This means that even though the instruction that accesses the       changes in operating condition frequency, analog input range,
external Ports 0 or 2 appears to execute, no data is seen at these  reference voltage, and supply voltages. In this calibration mode,
external ports as a result. Note that during DMA to the inter-      offset calibration uses internal AGND selected via ADCCON2
nally contained XRAM, Ports 0 and 2 are available for use.          register Bits CS3 to CS0 (1011), and gain calibration uses inter-
                                                                    nal VREF selected by Bits CS3 to CS0 (1100). Offset calibration
The only case in which the MCU can access XRAM during               should be executed first, followed by gain calibration. System
DMA is when the internal XRAM is enabled and the section of         calibration can be initiated to compensate for both internal and
RAM to which the DMA ADC results are being written to lies          external system errors. To perform system calibration by using
in an external XRAM. Then the MCU can access the internal           an external reference, tie the system ground and reference to
XRAM only. This is also the case for use of the extended stack      any two of the six selectable inputs. Enable external reference
pointer.                                                            mode (ADCCON1.6). Select the channel connected to AGND
                                                                    via Bits CS3 to CS0 and perform system offset calibration. Select
The MicroConverter core can be configured with an interrupt         the channel connected to VREF via Bits CS3 to CS0 and perform
to be triggered by the DMA controller when it has finished          system gain calibration.
filling the requested block of RAM with ADC results, allowing
the service routine for this interrupt to postprocess data without
any real-time timing constraints.

                                                             Rev. 0 | Page 30 of 88
                                                                                                   ADuC841/ADuC842/ADuC843

Initiating the Calibration in Code                                                                 NONVOLATILE FLASH/EE MEMORY

When calibrating the ADC using ADCCON1, the ADC must be                                            The ADuC841/ADuC842/ADuC843 incorporate Flash/EE
set up into the configuration in which it will be used. The                                        memory technology on-chip to provide the user with nonvola-
ADCCON3 register can then be used to set up the device and to                                      tile, in-circuit, reprogrammable code and data memory space.
calibrate the ADC offset and gain.                                                                 Flash/EE memory is a relatively recent type of nonvolatile
                                                                                                   memory technology, which is based on a single transistor cell
MOV ADCCON1,#08CH ; ADC on; ADCCLK set                                                             architecture. Flash/EE memory combines the flexible in-circuit
                                       ;to divide by 32,4                                          reprogrammable features of EEPROM with the space efficient/
                                       ;acquisition clock                                          density features of EPROM as shown in Figure 37.

To calibrate device offset:

MOV ADCCON2,#0BH             ;select internal AGND                                                 Because Flash/EE technology is based on a single transistor cell
MOV ADCCON3,#25H             ;select offset calibration,                                           architecture, a flash memory array, such as EPROM, can be
                             ;31 averages per bit,                                                 implemented to achieve the space efficiencies or memory densities
                             ;offset calibration                                                   required by a given design. Like EEPROM, flash memory can be
                                                                                                   programmed in-system at a byte level; it must first be erased,
To calibrate device gain:    ;select internal V                                                    the erase being performed in page blocks. Thus, flash memory
                                                                                              REF  is often and more correctly referred to as Flash/EE memory.
MOV ADCCON2,#0CH
MOV ADCCON3,#27H             ;select offset calibration,
                             ;31 averages per bit,

                             ;offset calibration

To calibrate system offset, connect system AGND to an ADC                                               EPROM            EEPROM
channel input (0).                                                                                 TECHNOLOGY        TECHNOLOGY

MOV ADCCON2,#00H             ;select external AGND                                                 SPACE EFFICIENT/         IN-CIRCUIT
MOV ADCCON3,#25H             ;select offset calibration,                                                  DENSITY    REPROGRAMMABLE
                             ;31 averages per bit
                                                                                                                     FLASH/EEMEMORY     03260-0-036
                                                                                                                        TECHNOLOGY

To calibrate system gain, connect system VREF to an ADC                                                                 Figure 37. Flash/EE Memory Development
channel input (1).
                                                                                                   Overall, Flash/EE memory represents a step closer to the ideal
MOV ADCCON2,#01H             ;select external V                                                    memory device that includes nonvolatility, in-circuit program-
MOV ADCCON3,#27H                                                                              REF  mability, high density, and low cost. Incorporated in the parts,
                                                                                                   Flash/EE memory technology allows the user to update program
                             ;select offset calibration,                                           code space in-circuit, without the need to replace one-time
                                                                                                   programmable (OTP) devices at remote operating nodes.
                             ;31 averages per bit,
                                                                                                   Flash/EE Memory and the ADuC841/ADuC842/ADuC843
                             ;offset calibration
                                                                                                   The parts provide two arrays of Flash/EE memory for user
The calibration cycle time TCAL is calculated by the following                                     applications. Up to 62 kBytes of Flash/EE program space are
                                                                                                   provided on-chip to facilitate code execution without any
equation:                                                                                          external discrete ROM device requirements. The program
                                                                                                   memory can be programmed in-circuit by using the serial
   ( ) TCAL = 14 ADCCLK NUMAV 16 + TACQ                                                      download mode provided, by using conventional third party
                                                                                                   memory programmers, or via a user defined protocol that can
For an ADCCLK/FCORE divide ratio of 32, TACQ = 4 ADCCLK,                                           configure it as data if required.
and NUMAV = 15, the calibration cycle time is
                                                                                                   Note that the following sections use the 62 kByte program space
    TCAL = 14 (1/ 524288)15 (16 + 4)                                                           as an example when referring to ULOAD mode. For the other
                                                                                                   memory models (32 kByte and 8 kByte), the ULOAD space
     TCAL = 8 ms                                                                                   moves to the top 8 kBytes of the on-chip program memory, i.e.,
                                                                                                   for 32 kBytes, the ULOAD space is from 24 kBytes to 32 kBytes,
In a calibration cycle, the ADC busy flag (Bit 7), instead of                                      the kernel still resides in a protected space from 60 kBytes to
framing an individual ADC conversion as in normal mode, goes                                       62 kBytes. There is no ULOAD space present on the 8 kBtye part.
high at the start of calibration and returns to zero only at the
end of the calibration cycle. It can therefore be monitored in
code to indicate when the calibration cycle is completed. The
following code can be used to monitor the BUSY signal during
a calibration cycle:

WAIT:                        ;move ADCCON3 to A
MOV A, ADCCON3               ;If Bit 7 is set jump to
JB ACC.7, WAIT               WAIT else continue

                                                         Rev. 0 | Page 31 of 88
ADuC841/ADuC842/ADuC843                                             300

A 4 kByte Flash/EE data memory space is also provided on-           250
chip. This may be used as a general-purpose nonvolatile
scratchpad area. User access to this area is via a group of six     RETENTION (Years)200
SFRs. This space can be programmed at a byte level, although it
must first be erased in 4-byte pages.                                                                                                                                                                                               03260-0-037ADI SPECIFICATION

Flash/EE Memory Reliability                                                      100 YEARS MIN.

The Flash/EE program and data memory arrays on the parts are        150          AT TJ = 55C
fully qualified for two key Flash/EE memory characteristics:
Flash/EE memory cycling endurance and Flash/EE memory               100
data retention.
                                                                    50
Endurance quantifies the ability of the Flash/EE memory to be
cycled through many program, read, and erase cycles. In real        0
terms, a single endurance cycle is composed of four independ-       40   50  60  70  80             90     100      110
ent, sequential events, defined as
                                                                             TJ JUNCTION TEMPERATURE (C)
1. Initial page erase sequence.
                                                                         Figure 38. Flash/EE Memory Data Retention
2. Read/verify sequence a single Flash/EE.
                                                                    Using the Flash/EE Program Memory
3. Byte program sequence memory.
                                                                    The 62 kByte Flash/EE program memory array is mapped into
4. Second read/verify sequence endurance cycle.                     the lower 62 kBytes of the 64 kByte program space addressable
                                                                    by the parts, and is used to hold user code in typical applica-
In reliability qualification, every byte in both the program and    tions. The program Flash/EE memory array can be
data Flash/EE memory is cycled from 00H to FFH until a first        programmed in three ways:
fail is recorded, signifying the endurance limit of the on-chip
Flash/EE memory.                                                    Serial Downloading (In-Circuit Programming)

As indicated in the Specifications table, the parts' Flash/EE       The parts facilitate code download via the standard UART serial
memory endurance qualification has been carried out in              port. The parts enter serial download mode after a reset or
accordance with JEDEC Retention Lifetime Specification A117         power cycle if the PSEN pin is pulled low through an external
over the industrial temperature range of 40C to +25C and         1 k resistor. Once in serial download mode, the user can
+25C to +85C. The results allow the specification of a mini-      download code to the full 62 kBytes of Flash/EE program
mum endurance figure over supply and over temperature of            memory while the device is in-circuit in its target application
100,000 cycles, with an endurance figure of 700,000 cycles being    hardware.
typical of operation at 25C.
                                                                    A PC serial download executable is provided as part of the
Retention quantifies the ability of the Flash/EE memory to          ADuC841/ADuC842 QuickStart development system. The
retain its programmed data over time. Again, the parts have         serial download protocol is detailed in MicroConverter
been qualified in accordance with the formal JEDEC Retention        Application Note uC004.
Lifetime Specification (A117) at a specific junction temperature
(TJ = 55C). As part of this qualification procedure, the Flash/EE  Parallel Programming
memory is cycled to its specified endurance limit, described
previously, before data retention is characterized. This means      Parallel programming mode is fully compatible with conven-
that the Flash/EE memory is guaranteed to retain its data for its   tional third party flash or EEPROM device programmers. In
fully specified retention lifetime every time the Flash/EE          this mode, Ports P0, P1, and P2 operate as the external data and
memory is reprogrammed. Also note that retention lifetime,          address bus interface, ALE operates as the write enable strobe,
based on an activation energy of 0.6 eV, derates with TJ as         and Port P3 is used as a general configuration port, which
shown in Figure 38.                                                 configures the device for various program and erase operations
                                                                    during parallel programming. The high voltage (12 V) supply
                                                                    required for flash programming is generated using on-chip
                                                                    charge pumps to supply the high voltage program lines. The
                                                                    complete parallel programming specification is available on the
                                                                    MicroConverter home page at www.analog.com/microconverter.

Rev. 0 | Page 32 of 88
                                                                                                      ADuC841/ADuC842/ADuC843

User Download Mode (ULOAD)                                                                      EMBEDDED DOWNLOAD/DEBUG KERNEL        FFFFH
                                                                                                                                     2kBYTE
Figure 39 shows that it is possible to use the 62 kBytes of                                PERMANENTLY EMBEDDED FIRMWARE ALLOWS       F800H
Flash/EE program memory available to the user as a single                                    CODE TO BE DOWNLOADED TO ANY OF THE      F7FFH
block of memory. In this mode, all of the Flash/EE memory is                                 32 kBYTES OF ON-CHIP PROGRAM MEMORY.     NOP'S
read-only to user code.                                                                       THE KERNEL PROGRAM APPEARS AS 'NOP'     8000H
                                                                                                        INSTRUCTIONS TO USER CODE
                                                                                                                                      7FFFH
However, the Flash/EE program memory can also be written to                                32 kBYTES       USER BOOTLOADER SPACE     8kBYTE
during runtime simply by entering ULOAD mode. In ULOAD                                      OF USER                                   6000H
mode, the lower 56 kBytes of program memory can be erased and                                  CODE          THE USER BOOTLOADER
reprogrammed by user software as shown in Figure 39. ULOAD                                  MEMORY     SPACE CAN BE PROGRAMMED IN    5FFFH
mode can be used to upgrade your code in the field via any user                                       DOWNLOAD/DEBUG MODE VIA THE   26kBYTE
defined download protocol. By configuring the SPI port on the                                         KERNEL BUT IS READ ONLY WHEN               03260-0-039
part as a slave, it is possible to completely reprogram the                                                                           0000H
56 kBytes of Flash/EE program memory in only 5 seconds (refer                                                 EXECUTING USER CODE
to Application Note uC007).                                                                                                                     
                                                                                                           USER DOWNLOADER SPACE

                                                                                                        EITHER THE DOWNLOAD/DEBUG
                                                                                                           KERNEL OR USER CODE (IN

                                                                                                         ULOAD MODE) CAN PROGRAM
                                                                                                                       THIS SPACE

                                                                                           Figure 40. Flash/EE Program Memory Map in ULOAD Mode
                                                                                                                     (32 kByte Part)

Alternatively, ULOAD mode can be used to save data to the          Flash/EE Program Memory Security
56 kBytes of Flash/EE memory. This can be extremely useful in
data logging applications where the part can provide up to         The ADuC841/ADuC842/ADuC843 facilitate three modes of
60 kBytes of NV data memory on chip (4 kBytes of dedicated         Flash/EE program memory security. These modes can be
Flash/EE data memory also exist).                                  independently activated, restricting access to the internal code
                                                                   space. These security modes can be enabled as part of serial
The upper 6 kBytes of the 62 kBytes of Flash/EE program            download protocol as described in Application Note uC004 or
memory are programmable only via serial download or parallel       via parallel programming. The security modes available on the
programming. This means that this space appears as read-only       parts are as follows:
to user code. Therefore, it cannot be accidentally erased or
reprogrammed by erroneous code execution, which makes it           Lock Mode
very suitable to use the 6 kBytes as a bootloader.
                                                                   This mode locks the code memory, disabling parallel program-
A bootload enable option exists in the serial downloader to        ming of the program memory. However, reading the memory in
"always run from E000H after reset." If using a bootloader, this   parallel mode and reading the memory via a MOVC command
option is recommended to ensure that the bootloader always         from external memory is still allowed. This mode is deactivated
executes correct code after reset. Programming the Flash/EE        by initiating a code-erase command in serial download or
program memory via ULOAD mode is described in more detail          parallel programming modes.
in the description of ECON and in Application Note uC007.
                                                                   Secure Mode
     EMBEDDED DOWNLOAD/DEBUG KERNEL        FFFFH
                                          2kBYTE                   This mode locks code in memory, disabling parallel program-
PERMANENTLY EMBEDDED FIRMWARE ALLOWS       F800H                   ming (program and verify/read commands) as well as disabling
  CODE TO BE DOWNLOADED TO ANY OF THE      F7FFH                   the execution of a MOVC instruction from external memory,
  62 kBYTES OF ON-CHIP PROGRAM MEMORY.    6kBYTE                   which is attempting to read the op codes from internal memory.
   THE KERNEL PROGRAM APPEARS AS 'NOP'     E000H                   Read/write of internal data Flash/EE from external memory is
             INSTRUCTIONS TO USER CODE                             also disabled. This mode is deactivated by initiating a code-erase
                                          dFFFH                    command in serial download or parallel programming modes.
62 kBYTES       USER BOOTLOADER SPACE    56kBYTE
OF USER                                                           Serial Safe Mode
    CODE          THE USER BOOTLOADER      0000H
MEMORY     SPACE CAN BE PROGRAMMED IN                             This mode disables serial download capability on the device. If
           DOWNLOAD/DEBUG MODE VIA THE                             serial safe mode is activated and an attempt is made to reset the
           KERNEL BUT IS READ ONLY WHEN               03260-0-038  part into serial download mode, i.e., RESET asserted and de-
                                                                   asserted with PSEN low, the part interprets the serial download
                   EXECUTING USER CODE                             reset as a normal reset only. It therefore cannot enter serial
                                                                   download mode but can only execute as a normal reset
                USER DOWNLOADER SPACE                              sequence. Serial safe mode can be disabled only by initiating a
                                                                   code-erase command in parallel programming mode.
             EITHER THE DOWNLOAD/DEBUG
                KERNEL OR USER CODE (IN

              ULOAD MODE) CAN PROGRAM
                            THIS SPACE

Figure 39. Flash/EE Program Memory Map in ULOAD Mode
                          (62 kByte Part)

                                                                   Rev. 0 | Page 33 of 88
ADuC841/ADuC842/ADuC843

USING FLASH/EE DATA MEMORY                                                  3FFH           BYTE 1  BYTE 2                   BYTE 3       BYTE 4
                                                                            3FEH          (0FFCH)  (0FFDH)                  (0FFEH)     (0FFFH)
The 4 kBytes of Flash/EE data memory are configured as 1024
pages, each of 4 bytes. As with the other ADuC841/ADuC842/                                 BYTE 1   BYTE 2                  BYTE 3       BYTE 4
ADuC843 peripherals, the interface to this memory space is via                            (0FF8H)  (0FF9H)                  (0FFAH)     (0FFBH)
a group of registers mapped in the SFR space. A group of four
data registers (EDATA14) is used to hold the four bytes of data       PAGE ADDRESS  03H  BYTE 1   BYTE 2                   BYTE 3       BYTE 4
at each page. The page is addressed via the two registers, EADRH          (EADRH/L)                (000DH)                  (000EH)     (000FH)
and EADRL. Finally, ECON is an 8-bit control register that may                            (000CH)
be written with one of nine Flash/EE memory access commands                                         BYTE 2                  BYTE 3      BYTE 4
to trigger various read, write, erase, and verify functions. A block                 02H  BYTE 1   (0009H)                  (000AH)     (000BH)
diagram of the SFR interface to the Flash/EE data memory array                            (0008H)
is shown in Figure 41.                                                                              BYTE 2                  BYTE 3      BYTE 4
                                                                                     01H  BYTE 1   (0005H)                  (0006H)     (0007H)
ECON--Flash/EE Memory Control SFR
                                                                                          (0004H)   BYTE 2                  BYTE 3       BYTE 4
Programming of either Flash/EE data memory or Flash/ EE                                            (0001H)                  (0002H)     (0003H)
program memory is done through the Flash/EE memory                                   00H  BYTE 1
control SFR (ECON). This SFR allows the user to read, write,
erase, or verify the 4 kBytes of Flash/EE data memory or the                              (0000H)
56 kBytes of Flash/EE program memory.
                                                                      BYTE                EDATA1 SFR                        EDATA3 SFR  EDATA4 SFR
                                                                      ADDRESSES                                 EDATA2 SFR
                                                                      ARE GIVEN IN                                                                         03260-0-040
                                                                      BRACKETS

                                                                                     Figure 41. Flash/EE Data Memory Control and Configuration

Table 12. ECON--Flash/EE Memory Commands

ECON VALUE  Command Description (Normal Mode)                                        Command Description (ULOAD Mode)
            (Power-On Default)                                                       Not implemented. Use the MOVC instruction.

01H         Results in 4 bytes in the Flash/EE data memory, addressed                Results in bytes 0255 of internal XRAM being written to
READ        by the page address EADRH/L, being read into EDATA14.                   the 256 bytes of Flash/EE program memory at the page
                                                                                     address given by EADRH (0 EADRH < E0H).
02H         Results in 4 bytes in EDATA14 being written to the                      Note that the 256 bytes in the page being addressed must
WRITE       Flash/EE data memory at the page address given by                        be pre-erased.
            EADRH/L (0 EADRH/L < 0400H).                                           Reserved.
                                                                                     Not implemented. Use the MOVC and MOVX instructions
            Note that the 4 bytes in the page being addressed must                   to verify the write in software.
            be pre-erased.
                                                                                     Results in the 64 byte page of Flash/EE program memory,
03H         Reserved.                                                                addressed by the byte address EADRH/L, being erased.
                                                                                     EADRL can equal any of 64 locations within the page. A
04H         Verifies that the data in EDATA14 is contained in the                   new page starts whenever EADRL is equal to 00H, 40H,
VERIFY      page address given by EADRH/L. A subsequent read of the                  80H, or C0H.
            ECON SFR results in 0 being read if the verification is valid,           Results in erasing the entire 56 kBytes of ULOAD Flash/EE
            or a nonzero value being read to indicate an invalid                     program memory.
            verification.                                                            Not implemented. Use the MOVC command.

05H         Results in erasing the 4-byte page of Flash/EE data                      Results in the byte in EDATA1 being written into Flash/EE
ERASE PAGE  memory addressed by the page address EADRH/L.                            program memory at the byte address EADRH/L (0
                                                                                     EADRH/L DFFFH).
06H         Results in erasing the entire 4 kBytes of Flash/EE data                  Enters normal mode directing subsequent ECON
ERASE ALL   memory.                                                                  instructions to operate on the Flash/EE data memory.
81H                                                                                  Leaves the ECON instructions to operate on the Flash/EE
READBYTE    Results in the byte in the Flash/EE data memory,                         program memory.
            addressed by the byte address EADRH/L, being read into
82H         EDATA1 (0 EADRH / L 0FFFH).
WRITEBYTE   Results in the byte in EDATA1 being written into Flash/EE
            data memory at the byte address EADRH/L
0FH
EXULOAD     Leaves the ECON instructions to operate on the Flash/EE
F0H         data memory.
ULOAD
            Enters ULOAD mode, directing subsequent ECON
            instructions to operate on the Flash/EE program memory.

                                               Rev. 0 | Page 34 of 88
                                                                                        ADuC841/ADuC842/ADuC843

Example: Programming the Flash/EE Data Memory                        Flash/EE Memory Timing

A user wants to program F3H into the second byte on Page 03H         Typical program and erase times for the parts are as follows:
of the Flash/EE data memory space while preserving the other
3 bytes already in this page. A typical program of the Flash/EE      Normal Mode (operating on Flash/EE data memory)
data array involves
                                                                     READPAGE (4 bytes)      22 machine cycles

                                                                     WRITEPAGE (4 bytes)     380 s

1. Setting EADRH/L with the page address.                            VERIFYPAGE (4 bytes)    22 machine cycles

                                                                     ERASEPAGE (4 bytes)     2 ms

2. Writing the data to be programmed to the EDATA14.                ERASEALL (4 kBytes)     2 ms

3. Writing the ECON SFR with the appropriate command.                READBYTE (1 byte)       9 machine cycles

                                                                     WRITEBYTE (1 byte)      200 s

Step 1: Set Up the Page Address

Address registers EADRH and EADRL hold the high byte                 ULOAD Mode (operating on Flash/EE program memory)
address and the low byte address of the page to be addressed.
The assembly language to set up the address may appear as            WRITEPAGE (256 bytes)   16.5 ms

                                                                     ERASEPAGE (64 bytes)    2 ms

MOV EADRH,#0          ; Set Page Address Pointer                     ERASEALL (56 kBytes)    2 ms
MOV EADRL,#03H
                                                                     WRITEBYTE (1 byte)      200 s

Step 2: Set Up the EDATA Registers                                   Note that a given mode of operation is initiated as soon as the
                                                                     command word is written to the ECON SFR. The core micro-
Write the four values to be written into the page into the four      controller operation on the parts is idled until the requested
SFRs, EDATA14. Unfortunately, the user does not know three          program/read or erase mode is completed. In practice, this
of them. Thus, the user must read the current page and over-         means that even though the Flash/EE memory mode of operation
write the second byte.                                               is typically initiated with a two machine cycle MOV instruction
                                                                     (to write to the ECON SFR), the next instruction is not executed
MOV ECON,#1           ; Read Page into EDATA1-4                      until the Flash/EE operation is complete. This means that the
MOV EDATA2,#0F3H      ; Overwrite byte 2                             core cannot respond to interrupt requests until the Flash/EE
                                                                     operation is complete, although the core peripheral functions
Step 3: Program Page                                                 like counter/timers continue to count and time as configured
                                                                     throughout this period.
A byte in the Flash/EE array can be programmed only if it has
previously been erased. To be more specific, a byte can be
programmed only if it already holds the value FFH. Because of
the Flash/EE architecture, this erase must happen at a page level;
therefore, a minimum of 4 bytes (1 page) are erased when an
erase command is initiated. Once the page is erase, the user can
program the 4 bytes in-page and then perform a verification of
the data.

MOV ECON,#5           ; ERASE Page
MOV ECON,#2           ; WRITE Page
MOV ECON,#4           ; VERIFY Page
MOV A,ECON            ; Check if ECON=0 (OK!)
JNZ ERROR

Although the 4 kBytes of Flash/EE data memory are shipped
from the factory pre-erased, i.e., byte locations set to FFH, it is
nonetheless good programming practice to include an
ERASEALL routine as part of any configuration/setup code
running on the parts. An ERASEALL command consists of
writing 06H to the ECON SFR, which initiates an erase of the
4-kByte Flash/EE array. This command coded in 8051 assembly
would appear as

MOV ECON,#06H         ; Erase all Command
                      ; 2 ms Duration

                                                       Rev. 0 | Page 35 of 88
ADuC841/ADuC842/ADuC843

ADuC842/ADuC843 Configuration SFR (CFG842)                         CFG842            ADuC842/ADuC843 Config SFR
                                                                   SFR Address       AFH
The CFG842 SFR contains the necessary bits to configure the        Power-On Default  00H
internal XRAM, external clock select, PWM output selection,        Bit Addressable   No
DAC buffer, and the extended SP for both the ADuC842 and the
ADuC843. By default, it configures the user into 8051 mode, i.e.,
extended SP is disabled and internal XRAM is disabled. On the
ADuC841, this register is the CFG841 register and is described
on the next page.

Table 13. CFG842 SFR Bit Designations

Bit No.  Name    Description

7        EXSP    Extended SP Enable.

                 When set to 1 by the user, the stack rolls over from SPH/SP = 00FFH to 0100H.

                 When set to 0 by the user, the stack rolls over from SP = FFH to SP = 00H.

6        PWPO    PWM Pin Out Selection.

                 Set to 1 by the user to select P3.4 and P3.3 as the PWM output pins.

                 Set to 0 by the user to select P2.6 and P2.7 as the PWM output pins.

5        DBUF    DAC Output Buffer.

                 Set to 1 by the user to bypass the DAC output buffer.

                 Set to 0 by the user to enable the DAC output buffer.

4        EXTCLK  Set by the user to 1 to select an external clock input on P3.4.

                 Set by the user to 0 to use the internal PLL clock.

3        RSVD    Reserved. This bit should always contain 0.

2        RSVD    Reserved. This bit should always contain 0.

1        MSPI    Set to 1 by the user to move the SPI functionality of MISO, MOSI, and SCLOCK to P3.3, P3.4, and P3.5,

                 respectively.

                 Set to 0 by the user to leave the SPI functionality as usual on MISO, MOSI, and SCLOCK pins.

0        XRAMEN  XRAM Enable Bit.

                 When set to 1 by the user, the internal XRAM is mapped into the lower 2 kBytes of the external address
                 space.

                 When set to 0 by the user, the internal XRAM is not accessible, and the external data memory is
                 mapped into the lower 2 kBytes of external data memory.

                                         Rev. 0 | Page 36 of 88
                                                                                        ADuC841/ADuC842/ADuC843

CFG841               ADuC841 Config SFR
SFR Address          AFH
Power-On Default     10H1
Bit Addressable      No

Table 14. CFG841 SFR Bit Designations

Bit No. Name      Description

7  EXSP           Extended SP Enable.

                  When set to 1 by the user, the stack rolls over from SPH/SP = 00FFH to 0100H.

                  When set to 0 by the user, the stack rolls over from SP = FFH to SP = 00H.

6  PWPO           PWM Pin Out Selection.

                  Set to 1 by the user to select P3.4 and P3.3 as the PWM output pins.

                  Set to 0 by the user to select P2.6 and P2.7 as the PWM output pins.

5  DBUF           DAC Output Buffer.

                  Set to 1 by the user to bypass the DAC output buffer.

                  Set to 0 by the user to enable the DAC output buffer.

4  EPM2           Flash/EE Controller and PWM Clock Frequency Configuration Bits.

                  Frequency should be configured such that FOSC/Divide Factor = 32 kHz + 50%.

3  EPM1           EPM2 EPM1 EPM0 Divide Factor

2  EPM0           0  0                 0  32

                  0  0                 1  64

                  0  1                 0  128

                  0  1                 1  256

                  1  0                 0  512

                  1  0                 1  1024

1  MSPI           Set to 1 by the user to move the SPI functionality of MISO, MOSI, and SCLOCK to P3.3, P3.4, and P3.5,
                  respectively.

                  Set to 0 by the user to leave the SPI functionality as usual on MISO, MOSI, and SCLOCK pins.

0  XRAMEN         XRAM Enable Bit.

                  When set to 1 by the user, the internal XRAM is mapped into the lower two kBytes of the external address
                  space.

                  When set to 0 by the user, the internal XRAM is not accessible, and the external data memory is mapped into
                  the lower two kBytes of external data memory.

1 Note that the Flash/EE controller bits EPM2, EPM1, EPM0 are set to their correct values depending on the crystal frequency at power-up. The user should not modify
these bits so all instructions to the CFG841 register should use the ORL, XRL, or ANL instructions. Value of 10H is for 11.0592 MHz crystal.

                                               Rev. 0 | Page 37 of 88
ADuC841/ADuC842/ADuC843

USER INTERFACE TO ON-CHIP PERIPHERALS                            Both DACs share a control register, DACCON, and four data
                                                                 registers, DAC1H/L, DAC0/L. Note that in 12-bit asynchronous
This section gives a brief overview of the various peripherals   mode, the DAC voltage output is updated as soon as the DACL
also available on-chip. A summary of the SFRs used to control    data SFR has been written; therefore, the DAC data registers
and configure these peripherals is also given.                   should be updated as DACH first, followed by DACL. Note that
                                                                 for correct DAC operation on the 0 V to VREF range, the ADC
DAC                                                              must be switched on. This results in the DAC using the correct
                                                                 reference value.
The ADuC841/ADuC842 incorporate two 12-bit voltage output
DACs on-chip. Each has a rail-to-rail voltage output buffer      DACCON                   DAC Control Register
capable of driving 10 k/100 pF. Each has two selectable ranges,  SFR Address              FDH
0 V to VREF (the internal band gap 2.5 V reference) and 0 V to   Power-On Default         04H
AVDD. Each can operate in 12-bit or 8-bit mode.                  Bit Addressable          No

Table 15. DACCON SFR Bit Designations

Bit No. Name      Description

7         MODE    The DAC MODE bit sets the overriding operating mode for both DACs.

                  Set to 1 by the user to select 8-bit mode (write 8 bits to DACxL SFR).

                  Set to 0 by the user to select 12-bit mode.

6         RNG1    DAC1 Range Select Bit.

                  Set to 1 by the user to select the range for DAC1 as 0 V to VDD.

                  Set to 0 by the user to select the range for DAC1 as 0 V to VREF.

5         RNG0    DAC0 Range Select Bit.

                  Set to 1 by the user to select the range for DAC0 as 0 V to VDD.

                  Set to 0 by the user to select the range for DAC0 as 0 V to VREF.

4         CLR1    DAC1 Clear Bit.

                  Set to 1 by the user to leave the output of DAC1 at its normal level.

                  Set to 0 by the user to force the output of DAC1 to 0 V.

3         CLR0    DAC0 Clear Bit.

                  Set to 1 by the user to leave the output of DAC0 at its normal level.

                  Set to 0 by the user to force the output of DAC0 to 0 V.

2         SYNC    DAC0/1 Update Synchronization Bit.

                  When set to 1, the DAC outputs update as soon as DACxL SFRs are written. The user can simultaneously update
                  both DACs by first updating the DACxL/H SFRs while SYNC is 0. Both DACs then update simultaneously when the
                  SYNC bit is set to 1.

1         PD1     DAC1 Power-Down Bit.

                  Set to 1 by the user to power on DAC1.

                  Set to 0 by the user to power off DAC1.

0         PD0     DAC0 Power-Down Bit.

                  Set to 1 by the user to power on DAC0.

                  Set to 0 by the user to power off DAC0.

DACxH/L           DAC Data Registers

Function          DAC data registers, written by the user to update the DAC output.

SFR Address       DAC0L (DAC0 Data Low Byte) -> F9H; DAC1L (DAC1 Data Low Byte) -> FBH

                  DACH (DAC0 Data High Byte) -> FAH; DAC1H (DAC1 Data High Byte) -> FCH

Power-On Default  00H All Four Registers.

Bit Addressable   No All Four Registers.

The 12-bit DAC data should be written into DACxH/L right-justified such that DACxL contains the lower 8 bits, and the lower nibble of
DACxH contains the upper 4 bits.

                                          Rev. 0 | Page 38 of 88
                                                                                                                                               ADuC841/ADuC842/ADuC843

Using the DAC                                                                     VDD
                                                                        VDD50mV
The on-chip DAC architecture consists of a resistor string DAC         VDD100mV
followed by an output buffer amplifier, the functional equivalent
of which is illustrated in Figure 42. Details of the actual DAC
architecture can be found in U.S. Patent Number 5969657
(www.uspto.gov). Features of this architecture include inherent
guaranteed monotonicity and excellent differential linearity.

AVDD  ADuC841/ADuC842                                                  100mV
VREF
         R                                                              50mV
                                        OUTPUT                            0mV                                                                                                                                            03260-0-042
                                        BUFFER                                      000H

         R

                                                DAC0                                                                                                                                                    FFFH

      R                                                                                      Figure 43. Endpoint Nonlinearities Due to Amplifier Saturation

                                     HIGH Z
                                    DISABLE
                                 (FROM MCU)

      R

      R                                                                                                                                  5

                                                                     03260-0-041                                                                                                 DAC LOADED WITH 0FFFH
                                                                                                                                         4
                                                                                                                     OUTPUT VOLTAGE (V)
              Figure 42. Resistor String DAC Functional Equivalent                                                                       3

As shown in Figure 42, the reference source for each DAC is                                                                              2
user selectable in software. It can be either AVDD or VREF. In
0 V-to-AVDD mode, the DAC output transfer function spans                                                                                 1
from 0 V to the voltage at the AVDD pin. In 0 V-to-VREF mode,                                                                                                                    DAC LOADED WITH 0000H
the DAC output transfer function spans from 0 V to the internal
VREF or, if an external reference is applied, the voltage at the CREF                                                                    0  0  5                          10                            15  03260-0-043
pin. The DAC output buffer amplifier features a true rail-to-rail
output stage implementation. This means that unloaded, each                                                                                    SOURCE/SINK CURRENT (mA)
output is capable of swinging to within less than 100 mV of
both AVDD and ground. Moreover, the DAC's linearity specifica-                               Figure 44. Source and Sink Current Capability with VREF = VDD = 5 V
tion (when driving a 10 k resistive load to ground) is guaranteed
through the full transfer function except Codes 0 to 100, and, in                            OUTPUT VOLTAGE (V)                          4
0 V-to-AVDD mode only, Codes 3995 to 4095. Linearity degrada-                                                                                      DAC LOADED WITH 0FFFH
tion near ground and VDD is caused by saturation of the output
amplifier, and a general representation of its effects (neglecting                                                                       3
offset and gain error) is illustrated in Figure 43. The dotted line
in Figure 43 indicates the ideal transfer function, and the solid                                                                        1
line represents what the transfer function might look like with
endpoint nonlinearities due to saturation of the output amplifier.                                                                             DAC LOADED WITH 0000H
Note that Figure 43 represents a transfer function in 0 V-to-VDD
mode only. In 0 V-to-VREF mode (with VREF < VDD), the lower                                                                              0  0  5                          10                            15  03260-0-044
nonlinearity would be similar, but the upper portion of the
transfer function would follow the ideal line right to the end
(VREF in this case, not VDD), showing no signs of endpoint
linearity errors.

                                                                                                                                               SOURCE/SINK CURRENT (mA)

                                                                                             Figure 45. Source and Sink Current Capability with VREF = VDD = 3 V

                                                                     Rev. 0 | Page 39 of 88
ADuC841/ADuC842/ADuC843                                             To drive significant loads with the DAC outputs, external03260-0-045
                                                                    buffering may be required (even with the internal buffer
The endpoint nonlinearities illustrated in Figure 43 become         enabled), as illustrated in Figure 46. Table 11 lists some
worse as a function of output loading. Most of the part's           recommended op amps.
specifications assume a 10 k resistive load to ground at the
DAC output. As the output is forced to source or sink more                                                                                 DAC0
current, the nonlinear regions at the top or bottom (respectively)
of Figure 43 become larger. Larger current demands can sig-                                                                  ADuC841/
nificantly limit output voltage swing. Figure 44 and Figure 45                                                               ADuC842
illustrate this behavior. Note that the upper trace in each of
these figures is valid only for an output range selection of                                                                               DAC1
0 V-to-AVDD. In 0 V-to-VREF mode, DAC loading does not cause
high-side voltage drops as long as the reference voltage remains                            Figure 46. Buffering the DAC Outputs
below the upper trace in the corresponding figure. For example,
if AVDD = 3 V and VREF = 2.5 V, the high-side voltage is not be     The DAC output buffer also features a high impedance disable
affected by loads less than 5 mA. But somewhere around 7 mA,        function. In the chip's default power-on state, both DACs are
the upper curve in Figure 45 drops below 2.5 V (VREF), indicating   disabled, and their outputs are in a high impedance state (or
that at these higher currents the output is not capable of          three-state) where they remain inactive until enabled in
reaching VREF.                                                      software. This means that if a zero output is desired during
                                                                    power-up or power-down transient conditions, then a pull-
To reduce the effects of the saturation of the output amplifier at  down resistor must be added to each DAC output. Assuming
values close to ground and to give reduced offset and gain errors,  this resistor is in place, the DAC outputs remain at ground
the internal buffer can be bypassed. This is done by setting the    potential whenever the DAC is disabled.
DBUF bit in the CFG841/CFG842 register. This allows a full
rail-to-rail output from the DAC, which should then be buffered
externally using a dual-supply op amp in order to get a rail-to-
rail output. This external buffer should be located as close as
physically possible to the DAC output pin on the PCB. Note that
the unbuffered mode works only in the 0 V to VREF range.

Rev. 0 | Page 40 of 88
                                                                                     ADuC841/ADuC842/ADuC843

ON-CHIP PLL                                                        At 5 V the core clock can be set to a maximum of 16.78 MHz,
                                                                   while at 3 V the maximum core clock setting is 8.38 MHz. The
The ADuC842 and ADuC843 are intended for use with a                CD bits should not be set to 0 on a 3 V part.
32.768 kHz watch crystal. A PLL locks onto a multiple (512) of
this to provide a stable 16.78 MHz clock for the system. The       Note that on the ADuC841, changing the CD bits in PLLCON
ADuC841 operates directly from an external crystal. The core       causes the core speed to change. The core speed is crystal freq/
can operate at this frequency or at binary submultiples of it to   2CD. The other bits in PLLCON are reserved in the case of the
allow power saving in cases where maximum core performance         ADuC841 and should be written with 0.
is not required. The default core clock is the PLL clock divided
by 8 or 2.097152 MHz. The ADC clocks are also derived from         PLLCON PLL              Control Register
the PLL clock, with the modulator rate being the same as the       SFR Address             D7H
crystal oscillator frequency. The preceding choice of frequencies  Power-On Default        53H
ensures that the modulators and the core are synchronous,          Bit Addressable         No
regardless of the core clock rate. The PLL control register is
PLLCON.

Table 16. PLLCON SFR Bit Designations

Bit No. Name Description

7  OSC_PD Oscillator Power-Down Bit.

         Set by the user to halt the 32 kHz oscillator in power-down mode.

         Cleared by the user to enable the 32 kHz oscillator in power-down mode.

         This feature allows the TIC to continue counting even in power-down mode.

6  LOCK  PLL Lock Bit.

         This is a read-only bit.

         Set automatically at power-on to indicate that the PLL loop is correctly tracking the crystal clock. If the external
         crystal subsequently becomes disconnected, the PLL will rail.

         Cleared automatically at power-on to indicate that the PLL is not correctly tracking the crystal clock. This may be due
         to the absence of a crystal clock or an external crystal at power-on. In this mode, the PLL output can be 16.78 MHz
         20%.

5  ----  Reserved. Should be written with 0.

4  ----  Reserved. Should be written with 0.

3  FINT  Fast Interrupt Response Bit.

         Set by the user enabling the response to any interrupt to be executed at the fastest core clock frequency, regardless
         of the configuration of the CD20 bits (see below). Once user code has returned from an interrupt, the core resumes
         code execution at the core clock selected by the CD20 bits.

         Cleared by the user to disable the fast interrupt response feature.

2  CD2   CPU (Core Clock) Divider Bits.

1  CD1   This number determines the frequency at which the microcontroller core operates.

0  CD0   CD2  CD1                      CD0    Core Clock Frequency (MHz)

         0    0                        0      16.777216

         0    0                        1      8.388608

         0    1                        0      4.194304

         0    1                        1      2.097152 (Default Core Clock Frequency)

         1    0                        0      1.048576

         1    0                        1      0.524288

         1    1                        0      0.262144

         1    1                        1      0.131072

                                              Rev. 0 | Page 41 of 88
ADuC841/ADuC842/ADuC843

PULSE-WIDTH MODULATOR (PWM)                                                                 PWMCON, as described in the following sections, controls the
                                                                                            different modes of operation of the PWM as well as the PWM
The PWM on the ADuC841/ADuC842/ADuC843 is a highly                                          clock frequency.
flexible PWM offering programmable resolution and an input
clock, and can be configured for any one of six different modes                             PWM0H/L and PWM1H/L are the data registers that deter-
of operation. Two of these modes allow the PWM to be config-                                mine the duty cycles of the PWM outputs. The output pins that
ured as a - DAC with up to 16 bits of resolution. A block                                   the PWM uses are determined by the CFG841/CFG842 register,
diagram of the PWM is shown in Figure 47. Note the PWM                                      and can be either P2.6 and P2.7 or P3.4 and P3.3. In this section
clock's sources are different for the ADuC841, and are given in                             of the data sheet, it is assumed that P2.6 and P2.7 are selected as
Table 17.                                                                                   the PWM outputs.

                                fVCO  CLOCK      PROGRAMMABLE                               To use the PWM user software, first write to PWMCON to
   TO/EXTERNAL PWM CLOCK              SELECT            DIVIDER                             select the PWM mode of operation and the PWM input clock.
                                                                                            Writing to PWMCON also resets the PWM counter. In any of
                           fXTAL/15                                                         the 16-bit modes of operation (Modes 1, 3, 4, 6), user software
                               fXTAL                                                        should write to the PWM0L or PWM1L SFRs first. This value is
                                                                                            written to a hidden SFR. Writing to the PWM0H or PWM1H
                                              16-BIT PWM COUNTER                            SFRs updates both the PWMxH and the PWMxL SFRs but does
                                                                                            not change the outputs until the end of the PWM cycle in
                                                   COMPARE               P2.6               progress. The values written to these 16-bit registers are then
                                                                         P2.7               used in the next PWM cycle.

                                      MODE PWM0H/L PWM1H/L                     03260-0-046

   Figure 47. PWM Block Diagram                                                             PWMCON PWM        Control SFR
                                                                                            SFR Address       AEH
The PWM uses five SFRs: the control SFR (PWMCON) and                                        Power-On Default  00H
four data SFRs (PWM0H, PWM0L, PWM1H, and PWM1L).                                            Bit Addressable   No

Table 17. PWMCON SFR Bit Designations

Bit No. Name Description

7  SNGL Turns off PMW output at P2.6 or P3.4, leaving the port pin free for digital I/O.

6  MD2 PWM Mode Bits.

5  MD1 The MD2/1/0 bits choose the PWM mode as follows:

4  MD0 MD2                                    MD1           MD0 Mode

   0                                          0             0     Mode 0: PWM Disabled

   0                                          0             1     Mode 1: Single variable resolution PWM on P2.7 or P3.3

   0                                          1             0     Mode 2: Twin 8-bit PWM

   0                                          1             1     Mode 3: Twin 16-bit PWM

   1                                          0             0     Mode 4: Dual NRZ 16-bit - DAC

   1                                          0             1     Mode 5: Dual 8-bit PWM

   1                                          1             0     Mode 6: Dual RZ 16-bit - DAC

   1                                          1             1     Reserved

3  CDIV1 PWM Clock Divider.

2  CDIV0 Scale the clock source for the PWM counter as follows:

   CDIV1                                      CDIV0         Description

   0                                          0             PWM Counter = Selected Clock/1

   0                                          1             PWM Counter = Selected Clock/4

   1                                          0             PWM Counter = Selected Clock/16

   1                                          1             PWM Counter = Selected Clock/64

1  CSEL1 PWM Clock Divider.

0  CSEL0 Select the clock source for the PWM as follows:

   CSEL1                                      CSEL0         Description

   0                                          0             PWM Clock = fXTAL/15, ADuC841 = fOCS/DIVIDE FACTOR /15 (see the CFG841 register)

   0                                          1             PWM Clock = fXTAL, ADuC841 = fOCS/DIVIDE FACTOR (see the CFG841 register)

   1                                          0             PWM Clock = External input at P3.4/T0

   1                                          1             PWM Clock = fVCO = 16.777216 MHz, ADuC841 = fOSC

                                                                         Rev. 0 | Page 42 of 88
                                                                                                    ADuC841/ADuC842/ADuC843

PWM Modes of Operation

Mode 0: PWM Disabled                                                                                PWM COUNTER               PWM1L    03260-0-048

The PWM is disabled allowing P2.6 and P2.7 to be used as                                               Figure 49. PWM Mode 2  PWM0H
normal.                                                                                                                       PWM0L
                                                                                                                              PWM1H
Mode 1: Single Variable Resolution PWM                                                                                        0
                                                                                                                              P2.6
In Mode 1, both the pulse length and the cycle time (period) are
programmable in user code, allowing the resolution of the                                                                     P2.7
PWM to be variable.

PWM1H/L sets the period of the output waveform. Reducing                                            Mode 3: Twin 16-Bit PWM
PWM1H/L reduces the resolution of the PWM output but
increases the maximum output rate of the PWM. For example,                                          In Mode 3, the PWM counter is fixed to count from 0 to 65536,
setting PWM1H/L to 65536 gives a 16-bit PWM with a maxi-                                            giving a fixed 16-bit PWM. Operating from the 16.777 MHz
mum output rate of 266 Hz (16.777 MHz/65536). Setting                                               core clock results in a PWM output rate of 256 Hz. The duty
PWM1H/L to 4096 gives a 12-bit PWM with a maximum                                                   cycle of the PWM outputs at P2.6 and P2.7 is independently
output rate of 4096 Hz (16.777 MHz/4096).                                                           programmable.

PWM0H/L sets the duty cycle of the PWM output waveform, as
shown in Figure 48.

PWM COUNTER             PWM1H/L                                                                     As shown in Figure 50, while the PWM counter is less than
                        PWM0H/L                                                                     PWM0H/L, the output of PWM0 (P2.6) is high. Once the PWM
                                                                                                    counter equals PWM0H/L, PWM0 (P2.6) goes low and remains
                                                                                                    low until the PWM counter rolls over.

                                                                                              003260-0-047Similarly, while the PWM counter is less than PWM1H/L, the
                                                                                                    output of PWM1 (P2.7) is high. Once the PWM counter equals
                                                                                              P2.7  PWM1H/L, PWM1 (P2.7) goes low and remains low until the
                                                                                                    PWM counter rolls over.
                              Figure 48. PWM in Mode 1
                                                                                                    In this mode, both PWM outputs are synchronized, i.e., once
Mode 2: Twin 8-Bit PWM                                                                              the PWM counter rolls over to 0, both PWM0 (P2.6) and
In Mode 2, the duty cycle of the PWM outputs and the resolu-                                        PWM1 go high.
tion of the PWM outputs are both programmable. The maximum
resolution of the PWM output is 8 bits.                                                             PWM COUNTER               65536
                                                                                                                              PWM1H/L
PWM1L sets the period for both PWM outputs. Typically, this is
set to 255 (FFH) to give an 8-bit PWM, although it is possible to                                                             PWM0H/L               03260-0-049
reduce this as necessary. A value of 100 could be loaded here to                                                              0
give a percentage PWM, i.e., the PWM is accurate to 1%.                                                                       P2.6

The outputs of the PWM at P2.6 and P2.7 are shown in Figure 49.                                                               P2.7
As can be seen, the output of PWM0 (P2.6) goes low when the
PWM counter equals PWM0L. The output of PWM1 (P2.7)                                                 Figure 50. PWM Mode 3
goes high when the PWM counter equals PWM1H and goes
low again when the PWM counter equals PWM0H. Setting
PWM1H to 0 ensures that both PWM outputs start simultaneously.

                                              Rev. 0 | Page 43 of 88
ADuC841/ADuC842/ADuC843

Mode 4: Dual NRZ 16-Bit - DAC                                                                            PWM COUNTERS              PWM1L  03260-0-051

Mode 4 provides a high speed PWM output similar to that of a                                                Figure 52. PWM Mode 5  PWM1H
- DAC. Typically, this mode is used with the PWM clock                                                                             PWM0L
equal to 16.777216 MHz. In this mode, P2.6 and P2.7 are                                                                            PWM0H
updated every PWM clock (60 ns in the case of 16 MHz). Over                                                                        0
any 65536 cycles (16-bit PWM) PWM0 (P2.6) is high for                                                                              P2.6
PWM0H/L cycles and low for (65536 PWM0H/L) cycles.
Similarly, PWM1 (P2.7) is high for PWM1H/L cycles and low                                                                          P2.7
for (65536 PWM1H/L) cycles.
                                                                               Mode 6: Dual RZ 16-Bit - DAC
For example, if PWM1H is set to 4010H (slightly above one
quarter of FS), then typically P2.7 will be low for three clocks               Mode 6 provides a high speed PWM output similar to that of a
and high for one clock (each clock is approximately 60 ns). Over               - DAC. Mode 6 operates very similarly to Mode 4. However,
every 65536 clocks, the PWM compensates for the fact that the                  the key difference is that Mode 6 provides return-to-zero (RZ)
output should be slightly above one quarter of full scale by                   - DAC output. Mode 4 provides non-return-to-zero -
having a high cycle followed by only two low cycles.                           DAC outputs. The RZ mode ensures that any difference in the
                                                                               rise and fall times will not affect the - DAC INL. However,
PWM0H/L = C000H         CARRY OUT AT P1.0 0 1 1 1 0 1 1                        the RZ mode halves the dynamic range of the - DAC outputs
16-BIT                                                                         from 0 VAVDD down to 0 VAVDD/2. For best results, this mode
                                                                               should be used with a PWM clock divider of 4.
                                60s
                                                                               If PWM1H is set to 4010H (slightly above one quarter of FS),
16-BIT                  16-BIT                                                 typically P2.7 will be low for three full clocks (3 60 ns), high
                                                                               for half a clock (30 ns), and then low again for half a clock
16.777MHz        LATCH                                                         (30 ns) before repeating itself. Over every 65536 clocks, the
                                                                               PWM will compensate for the fact that the output should be
      16-BIT                        16-BIT                        03260-0-050  slightly above one quarter of full scale by leaving the output
                                                       000 1 000               high for two half clocks in four. The rate at which this happens
16-BIT                                                                         depends on the value and degree of compensation required.
PWM1H/L = 4000H         CARRY OUT AT P2.7

                                                     60s

                                Figure 51. PWM Mode 4                          PWM0H/L = C000H                  CARRY OUT AT P2.6
                                                                               16-BIT                                                            01 1 1 01 1
For faster DAC outputs (at lower resolution), write 0s to the
LSBs that are not required. If, for example, only 12-bit perform-                                                       240s
ance is required, write 0s to the four LSBs. This means that a 12-bit
accurate - DAC output can occur at 4.096 kHz. Similarly                                   16-BIT                16-BIT
writing 0s to the 8 LSBs gives an 8-bit accurate - DAC output
at 65 kHz.                                                                     4MHz                      LATCH

Mode 5: Dual 8-Bit PWM                                                               16-BIT                                16-BIT                             03260-0-052
                                                                                                                                              0 0 01 0 0 0
In Mode 5, the duty cycle of the PWM outputs and the resolu-                        0, 3/4, 1/2, 1/4, 0
tion of the PWM outputs are individually programmable. The                     16-BIT                         CARRY OUT AT P2.7
maximum resolution of the PWM output is 8 bits. The output                     PWM1H/L = 4000H
resolution is set by the PWM1L and PWM1H SFRs for the P2.6                                                                                240s
and P2.7 outputs, respectively. PWM0L and PWM0H sets the
duty cycles of the PWM outputs at P2.6 and P2.7, respectively.                                           Figure 53. PWM Mode 6
Both PWMs have the same clock source and clock divider.

                                                                  Rev. 0 | Page 44 of 88
SERIAL PERIPHERAL INTERFACE (SPI)                                               ADuC841/ADuC842/ADuC843

The ADuC841/ADuC842/ADuC843 integrate a complete hard-             SCLOCK (Serial Clock I/O Pin)
ware serial peripheral interface on-chip. SPI is an industry-
standard synchronous serial interface that allows 8 bits of data   The master serial clock (SCLOCK) is used to synchronize the
to be synchronously transmitted and received simultaneously,       data being transmitted and received through the MOSI and
i.e., full duplex. Note that the SPI pins are shared with the I2C  MISO data lines. A single data bit is transmitted and received in
pins. Therefore, the user can enable only one interface or the     each SCLOCK period. Therefore, a byte is transmitted/received
other on these pins at any given time (see SPE in Table 18). SPI   after eight SCLOCK periods. The SCLOCK pin is configured as
can be operated at the same time as the I2C interface if the       an output in master mode and as an input in slave mode. In
MSPI bit in CFG841/CFG8842 is set. This moves the SPI              master mode, the bit rate, polarity, and phase of the clock are
outputs (MISO, MOSI, and SCLOCK) to P3.3, P3.4, and P3.5,          controlled by the CPOL, CPHA, SPR0, and SPR1 bits in the
respectively). The SPI port can be configured for master or slave  SPICON SFR (see Table 18). In slave mode, the SPICON register
operation and typically consists of four pins, described in the    must be configured with the phase and polarity (CPHA and
following sections.                                                CPOL) of the expected input clock. In both master and slave
                                                                   modes, the data is transmitted on one edge of the SCLOCK
MISO (Master In, Slave Out Data I/O Pin)                           signal and sampled on the other. It is important, therefore, that
                                                                   CPHA and CPOL are configured the same for the master and
The MISO pin is configured as an input line in master mode         slave devices.
and as an output line in slave mode. The MISO line on the
master (data in) should be connected to the MISO line in the       SS (Slave Select Input Pin)
slave device (data out). The data is transferred as byte-wide
(8-bit) serial data, MSB first.                                    The SS pin is shared with the ADC5 input. To configure this pin
                                                                   as a digital input, the bit must be cleared, e.g., CLR P1.5. This
MOSI (Master Out, Slave In Pin)                                    line is active low. Data is received or transmitted in slave mode
                                                                   only when the SS pin is low, allowing the parts to be used in
The MOSI pin is configured as an output line in master mode        single-master, multislave SPI configurations. If CPHA = 1, the
and as an input line in slave mode. The MOSI line on the master    SS input may be permanently pulled low. If CPHA = 0, the SS
(data out) should be connected to the MOSI line in the slave       input must be driven low before the first bit in a byte-wide
device (data in). The data is transferred as byte-wide (8-bit)     transmission or reception and return high again after the last bit
serial data, MSB first.                                            in that byte-wide transmission or reception. In SPI slave mode,
                                                                   the logic level on the external SS pin can be read via the SPR0
                                                                   bit in the SPICON SFR. The SFR registers, described in the
                                                                   following tables, are used to control the SPI interface.

Rev. 0 | Page 45 of 88
ADuC841/ADuC842/ADuC843

SPICON SPI Control Register

SFR Address                  F8H

Power-On Default             04H

Bit Addressable              Yes

Table 18. SPICON SFR Bit Designations

Bit No. Name Description

7  ISPI           SPI Interrupt Bit.

                  Set by the MicroConverter at the end of each SPI transfer.

                  Cleared directly by user code or indirectly by reading the SPIDAT SFR.

6  WCOL Write Collision Error Bit.

                  Set by the MicroConverter if SPIDAT is written to while an SPI transfer is in progress.

                  Cleared by user code.

5  SPE            SPI Interface Enable Bit.

                  Set by the user to enable the SPI interface.

                  Cleared by the user to enable the I2C pins, this is not requiredto enable the I2C interface if the MSPI bit is set in
                  CFG841/CFG842. In this case, the I2C interface is automatically enabled.

4  SPIM SPI Master/Slave Mode Select Bit.

                  Set by the user to enable master mode operation (SCLOCK is an output).

                  Cleared by the user to enable slave mode operation (SCLOCK is an input).

3  CPOL1 Clock Polarity Select Bit.

                  Set by the user if SCLOCK idles high.

                  Cleared by the user if SCLOCK idles low.

2  CPHA1 Clock Phase Select Bit.

                  Set by the user if leading SCLOCK edge is to transmit data.

                  Cleared by the user if trailing SCLOCK edge is to transmit data.

1  SPR1 SPI Bit Rate Select Bits.

0  SPR0 These bits select the SCLOCK rate (bit rate) in master mode as follows:

                  SPR1            SPR0       Selected Bit Rate

                  0               0          fOSC/2

                  0               1          fOSC/4

                  1               0          fOSC/8

                  1               1          fOSC/16

                  In SPI slave mode, i.e., SPIM = 0, the logic level on the external SS pin can be read via the SPR0 bit.

1The CPOL and CPHA bits should both contain the same values for master and slave devices.

SPIDAT                       SPI Data Register
Function                     SPIDAT SFR is written by the user to transmit data over the SPI interface or read by user code to
                             read data just received by the SPI interface.
SFR Address                  F7H
Power-On Default             00H
Bit Addressable              No

                                                         Rev. 0 | Page 46 of 88
Using the SPI Interface                                                                                           ADuC841/ADuC842/ADuC843

Depending on the configuration of the bits in the SPICON SFR                                         In master mode, a byte transmission or reception is initiated by
shown in Table 18, the ADuC841/ADuC842/ADuC843 SPI                                                   a write to SPIDAT. Eight clock periods are generated via the
interface transmits or receives data in a number of possible                                         SCLOCK pin and the SPIDAT byte being transmitted via MOSI.
modes. Figure 54 shows all possible SPI configurations for the                                       With each SCLOCK period, a data bit is also sampled via MISO.
parts, and the timing relationships and synchronization                                              After eight clocks, the transmitted byte will be completely
between the signals involved. Also shown in this figure is the                                       transmitted, and the input byte will be waiting in the input shift
SPI interrupt bit (ISPI) and how it is triggered at the end of each                                  register. The ISPI flag will be set automatically, and an interrupt
byte-wide communication.                                                                             will occur if enabled. The value in the shift register will be
                                                                                                     latched into SPIDAT.
                             SCLOCK
                          (CPOL = 1)                                                                 SPI Interface--Slave Mode

                            SCLOCK       ? MSB BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 LSB               In slave mode, SCLOCK is an input. The SS pin must also be
                         (CPOL = 0)                                                                  driven low externally during the byte communication. Trans-
                                                                                                     mission is also initiated by a write to SPIDAT. In slave mode, a
                                     SS                                                              data bit is transmitted via MISO, and a data bit is received via
                                                                                                     MOSI through each input SCLOCK period. After eight clocks,
                   SAMPLE INPUT                                                                      the transmitted byte will be completely transmitted, and the
                   DATA OUTPUT                                                                       input byte will be waiting in the input shift register. The ISPI
(CPHA = 1)                                                                                           flag will be set automatically, and an interrupt will occur if
                                                                                                     enabled. The value in the shift register will be latched into
                          ISPI FLAG      MSB BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 LSB ?               SPIDAT only when the transmission/reception of a byte has
                                                                                                     been completed. The end of transmission occurs after the
                   SAMPLE INPUT                                                                      eighth clock has been received if CPHA = 1, or when SS returns
                                                                                                     high if CPHA = 0.
                   DATA OUTPUT
(CPHA = 0)

                                                                                        03260-0-053
                           ISPI FLAG

                           Figure 54. SPI Timing, All Modes

SPI Interface--Master Mode
In master mode, the SCLOCK pin is always an output and
generates a burst of eight clocks whenever user code writes to
the SPIDAT register. The SCLOCK bit rate is determined by
SPR0 and SPR1 in SPICON. Also note that the SS pin is not
used in master mode. If the parts need to assert the SS pin on an
external slave device, a port digital output pin should be used.

                                                                                        Rev. 0 | Page 47 of 88
ADuC841/ADuC842/ADuC843

I2C COMPATIBLE INTERFACE                                          Three SFRs are used to control the I2C interface and are
                                                                  described in the following tables.
The ADuC841/ADuC842/ADuC843 support a fully licensed
I2C serial interface. The I2C interface is implemented as a full  I2CCON            I2C Control Register
hardware slave and software master. SDATA is the data I/O pin,
and SCLOCK is the serial clock. These two pins are shared with    SFR Address       E8H
the MOSI and SCLOCK pins of the on-chip SPI interface. To
enable the I2C interface, the SPI interface must be turned off    Power-On Default  00H
(see SPE in Table 18) or the SPI interface must be moved to
P3.3, P3.4, and P3.5 via the CFG841.1/CFG842.1 bit. Application   Bit Addressable   Yes
Note uC001 describes the operation of this interface as imple-
mented and is available from the MicroConverter website at
www.analog.com/microconverter.

Table 19. I2CCON SFR Bit Designations, Master Mode

Bit No. Name Description

7  MDO    I2C Software Master Data Output Bit (Master Mode Only).

          This data bit is used to implement a master I2C transmitter interface in software. Data written to this bit is output on
          the SDATA pin if the data output enable (MDE) bit is set.

6  MDE    I2C Software Master Data Output Enable Bit (Master Mode Only).

          Set by the user to enable the SDATA pin as an output (Tx).

          Cleared by the user to enable the SDATA pin as an input (Rx).

5  MCO    I2C Software Master Clock Output Bit (Master Mode Only).

          This data bit is used to implement a master I2C transmitter interface in software. Data written to this bit is output on
          the SCLOCK pin.

4  MDI    I2C Software Master Data Input Bit (Master Mode Only).

          This data bit is used to implement a master I2C receiver interface in software. Data on the SDATA pin is latched into
          this bit on SCLOCK if the data output enable (MDE) bit is 0.

3  I2CM   I2C Master/Slave Mode Bit.

          Set by the user to enable I2C software master mode.

          Cleared by the user to enable I2C hardware slave mode.

2  ----   Reserved.

1  ----   Reserved.

0  ----   Reserved.

Table 20. I2CCON SFR Bit Designations, Slave Mode

Bit No. Name Description

7  I2CSI  I2C Stop Interrupt Enable Bit.

          Set by the user to enable I2C stop interrupts. If set, a stop bit that follows a valid start condition generates an
          interrupt.

          Cleared by the user to disable I2C stop interrupts.

6  I2CGC I2C General Call Status Bit.

          Set by hardware after receiving a general call address.

          Cleared by the user.

5  I2CID1 I2C Interrupt Decode Bits.

4  I2CID0 Set by hardware to indicate the source of an I2C interrupt.

          00 Start and Matching Address.

          01 Repeated Start and Matching Address.

          10 User Data.

          11 Stop after a Start and Matching Address.

3  I2CM   I2C Master/Slave Mode Bit.

          Set by the user to enable I2C software master mode.

          Cleared by the user to enable I2C hardware slave mode.

                                                    Rev. 0 | Page 48 of 88
                                                               ADuC841/ADuC842/ADuC843

Bit No. Name      Description
                  I2C Reset Bit (Slave Mode Only).
2  I2CRS          Set by the user to reset the I2C interface.
                  Cleared by the user code for normal I2C operation.
1  I2CTX          I2C Direction Transfer Bit (Slave Mode Only).
                  Set by the MicroConverter if the interface is transmitting.
0  I2CI           Cleared by the MicroConverter if the interface is receiving.
                  I2C Interrupt Bit (Slave Mode Only).
                  Set by the MicroConverter after a byte has been transmitted or received.
                  Cleared automatically when user code reads the I2CDAT SFR (see I2CDAT below).

I2CADD            I2C Address Register
Function          Holds the first I2C peripheral address for the part. It may be overwritten by user code. Application Note
                  uC001 at www.analog.com/microconverter describes the format of the I2C standard 7-bit address in
SFR Address       detail.
Power-On Default  9BH
Bit Addressable   55H
I2CADD1           No
Function          I2C Address Register
SFR Address       Holds the second I2C peripheral address for the part. It may be overwritten by user code.
Power-On Default  91H
Bit Addressable   7FH
I2CADD2           No
Function          I2C Address Register
SFR Address       Holds the third I2C peripheral address for the part. It may be overwritten by user code.
Power-On Default  92H
Bit Addressable   7FH
I2CADD3           No
Function          I2C Address Register
SFR Address       Holds the fourth I2C peripheral address for the part. It may be overwritten by user code.
Power-On Default  93H
Bit Addressable   7FH
I2CDAT            No
Function          I2C Data Register
                  Written by the user to transmit data over the I2C interface or read by user code to read data just
SFR Address       received by the I2C interface. Accessing I2CDAT automatically clears any pending I2C interrupt and
Power-On Default  the I2CI bit in the I2CCON SFR. User software should access I2CDAT only once per interrupt cycle.
Bit Addressable   9AH
                  00H
                  No

The main features of the MicroConverter I2C interface are           address, single master/slave relationships can exist at all
                                                                    times even in a multislave environment.
Only two bus lines are required: a serial data line (SDATA)   Ability to respond to four separate addresses when
     and a serial clock line (SCLOCK).                              operating in slave mode.

An I2C master can communicate with multiple slave
     devices. Because each slave device has a unique 7-bit

                  Rev. 0 | Page 49 of 88
ADuC841/ADuC842/ADuC843

An I2C slave can respond to repeated start conditions              Once enabled in I2C slave mode, the slave controller waits for a
     without a stop bit in between. This allows a master to          start condition. If the part detects a valid start condition, fol-
     change direction of transfer without giving up the bus.         lowed by a valid address, followed by the R/W bit, the I2CI
     Note that the repeated start is detected only when a slave      interrupt bit is automatically set by hardware. The I2C peripheral
     has previously been configured as a receiver.                   generates a core interrupt only if the user has pre-configured
                                                                     the I2C interrupt enable bit in the IEIP2 SFR as well as the
On-chip filtering rejects <50 ns spikes on the SDATA and           global interrupt bit, EA, in the IE SFR. i.e.,
     the SCLOCK lines to preserve data integrity.
                                                                     ;Enabling I2C Interrupts for the ADuC842
                                                     DVDD

                                                                     MOV IEIP2,#01h  ; enable I2C interrupt

                                                                     SETB EA

    I2C      I2C                                                     An autoclear of the I2CI bit is implemented on the parts so that
MASTER   SLAVE 1                                                     this bit is cleared automatically on a read or write access to the
                                                                     I2CDAT SFR.

                                        I2C  03260-0-054             MOV I2CDAT, A   ; I2CI auto-cleared
                                   SLAVE 2                           MOV A, I2CDAT   ; I2CI auto-cleared

Figure 55. Typical I2C System                                        If for any reason the user tries to clear the interrupt more than
                                                                     once, i.e., access the data SFR more than once per interrupt, then
Software Master Mode                                                 the I2C controller will halt. The interface will then have to be
                                                                     reset using the I2CRS bit.
The ADuC841/ADuC842/ADuC843 can be used as I2C master
devices by configuring the I2C peripheral in master mode and         The user can choose to poll the I2CI bit or to enable the inter-
writing software to output the data bit by bit. This is referred to  rupt. In the case of the interrupt, the PC counter vectors to
as a software master. Master mode is enabled by setting the I2CM     003BH at the end of each complete byte. For the first byte, when
bit in the I2CCON register.                                          the user gets to the I2CI ISR, the 7-bit address and the R/W bit
                                                                     appear in the I2CDAT SFR.
To transmit data on the SDATA line, MDE must be set to enable
the output driver on the SDATA pin. If MDE is set, the SDATA         The I2CTX bit contains the R/W bit sent from the master. If
pin is pulled high or low depending on whether the MDO bit is        I2CTX is set, the master is ready to receive a byte. Therefore the
set or cleared. MCO controls the SCLOCK pin and is always            slave will transmit data by writing to the I2CDAT register. If
configured as an output in master mode. In master mode, the          I2CTX is cleared, the master is ready to transmit a byte. There-
SCLOCK pin is pulled high or low depending on the whether            fore the slave will receive a serial byte. Software can interrogate
MCO is set or cleared.                                               the state of I2CTX to determine whether it should write to or
                                                                     read from I2CDAT.
To receive data, MDE must be cleared to disable the output
driver on SDATA. Software must provide the clocks by toggling        Once the part has received a valid address, hardware holds
the MCO bit and reading the SDATA pin via the MDI bit. If            SCLOCK low until the I2CI bit is cleared by software. This
MDE is cleared, MDI can be used to read the SDATA pin. The           allows the master to wait for the slave to be ready before
value of the SDATA pin is latched into MDI on a rising edge of       transmitting the clocks for the next byte.
SCLOCK. MDI is set if the SDATA pin was high on the last
rising edge of SCLOCK. MDI is clear if the SDATA pin was low         The I2CI interrupt bit is set every time a complete data byte is
on the last rising edge of SCLOCK.                                   received or transmitted, provided it is followed by a valid ACK.
                                                                     If the byte is followed by a NACK, an interrupt is not generated.
Software must control MDO, MCO, and MDE appropriately to
generate the start condition, slave address, acknowledge bits,       The part continues to issue interrupts for each complete data
data bytes, and stop conditions. These functions are described       byte transferred until a stop condition is received or the inter-
in Application Note uC001.                                           face is reset.

Hardware Slave Mode                                                  When a stop condition is received, the interface resets to a state
                                                                     in which it is waiting to be addressed (idle). Similarly, if the
After reset, the ADuC841/ADuC842/ADuC843 default to                  interface receives a NACK at the end of a sequence, it also
hardware slave mode. The I2C interface is enabled by clearing        returns to the default idle state. The I2CRS bit can be used to
the SPE bit in SPICON (this is not necessary if the MSPI bit is      reset the I2C interface. This bit can be used to force the interface
set). Slave mode is enabled by clearing the I2CM bit in I2CCON.      back to the default idle state.
The parts have a full hardware slave. In slave mode, the I2C
address is stored in the I2CADD register. Data received or to be
transmitted is stored in the I2CDAT register.

                                                          Rev. 0 | Page 50 of 88
                                                                                   ADuC841/ADuC842/ADuC843

DUAL DATA POINTER                                                DPCON                       Data Pointer Control SFR
                                                                 SFR Address                 A7H
The ADuC841/ADuC842/ADuC843 incorporate two data                 Power-On Default            00H
pointers. The second data pointer is a shadow data pointer and   Bit Addressable             No
is selected via the data pointer control SFR (DPCON). DPCON
also includes some useful features such as automatic hardware
post-increment and post-decrement as well as automatic data
pointer toggle. DPCON is described in Table 21.

Table 21. DPCON SFR Bit Designations

Bit No. Name Description

7  ----  Reserved.

6  DPT Data Pointer Automatic Toggle Enable.

         Cleared by the user to disable autoswapping of the DPTR.

         Set in user software to enable automatic toggling of the DPTR after each each MOVX or MOVC instruction.

5  DP1m1 Shadow Data Pointer Mode.

4  DP1m0 These two bits enable extra modes of the shadow data pointer's operation, allowing for more compact and more

         efficient code size and execution.

         m1         m0         Behavior of the shadow data pointer.

         0          0          8052 behavior.

         0          1          DPTR is post-incremented after a MOVX or a MOVC instruction.

         1          0          DPTR is post-decremented after a MOVX or MOVC instruction.

         1          1          DPTR LSB is toggled after a MOVX or MOVC instruction. (This instruction can be useful for moving
                               8-bit blocks to/from 16-bit devices.)

3  DP0m1 Main Data Pointer Mode.

2  DP0m0 These two bits enable extra modes of the main data pointer operation, allowing for more compact and more efficient

         code size and execution.

         m1         m0         Behavior of the main data pointer.

         0          0          8052 behavior.

         0          1          DPTR is post-incremented after a MOVX or a MOVC instruction.

         1          0          DPTR is post-decremented after a MOVX or MOVC instruction.

         1          1          DPTR LSB is toggled after a MOVX or MOVC instruction.

                               (This instruction can be useful for moving 8-bit blocks to/from 16-bit devices.)

1  ----  This bit is not implemented to allow the INC DPCON instruction toggle the data pointer without incrementing the rest

         of the SFR.

0  DPSEL Data Pointer Select.

         Cleared by the user to select the main data pointer. This means that the contents of this 24-bit register are placed into
         the three SFRs: DPL, DPH, and DPP.

         Set by the user to select the shadow data pointer. This means that the contents of a separate 24-bit register appears in
         the three SFRs: DPL, DPH, and DPP.

Note 1: This is the only place where the main and shadow data          MOV DPTR,#0       ; Main DPTR = 0
pointers are distinguished. Everywhere else in this data sheet         MOV DPCON,#55H    ; Select shadow DPTR
wherever the DPTR is mentioned, operation on the active                                  ; DPTR1 increment mode,
DPTR is implied.                                                       MOV DPTR,#0D000H  ; DPTR0 increment mode
                                                                 MOVELOOP:               ; DPTR auto toggling ON
Note 2: Only MOVC/MOVX @DPTR instructions are relevant                                   ; Shadow DPTR = D000H
above. MOVC/MOVX PC/@Ri instructions do not cause the                  CLR A
DPTR to automatically post increment/decrement, and so on.             MOVC A,@A+DPTR    ; Get data
                                                                                         ; Post Inc DPTR
To illustrate the operation of DPCON, the following code copies        MOVX @DPTR,A      ; Swap to Main DPTR (Data)
256 bytes of code memory at address D000H into XRAM                                      ; Put ACC in XRAM
starting from Address 0000H.                                           MOV A, DPL        ; Increment main DPTR
                                                                       JNZ MOVELOOP      ; Swap Shadow DPTR (Code)

                                               Rev. 0 | Page 51 of 88
ADuC841/ADuC842/ADuC843

POWER SUPPLY MONITOR                                                is also protected against spurious glitches triggering the
                                                                    interrupt circuit.
As its name suggests, the power supply monitor, once enabled,
monitors the DVDD supply on the ADuC841/ADuC842/                    Note that the 5 V part has an internal POR trip level of 4.5 V,
ADuC843. It indicates when any of the supply pins drops below       which means that there are no usable PSM levels on the 5 V
one of two user selectable voltage trip points, 2.93 V and 3.08 V.  part. The 3 V part has a POR trip level of 2.45 V, allowing all
For correct operation of the power supply monitor function,         PSM trip points to be used.
AVDD must be equal to or greater than 2.7 V. Monitor function is
controlled via the PSMCON SFR. If enabled via the IEIP2 SFR,        PSMCON                 Power Supply Monitor
the monitor interrupts the core using the PSMI bit in the           SFR Address            Control Register
PSMCON SFR. This bit is not cleared until the failing power         Power-On Default       DFH
supply has returned above the trip point for at least 250 ms.       Bit Addressable        DEH
This monitor function allows the user to save working registers                            No
to avoid possible data loss due to the low supply condition, and
also ensures that normal code execution does not resume until a
safe supply level has been well established. The supply monitor

Table 22. PSMCON SFR Bit Designations

Bit No. Name Description

7  ----  Reserved.

6  CMPD DVDD Comparator Bit.

         This is a read-only bit that directly reflects the state of the DVDD comparator.

         Read 1 indicates that the DVDD supply is above its selected trip point.

         Read 0 indicates that the DVDD supply is below its selected trip point.

5  PSMI  Power Supply Monitor Interrupt Bit.

         This bit is set high by the MicroConverter if either CMPA or CMPD is low, indicating low analog or digital supply. The
         PSMI bit can be used to interrupt the processor. Once CMPD and/or CMPA return (and remain) high, a 250 ms
         counter is started. When this counter times out, the PSMI interrupt is cleared. PSMI can also be written by the user.
         However, if either comparator output is low, it is not possible for the user to clear PSMI.

4  TPD1  DVDD Trip Point Selection Bits.

3  TPD0  These bits select the DVDD trip point voltage as follows:

         TPD1       TPD0               Selected DVDD Trip Point (V)

         0          0                  Reserved

         0          1                  3.08

         1          0                  2.93

         1          1                  Reserved

2  ----  Reserved.

1  ----  Reserved.

0  PSMEN Power Supply Monitor Enable Bit.

         Set to 1 by the user to enable the power supply monitor circuit.

         Cleared to 0 by the user to disable the power supply monitor circuit.

                                                 Rev. 0 | Page 52 of 88
                                                                                   ADuC841/ADuC842/ADuC843

WATCHDOG TIMER                                                   the watchdog timer is clocked by an internal R/C oscillator at
                                                                 32 kHz 10%. The WDCON SFR can be written only by user
The purpose of the watchdog timer is to generate a device reset  software if the double write sequence described in WDWR
or interrupt within a reasonable amount of time if the ADuC841/  below is initiated on every write access to the WDCON SFR.
ADuC842/ADuC843 enter an erroneous state, possibly due to a
programming error or electrical noise. The watchdog function     WDCON Watchdog Timer Control Register
can be disabled by clearing the WDE (watchdog enable) bit in
the watchdog control (WDCON) SFR. When enabled, the              SFR Address                 C0H
watchdog circuit generates a system reset or interrupt (WDS) if
the user program fails to set the watchdog (WDE) bit within a    Power-On Default            10H
predetermined amount of time (see PRE3-0 bits in Table 23.
The watchdog timer is clocked directly from the 32 kHz           Bit Addressable             Yes
external crystal on the ADuC842/ADuC843. On the ADuC841,

Table 23. WDCON SFR Bit Designations

Bit No. Name Description

7  PRE3  Watchdog Timer Prescale Bits.

6  PRE2  The watchdog timeout period is given by the equation

            tWD = (2PRE (29/ fXTAL))

5  PRE1  (0 PRE 7; fXTAL = 32.768 kHz (ADuC842/ADuC843), or 32kHz 10%(ADuC841) )

4  PRE0  PRE3 PRE2                    PRE1  PRE0                 Timeout Period (ms) Action

         0     0                      0     0                    15.6              Reset or Interrupt

         0     0                      0     1                    31.2              Reset or Interrupt

         0     0                      1     0                    62.5              Reset or Interrupt

         0     0                      1     1                    125               Reset or Interrupt

         0     1                      0     0                    250               Reset or Interrupt

         0     1                      0     1                    500               Reset or Interrupt

         0     1                      1     0                    1000              Reset or Interrupt

         0     1                      1     1                    2000              Reset or Interrupt

         1     0                      0     0                    0.0               Immediate Reset

         PRE30 > 1000                                                             Reserved

3  WDIR  Watchdog Interrupt Response Enable Bit.

         If this bit is set by the user, the watchdog generates an interrupt response instead of a system reset when the
         watchdog timeout period has expired. This interrupt is not disabled by the CLR EA instruction, and it is also a fixed,
         high priority interrupt. If the watchdog is not being used to monitor the system, it can be used alternatively as a
         timer. The prescaler is used to set the timeout period in which an interrupt will be generated.

2  WDS   Watchdog Status Bit.

         Set by the watchdog controller to indicate that a watchdog timeout has occurred.

         Cleared by writing a 0 or by an external hardware reset. It is not cleared by a watchdog reset.

1  WDE   Watchdog Enable Bit.

         Set by the user to enable the watchdog and clear its counters. If this bit is not set by the user within the watchdog
         timeout period, the watchdog generates a reset or interrupt, depending on WDIR.

         Cleared under the following conditions: user writes 0, watchdog reset (WDIR = 0); hardware reset; PSM interrupt.

0  WDWR Watchdog Write Enable Bit.

         To write data to the WDCON SFR involves a double instruction sequence. The WDWR bit must be set and the very
         next instruction must be a write instruction to the WDCON SFR.

         For example:

         CLR              EA                                     ;disable interrupts while writing

         SETB             WDWR                                   ;to WDT
         MOV              WDCON,#72H                             ;allow write to WDCON
         SETB             EA                                     ;enable WDT for 2.0s timeout
                                                                 ;enable interrupts again (if rqd)

                                            Rev. 0 | Page 53 of 88
ADuC841/ADuC842/ADuC843                                            TCEN 32.768kHz EXTERNAL CRYSTAL              ITS0, 1

TIME INTERVAL COUNTER (TIC)                                                                              8-BIT
                                                                                                    PRESCALER
A TIC is provided on-chip for counting longer intervals than
the standard 8051 compatible timers are capable of. The TIC is     HUNDREDTHS COUNTER                            INTERVAL         TIEN
capable of timeout intervals ranging from 1/128 second to 255                 HTHSEC                            TIMEBASE
hours. Furthermore, this counter is clocked by the external                                                     SELECTION
32.768 kHz crystal rather than by the core clock, and it has the    SECOND COUNTER
ability to remain active in power-down mode and time long                      SEC                                   MUX
power-down intervals. This has obvious applications for remote
battery-powered sensors where regular widely spaced readings       MINUTE COUNTER
are required.                                                                MIN

Six SFRs are associated with the time interval counter, TIMECON    HOUR COUNTER                                            8-BIT
being its control register. Depending on the configuration of the         HOUR                                  INTERVAL COUNTER
IT0 and IT1 bits in TIMECON, the selected time counter regis-
ter overflow clocks the interval counter. When this counter is                  INTERVAL TIMEOUT                    COMPARE             03260-0-055
equal to the time interval value loaded in the INTVAL SFR, the     TIME INTERVAL COUNTER INTERRUPT              COUNT = INTVAL
TII bit (TIMECON.2) is set and generates an interrupt if enabled.
If the part is in power-down mode, again with TIC interrupt                                                      TIMER INTVAL
enabled, the TII bit wakes up the device and resumes code                                                             INTVAL
execution by vectoring directly to the TIC interrupt service
vector address at 0053H. The TIC-related SFRs are described in     Figure 56. TIC, Simplified Block Diagram
Table 24. Note also that the time based SFRs can be written
initially with the current time; the TIC can then be controlled
and accessed by user software. In effect, this facilitates the
implementation of a real-time clock. A block diagram of the
TIC is shown in Figure 56.

The TIC is clocked directly from a 32 kHz external crystal on
the ADuC842/ADuC843 and by the internal 32 kHz 10% R/C
oscillator on the ADuC841. Due to this, instructions that access
the TIC registers will also be clocked at this speed. The user
should ensure that there is sufficient time between instructions
to these registers to allow them to execute correctly.

Rev. 0 | Page 54 of 88
                                                                                           ADuC841/ADuC842/ADuC843

TIMECON                 TIC Control Register
SFR Address             A1H
Power-On Default        00H
Bit Addressable         No

Table 24. TIMECON SFR Bit Designations

Bit No. Name Description

7  ----           Reserved.

6  TFH            Twenty-Four Hour Select Bit.

                  Set by the user to enable the hour counter to count from 0 to 23.

                  Cleared by the user to enable the hour counter to count from 0 to 255.

5  ITS1           Interval Timebase Selection Bits.

4  ITS0           Written by user to determine the interval counter update rate.

                  ITS1       ITS0            Interval Timebase

                  0          0               1/128 Second

                  0          1               Seconds

                  1          0               Minutes

                  1          1               Hours

3  STI            Single Time Interval Bit.

                  Set by the user to generate a single interval timeout. If set, a timeout clears the TIEN bit.

                  Cleared by the user to allow the interval counter to be automatically reloaded and start counting again at each
                  interval timeout.

2  TII            TIC Interrupt Bit.

                  Set when the 8-bit interval counter matches the value in the INTVAL SFR.

                  Cleared by user software.

1  TIEN           Time Interval Enable Bit.

                  Set by the user to enable the 8-bit time interval counter.

                  Cleared by the user to disable the interval counter.

0  TCEN Time Clock Enable Bit.

                  Set by the user to enable the time clock to the time interval counters.

                  Cleared by the user to disable the clock to the time interval counters and reset the time interval SFRs to the last
                  value written to them by the user. The time registers (HTHSEC, SEC, MIN, and HOUR) can be written while TCEN
                  is low.

                                                      Rev. 0 | Page 55 of 88
ADuC841/ADuC842/ADuC843

INTVAL            User Time Interval Select Register
Function          User code writes the required time interval to this register. When the 8-bit interval counter is equal to the
                  time interval value loaded in the INTVAL SFR, the TII bit (TIMECON.2) is set and generates an
SFR Address       interrupt if enabled.
Power-On Default
Bit Addressable   A6H
Valid Value       00H
                  No
                  0 to 255 decimal

HTHSEC            Hundredths Seconds Time Register
Function          This register is incremented in 1/128 second intervals once TCEN in TIMECON is active. The HTHSEC
                  SFR counts from 0 to 127 before rolling over to increment the SEC time register.
SFR Address       A2H
Power-On Default  00H
Bit Addressable   No
Valid Value       0 to 127 decimal

SEC               Seconds Time Register
Function          This register is incremented in 1-second intervals once TCEN in TIMECON is active. The SEC SFR
                  counts from 0 to 59 before rolling over to increment the MIN time register.
SFR Address       A3H
Power-On Default  00H
Bit Addressable   No
Valid Value       0 to 59 decimal

MIN               Minutes Time Register
Function          This register is incremented in 1-minute intervals once TCEN in TIMECON is active. The MIN SFR
                  counts from 0 to 59 before rolling over to increment the HOUR time register.
SFR Address       A4H
Power-On Default  00H
Bit Addressable   No
Valid Value       0 to 59 decimal

HOUR              Hours Time Register
Function
                  This register is incremented in 1-hour intervals once TCEN in TIMECON is active. The HOUR SFR
SFR Address       counts from 0 to 23 before rolling over to 0.
Power-On Default  A5H
Bit Addressable
Valid Value       00H
                  No
                  0 to 23 decimal

                         Rev. 0 | Page 56 of 88
                                                                                                      ADuC841/ADuC842/ADuC843

8052 COMPATIBLE ON-CHIP PERIPHERALS                                  In general-purpose I/O port mode, Port 0 pins that have 1s writ-
                                                                     ten to them via the Port 0 SFR are configured as open-drain and
This section gives a brief overview of the various secondary         will therefore float. In this state, Port 0 pins can be used as high
peripheral circuits that are also available to the user on-chip.     impedance inputs. This is represented in Figure 57 by the NAND
These remaining functions are mostly 8052 compatible (with a         gate whose output remains high as long as the control signal is
few additional features) and are controlled via standard 8052        low, thereby disabling the top FET. External pull-up resistors are
SFR bit definitions.                                                 therefore required when Port 0 pins are used as general-purpose
                                                                     outputs. Port 0 pins with 0s written to them drive a logic low
Parallel I/O                                                         output voltage (VOL) and are capable of sinking 1.6 mA.

The ADuC841/ADuC842/ADuC843 use four input/output                    Port 1
ports to exchange data with external devices. In addition to
performing general-purpose I/O, some ports are capable of            Port 1 is also an 8-bit port directly controlled via the P1 SFR.
external memory operations while others are multiplexed with         Port 1 digital output capability is not supported on this device.
alternate functions for the peripheral features on the device. In    Port 1 pins can be configured as digital inputs or analog inputs.
general, when a peripheral is enabled, that pin may not be used      By (power-on) default, these pins are configured as analog
as a general-purpose I/O pin.                                        inputs, i.e., 1 written in the corresponding Port 1 register bit. To
                                                                     configure any of these pins as digital inputs, the user should
Port 0                                                               write a 0 to these port bits to configure the corresponding pin as
                                                                     a high impedance digital input. These pins also have various
Port 0 is an 8-bit open-drain bidirectional I/O port that is         secondary functions as described in Table 25.
directly controlled via the Port 0 SFR. Port 0 is also the
multiplexed low order address and data bus during accesses to
external program or data memory.

Figure 57 shows a typical bit latch and I/O buffer for a Port 0      Table 25. Port 1 Alternate Pin Functions
port pin. The bit latch (one bit in the port's SFR) is represented
as a Type D flip-flop, which clocks in a value from the internal     Pin No.           Alternate Function
bus in response to a write to latch signal from the CPU. The Q
output of the flip-flop is placed on the internal bus in response    P1.0              T2 (Timer/Counter 2 External Input)
to a read latch signal from the CPU. The level of the port pin
itself is placed on the internal bus in response to a read pin       P1.1              T2EX (Timer/Counter 2 Capture/Reload Trigger)
signal from the CPU. Some instructions that read a port activate
the read latch signal, and others activate the read pin signal. See  P1.5              SS (Slave Select for the SPI Interface)
the Read-Modify-Write Instructions section for details.
                                                                                             READ      DQ
                        ADDR/DATA           DVDD                                            LATCH
                                   CONTROL                                                             CL Q
                                                         P0.x                          INTERNAL        LATCH
               DQ                                         PIN                                  BUS    TO ADC
               CL Q
               LATCH                                                                        WRITE
                                                                                       TO LATCH

                                                                                             READ
                                                                                                 PIN
      READ                                                     03260-0-056                                                         P1.x
     LATCH                                                                                                                                                                                                                                                               03260-0-057PIN

INTERNAL                                                                               Figure 58. Port 1 Bit Latch and I/O Buffer
        BUS
                                                                     Port 2
     WRITE
TO LATCH                                                             Port 2 is a bidirectional port with internal pull-up resistors
                                                                     directly controlled via the P2 SFR. Port 2 also emits the high-
      READ                                                           order address bytes during fetches from external program
          PIN                                                        memory, and middle and high order address bytes during
                                                                     accesses to the 24-bit external data memory space.
                      Figure 57. Port 0 Bit Latch and I/O Buffer
                                                                     As shown in Figure 59, the output drivers of Port 2 are switch-
As shown in Figure 57, the output drivers of Port 0 pins are         able to an internal ADDR and ADDR/DATA bus by an internal
switchable to an internal ADDR and ADDR/DATA bus by an               control signal for use in external memory accesses (as for
internal control signal for use in external memory accesses.         Port 0). In external memory addressing mode (CONTROL = 1),
During external memory accesses, the P0 SFR has 1s written to        the port pins feature push-pull operation controlled by the
it, i.e., all of its bit latches become 1. When accessing external   internal address bus (ADDR line). However, unlike the P0 SFR
memory, the control signal in Figure 57 goes high, enabling          during external memory accesses, the P2 SFR remains unchanged.
push-pull operation of the output pin from the internal address
or data bus (ADDR/DATA line). Therefore, no external pull-ups
are required on Port 0 for it to access external memory.

                                                               Rev. 0 | Page 57 of 88
ADuC841/ADuC842/ADuC843

In general-purpose I/O port mode, Port 2 pins that have 1s                                 P3.3 and P3.4 can also be used as PWM outputs. When they are
written to them are pulled high by the internal pull-ups                                   selected as the PWM outputs via the CFG841/CFG842 SFR, the
(Figure 60) and, in that state, can be used as inputs. As inputs,                          PWM outputs overwrite anything written to P3.4 or P3.3.
Port 2 pins being pulled externally low source current because
of the internal pull-up resistors. Port 2 pins with 0s written to                                READ                     ALTERNATE  DVDD
them drive a logic low output voltage (VOL) and are capable of                                 LATCH                         OUTPUT
sinking 1.6 mA.                                                                                                                            INTERNAL
                                                                                           INTERNAL                        FUNCTION        PULL-UP*
                                                                                                   BUS
                                                                                                              DQ                                       P3.x
                                                                                                WRITE                                                   PIN
                                                                                           TO LATCH           CL Q
P2.6 and P2.7 can also be used as PWM outputs. When they are                                                  LATCH
selected as the PWM outputs via the CFG841/CFG842 SFR, the
PWM outputs overwrite anything written to P2.6 or P2.7.

      READ            ADDR                  DVDD DVDD                                                 READ    ALTERNATE                      * SEE PREVIOUS FIGURE                03260-0-060
     LATCH                  CONTROL                                                                      PIN      INPUT                       FOR DETAILS OF
                                                                                                                                              INTERNAL PULL-UP
INTERNAL                                                         INTERNAL                                      FUNCTION
         BUS                                                     PULL-UP*
               DQ                                                                                             Figure 61. Port 3 Bit Latch and I/O Buffer
     WRITE                                                          P2.x
TO LATCH       CL Q                                                  PIN      03260-0-058  Additional Digital I/O
               LATCH
      READ            * SEE FOLLOWING FIGURE FOR                                           In addition to the port pins, the dedicated SPI/I2C pins (SCLOCK
          PIN          DETAILS OF INTERNAL PULL-UP                                         and SDATA/MOSI) also feature both input and output func-
                                                                                           tions. Their equivalent I/O architectures are illustrated in
               Figure 59. Port 2 Bit Latch and I/O Buffer                                  Figure 62 and Figure 64, respectively, for SPI operation and in
                                                                                           Figure 63 and Figure 65 for I2C operation. Notice that in I2C
               2 CLK        DVDD DVDD DVDD                                                 mode (SPE = 0), the strong pull-up FET (Q1) is disabled,
               DELAY                                                                       leaving only a weak pull-up (Q2) present. By contrast, in SPI
                            Q1 Q2 Q3                                                       mode (SPE = 1) the strong pull-up FET (Q1) is controlled
                                                                                           directly by SPI hardware, giving the pin push-pull capability.
      Q                     Q4                             Px.x  03260-0-059
FROM                                                      PIN
PORT
LATCH

               Figure 60. Internal Pull-Up Configuration                                   In I2C mode (SPE = 0), two pull-down FETs (Q3 and Q4)
                                                                                           operate in parallel to provide an extra 60% or 70% of current
Port 3                                                                                     sinking capability. In SPI mode (SPE = 1), however, only one of
                                                                                           the pull-down FETs (Q3) operates on each pin, resulting in sink
Port 3 is a bidirectional port with internal pull-ups directly                             capabilities identical to that of Port 0 and Port 2 pins. On the
controlled via the P3 SFR. Port 3 pins that have 1s written to                             input path of SCLOCK, notice that a Schmitt trigger conditions
them are pulled high by the internal pull-ups and, in that state,                          the signal going to the SPI hardware to prevent false triggers
can be used as inputs. As inputs, Port 3 pins being pulled                                 (double triggers) on slow incoming edges. For incoming signals
externally low source current because of the internal pull-ups.                            from the SCLOCK and SDATA pins going to I2C hardware, a
                                                                                           filter conditions the signals to reject glitches of up to 50 ns in
Port 3 pins with 0s written to them will drive a logic low output                          duration.
voltage (VOL) and are capable of sinking 4 mA. Port 3 pins also
have various secondary functions as described in Table 26. The                             Notice also that direct access to the SCLOCK and SDATA/
alternate functions of Port 3 pins can be activated only if the                            MOSI pins is afforded through the SFR interface in I2C master
corresponding bit latch in the P3 SFR contains a 1. Otherwise,                             mode. Therefore, if you are not using the SPI or I2C functions,
the port pin is stuck at 0.                                                                you can use these two pins to give additional high current
                                                                                           digital outputs.
Table 26. Port 3 Alternate Pin Functions

Pin No. Alternate Function

P3.0           RxD (UART Input Pin) (or Serial Data I/O in Mode 0)                                            SPE = 1 (SPI ENABLE)   D VD D

P3.1           TxD (UART Output Pin) (or Serial Clock Output in Mode 0)

P3.2           INT0 (External Interrupt 0)                                                                                      Q1

P3.3           INT1 (External Interrupt 1)/PWM 1/MISO                                       HARDWARE SPI      SCHMITT                        Q2 (OFF)
                                                                                           (MASTER/SLAVE)     TRIGGER
P3.4           T0 (Timer/Counter 0 External Input)                                                                                                          SCLOCK
                                                                                                                                Q3                              PIN
               PWM External Clock/PWM 0
                                                                                                                                             Q4 (OFF)

P3.5           T1 (Timer/Counter 1 External Input)                                                                                                                   03260-0-061

P3.6           WR (External Data Memory Write Strobe)

P3.7           RD (External Data Memory Read Strobe)                                                  Figure 62. SCLOCK Pin I/O Functional Equivalent in SPI Mode

                                                                              Rev. 0 | Page 58 of 88
                                                                                                                      ADuC841/ADuC842/ADuC843

MOSI is shared with P3.3 and, as such, has the same                                                      Read-Modify-Write Instructions
configuration as the one shown in Figure 61.
                                                                                                         Some 8051 instructions that read a port read the latch while
      SPE = 0 (I2C ENABLE)              D VD D                                                           others read the pin. The instructions that read the latch rather
                                                                                                         than the pins are the ones that read a value, possibly change it,
         HARDWARE I2C                   Q1                                                               and then rewrite it to the latch. These are called read-modify-
          (SLAVE ONLY)                  (OFF)                                                            write instructions, which are listed below. When the destination
                                                                                                         operand is a port or a port bit, these instructions read the latch
      SFR        50ns GLITCH                         Q2                                                  rather than the pin.
      BITS   REJECTION FILTER
                                                         SCLOCK
      MCO                                                    PIN                                         Table 27. Read-Write-Modify Instructions
      I2C M
                                                     Q4           03260-0-062                            Instruction  Description
                                        Q3

                                                                                                         ANL          Logical AND, e.g., ANL P1, A

      Figure 63. SCLOCK Pin I/O Functional Equivalent in I2C Mode                                        ORL          (Logical OR, e.g., ORL P2, A

                                                                                                         XRL          (Logical EX-OR, e.g., XRL P3, A

                                                                                                         JBC          Jump if Bit = 1 and clear bit, e.g., JBC P1.1,

              SPE = 1 (SPI ENABLE)                                                                                    LABEL

HARDWARE SPI                           D VD D                                                           CPL          Complement bit, e.g., CPL P3.0
(MASTER/SLAVE)
                                    Q1                                                                   INC          Increment, e.g., INC P2

                                                Q2 (OFF)                                                 DEC          Decrement, e.g., DEC P2

                                                          SDATA/                                         DJNZ         Decrement and Jump if Not Zero, e.g., DJNZ
                                                           MOSI                                                       P3, LABEL
                                                             PIN

                                                Q4 (OFF)

                                    Q3                                         03260-0-097               MOV PX.Y, C1 Move Carry to Bit Y of Port X

                                                                                                         CLR PX.Y1    Clear Bit Y of Port X

      Figure 64. SDATA/MOSI Pin I/O Functional Equivalent in SPI Mode                                    SETB PX.Y1   Set Bit Y of Port X

                                                                                                         1 These instructions read the port byte (all 8 bits), modify the addressed bit,
                                                                                                          and then write the new byte back to the latch.

SPE = 0 (I2C ENABLE)                            D VD D                                                   Read-modify-write instructions are directed to the latch rather
                                                                                                         than to the pin to avoid a possible misinterpretation of the
      HARDWARE I2C                              Q1                                                       voltage level of a pin. For example, a port pin might be used to
                                                (OFF)                                                    drive the base of a transistor. When 1 is written to the bit, the
         (SLAVE ONLY)                                                                                    transistor is turned on. If the CPU then reads the same port bit
SFR                                                        Q2                                            at the pin rather than the latch, it reads the base voltage of the
                                                                                                         transistor and interprets it as a Logic 0. Reading the latch rather
BITS         50ns GLITCH                                       SDATA/                                    than the pin returns the correct value of 1.
                                                                 MOSI
             REJECTION FILTER                                     PIN

MCI                                                        Q4

MCO                                             Q3
MDE
                                                                                            03260-0-063
I2C M

   Figure 65. SDATA/MOSI Pin I/O Functional Equivalent in I2C Mode

                                                                               Rev. 0 | Page 59 of 88
ADuC841/ADuC842/ADuC843                                             There are no restrictions on the duty cycle of the external input
                                                                    signal, but to ensure that a given level is sampled at least once
Timers/Counters                                                     before it changes, it must be held for a minimum of one full
                                                                    machine cycle. User configuration and control of all timer
The ADuC841/ADuC842/ADuC843 have three 16-bit timer/                operating modes is achieved via three SFRs:
counters: Timer 0, Timer 1, and Timer 2. The timer/counter
hardware is included on-chip to relieve the processor core of the   TMOD, TCON                   Control and configuration for
overhead inherent in implementing timer/counter functionality       T2CON                        Timers 0 and 1.
in software. Each timer/counter consists of two 8-bit registers:
THx and TLx (x = 0, 1, and 2). All three can be configured to                                    Control and configuration for
operate either as timers or as event counters.                                                   Timer 2.

In timer function, the TLx register is incremented every            TMOD                         Timer/Counter 0 and 1 Mode
machine cycle. Thus, one can think of it as counting machine                                     Register
cycles. Since a machine cycle on a single-cycle core consists of
one core clock period, the maximum count rate is the core clock     SFR Address                  89H
frequency.
                                                                    Power-On Default             00H
In counter function, the TLx register is incremented by a 1-to-0
transition at its corresponding external input pin: T0, T1, or T2.  Bit Addressable              No
When the samples show a high in one cycle and a low in the
next cycle, the count is incremented. Since it takes two machine
cycles (two core clock periods) to recognize a 1-to-0 transition,
the maximum count rate is half the core clock frequency.

Table 28. TMOD SFR Bit Designations

Bit No. Name  Description

7  Gate       Timer 1 Gating Control.

              Set by software to enable Timer/Counter 1 only while the INT1 pin is high and the TR1 control bit is set.

              Cleared by software to enable Timer 1 whenever the TR1 control bit is set.

6  C/T        Timer 1 Timer or Counter Select Bit.

              Set by software to select counter operation (input from T1 pin).

              Cleared by software to select timer operation (input from internal system clock).

5  M1         Timer 1 Mode Select Bit 1 (Used with M0 Bit).

4  M0         Timer 1 Mode Select Bit 0.

              M1 M0

              0 0 TH1 operates as an 8-bit timer/counter. TL1 serves as 5-bit prescaler.

              0 1 16-Bit Timer/Counter. TH1 and TL1 are cascaded; there is no prescaler.

              10           8-Bit Autoreload Timer/Counter. TH1 holds a value that is to be reloaded into TL1 each time it
                           overflows.

              1 1 Timer/Counter 1 Stopped.

3  Gate       Timer 0 Gating Control.

              Set by software to enable Timer/Counter 0 only while the INT0 pin is high and the TR0 control bit is set.

              Cleared by software to enable Timer 0 whenever the TR0 control bit is set.

2  C/T        Timer 0 Timer or Counter Select Bit.

              Set by software to select counter operation (input from T0 pin).

              Cleared by software to select timer operation (input from internal system clock).

1  M1         Timer 0 Mode Select Bit 1.

0  M0         Timer 0 Mode Select Bit 0.

              M1 M0

              0 0 TH0 operates as an 8-bit timer/counter. TL0 serves as a 5-bit prescaler.

              0 1 16-Bit Timer/Counter. TH0 and TL0 are cascaded; there is no prescaler.

              10           8-Bit Autoreload Timer/Counter. TH0 holds a value that is to be reloaded into TL0 each time it
                           overflows.

              1 1 TL0 is an 8-bit timer/counter controlled by the standard Timer 0 control bits.

                           TH0 is an 8-bit timer only, controlled by Timer 1 control bits.

                                                    Rev. 0 | Page 60 of 88
                                                                                                ADuC841/ADuC842/ADuC843

TCON                         Timer/Counter 0 and 1
SFR Address                  Control Register
Power-On Default             88H
Bit Addressable              00H
                             Yes

Table 29. TCON SFR Bit Designations

Bit No. Name Description

7  TF1            Timer 1 Overflow Flag.

                  Set by hardware on a Timer/Counter 1 overflow.

                  Cleared by hardware when the program counter (PC) vectors to the interrupt service routine.

6  TR1            Timer 1 Run Control Bit.

                  Set by the user to turn on Timer/Counter 1.

                  Cleared by the user to turn off Timer/Counter 1.

5  TF0            Timer 0 Overflow Flag.

                  Set by hardware on a Timer/Counter 0 overflow.

                  Cleared by hardware when the PC vectors to the interrupt service routine.

4  TR0            Timer 0 Run Control Bit.

                  Set by the user to turn on Timer/Counter 0.

                  Cleared by the user to turn off Timer/Counter 0.

3  IE11           External Interrupt 1 (INT1) Flag.

                  Set by hardware by a falling edge or by a zero level being applied to the external interrupt pin, INT1, depending on
                  the state of Bit IT1.

                  Cleared by hardware when the PC vectors to the interrupt service routine only if the interrupt was transition-

                  activated. If level-activated, the external requesting source controls the request flag, rather than the on-chip

                  hardware.

2  IT11           External Interrupt 1 (IE1) Trigger Type.

                  Set by software to specify edge-sensitive detection, i.e., 1-to-0 transition.

                  Cleared by software to specify level-sensitive detection, i.e., zero level.

1  IE01           External Interrupt 0 (INT0) Flag.

                  Set by hardware by a falling edge or by a zero level being applied to external interrupt pin INT0, depending on the
                  state of Bit IT0.

                  Cleared by hardware when the PC vectors to the interrupt service routine only if the interrupt was transition-

                  activated. If level-activated, the external requesting source controls the request flag, rather than the on-chip

                  hardware.

0  IT01           External Interrupt 0 (IE0) Trigger Type.

                  Set by software to specify edge-sensitive detection, i.e.,1-to-0 transition.

                             Cleared by software to specify level-sensitive detection, i.e., zero level.

1These bits are not used in the control of Timer/Counter 0 and 1, but are used instead in the control and monitoring of the external INT0 and INT1 interrupt pins.

Timer/Counter 0 and 1 Data Registers                                TH0 and TL0

Each timer consists of two 8-bit registers. These can be used as    Timer 0 high byte and low byte.
independent registers or combined into a single 16-bit register     SFR Address = 8CH 8AH, respectively.
depending on the timer mode configuration.
                                                                    TH1 and TL1

                                                                    Timer 1 high byte and low byte.
                                                                    SFR Address = 8DH, 8BH, respectively.

                                                            Rev. 0 | Page 61 of 88
ADuC841/ADuC842/ADuC843

TIMER/COUNTER 0 AND 1 OPERATING MODES                                      Mode 2 (8-Bit Timer/Counter with Autoreload)

The following sections describe the operating modes for                    Mode 2 configures the timer register as an 8-bit counter (TL0)
Timer/Counters 0 and 1. Unless otherwise noted, assume that                with automatic reload, as shown in Figure 68. Overflow from TL0
these modes of operation are the same for both Timer 0 and                 not only sets TF0, but also reloads TL0 with the contents of TH0,
Timer 1.                                                                   which is preset by software. The reload leaves TH0 unchanged.

Mode 0 (13-Bit Timer/Counter)                                                 CORE     C/T = 0                                                  INTERRUPT
                                                                               CLK     C/T = 1                                        TF0
Mode 0 configures an 8-bit timer/counter. Figure 66 shows
Mode 0 operation. Note that the divide-by-12 prescaler is not              P3.4/T0
present on the single-cycle core.
                                                                               GATE
                                                                           P3.2/IN T0                                         TL0
                                                                                                                            (8 BITS)

  CORE           C/T = 0  Tl0                    TH0            INTERRUPT                                          CONTROL
   CLK           C/T = 1                              TF0                              TR0
                          (5 BITS) (8 BITS)
P3.4/T0
                                                                           03260-0-064
                                                                                                                                                                                                                                                                                                         03260-0-067
            TR0           CONTROL                                                                                         RELOAD
                                                                                                                             TH0

                                                                                                                           (8 BITS)

                                                                                       Figure 68. Timer/Counter 0, Mode 2

    GATE                                                                   Mode 3 (Two 8-Bit Timer/Counters)
P3.2/INT0
                                                                           Mode 3 has different effects on Timer 0 and Timer 1. Timer 1 in
                         Figure 66. Timer/Counter 0, Mode 0                Mode 3 simply holds its count. The effect is the same as setting
                                                                           TR1 = 0. Timer 0 in Mode 3 establishes TL0 and TH0 as two
In this mode, the timer register is configured as a 13-bit register.       separate counters. This configuration is shown in Figure 69. TL0
As the count rolls over from all 1s to all 0s, it sets the timer           uses the Timer 0 control bits: C/T, Gate, TR0, INT0, and TF0.
overflow flag, TF0. TF0 can then be used to request an interrupt.          TH0 is locked into a timer function (counting machine cycles)
The counted input is enabled to the timer when TR0 = 1 and                 and takes over the use of TR1 and TF1 from Timer 1. Thus,
either Gate = 0 or INT0 = 1. Setting Gate = 1 allows the timer to          TH0 now controls the Timer 1 interrupt. Mode 3 is provided for
be controlled by external input INT0 to facilitate pulse-width             applications requiring an extra 8-bit timer or counter.
measurements. TR0 is a control bit in the special function
register TCON; Gate is in TMOD. The 13-bit register consists of            When Timer 0 is in Mode 3, Timer 1 can be turned on and off
all 8 bits of TH0 and the lower five bits of TL0. The upper 3 bits         by switching it out of and into its own Mode 3, or it can still be
of TL0 are indeterminate and should be ignored. Setting the run            used by the serial interface as a baud rate generator. In fact, it
flag (TR0) does not clear the registers.                                   can be used in any application not requiring an interrupt from
                                                                           Timer 1 itself.
Mode 1 (16-Bit Timer/Counter)
                                                                             CORE
Mode 1 is the same as Mode 0, except that the Mode 1 timer                    CLK
register is running with all 16 bits. Mode 1 is shown in
Figure 67.                                                                 P3.4/T0

   CORE                                                                                         C/ T = 0                 TL0                     INTERRUPT
    CLK                                                                                         C/ T = 1              (8 BITS)        TF0
                                                                                       TR0
P3.4/T0          C/T = 0    TL0 TH0                             INTERRUPT                                 CONTROL
                 C/T = 1  (8 BITS) (8 BITS)           TF0

                                        CONTROL                                GATE
            TR0                                                            P3.2/INT0

     GATE                                                                  03260-0-066
P3.2/IN T0                                                                                                                                                                                                                                                                                             03260-0-068
                                                                            CORE                            TH0                                  INTERRUPT
                                                                           CLK/12                         (8 BITS)                    TF1

                 Figure 67. Timer/Counter 0, Mode 1                            TR1

                                                                                       Figure 69. Timer/Counter 0, Mode 3

                                                      Rev. 0 | Page 62 of 88
                                                                                            ADuC841/ADuC842/ADuC843

T2CON             Timer/Counter 2 Control Register
SFR Address       C8H
Power-On Default  00H
Bit Addressable   Yes

Table 30. T2CON SFR Bit Designations

Bit No. Name Description

7  TF2 Timer 2 Overflow Flag.

                  Set by hardware on a Timer 2 overflow. TF2 cannot be set when either RCLK = 1 or TCLK = 1.

                  Cleared by user software.

6  EXF2 Timer 2 External Flag.

                  Set by hardware when either a capture or reload is caused by a negative transition on T2EX and EXEN2 = 1.

                  Cleared by user software.

5  RCLK Receive Clock Enable Bit.

                  Set by the user to enable the serial port to use Timer 2 overflow pulses for its receive clock in serial port Modes 1 and 3.

                  Cleared by the user to enable Timer 1 overflow to be used for the receive clock.

4  TCLK Transmit Clock Enable Bit.

                  Set by the user to enable the serial port to use Timer 2 overflow pulses for its transmit clock in serial port Modes 1 and 3.

                  Cleared by the user to enable Timer 1 overflow to be used for the transmit clock.

3  EXEN2 Timer 2 External Enable Flag.

                  Set by the user to enable a capture or reload to occur as a result of a negative transition on T2EX if Timer 2 is not being
                  used to clock the serial port.

                  Cleared by the user for Timer 2 to ignore events at T2EX.

2  TR2 Timer 2 Start/Stop Control Bit.

                  Set by the user to start Timer 2.

                  Cleared by the user to stop Timer 2.

1  CNT2 Timer 2 Timer or Counter Function Select Bit.

                  Set by the user to select counter function (input from external T2 pin).

                  Cleared by the user to select timer function (input from on-chip core clock).

0  CAP2 Timer 2 Capture/Reload Select Bit.

                  Set by the user to enable captures on negative transitions at T2EX if EXEN2 = 1.

                  Cleared by the user to enable autoreloads with Timer 2 overflows or negative transitions at T2EX when EXEN2 = 1.
                  When either RCLK = 1 or TCLK = 1, this bit is ignored and the timer is forced to autoreload on Timer 2 overflow.

Timer/Counter 2 Data Registers
Timer/Counter 2 also has two pairs of 8-bit data registers
associated with it. These are used as both timer data registers
and as timer capture/reload registers.

TH2 and TL2

Timer 2, data high byte and low byte.
SFR Address = CDH, CCH, respectively.

RCAP2H and RCAP2L

Timer 2, capture/reload byte and low byte.
SFR Address = CBH, CAH, respectively.

                                                        Rev. 0 | Page 63 of 88
ADuC841/ADuC842/ADuC843

TIMER/COUNTER OPERATING MODES                                                16-Bit Capture Mode

The following sections describe the operating modes for                      Capture mode also has two options that are selected by bit
Timer/Counter 2. The operating modes are selected by bits in                 EXEN2 in T2CON. If EXEN2 = 0, then Timer 2 is a 16-bit timer
the T2CON SFR, as shown in Table 31.                                         or counter that, upon overflowing, sets Bit TF2, the Timer 2
                                                                             overflow bit, which can be used to generate an interrupt. If
Table 31. T2CON Operating Modes                                              EXEN2 = 1, then Timer 2 still performs the above, but a l-to-0
                                                                             transition on external input T2EX causes the current value in
RCLK (or) TCLK CAP2 TR2          Mode                                        the Timer 2 registers, TL2 and TH2, to be captured into
                                 16-Bit Autoreload                           registers RCAP2L and RCAP2H, respectively. In addition, the
0  0         1                   16-Bit Capture                              transition at T2EX causes Bit EXF2 in T2CON to be set, and
                                 Baud Rate                                   EXF2, like TF2, can generate an interrupt. Capture mode is
0  1         1                   OFF                                         illustrated in Figure 71. The baud rate generator mode is
                                                                             selected by RCLK = 1 and/or TCLK = 1.
1  X         1
                                                                             In either case, if Timer 2 is being used to generate the baud rate,
X  X         0                                                               the TF2 interrupt flag will not occur. Therefore, Timer 2
                                                                             interrupts will not occur, so they do not have to be disabled. In
16-Bit Autoreload Mode                                                       this mode, the EXF2 flag, however, can still cause interrupts,
                                                                             which can be used as a third external interrupt. Baud rate
Autoreload mode has two options that are selected by Bit EXEN2               generation is described as part of the UART serial port
in T2CON. If EXEN2 = 0, then when Timer 2 rolls over, it not                 operation in the following section.
only sets TF2 but also causes the Timer 2 registers to be
reloaded with the 16-bit value in registers RCAP2L and RCAP2H,
which are preset by software. If EXEN2 = 1, then Timer 2 still
performs the above, but with the added feature that a 1-to-0
transition at external input T2EX will also trigger the 16-bit
reload and set EXF2. Autoreload mode is illustrated in Figure 70.

      CORE                       C/T2 = 0                            TL2       TH2
      CLK*                       C/T2 = 1                          (8 BITS)  (8 BITS)

       T2                                        CONTROL
      PIN

                                            TR2

                     TRANSITION                  RELOAD
                      DETECTOR                                      RCAP2L RCAP2H

      T2EX                                                                                 TF2  TIMER
        PIN                                                                               EXF2  INTERRUPT

                                                         CONTROL                                           03260-0-069

                                                   EXEN2
      * CORE CLK IS DEFINED BY THE CD BITS IN PLLCON

                                 Figure 70. Timer/Counter 2, 16-Bit Autoreload Mode

      CORE                       C/ T2 = 0
      CLK*
                                                                   TL2       TH2          TF2
       T2
      PIN                                                          (8 BITS) (8 BITS)

                                 C/ T2 = 1

                                                 CONTROL

             TRANSITION                     TR2                                                 TIMER
             DETECTOR                               CAPTURE                                     INTERRUPT

                                                                       RCAP2L RCAP2H

      T2EX                                                                                EXF2
        PIN

                                            CONTROL

                                                  EXEN2                                                                 03260-0-070
      * CORE CLK IS DEFINED BY THE CD BITS IN PLLCON

                                        Figure 71. Timer/Counter 2, 16-Bit Capture Mode

                                                                  Rev. 0 | Page 64 of 88
                                                                                       ADuC841/ADuC842/ADuC843

UART SERIAL INTERFACE                                                SBUF

The serial port is full-duplex, meaning it can transmit and          Both the serial port receive and transmit registers are accessed
receive simultaneously. It is also receive-buffered, meaning it      through the SBUF SFR (SFR address = 99H). Writing to SBUF
can begin receiving a second byte before a previously received       loads the transmit register, and reading SBUF accesses a
byte has been read from the receive register. However, if the first  physically separate receive register.
byte still has not been read by the time reception of the second
byte is complete, the first byte is lost. The physical interface to  SCON UART                         Serial Port Control Register
the serial data network is via Pins RxD(P3.0) and TxD(P3.1),
while the SFR interface to the UART is comprised of SBUF and         SFR Address                       98H
SCON, as described below.
                                                                     Power-On Default                  00H

                                                                     Bit Addressable                   Yes

Table 32. SCON SFR Bit Designations

Bit No. Name Description

7  SM0  UART Serial Mode Select Bits.

6  SM1  These bits select the serial port operating mode as follows:

        SM0               SM1        Selected Operating Mode.

        0                 0          Mode 0: Shift Register, fixed baud rate (Core_Clk/2).

        0                 1          Mode 1: 8-bit UART, variable baud rate.

        1                 0          Mode 2: 9-bit UART, fixed baud rate (Core_Clk/32) or (Core_Clk/16).

        1                 1          Mode 3: 9-bit UART, variable baud rate.

5  SM2  Multiprocessor Communication Enable Bit.

        Enables multiprocessor communication in Modes 2 and 3.

        In Mode 0, SM2 must be cleared.

        In Mode 1, if SM2 is set, RI is not activated if a valid stop bit was not received. If SM2 is cleared, RI is set as soon as the
        byte of data has been received.

        In Modes 2 or 3, if SM2 is set, RI is not activated if the received 9th data bit in RB8 is 0.

        If SM2 is cleared, RI is set as soon as the byte of data has been received.

4  REN  Serial Port Receive Enable Bit.

        Set by user software to enable serial port reception.

        Cleared by user software to disable serial port reception.

3  TB8  Serial Port Transmit (Bit 9).

        The data loaded into TB8 is the 9th data bit transmitted in Modes 2 and 3.

2  RB8  Serial Port Receiver Bit 9.

        The 9th data bit received in Modes 2 and 3 is latched into RB8. For Mode 1, the stop bit is latched into RB8.

1  TI   Serial Port Transmit Interrupt Flag.

        Set by hardware at the end of the 8th bit in Mode 0, or at the beginning of the stop bit in Modes 1, 2, and 3.

        TI must be cleared by user software.

0  RI   Serial Port Receive Interrupt Flag.

        Set by hardware at the end of the 8th bit in Mode 0, or halfway through the stop bit in Modes 1, 2, and 3.

        RI must be cleared by software.

                                              Rev. 0 | Page 65 of 88
ADuC841/ADuC842/ADuC843

Mode 0: 8-Bit Shift Register Mode                                      This is the case if, and only if, all of the following conditions are
                                                                       met at the time the final shift pulse is generated:
Mode 0 is selected by clearing both the SM0 and SM1 bits in the
SFR SCON. Serial data enters and exits through RxD. TxD out-            RI = 0
puts the shift clock. Eight data bits are transmitted or received.
Transmission is initiated by any instruction that writes to SBUF.       Either SM2 = 0 or SM2 = 1
The data is shifted out of the RxD line. The 8 bits are transmitted
with the least significant bit (LSB) first.                            The received stop bit = 1

Reception is initiated when the receive enable bit (REN) is 1          If any of these conditions is not met, the received frame is
and the receive interrupt bit (RI) is 0. When RI is cleared, the       irretrievably lost, and RI is not set.
data is clocked into the RxD line, and the clock pulses are
output from the TxD line.                                              Mode 2: 9-Bit UART with Fixed Baud Rate
                                                                       Mode 2 is selected by setting SM0 and clearing SM1. In this
Mode 1: 8-Bit UART, Variable Baud Rate                                 mode, the UART operates in 9-bit mode with a fixed baud rate.
                                                                       The baud rate is fixed at Core_Clk/32 by default, although by
Mode 1 is selected by clearing SM0 and setting SM1. Each data          setting the SMOD bit in PCON, the frequency can be doubled
byte (LSB first) is preceded by a start bit (0) and followed by a      to Core_Clk/16. Eleven bits are transmitted or received: a start
stop bit (1). Therefore, 10 bits are transmitted on TxD or are         bit (0), 8 data bits, a programmable 9th bit, and a stop bit (1).
received on RxD. The baud rate is set by the Timer 1 or Timer 2        The 9th bit is most often used as a parity bit, although it can be
overflow rate, or a combination of the two (one for transmission       used for anything, including a 9th data bit if required.
and the other for reception).
                                                                       To transmit, the 8 data bits must be written into SBUF. The 9th
Transmission is initiated by writing to SBUF. The write to SBUF        bit must be written to TB8 in SCON. When transmission is
signal also loads a 1 (stop bit) into the 9th bit position of the      initiated, the 8 data bits (from SBUF) are loaded onto the
transmit shift register. The data is output bit by bit until the stop  transmit shift register (LSB first). The contents of TB8 are loaded
bit appears on TxD and the transmit interrupt flag (TI) is             into the 9th bit position of the transmit shift register. The
automatically set, as shown in Figure 72.                              transmission starts at the next valid baud rate clock. The TI flag
                                                                       is set as soon as the stop bit appears on TxD.
             START               STOP BIT
                                                                       Reception for Mode 2 is similar to that of Mode 1. The 8 data
TxD BIT D0 D1 D2 D3 D4 D5 D6 D7                                        bytes are input at RxD (LSB first) and loaded onto the receive
                                                                       shift register. When all 8 bits have been clocked in, the following
         TI                                    03260-0-072             events occur:
(SCON.1)
                                                                        The 8 bits in the receive shift register are latched into SBUF.
                            SET INTERRUPT
                    I.E., READY FOR MORE DATA                           The 9th data bit is latched into RB8 in SCON.

                Figure 72. UART Serial Port Transmission, Mode 1       The receiver interrupt flag (RI) is set.

Reception is initiated when a 1-to-0 transition is detected on         This is the case if, and only if, all of the following conditions are
RxD. Assuming a valid start bit is detected, character reception       met at the time the final shift pulse is generated:
continues. The start bit is skipped and the 8 data bits are
clocked into the serial port shift register. When all 8 bits have       RI = 0
been clocked in, the following events occur:
                                                                        Either SM2 = 0 or SM2 = 1
The 8 bits in the receive shift register are latched into SBUF.
                                                                        The received stop bit = 1
The 9th bit (stop bit) is clocked into RB8 in SCON.
                                                                       If any of these conditions is not met, the received frame is
The receiver interrupt flag (RI) is set.                             irretrievably lost, and RI is not set.

                                           Rev. 0 | Page 66 of 88
                                                                                                                           ADuC841/ADuC842/ADuC843

Mode 3: 9-Bit UART with Variable Baud Rate                                           The Timer 1 interrupt should be disabled in this application.
Mode 3 is selected by setting both SM0 and SM1. In this mode,                        The timer itself can be configured for either timer or counter
the 8051 UART serial port operates in 9-bit mode with a vari-                        operation, and in any of its three running modes. In the most
able baud rate determined by either Timer 1 or Timer 2. The                          typical application, it is configured for timer operation in the
operation of the 9-bit UART is the same as for Mode 2, but the                       autoreload mode (high nibble of TMOD = 0010 binary). In that
baud rate can be varied as for Mode 1.                                               case, the baud rate is given by the formula

In all four modes, transmission is initiated by any instruction                           Modes 1 and 3 Baud Rate =
that uses SBUF as a destination register. Reception is initiated in                       (2SMOD/32) (Core Clock/ [256 - TH1])
Mode 0 by the condition RI = 0 and REN = 1. Reception is
initiated in the other modes by the incoming start bit if REN = 1.                   Timer 2 Generated Baud Rates
UART Serial Port Baud Rate Generation                                                Baud rates can also be generated using Timer 2. Using Timer 2
                                                                                     is similar to using Timer 1 in that the timer must overflow 16
Mode 0 Baud Rate Generation                                                          times before a bit is transmitted/received. Because Timer 2 has a
The baud rate in Mode 0 is fixed.                                                    16-bit autoreload mode, a wider range of baud rates is possible
                                                                                     using Timer 2.
     Mode 0 Baud Rate = (Core Clock Frequency/12)
Mode 2 Baud Rate Generation                                                               Modes 1 and 2 Baud Rate = (1/16) (Timer 2 Overflow Rate)
The baud rate in Mode 2 depends on the value of the SMOD bit
in the PCON SFR. If SMOD = 0, the baud rate is 1/32 of the                           Therefore, when Timer 2 is used to generate baud rates, the
core clock. If SMOD = 1, the baud rate is 1/16 of the core clock:                    timer increments every two clock cycles rather than every core
                                                                                     machine cycle as before. Thus, it increments six times faster
     Mode 2 Baud Rate = (2SMOD/32 [Core Clock Frequency])                          than Timer 1, and therefore baud rates six times faster are possi-
Modes 1 and 3 Baud Rate Generation                                                   ble. Because Timer 2 has 16-bit autoreload capability, very low
The baud rates in Modes 1 and 3 are determined by the over-                          baud rates are still possible.
flow rate in Timer 1 or Timer 2, or in both (one for transmit
and the other for receive).                                                          Timer 2 is selected as the baud rate generator by setting the
Timer 1 Generated Baud Rates                                                         TCLK and/or RCLK in T2CON. The baud rates for transmit
When Timer 1 is used as the baud rate generator, the baud rates                      and receive can be simultaneously different. Setting RCLK and/
in Modes 1 and 3 are determined by the Timer 1 overflow rate                         or TCLK puts Timer 2 into its baud rate generator mode as
and the value of SMOD as follows:                                                    shown in Figure 73.

Modes 1 and 3 Baud Rate = (2SMOD/32 (Timer 1 Overflow Rate)                        In this case, the baud rate is given by the formula

                                                                                          Modes 1 and 3 Baud Rate =
                                                                                          (Core Clock)/(16 [65536 - (RCAP 2H, RCAP 2L)])

                                                                                                                               TIMER 1
                                                                                                                            OVERFLOW

                                                                                                                     2

                                                                                                                        0     1

CORE                        CONTROL                                                                                              SMOD
CLK*        C/ T2 = 0
                                                                                                TIMER 2
                                                                             TL2      TH2     OVERFLOW            1        0
                                                                          (8 BITS)  (8 BITS)
                                                                                                                                 RCLK
T2          C/ T2 = 1                                                                                                               16  RX
                                                                                                                                        CLOCK
PIN                                                                                                                              TCLK
                                                                                                                                    16  TX
                                                                                                                  1        0            CLOCK

                                                              TR2                                         RELOAD
                                                                          RCAP2L RCAP2H
NOTE: AVAILABILITY OF ADDITIONAL
EXTERNAL INTERRUPT

T2EX                                                               EXF 2  TIMER 2
  PIN                                                                     INTERRUPT

TRANSITION         CONTROL                                                                                                                     03260-0-073
DETECTOR   EXEN2

*CORE CLK IS DEFINED BY THE CD BITS IN PLLCON

                                                                   Figure 73. Timer 2, UART Baud Rates

                                                                   Rev. 0 | Page 67 of 88
ADuC841/ADuC842/ADuC843

Timer 3 Generated Baud Rates                                                          The appropriate value to write to the DIV2-1-0 bits can be
                                                                                      calculated using the following formula where fCORE is defined in
The high integer dividers in a UART block mean that high                              PLLCON SFR. Note that the DIV value must be rounded down.
speed baud rates are not always possible using some particular
crystals. For example, using a 12 MHz crystal, a baud rate of                                     log    16    fCORE      
115200 is not possible. To address this problem, the part has                                                   Baud Rate
added a dedicated baud rate timer (Timer 3) specifically for                              DIV  =
generating highly accurate baud rates. Timer 3 can be used                                                   log (2)
instead of Timer 1 or Timer 2 for generating very accurate high
speed UART baud rates including 115200 and 230400. Timer 3                            T3FD is the fractional divider ratio required to achieve the
also allows a much wider range of baud rates to be obtained. In                       required baud rate. The appropriate value for T3FD can be
fact, every desired bit rate from 12 bit/s to 393216 bit/s can be                     calculated with the following formula:
generated to within an error of 0.8%. Timer 3 also frees up the
other three timers, allowing them to be used for different                                T 3FD    =         2       f CORE  Rate  -  64
applications. A block diagram of Timer 3 is shown in Figure 74.                                        2 DIV -1      Baud

          CORE         2                                                              Note that T3FD should be rounded to the nearest integer. Once
            CLK                                                                       the values for DIV and T3FD are calculated, the actual baud rate
                 (1 + T3FD/64)                   TIMER 1/TIMER 2                      can be calculated with the following formula:
FRACTIONAL                                     TX CLOCK
   DIVIDER
                                 TIMER 1/TIMER 2
                                RX CLOCK

                                               10                                         Actual   Baud         Rate  =        2 fCORE    +  64)
                 2DIV
                                                                                                                         ( 2DIV -1 T 3FD
                                                               RX CLOCK
                                               10                        03260-0-074  For example, to get a baud rate of 115200 while operating at
                 16                                T3EN                               16.7 MHz, i.e., CD = 0
                                                               TX CLOCK
                             T3 RX/TX                                                     DIV = log(16777216 /(16115200)) / log 2 = 3.18 = 3
                              CLOCK
                                                                                         ( ) T 3FD = (216777216) / 22 115200 - 64 = 9 = 09H
                        Figure 74. Timer 3, UART Baud Rates
                                                                                      Therefore, the actual baud rate is 114912 bit/s.
Two SFRs (T3CON and T3FD) are used to control Timer 3.
T3CON is the baud rate control SFR, allowing Timer 3 to be
used to set up the UART baud rate, and setting up the binary
divider (DIV).

Table 33. T3CON SFR Bit Designations

Bit No.          Name           Description

7                T3BAUDEN       T3UARTBAUD Enable.

                                Set to enable Timer 3 to generate the baud rate. When set, PCON.7, T2CON.4, and T2CON.5 are ignored.

                                Cleared to let the baud rate be generated as per a standard 8052.

6                               Reserved.

5                               Reserved.

4                               Reserved.

3                               Reserved.

2                DIV2           Binary Divider Factor.

1                DIV1           DIV2               DIV1                  DIV0         Bin Divider

0                DIV0           0                  0                     0            1

                                0                  0                     1            1

                                0                  1                     0            1

                                0                  1                     1            1

                                1                  0                     0            1

                                1                  0                     1            1

                                1                  1                     0            1

                                1                  1                     1            1

                                                                  Rev. 0 | Page 68 of 88
                                                                                   ADuC841/ADuC842/ADuC843

Table 34. Commonly Used Baud Rates Using Timer 3 with the 16.777216 MHz PLL Clock

Ideal Baud  CD  DIV  T3CON                   T3FD                                  % Error
                                                                                   0.25
230400      0   2    82H                     09H
                                                                                   0.25
115200      0   3    83H                     09H                                   0.25
                                                                                   0.25
115200      1   2    82H                     09H
                                                                                   0.25
115200      2   1    81H                     09H                                   0.25
                                                                                   0.25
57600       0   4    84H                     09H                                   0.25
57600
57600       1   3    83H                     09H                                   0.2
57600                                                                              0.2
            2   2    82H                     09H                                   0.2
                                                                                   0.2
            3   1    81H                     09H
                                                                                   0.2
38400       0   4    84H                     2DH                                   0.2
38400                                                                              0.2
38400       1   3    83H                     2DH                                   0.2
38400                                                                              0.2
            2   2    82H                     2DH
                                                                                   0.2
            3   1    81H                     2DH                                   0.2
                                                                                   0.2
19200       0   5    85H                     2DH                                   0.2
19200                                                                              0.2
19200       1   4    84H                     2DH                                   0.2
19200
19200       2   3    83H                     2DH

            3   2    82H                     2DH

            4   1    81H                     2DH

9600        0   6    86H                     2DH
9600
9600        1   5    85H                     2DH
9600
9600        2   4    84H                     2DH
9600
            3   3    83H                     2DH

            4   2    82H                     2DH

            5   1    81H                     2DH

                     Rev. 0 | Page 69 of 88
ADuC841/ADuC842/ADuC843

INTERRUPT SYSTEM

The ADuC841/ADuC842/ADuC843 provide a total of nine
interrupt sources with two priority levels. The control and
configuration of the interrupt system is carried out through
three interrupt-related SFRs:

IE                Interrupt Enable Register
IP                Interrupt Priority Register
IEIP2             Secondary Interrupt Enable Register

IE                Interrupt Enable Register
SFR Address       A8H
Power-On Default  00H
Bit Addressable   Yes

Table 35. IE SFR Bit Designations

Bit No.  Name     Description

7        EA       Set by the user to enable, or cleared to disable all interrupt sources.

6        EADC     Set by the user to enable, or cleared to disable ADC interrupts.

5        ET2      Set by the user to enable, or cleared to disable Timer 2 interrupts.

4        ES       Set by the user to enable, or cleared to disable UART serial port interrupts.

3        ET1      Set by the user to enable, or cleared to disable 0 Timer 1 interrupts.

2        EX1      Set by the user to enable, or cleared to disable External Interrupt 1.

1        ET0      Set by the user to enable, or cleared to disable Timer 0 interrupts.

0        EX0      Set by the user to enable, or cleared to disable External Interrupt 0 .

IP                Interrupt Priority Register
SFR Address       B8H
Power-On Default  00H
Bit Addressable   Yes

Table 36. IP SFR Bit Designations

Bit No. Name Description

7        ----     Reserved.

6        PADC     Written by the user to select the ADC interrupt priority (1 = High; 0 = Low).

5        PT2      Written by the user to select the Timer 2 interrupt priority (1 = High; 0 = Low).

4        PS       Written by the user to select the UART serial port interrupt priority (1 = High; 0 = Low).

3        PT1      Written by the user to select the Timer 1 interrupt priority (1 = High; 0 = Low).

2        PX1      Written by the user to select External Interrupt 1 priority (1 = High; 0 = Low).

1        PT0      Written by the user to select the Timer 0 interrupt priority (1 = High; 0 = Low).

0        PX0      Written by the user to select External Interrupt 0 priority (1 = High; 0 = Low).

                                                              Rev. 0 | Page 70 of 88
                                                                                       ADuC841/ADuC842/ADuC843

IEIP2                Secondary Interrupt Enable Register
SFR Address          A9H
Power-On Default     A0H
Bit Addressable      No

Table 37. IEIP2 SFR Bit Designations

Bit No.    Name      Description

7          ----      Reserved.

6          PTI       Priority for time interval interrupt.

5          PPSM      Priority for power supply monitor interrupt.

4          PSI       Priority for SPI/I2C interrupt.

3          ----      This bit must contain zero.

2          ETI       Set by the user to enable, or cleared to disable time interval counter interrupts.

1          EPSMI     Set by the user to enable, or cleared to disable power supply monitor interrupts.

0          ESI       Set by the user to enable, or cleared to disable SPI or I2C serial port interrupts.

Interrupt Priority                                                  Interrupt Vectors

The interrupt enable registers are written by the user to enable    When an interrupt occurs, the program counter is pushed onto
individual interrupt sources, while the interrupt priority regis-   the stack, and the corresponding interrupt vector address is
ters allow the user to select one of two priority levels for each   loaded into the program counter. The interrupt vector addresses
interrupt. An interrupt of a high priority may interrupt the        are shown in Table 39.
service routine of a low priority interrupt, and if two interrupts
of different priority occur at the same time, the higher level      Table 39. Interrupt Vector Addresses
interrupt is serviced first. An interrupt cannot be interrupted by
another interrupt of the same priority level. If two interrupts of  Source                                Vector Address
the same priority level occur simultaneously, a polling sequence
is observed as shown in Table 38.                                   IE0                                   0003H

                                                                    TF0                                   000BH

                                                                    IE1                                   0013H

                                                                    TF1                                   001BH

Table 38. Priority within an Interrupt Level                        RI + TI                               0023H

Source     Priority  Description                                    TF2 + EXF2                            002BH

PSMI       1 (Highest) Power Supply Monitor Interrupt.              ADCI                                  0033H

WDS        2         Watchdog Timer Interrupt.                      ISPI/I2CI                             003BH

IE0        2         External Interrupt 0.                          PSMI                                  0043H

ADCI       3         ADC Interrupt.                                 TII                                   0053H

TF0        4         Timer/Counter 0 Interrupt.                     WDS                                   005BH

IE1        5         External Interrupt 1.

TF1        6         Timer/Counter 1 Interrupt.

ISPI/I2CI  7         SPI Interrupt/I2C Interrupt.

RI + TI    8         Serial Interrupt.

TF2 + EXF2 9         Timer/Counter 2 Interrupt.

TII        11(Lowest) Time Interval Counter Interrupt.

                                                            Rev. 0 | Page 71 of 88
ADuC841/ADuC842/ADuC843

HARDWARE DESIGN CONSIDERATIONS                                                                          EXTERNAL P3.4           ADuC842/ADuC843
                                                                                                           CLOCK
This section outlines some of the key hardware design                                                                                                        TO INTERNAL
considerations that must be addressed when integrating the                                                SOURCE                                             TIMING CIRCUITS
ADuC841/ADuC842/ADuC843 into any hardware system.
                                                                                                                                                                              03260-0-077
Clock Oscillator
                                                                            Figure 77. Connecting an External Clock Source (ADuC842/ADuC843)
The clock source for the parts can be generated by the internal
PLL or by an external clock input. To use the internal PLL, con-        Whether using the internal PLL or an external clock source, the
nect a 32.768 kHz parallel resonant crystal between XTAL1 and           parts' specified operational clock speed range is 400 kHz to
XTAL2, and connect a capacitor from each pin to ground as               16.777216 MHz, (20 MHz, ADuC841). The core itself is static,
shown in Figure 75. The parts contain an internal capacitance of        and functions all the way down to dc. But at clock speeds slower
18 pF on the XTAL1 and XTAL2 pins, which is sufficient for              that 400 kHz, the ADC can no longer function correctly. There-
most watch crystals. This crystal allows the PLL to lock correctly      fore, to ensure specified operation, use a clock frequency of at
to give an fVCO of 16.777216 MHz. If no crystal is present, the         least 400 kHz and no more than 20 MHz.
PLL will free run, giving an fVCO of 16.7 MHz 20%. In this mode,
the CD bits are limited to CD = 1, giving a max core clock of           External Memory Interface
8.38 MHz. This is useful if an external clock input is required.
The part powers up and the PLL will free run; the user then             In addition to its internal program and data memories, the parts
writes to the CFG842 SFR in software to enable the external clock       can access up to 16 MBytes of external data memory (SRAM).
input on P3.4. Note that double the required clock must be pro-         Note that the parts cannot access external program memory.
vided externally since the part runs at CD = 1. A better solution is
to use the ADuC841 with the external clock.                             Figure 78 shows a hardware configuration for accessing up to
                                                                        64 kBytes of external RAM. This interface is standard to any
For the ADuC841, connect the crystal in the same manner; external       8051 compatible MCU.
capacitors should be connected as per the crystal manufacturer's
recommendations. A minimum capacitance of 20 pF is                                                      ADuC841/                               SRAM
recommended on XTAL1 and XTAL2. The ADuC841 will not                                                    ADuC842/                       D0D7
operate if no crystal is present.                                                                       ADuC843 P0                     (DATA)

An external clock may be connected as shown in Figure 76 and                                                               ALE         A0A7
Figure 77.

                ADuC841/ADuC842/ADuC843                                                                                         LATCH

XTAL1

                         TO INTERNAL                                                                    P2                             A8A15
                         TIMING CIRCUITS
XTAL2                                     03260-0-076
                                                                                                        RD                             OE

                                                                                                        WR                             WE                                                  03260-0-078

Figure 75. External Parallel Resonant Crystal Connections               Figure 78. External Data Memory Interface (64 kBytes Address Space)

                ADuC841

EXTERNAL XTAL1
   CLOCK
  SOURCE

XTAL2                    TO INTERNAL
                         TIMING CIRCUITS
                                                           03260-0-075

Figure 76. Connecting an External Clock Source (ADuC841)
                                                                                Rev. 0 | Page 72 of 88
                                                                                  ADuC841/ADuC842/ADuC843

If access to more than 64 kBytes of RAM is desired, a feature                     DIGITAL SUPPLY                   ANALOG SUPPLY
unique to the ADuC841/ADuC842/ADuC843 allows address-                                             10F
ing up to 16 MBytes of external RAM simply by adding an                                                              10F
additional latch as illustrated in Figure 79.                                         +                                                 +
                                                                                                                                      

                                                                                       0.1F             DVDD      AVDD  0.1F

ADuC841/                               SRAM                                                              ADuC841/
ADuC842/                       D0D7
ADuC843 P0                     (DATA)                                                                    ADuC842/

                   ALE         A0A7                                                                     ADuC843

                                                                                                         DGND  AGND

                        LATCH                                                                                                   03260-0-080

P2                             A8A15                                                       Figure 80. External Dual-Supply Connections

                        LATCH  A16A23                                   As an alternative to providing two separate power supplies, the
                                                                         user can help keep AVDD quiet by placing a small series resistor
RD                             OE            03260-0-079                 and/or ferrite bead between it and DVDD, and then decoupling
                                                                         AVDD separately to ground. An example of this configuration is
WR                             WE                                        shown in Figure 81. With this configuration, other analog
                                                                         circuitry (such as op amps and voltage reference) can be powered
    Figure 79. External Data Memory Interface (16 MBytes Address Space)  from the AVDD supply line as well. The user will still want to
                                                                         include back-to-back Schottky diodes between AVDD and DVDD
In either implementation, Port 0 (P0) serves as a multiplexed            to protect them from power-up and power-down transient
address/data bus. It emits the low byte of the data pointer (DPL)        conditions that could momentarily separate the two supply voltages.
as an address, which is latched by a pulse of ALE prior to data
being placed on the bus by the ADuC841/ADuC842/ADuC843                            DIGITAL SUPPLY         BEAD 1.6        10F
(write operation) or by the SRAM (read operation). Port 2 (P2)                                     10F
provides the data pointer page byte (DPP) to be latched by ALE,                                          DVDD      AVDD
followed by the data pointer high byte (DPH). If no latch is                          +
connected to P2, DPP is ignored by the SRAM, and the 8051                                               ADuC841/        0.1F
standard of 64 kBytes external data memory access is maintained.
                                                                                       0.1F             ADuC842/
Power Supplies
                                                                                                         ADuC843
The operational power supply voltage of the parts depends on
whether the part is the 3 V version or the 5 V version. The                                              DGND  AGND
specifications are given for power supplies within 2.7 V to 3.6 V
or 5% of the nominal 5 V level.                                                                                                03260-0-081

Note that Figure 80 and Figure 81 refer to the PQFP package.                               Figure 81. External Single-Supply Connections
For the CSP package, connect the extra DVDD, DGND, AVDD,
and AGND in the same manner. Also, the paddle on the bottom              Notice that in both Figure 80 and Figure 81, a large value
of the package should be soldered to a metal plate to provide            (10 F) reservoir capacitor sits on DVDD and a separate 10 F
mechanical stability. This metal plate should not be connected           capacitor sits on AVDD. Also, local small-value (0.1 F) capaci-
to ground.                                                               tors are located at each VDD pin of the chip. As per standard
                                                                         design practice, be sure to include all of these capacitors, and
Separate analog and digital power supply pins (AVDD and DVDD,            ensure the smaller capacitors are close to each AVDD pin with
respectively) allow AVDD to be kept relatively free of the noisy         trace lengths as short as possible. Connect the ground terminal
digital signals that are often present on the system DVDD line.          of each of these capacitors directly to the underlying ground
However, though you can power AVDD and DVDD from two                     plane. Finally, note that at all times, the analog and digital ground
separate supplies if desired, you must ensure that they remain           pins on the part must be referenced to the same system ground
within 0.3 V of one another at all times to avoid damaging the          reference point.
chip (as per the Absolute Maximum Ratings section). Therefore,
it is recommended that unless AVDD and DVDD are connected
directly together, back-to-back Schottky diodes should be con-
nected between them, as shown in Figure 80.

                                                          Rev. 0 | Page 73 of 88
ADuC841/ADuC842/ADuC843

Power Consumption

The currents consumed by the various sections of the part are      power-down mode, the part consumes a total of approximately
shown in Table 40. The core values given represent the current     20 A. There are five ways of terminating power-down mode:
drawn by DVDD, while the rest (ADC, DAC, voltage ref) are
pulled by the AVDD pin and can be disabled in software when        Asserting the RESET Pin (Pin 15)
not in use. The other on-chip peripherals (such as the watchdog
timer and the power supply monitor) consume negligible             Returns to normal mode. All registers are set to their default
current, and are therefore lumped in with the core operating       state and program execution starts at the reset vector once the
current here. Of course, the user must add any currents sourced    RESET pin is de-asserted.
by the parallel and serial I/O pins, and sourced by the DAC, in
order to determine the total current needed at the supply pins.    Cycling Power
Also, current drawn from the DVDD supply increases by approxi-
mately 10 mA during Flash/EE erase and program cycles.             All registers are set to their default state and program execution
                                                                   starts at the reset vector approximately 128 ms later.
Table 40. Typical IDD of Core and Peripherals
                                                                   Time Interval Counter (TIC) Interrupt
             VDD = 5 V              VDD = 3 V
                                                                   Power-down mode is terminated, and the CPU services the TIC
Core (Normal Mode) (2.2 nA MCLK)  (1.4 nA MCLK)                interrupt. The RETI at the end of the TIC ISR returns the core
                                                                   to the instruction after the one that enabled power-down.
ADC          1.7 mA                 1.7 mA
                                                                   I2C or SPI Interrupt
DAC (Each)   250 A                 200 A
                                                                   Power-down mode is terminated, and the CPU services the
Voltage Ref  200 A                 150 A                         I2C/SPI interrupt. The RETI at the end of the ISR returns the
                                                                   core to the instruction after the one that enabled power-down.
Since operating DVDD current is primarily a function of clock      Note that the I2C/SPI power-down interrupt enable bit (SERIPD)
speed, the expressions for core supply current in Table 40 are     in the PCON SFR must be set to allow this mode of operation.
given as functions of MCLK, the core clock frequency. Plug in a
value for MCLK in hertz to determine the current consumed by       INT0 Interrupt
the core at that oscillator frequency. Since the ADC and DACs
can be enabled or disabled in software, add only the currents      Power-down mode is terminated, and the CPU services the
from the peripherals you expect to use. And again, do not forget   INT0 interrupt. The RETI at the end of the ISR returns the core
to include current sourced by I/O pins, serial port pins, DAC      to the instruction after the one that enabled power-down. The
outputs, and so forth, plus the additional current drawn during    INT0 pin must not be driven low during or within two machine
Flash/EE erase and program cycles. A software switch allows the    cycles of the instruction that initiates power-down mode. Note
chip to be switched from normal mode into idle mode, and also      that the INT0 power-down interrupt enable bit (INT0PD) in
into full power-down mode. Brief descriptions of idle and          the PCON SFR must be set to allow this mode of operation.
power-down modes follow.
                                                                   Power-On Reset (POR)
Power Saving Modes
                                                                   An internal POR is implemented on the ADuC841/ADuC842/
In idle mode, the oscillator continues to run, but the core clock  ADuC843.
generated from the PLL is halted. The on-chip peripherals
continue to receive the clock, and remain functional. The CPU      3 V Part
status is preserved with the stack pointer and program counter,
and all other internal registers maintain their data during idle   For DVDD below 2.45 V, the internal POR holds the part in reset.
mode. Port pins and DAC output pins retain their states in this    As DVDD rises above 2.45 V, an internal timer times out for
mode. The chip recovers from idle mode upon receiving any          approximately 128 ms before the part is released from reset. The
enabled interrupt, or upon receiving a hardware reset.             user must ensure that the power supply has reached a stable
                                                                   2.7 V minimum level by this time. Likewise on power-down, the
In full power-down mode, both the PLL and the clock to the         internal POR holds the part in reset until the power supply has
core are stopped. The on-chip oscillator can be halted or can      dropped below 1 V. Figure 82 illustrates the operation of the
continue to oscillate, depending on the state of the oscillator    internal POR in detail.
power-down bit in the PLLCON SFR. The TIC, being driven
directly from the oscillator, can also be enabled during power-              2.45V TYP   128ms TYP  128ms TYP               1.0V TYP
down. All other on-chip peripherals are, however, shut down.       DVDD
Port pins retain their logic levels in this mode, but the DAC
output goes to a high impedance state (three-state). During full               1.0V TYP

                                                                     INTERNAL                                                         03260-0-082
                                                                   CORE RESET

                                                                                         Figure 82. Internal POR Operation

                                                     Rev. 0 | Page 74 of 88
5 V Part                                                                                 ADuC841/ADuC842/ADuC843

For DVDD below 4.5 V, the internal POR holds the part in reset.             reach their destinations. For example, do not power components
As DVDD rises above 4.5 V, an internal timer times out for                  on the analog side of Figure 84b with DVDD since that would
approximately 128 ms before the part is released from reset. The            force return currents from DVDD to flow through AGND. Also,
user must ensure that the power supply has reached a stable                 try to avoid digital currents flowing under analog circuitry,
4.75 V minimum level by this time. Likewise on power-down,                  which could happen if the user places a noisy digital chip on the
the internal POR holds the part in reset until the power supply             left half of the board in Figure 84c. Whenever possible, avoid
has dropped below 1 V. Figure 83 illustrates the operation of the           large discontinuities in the ground plane(s) (like those formed
internal POR in detail.                                                     by a long trace on the same layer), since they force return
                                                                            signals to travel a longer path. And of course, make all connec-
               4.75V                                     1.0V               tions to the ground plane directly, with little or no trace
DVDD                                                                        separating the pin from its via to ground.

          1.0V TYP                                                          If the user plans to connect fast logic signals (rise/fall time <
                                                                            5 ns) to any of the part's digital inputs, a series resistor should be
                      128ms  128ms                                          added to each relevant line to keep rise and fall times longer
                                                                            than 5 ns at the part's input pins. A value of 100  or 200  is
  INTERNAL                                                     03260-0-096  usually sufficient to prevent high speed signals from coupling
CORE RESET                                                                  capacitively into the part and from affecting the accuracy of
                                                                            ADC conversions.
                      Figure 83. Internal POR Operation

Grounding and Board Layout Recommendations                                  a.         PLACE ANALOG       PLACE DIGITAL
                                                                                        COMPONENTS        COMPONENTS
As with all high resolution data converters, special attention
must be paid to grounding and PC board layout of ADuC841/                              HERE                      HERE
ADuC842/ADuC843 based designs to achieve optimum
performance from the ADC and the DACs. Although the parts                              AGND                            DGND
have separate pins for analog and digital ground (AGND and
DGND), the user must not tie these to two separate ground                   b.         PLACE ANALOG       PLACE DIGITAL
planes unless the two ground planes are connected together                              COMPONENTS        COMPONENTS
very close to the part, as illustrated in the simplified example of
Figure 84a. In systems where digital and analog ground planes                          HERE                      HERE
are connected together somewhere else (for example, at the
system's power supply), they cannot be connected again near the                        AGND                           DGND
part since a ground loop would result. In these cases, tie all the
part's AGND and DGND pins to the analog ground plane, as                    c.         PLACE ANALOG       PLACE DIGITAL
illustrated in Figure 84b. In systems with only one ground plane,                       COMPONENTS        COMPONENTS
ensure that the digital and analog components are physically
separated onto separate halves of the board such that digital                          HERE                      HERE
return currents do not flow near analog circuitry and vice versa.
The part can then be placed between the digital and analog                                           GND                     03260-0-083
sections, as illustrated in Figure 84c.
                                                                                       Figure 84. System Grounding Schemes
In all of these scenarios, and in more complicated real-life
applications, keep in mind the flow of current from the supplies
and back to ground. Make sure the return paths for all currents
are as close as possible to the paths that the currents took to

                                                               Rev. 0 | Page 75 of 88
ADuC841/ADuC842/ADuC843

                                                                              DOWNLOAD/DEBUG
                                                                                ENABLE JUMPER
                                                                              (NORMALLY OPEN)

                                        DVDD                                  1k         DVDD

                                                                                  1k

                                  52 51 50 49 48 47 46 45 44 43 42 41 40                                                       2-PIN HEADER FOR
                                                                                                                               EMULATION ACCESS
ANALOG INPUT                     ADC0  DVDD                                                   39                              (NORMALLY OPEN)
                                             DGND
VREF OUTPUT                                                                    PSEN            38                        DVDD
DAC OUTPUT
                                                                                     EA                                               11.0592MHz (ADuC841)
                                                                                                                                      32.768kHz (ADuC842/ADuC843)
                   AVDD                                                                                              37

                                        ADuC841/ADuC842/ADuC843
                                                                                                                     36

                                  AVDD                                            DGND 35
                                  AGND                                            DVDD 34

                                  CREF                                            XTAL2 33
                                  VREF                                            XTAL1 32

                                  DAC0                                                         31

                                  DAC1                                                         30

                                                                                               29

                                  ADC7                                                         28
                                       RESET
                                             RXD                                               27
                                                  TXD
                                                                  DVDD
                                                                        DGND

                                                                                  NOT CONNECTED IN THIS EXAMPLE

                                        DVDD

                    ADM202        DVDD

               C1+          VCC                                    9-PIN D-SUB
                                                                     FEMALE
               V+           GND                                             1
                                                                            2
               C1       T1OUT                                              3
                                                                            4
               C2+       R1IN                                               5
                                                                            6
               C2       R1OUT                                              7
                                                                            8
               V           T1IN                                            9

               T2OUT        T2IN

               R2IN      R2OUT                                                                                           03260-0-084

                     Figure 85. Example System (PQFP Package), DACs Not Present on ADuC843

OTHER HARDWARE CONSIDERATIONS                                                 for a simple (and zero-cost-per-board) method of gaining in-
                                                                              circuit serial download access to the part.
To facilitate in-circuit programming, plus in-circuit debug and
emulation options, users will want to implement some simple                   In addition to the basic UART connections, users also need a
connection points in their hardware to allow easy access to                   way to trigger the chip into download mode. This is accom-
download, debug, and emulation modes.                                         plished via a 1 k pull-down resistor that can be jumpered onto
                                                                              the PSEN pin, as shown in Figure 85. To get the part into download
In-Circuit Serial Download Access                                             mode, simply connect this jumper and power-cycle the device
                                                                              (or manually reset the device, if a manual reset button is available),
Nearly all ADuC841/ADuC842/ADuC843 designs want to take                       and it will be ready to serially receive a new program. With the
advantage of the in-circuit reprogrammability of the chip. This               jumper removed, the device comes up in normal mode (and
is accomplished by a connection to the ADuC841/ADuC842/                       runs the program) whenever power is cycled or RESET is toggled.
ADuC843's UART, which requires an external RS-232 chip for
level translation if downloading code from a PC. Basic configura-
tion of an RS-232 connection is illustrated in Figure 85 with a
simple ADM202 based circuit. If users would rather not design
an RS-232 chip onto a board, refer to Application Note uC006, A
4-Wire UART-to-PC Interface, (at www.analog.com/microconverter)

                                        Rev. 0 | Page 76 of 88
                                                                             ADuC841/ADuC842/ADuC843

Note that PSEN is normally an output (as described in the          QUICKSTART DEVELOPMENT SYSTEM
External Memory Interface section) and is sampled as an input
only on the falling edge of RESET, i.e., at power-up or upon an    The QuickStart Development System is an entry-level, low cost
external manual reset. Note also that if any external circuitry    development tool suite supporting the parts. The system
unintentionally pulls PSEN low during power-up or reset            consists of the following PC based (Windows compatible)
events, it could cause the chip to enter download mode and         hardware and software development tools.
therefore fail to begin user code execution as it should. To pre-
vent this, ensure that no external signals are capable of pulling  Hardware  Evaluation board and serial port
the PSEN pin low, except for the external PSEN jumper itself.      Software  programming cable.

Embedded Serial Port Debugger                                                Serial download software.

From a hardware perspective, entry into serial port debug mode     Miscellaneous CD-ROM documentation and prototype
is identical to the serial download entry sequence described in                        device.
the preceding section. In fact, both serial download and serial
port debug modes can be thought of as essentially one mode of      A brief description of some of the software tools and
operation used in two different ways. Note that the serial port    components in the QuickStart Development System follows.
debugger is fully contained on the part (unlike ROM monitor
type debuggers), and therefore no external memory is needed to     Download--In-Circuit Serial Downloader
enable in-system debug sessions.
                                                                   The serial downloader is a Windows application that allows the
Single-Pin Emulation Mode                                          user to serially download an assembled program (Intel hexadeci-
                                                                   mal format file) to the on-chip program flash memory via the
Also built into the part is a dedicated controller for single-pin  serial COM1 port on a standard PC. Application Note uC004
in-circuit emulation (ICE) using standard production ADuC841/      details this serial download protocol and is available from
ADuC842/ADuC843 devices. In this mode, emulation access is         www.analog.com/microconverter.
gained by connection to a single pin, the EA pin. Normally, this
pin is hardwired either high or low to select execution from       ASPIRE--IDE
internal or external program memory space, as des