XE8805/05A Sensing Machine Data Acquisition MCU with Zooming ADC and DACs XE8805/05A - SX8805R Sensing Machine - Data Acquisition with 16+10 bit ZoomingADCTM and buffered DACs General Description Key product Features The XE8805A is a data acquisition ultra lowpower low-voltage system on a chip (SoC) with a high efficiency microcontroller unit embedded (MCU), allowing for 1 MIPS at 300uA and 2.4 V, and multiplying in one clock cycle. * The XE8805A includes a high resolution acquisition path with the 16+10 bits ZoomingADC and two buffered DACs. The XE8805A is available with on chip ROM (the SX8805) or Multiple-Time-Programmable (MTP) program memory. Applications * * * * * * * Portable, battery operated instruments Current loop powered instruments Wheatstone bridge interfaces Pressure and chemical sensors HVAC control Metering Sports watches, wrist instruments Rev 1 January 2006 * * * * * * * Low-power, high resolution ZoomingADC * * * 0.5 to 1000 gain with offset cancellation up to 16 bits analog to digital converter up to 13 inputs multiplexer Low-voltage low-power controller operation * * 2 MIPS with 2.4 V to 5.5 V operation 300 A at 1 MIPS over voltage range 22 kByte (8 kInstruction) MTP 520 Byte RAM data memory RC and crystal oscillators 5 reset, 22 interrupt, 8 event sources 8 bit and 16 bit buffered DACs 100 years MTP Flash retention at 55C Ordering Information Product Temperature range Memory type Package XE8805MI028* -40C to 85 C MTP XE8805AMI000 -40C to 85 C MTP LQFP64 die XE8805AMI028LF -40C to 85 C MTP LQFP64 SX8805Rxxx -40C to 85 C** ROM *Not for new designs **Extended temperature range on request www.semtech.com XE8805/05A Sensing Machine Data Acquisition MCU with Zooming ADC and DACs TABLE OF CONTENTS Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 Chapter 11 Chapter 12 Chapter 13 Chapter 14 Chapter 15 Chapter 16 Chapter 17 Chapter 18 Chapter 19 Chapter 20 Chapter 21 Chapter 22 (c) Semtech 2006 XE8805/05A Overview XE8805/05A Performance XE8805/05A CPU XE8805/05A Memory System Block Reset generator Clock generation Interrupt handler Event handler Low power RAM Port A Port B Port C Universal Asynchronous Receiver/Transmitter (UART) Universal Synchronous Receiver/Transmitter (USRT) Acquisition Chain (ZoomingADCTM) Voltage multiplier Signal D/A (DAS) Bias D/A (DAB) Counters/Timers/PWM The Voltage Level Detector XE8805/05A Dimensions www.semtech.com XE8805/05A 1. General overview CONTENTS 1.1 1.1.1 1.1.2 Top schematic General description XE8805 vs XE8805A 1-2 1-2 1-4 1.2 1.2.1 1.2.2 Pin map Bare die LQFP-64 1-4 1-4 1-5 1.3 Pin assignment 1-6 (c) Semtech 2006 www.semtech.com 1-1 XE8805/05A 1.1 Top schematic 1.1.1 General description The top level block schematic of the circuit is shown in Figure 1-1. The heart of the circuit consists of the Coolrisc816(R) CPU core. This core includes an 8x8 multiplier and 16 internal registers. The bus controller generates all control signals for access to all data registers other than the CPU internal registers. The reset block generates the adequate reset signals for the rest of the circuit as a function of the set-up contained in its control registers. Possible reset sources are the power-on-reset (POR), the external pin RESET, the watchdog (WD), a bus error detected by the bus controller or a programmable pattern on Port A. Different low power modes are implemented. The clock generation and power management block sets up the clock signals and generates internal supplies for different blocks. The clock can be generated from the RC oscillator (this is the start-up condition), the crystal oscillator (XTAL) or an external clock source (given on the OSCIN pin). The test controller generates all set-up signals for different test modes. In normal operation, it is used as a set of 8 low power data registers. If power consumption is important for the application, the variables that need to be accessed very often should be stored in these registers rather than in the RAM. The IRQ handler routes the interrupt signals of the different peripherals to the IRQ inputs of the CPU core. It allows masking of the interrupt sources and it flags which interrupt source is active. Events are generally used to restart the processor after a HALT period without jumping to a specified address, i.e. the program execution resumes with the instruction following the HALT instruction. The EVN handler routes the event signals of the different peripherals to the EVN inputs of the CPU core. It allows masking of the interrupt sources and it flags which interrupt source is active. The Port B is an 8 bit parallel IO port with analog capabilities. The URST, UART, and PWM block also make use of this port. The instruction memory is a 22-bit wide flash or ROM memory depending on the circuit version. Flash and ROM versions have both 8k instruction memory. The data memory of this product is 512 byte SRAM. The Acquisition Chain is a high resolution acquisition path with the 16+10 bit fully differential ZoomingADCTM. The VMULT (voltage multiplier) powers a part of the Acquisition Chain. The signal D/A (DAS) is a 16 bit D/A based on sigma-delta modulation. It includes a stand-alone amplifier that can be used for analog output filtering. The bias D/A (DAB) is an 8 bit low frequency D/A. It includes a stand-alone amplifier that is used to drive large currents. It can be used to bias a sensor. The Port A is an 8 bit parallel input port. It can also generate interrupts, events or a reset. It can be used to input external clocks for the timer/counter/PWM block. The Port C is a general purpose 8 bit parallel I/O port. The USRT (universal synchronous receiver/transmitter) contains some simple hardware functions in order to simplify the software implementation of a synchronous serial link. (c) Semtech 2006 www.semtech.com 1-2 XE8805/05A DATA MEMORY INSTRUCTION MEMORY VPP/TEST CPU COOLRISC816 VBAT VSS 8 X 8 MULTIPLIER B U S C O N T R O L L E R address control PORT A PA(7:0) datain dataout PORT C PC(7:0) 16 CPU REGISTERS RESET RESET BLOCK WD reset control ACQUISITION CHAIN ZoomingADC CLOCK GENERATION/ POWER MANAGEMENT RC OSCIN OSCOUT VREG AC_R(3:0) POR XTAL VREG TM AC_A(7:0) clocks test control VMULT VMULT TEST CONTROLLER DAS_OUT DAS_AI_P DAS_AI_M DAS_AO DAS Signal D/A 8 DATA REGISTERS irq IRQ HANDLING DAB_R_P DAB_R_M DAB_OUT DAB_AI_P DAB_AI_M DAB_AO_P DAB_AO_M DAB Bias D/A EVN HANDLING evn COUNTERS TIMERS PWM VLD PB(7:6) UART PB(1:0) PA(3:0) USRT PB(7:0) PB(5:4) PORT B Figure 1-1. Block schematic of the XE8805/05A circuit. The UART (universal asynchronous receiver/transmitter) contains a full hardware implementation of the asynchronous serial link. The counters/timers/PWM can take their clocks from internal or external sources (on Port A) and can generate interrupts or events. The PWM is output on Port B. (c) Semtech 2006 www.semtech.com 1-3 XE8805/05A The VLD (voltage level detector) detects the battery end of life with respect to a programmable threshold. 1.1.2 XE8805 vs XE8805A The XE8805A has a new RESET pin function. The action of the RESET pin of the XE8805A resets the clock registers too and creates an additional short delay. See the RESET chapter for more information. 1.2 Pin map ( 428.5, 4453.4) ( 593.5, 4453.4) ( 758.5, 4453.4) ( 923.5, 4453.4) (1088.5, 4453.4) (1252.9, 4453.4) (1418.5, 4453.4) (1588.5, 4453.4) (1753.5, 4453.4) (1923.5, 4453.4) (3114.6, 4453.4) (3293.5, 4453.4) (3458.5, 4453.4) (3628.5, 4453.4) VSS OSCIN VSS OSCOUT RESET VMULT VREG VSS_REG VSS VBAT DAS_AO DAS_AI_M DAS_AI_P DAS_OUT 1.2.1 Bare die (52.6,4123.5) PA(0) AC_R(0) (3958.4, 4118.5) (52.6, 3908.5) PA(1) AC_R(1) (3958.4, 3858.5) (52.6,3693.5) PA(2) (52.6, 3478.5) PA(3) VSS (3958.4, 3603.5) AC_A(0) (3958.4, 3343.5) (52.6, 3263.5) VBAT (52.6, 3048.5) PA(4) AC_A(1) (3958.4, 3088.5) (52.6, 2833.5) PA(5) AC_A(2) (3958.4, 2828.5) (52.6, 2618.5) PA(6) AC_A(3) (3958.4, 2573.5) (52.6, 2403.5) PA(7) (52.6, 2188.5) PC(0) AC_A(4) (3958.4, 2313.5) VBAT (3958.4, 2058.5) PC(1) (52.6, 1758.5) PC(2) AC_A(5) (3958.4,1798.5) (52.6, 1543.5) PC(3) AC_A(6) (3958.4, 1543.5) AC_A(7) (3958.4, 1283.5) AC_R(2) (3958.4, 1028.5) AC_R(3) (3958.4, 768.5) VPP/TEST (3958.4, 508.5) PC(5) (52.6, 683.5) PC(6) (52.6, 468.5) PC(7) 4100 ( 398.5, 47.6) ( 533.5, 47.6) ( 668.5, 47.6) ( 798.5, 47.6) ( 933.5, 47.6) (1063.5, 47.6) (1198.5, 47.6) (1328.5, 47.6) (1463.5, 47.6) (1593.5, 47.6) (1728.5, 47.6) (1858.5, 47.6) (2042.4, 47.6) (3363.5,47.6) VSS (3498.5, 47.6) DAB_AI_P (3628.4, 47.6) DAB_AI_M (52.6, 898.5) (2683.3, 47.6) DAB_AO_M VSS PC(4) PB(0) PB(1) PB(2) PB(3) PB(4) VBAT PB(5) PB(6) PB(7) DAB_R_P DAB_R_M DAB_OUT DAB_AO_P (52.6, 1328.5) (52.6, 1113.5) 4600 (52.6, 1973.5) Figure 1-2. Die dimensions and pin coordinates (in m) (c) Semtech 2006 www.semtech.com 1-4 XE8805/05A 1.2.2 LQFP-64 PC(7) 15 NC AC_R(3) PB(0) PB(1) PB(2) PB(3) PB(4) PB(5) PB(6) DAB_R_P DAB_R_M PB(7) 20 VPP/TEST 25 DAB_OUT DAB_AO_P DAB_AO_M DAB_AI_P DAB_AI_M 30 NC The XE8805/05A is delivered in a LQFP-64 package. The pin map is given below. PC(6) PC(5) 35 AC_R(2) PC(4) AC_A(7) PC(3) PC(2) AC_A(6) AC_A(5) AC_A(4) 10 PC(1) PC(0) 40 AC_A(3) PA(7) AC_A(2) PA(6) PA(5) AC_A(1) 5 AC_A(0) AC_R(1) PA(4) PA(3) 45 PA(2) AC_A(0) PA(1) 1 PA(0) NC OSCIN OSCOUT RESET 60 VMULT NC VREG VSS_REG VSS VBAT DAS_AO DAS_AI_M DAS_AI_P DAS_OUT NC NC 50 NC 55 NC Figure 1-3. LQFP-64 pin map Package pin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 name PA(0) PA(1) PA(2) PA(3) PA(4) PA(5) PA(6) PA(7) PC(0) PC(1) PC(2) PC(3) PC(4) PC(5) PC(6) PC(7) PB(0) PB(1) PB(2) PB(3) Package pin 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 name VPP/TEST NC AC_R(3) AC_R(2) AC_A(7) AC_A(6) AC_A(5) AC_A(4) AC_A(3) AC_A(2) AC_A(1) AC_A(0) AC_R(1) AC_R(0) NC NC NC NC DAS_OUT DAS_AI_P (c) Semtech 2006 www.semtech.com 1-5 XE8805/05A Package pin 21 22 23 24 25 26 27 28 29 30 31 32 name PB(4) PB(5) PB(6) PB(7) DAB_R_P DAB_R_M DAB_OUT DAB_AO_P DAB_AO_M DAB_AI_P DAB_AI_M NC Package pin 53 54 55 56 57 58 59 60 61 62 63 64 name DAS_AI_M DAS_AO VBAT VSS VSS_REG VREG NC VMULT RESET OSCOUT OSCIN NC Table 1-1. Bonding plan of the LQFP-64 package (LQFP 64L 10x10mm thick 1.6 mm) 1.3 Pin assignment The table below gives a short description of the different pin assignments. Pin Assignment VBAT VSS VSS_REG VREG VPP/TEST RESET OSCIN/OSCOUT PA(7:0) PB(7:0) PC(7:0) AC_A(7:0) AC_R(3:0) VMULT DAB_OUT DAB_R_x DAB_Ax_y DAS_OUT DAS_AI_x DAS_AO Positive power supply Negative power supply Connection for the mandatory external capacitor of the voltage regulator High voltage supply for flash memory programming (NC in ROM versions) Resets the circuit when the voltage is high Quartz crystal connections, also used for flash memory programming Parallel input port A pins Parallel I/O port B pins Parallel I/O port C pins Acquisition chain input pins Acquisition chain reference pins Connection for the external capacitor if VBAT is below 3V Bias D/A output Bias D/A reference (x=P: plus, x=M: minus) Bias D/A amplifier IO (x=I: input, x=O: output ; y=P: plus, y=M: minus) Signal D/A output Signal D/A amplifier inputs (x=P: plus, x=M: minus) Signal D/A amplifier output Table 1-2. Pin assignment Table 1-3 gives a more detailed pin map for the different pins. It also indicates the possible I/O configuration of these pins. The indications in blue bold are the configuration at start-up. The pins CNTx pins are possible counter inputs, PWMx are possible PWM outputs. (c) Semtech 2006 www.semtech.com 1-6 XE8805/05A PWM0 PWM1 USRT_S0 USRT_S1 UART_Tx UART_Rx X X X X X X X X X X POWER PU OD DI X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X CNTA CNTB CNTC CNTD DO AO AI PA(0) PA(1) PA(2) PA(3) PA(4) PA(5) PA(6) PA(7) PC(0) PC(1) PC(2) PC(3) PC(4) PC(5) PC(6) PC(7) PB(0) PB(1) PB(2) PB(3) PB(4) PB(5) PB(6) PB(7) DAB_R_P DAB_R_M DAB_OUT DAB_AO_P DAB_AO_M DAB_AI_P DAB_AI_M VPP AC_R(3) AC_R(2) AC_A(7) AC_A(6) AC_A(5) AC_A(4) AC_A(3) AC_A(2) AC_A(1) AC_A(0) AC_R(1) AC_R(0) DAS_OUT DAS_AI_P DAS_AI_M DAS_AO VBAT third 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 35 36 37 38 39 40 41 42 43 44 45 46 51 52 53 54 55 I/O configuration second first function lqfp-64 pin X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X TEST X X X X X X X X X X X X X X X X X X (c) Semtech 2006 www.semtech.com 1-7 XE8805/05A POWER PU OD DO DI AO AI VSS VSS_REG VREG VMULT RESET OSCOUT OSCIN third 56 57 58 60 61 62 63 I/O configuration second first function lqfp-64 pin X X X X X X X Pin map table legend: blue bold: configuration at start up AI: analog input AO: analog output DI: digital input DO: digital output OD: nMOS open drain output PU: pull-up resistor POWER: power supply Table 1-3. Pin description table (c) Semtech 2006 www.semtech.com 1-8 XE8805/05A 2 XE8805/05A Performance 2.1 Absolute maximum ratings 2-2 2.2 Operating range 2-2 2.3 2.3.1 2.3.2 Supply configurations Flash circuit ROM circuit 2-3 2-3 2-3 2.4 Current consumption 2-5 2.5 2.5.1 2.5.2 Operating speed Flash version ROM circuit version 2-6 2-6 2-6 (c) Semtech 2006 www.semtech.com 2-1 XE8805/05A 2.1 Absolute maximum ratings Table 2-1. Absolute maximum ratings Voltage applied to VBAT with respect to VSS Voltage applied to VPP with respect to VSS Voltage applied to all pins except VPP and VBAT Storage temperature (ROM device or unprogrammed flash device) Storage temperature (programmed flash device) Min. Max. Note -0.3 VBAT-0.3 VSS-0.3 -55 6.0 12 VBAT+0.3 150 V V V C -40 85 C Stresses beyond the absolute maximal ratings may cause permanent damage to the device. Functional operation at the absolute maximal ratings is not implied. Exposure to conditions beyond the absolute maximal ratings may affect the reliability of the device. 2.2 Operating range Table 2-2. Operating range for the flash device Voltage applied to VBAT with respect to VSS Voltage applied to VBAT with respect to VSS during the flash programming Voltage applied to VPP with respect to VSS Voltage applied to all pins except VPP and VBAT Operating temperature range Capacitor on VREG (flash version) Capacitor on VMULT 1. 2. 3. Min. Max. Note 2.4 3.3 5.5 5.5 V V 1 VBAT VSS -40 0.8 1.0 11.5 VBAT 85 1.2 3.0 V V C F nF 2 3 During the programming of the device, the supply voltage should at least be equal to the supply voltage used during normal operation. The capacitor on VREG is mandatory. The capacitor on VMULT is optional. The capacitor has to be present if the multiplier is enabled. The multiplier has to be enabled if VBAT<3.0V. Table 2-3. Operating range for the ROM device Min. Voltage applied to VBAT with respect to VSS Voltage applied to all pins except VPP and VBAT Operating temperature range Capacitor on VREG Capacitor on VMULT 1. 2. 2.4 VSS -40 0.1 1.0 Max. 5.5 VBAT 125 1.2 3.0 Note V V C F nF 1 2 The capacitor may be omitted when VREG is connected to VBAT. The capacitor on VMULT is optional. The capacitor has to be present if the multiplier is enabled. The multiplier has to be enabled if VBAT<3.0V. All specifications in this document are valid for the complete operating range unless otherwise specified. (c) Semtech 2006 www.semtech.com 2-2 XE8805/05A Table 2-4. Operating range of the Flash memory Min. Retention time at 85C Retention time at 55C Number of programming cycles 1. 2. 2.3 Max. 10 100 10 Note years years 1 1 2 Valid only if programmed using a programming tool that is qualified Circuits can be programmed more than 10 times but after that, the retention time is no longer guaranteed. All qualification tests have been done after 10 cycles. Supply configurations 2.3.1 Flash circuit The flash version of the circuit can be run from a supply between 2.4V and 5.5V (Figure 2-1). The capacitor on VREG has to be connected at all times (value in Table 2-2) to guarantee proper operation of the device. The capacitor on VMULT is only required if the circuit is to be operated below 3V. VBAT VREG 2.4V - 5.5V VMULT Cvreg Cvmult VSS Figure 2-1. Supply configuration for the flash circuit. 2.3.2 ROM circuit For the ROM version, two possible operating modes exist: with and without voltage regulator. Using the voltage regulator, low power consumption will be obtained even with supply voltages above 2.4V. Without the voltage regulator (i.e. VREG short-circuited to VBAT), a higher speed can be obtained. 2.3.2.1 Low power operation In this case, the internal voltage regulator is used in order to maintain low power consumption independent from the supply voltage. The capacitor on VREG has to be connected at all times (value in Table 2-3) to guarantee proper operation of the device. The capacitor on VMULT has to be connected only when VBAT<3V. (c) Semtech 2006 www.semtech.com 2-3 XE8805/05A VBAT VREG 2.4V - 5.5V VMULT Cvreg Cvmult VSS Figure 2-2. Supply voltage connections for low power operation of the ROM version. 2.3.2.2 High speed operation In this case, the internal voltage regulator is not used. The operation speed of the circuit can be increased with increasing supply voltage but the supply current will also increase. The capacitor on VMULT has to be connected only when VBAT<3V. In this case, the supply voltage can decrease down to 2.15V. Beware however that the zoomingADCTM will not run below 2.4V (see Figure 2-4). In this configuration, the circuit can not be used above 3.3V. VBAT VREG 2.15V - 3.3V VMULT Cvmult VSS Figure 2-3. Supply voltage connections for high speed operation of the ROM version. (c) Semtech 2006 www.semtech.com 2-4 XE8805/05A acquisition chain voltage multiplier DAB CPU parallel and serial ports RC and crystal oscillator VLD Counters and PWM DAS (without amplifier) 0 2.15 2.4 3.3 VBAT (V) Figure 2-4. Operation range of the different circuit blocks 2.4 Current consumption The tables below give the current consumption for the circuit in different configurations. The figures are indicative only and may change as a function of the actual software implemented in the circuit. Table 2-5 gives the current consumption for the flash version of the circuit. The peripherals are disabled. The parallel ports A and B are configured in input with pull up, the parallel port C is configured as an output. Their pins are not connected externally. The pin RESET is connected to VSS and the pin VPP/TEST is connected to VBAT. The inputs of the acquisition chain are connected to VSS. Table 2-5. Typical current consumption of the XE8805 version (8k instructions flash memory) Operation mode CPU RC Xtal Consumption comments Note High speed CPU Low power CPU Low power time keeping Fast wake-up time keeping Immediate wakeup time keeping VLD static current 16 bit resolution data acquisition 12 bit , gain 100, data acquisition 1 MIPS 32 kIPS HALT 1 MHz Off Off Off 32 kHz 32 kHz 310 A 10 A 1.0 A 2.4V<>5.5V, 27C 2.4V <>5.5V, 27C 2.4V <>5.5V, 27C HALT Ready 32kHz 1.7 A 2.4V <>5.5V, 27C HALT 100 kHz Off 1.4 A 2.4V <>5.5V, 27C HALT 2 MHz Off 15 A 190 A 2.4V <>5.5V, 27C 3.0V, 27C 1 HALT 2 MHz Off 460 A 3.0V, 27C 2 1. PGA disabled, ADC enabled, 16 bit resolution 2. PGA 1 disabled, PGA 2 and 3 enabled, ADC enabled, 12 bit resolution For more information concerning the current consumption of the zoomingADCTM, see the chapter power consumption in the acquisition chain documentation which shows the current consumption of this block as a function of temperature and voltage and for different configurations of the PGA and ADC. The power consumption of the ROM version of the circuit is identical if it is configured as shown in Figure 2-2. In the high speed configuration, the current consumption will increase proportional with VBAT. (c) Semtech 2006 www.semtech.com 2-5 XE8805/05A 2.5 Operating speed 2.5.1 Flash version The speed of the devices is not highly dependent upon the supply voltage. However, by limiting the temperature range, the speed can be increased. The minimal guaranteed speed as a function of the supply voltage and maximal temperature operating temperature is given in Figure 2-5. speed (MIPS) 4 3 2 1 85C 45C 0 2 2.5 3 3.5 4 4.5 5 5.5 supply voltage VBAT (V) Figure 2-5. Guaranteed speed as a function of the supply voltage and maximal temperature. 2.5.2 ROM circuit version 2.5.2.1 Low power supply configuration In the low power supply configuration as shown in Figure 2-2, the operating speed does not depend highly on the supply voltage as shown in Figure 2-6. speed (MIPS) 85C 45C 125C 3.5 3 2.5 2 1.5 1 0.5 0 2 2.5 3 3.5 4 4.5 5 5.5 supply voltage VBAT (V) Figure 2-6. Guaranteed speed as a function of supply voltage and for different maximal temperatures using the voltage regulator. 2.5.2.2 High speed supply configuration In the high speed supply configuration of Figure 2-3, the guaranteed speed of the circuit is shown in Figure 2-7. (c) Semtech 2006 www.semtech.com 2-6 XE8805/05A 85C 45C 125C speed (MIPS) 4 3 2 1 0 2 2.2 2.4 2.6 2.8 3 3.2 3.4 supply voltage VBAT (V) Figure 2-7. Guaranteed speed as a function of supply voltage and for three temperature ranges when VREG=VBAT. (c) Semtech 2006 www.semtech.com 2-7 XE8805/05A 3. CPU CONTENTS 3.1 CPU description 3-2 3.2 CPU internal registers 3-2 3.3 CPU instruction short reference 3-4 (c) Semtech 2006 www.semtech.com 3-1 XE8805/05A 3.1 CPU description The CPU of the XE8000 series is a low power RISC core. It has 16 internal registers for efficient implementation of the C compiler. Its instruction set is made up of 35 generic instructions, all coded on 22 bits, with 8 addressing modes. All instructions are executed in one clock cycle, including conditional jumps and 8x8 multiplication. The circuit therefore runs on 1 MIPS on a 1MHz clock. The CPU hardware and software description is given in the document "Coolrisc816 Hardware and Software Reference Manual". A short summary is given in the following paragraphs. The good code efficiency of the CPU core makes it possible to compute a polynomial like Z = ( A0 + A1 Y ) X + B0 + B1 Y in less than 300 clock cycles (software code generated by the XEMICS Ccompiler, all numbers are signed integers on 16 bits). 3.2 CPU internal registers As shown in Figure 3-1, the CPU has 16 internal 8-bit registers. Some of these registers can be concatenated to a 16-bit word for use in some instructions. The function of these registers is defined in Table 3-1. The status register stat (Table 3-2) is used to manage the different interrupt and event levels. An interrupt or an event can both be used to wake up after a HALT instruction. The difference is that an interrupt jumps to a special interrupt function whereas an event continues the software execution with the instruction following the HALT instruction. The program counter (PC) is a 16 bit register that indicates the address of the instruction that has to be executed. The stack (STn) is used to memorise the return address when executing subroutines or interrupt routines. ST4 ST3 ST1 ST2 r0 r1 Data memory r2 data bus 22bit CPU CPU internal registers Instruction memory instruction bus PC program counter stack r3 i0h i0l i1h i1l i2h i2l i3h i3l iph ipl stat a Figure 3-1. CPU internal registers (c) Semtech 2006 www.semtech.com 3-2 XE8805/05A Register name r0 r1 r2 r3 i0h i0l i1h i1l i2h i2l i3h i3l iph ipl stat a Register function general purpose general purpose general purpose data memory offset MSB of the data memory index i0 LBS of the data memory index i0 MSB of the data memory index i1 LBS of the data memory index i1 MSB of the data memory index i2 LBS of the data memory index i2 MSB of the data memory index i3 LBS of the data memory index i3 MSB of the program memory index ip LBS of the program memory index ip status register accumulator Table 3-1. CPU internal register definition bit 7 6 5 4 name IE2 IE1 GIE IN2 3 IN1 2 IN0 1 EV1 0 EV0 function enables (when 1) the interrupt request of level 2 enables (when 1) the interrupt request of level 1 enables (when 1) all interrupt request levels interrupt request of level 2. The interrupts labelled "low" in the interrupt handler are routed to this interrupt level. This bit has to be cleared when the interrupt is served. interrupt request of level 1. The interrupts labelled "mid" in the interrupt handler are routed to this interrupt level. This bit has to be cleared when the interrupt is served. interrupt request of level 0. The interrupts labelled "hig" in the interrupt handler are routed to this interrupt level. This bit has to be cleared when the interrupt is served. event request of level 1. The events labelled "low" in the event handler are routed to this event level. This bit has to be cleared when the event is served. event request of level 1. The events labelled "hig" in the event handler are routed to this event level. This bit has to be cleared when the event is served. Table 3-2. Status register description The CPU also has a number of flags that can be used for conditional jumps. These flags are defined in Table 3-3. symbol Z C V name zero carry overflow function Z=1 when the accumulator a content is zero This flag is used in shift or arithmetic operations. For a shift operation, it has the value of the bit that was shifted out (LSB for shift right, MSB for shift left). For an arithmetic operation with unsigned numbers: it is 1 at occurrence of an overflow during an addition (or equivalent). it is 0 at occurrence of an underflow during a subtraction (or equivalent). This flag is used in shift or arithmetic operations. For arithmetic or shift operations with signed numbers, it is 1 if an overflow or underflow occurs. Table 3-3. Flag description (c) Semtech 2006 www.semtech.com 3-3 XE8805/05A 3.3 CPU instruction short reference Table 3-4 shows a short description of the different instructions available on the Coolrisc816. The notation cc in the conditional jump instruction refers to the condition description as given in Table 3-6. The notation reg, reg1, reg2, reg3 refers to one of the CPU internal registers of Table 3-1. The notation eaddr and DM(eaddr) refer to one of the extended address modes as defined in Table 3-5. The notation DM(xxx) refers to the data memory location with address xxx. Instruction Modification Operation Jump addr[15:0] Jump ip Jcc addr[15:0] Jcc ip Call addr[15:0] Call ip Calls addr[15:0] Calls ip -,-,-, -,-,-, -,-,-, -,-,-, -,-,-, -,-,-, -,-,-, -,-,-, - PC := addr[15:0] PC := ip if cc is true then PC := addr[15:0] if cc is true then PC := ip STn+1 := STn (n>1); ST1 := PC+1; PC := addr[15:0] STn+1 := STn (n>1); ST1 := PC+1; PC := ip ip := PC+1; PC := addr[15:0] ip := PC+1; PC := ip Ret Rets Reti Push Pop -,-,-, -,-,-, -,-,-, -,-,-, -,-,-, - PC := ST1; STn := STn+1 (n>1) PC := ip PC := ST1; STn := STn+1 (n>1); GIE :=1 PC := PC+1; STn+1 := STn (n>1); ST1 := ip PC := PC+1; ip := ST1; STn := STn+1 (n>1) Move reg,#data[7:0] Move reg1, reg2 Move reg, eaddr Move eaddr, reg Move addr[7:0],#data[7:0] -,-, Z, a -,-, Z, a -,-, Z, a -,-,-, -,-,-, - a := data[7:0]; reg := data[7:0] a := reg2; reg1 := reg2 a := DM(eaddr); reg := DM(eaddr) DM(eaddr) := reg DM(addr[7:0]) := data[7:0] Cmvd reg1, reg2 Cmvd reg, eaddr Cmvs reg1, reg2 Cmvs reg, eaddr -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a a := reg2; if C=0 then reg1 := a; a := DM(eaddr); if C=0 then reg := a a := reg2; if C=1 then reg1 := a; a := DM(eaddr); if C=1 then reg := a Shl reg1, reg2 Shl reg Shl reg, eaddr Shlc reg1, reg2 Shlc reg Shlc reg, eaddr Shr reg1, reg2 Shr reg Shr reg, eaddr Shrc reg1, reg2 Shrc reg Shrc reg, eaddr Shra reg1, reg2 Shra reg Shra reg, eaddr C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a a := reg2<<1; a[0] := 0; C := reg2[7]; reg1 := a a := reg<<1; a[0] := 0; C := reg[7]; reg := a a := DM(eaddr)<<1; a[0] :=0; C := DM(eaddr)[7]; reg := a a := reg2<<1; a[0] := C; C := reg2[7]; reg1 := a a := reg<<1; a[0] := C; C := reg[7]; reg := a a := DM(eaddr)<<1; a[0] := C; C := DM(eaddr)[7]; reg := a a := reg2>>1; a[7] := 0; C := reg2[0]; reg1 :=a a := reg>>1; a[7] := 0; C := reg[0]; reg := a a := DM(eaddr)>>1; a[7] := 0; C := DM(eaddr)[0]; reg := a a := reg2>>1; a[7] := C; C := reg2[0]; reg1 := a a := reg>>1; a[7] := C; C := reg[0]; reg := a a := DM(eaddr)>>1; a[7] := C; C := DM(eaddr)[0]; reg := a a := reg2>>1; a[7] := reg2[7]; C := reg2[0]; reg1 := a a := reg>>1; a[7] := reg[7]; C := reg[0]; reg := a a := DM(eaddr)>>1; a[7] := DM(eaddr)[7]; C := DM(eaddr)[0]; reg := a Cpl1 reg1, reg2 Cpl1 reg Cpl1 reg, eaddr Cpl2 reg1, reg2 Cpl2 reg Cpl2 reg, eaddr Cpl2c reg1, reg2 Cpl2c reg Cpl2c reg, eaddr -,-, Z, a -,-, Z, a -,-, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a a := NOT(reg2); reg1 := a a := NOT(reg); reg := a a := NOT(DM(eaddr)); reg := a a := NOT(reg2)+1; if a=0 then C:=1 else C := 0; reg1 := a a := NOT(reg)+1; if a=0 then C:=1 else C := 0; reg := a a := NOT(DM(eaddr))+1; if a=0 then C:=1 else C := 0; reg := a a := NOT(reg2)+C; if a=0 and C=1 then C:=1 else C := 0; reg1 := a a := NOT(reg)+C; if a=0 and C=1 then C:=1 else C := 0; reg := a a := NOT(DM(eaddr))+C; if a=0 and C=1 then C:=1 else C := 0; reg := a Inc reg1, reg2 Inc reg Inc reg, eaddr Incc reg1, reg2 Incc reg Incc reg, eaddr Dec reg1, reg2 C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a a := reg2+1; if a=0 then C := 1 else C := 0; reg1 := a a := reg+1; if a=0 then C := 1 else C := 0; reg := a a := DM(eaadr)+1; if a=0 then C := 1 else C := 0; reg := a a := reg2+C; if a=0 and C=1 then C := 1 else C := 0; reg1 := a a := reg+C; if a=0 and C=1 then C := 1 else C := 0; reg := a a := DM(eaadr)+C; if a=0 and C=1 then C := 1 else C := 0; reg := a a := reg2-1; if a=hFF then C := 0 else C := 1; reg1 := a (c) Semtech 2006 www.semtech.com 3-4 XE8805/05A Dec reg Dec reg, eaddr Decc reg1, reg2 Decc reg Decc reg, eaddr C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a a := reg-1; if a=hFF then C := 0 else C := 1; reg := a a := DM(eaddr)-1; if a=hFF then C := 0 else C := 1; reg := a a := reg2-(1-C); if a=hFF and C=0 then C := 0 else C := 1; reg1 := a a := reg-(1-C); if a=hFF and C=0 then C := 0 else C := 1; reg := a a := DM(eaddr)-(1-C); if a=hFF and C=0 then C := 0 else C := 1; reg := a And reg,#data[7:0] And reg1, reg2, reg3 And reg1, reg2 And reg, eaddr Or reg,#data[7:0] Or reg1, reg2, reg3 Or reg1, reg2 Or reg, eaddr Xor reg,#data[7:0] Xor reg1, reg2, reg3 Xor reg1, reg2 Xor reg, eaddr -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a -,-, Z, a a := reg and data[7:0]; reg := a a := reg2 and reg3; reg1 := a a := reg1 and reg2; reg1 := a a := reg and DM(eaddr); reg := a a := reg or data[7:0]; reg := a a := reg2 or reg3; reg1 := a a := reg1 or reg2; reg1 := a a := reg or DM(eaddr); reg := a a := reg xor data[7:0]; reg := a a := reg2 xor reg3; reg1 := a a := reg1 xor reg2; reg1 := a a := reg or DM(eaddr); reg := a Add reg,#data[7:0] Add reg1, reg2, reg3 Add reg1, reg2 Add reg, eaddr Addc reg,#data[7:0] Addc reg1, reg2, reg3 Addc reg1, reg2 Addc reg, eaddr Subd reg,#data[7:0] Subd reg1, reg2, reg3 Subd reg1, reg2 Subd reg, eaddr Subdc reg,#data[7:0] Subdc reg1, reg2, reg3 Subdc reg1, reg2 Subdc reg, eaddr Subs reg,#data[7:0] Subs reg1, reg2, reg3 Subs reg1, reg2 Subs reg, eaddr Subsc reg,#data[7:0] Subsc reg1, reg2, reg3 Subsc reg1, reg2 Subsc reg, eaddr C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a a := reg+data[7:0]; if overflow then C:=1 else C := 0; reg := a a := reg2+reg3; if overflow then C:=1 else C := 0; reg1 := a a := reg1+reg2; if overflow then C:=1 else C := 0; reg1 := a a := reg+DM(eaddr); if overflow then C:=1 else C := 0; reg := a a := reg+data[7:0]+C; if overflow then C:=1 else C := 0; reg := a a := reg2+reg3+C; if overflow then C:=1 else C := 0; reg1 := a a := reg1+reg2+C; if overflow then C:=1 else C := 0; reg1 := a a := reg+DM(eaddr)+C; if overflow then C:=1 else C := 0; reg := a a := data[7:0]-reg; if underflow then C := 0 else C := 1; reg := a a := reg2-reg3; if underflow then C := 0 else C := 1; reg1 := a a := reg2-reg1; if underflow then C := 0 else C := 1; reg1 := a a := DM(eaddr)-reg; if underflow then C := 0 else C := 1; reg := a a := data[7:0]-reg-(1-C); if underflow then C := 0 else C := 1; reg := a a := reg2-reg3-(1-C); if underflow then C := 0 else C := 1; reg1 := a a := reg2-reg1-(1-C); if underflow then C := 0 else C := 1; reg1 := a a := DM(eaddr)-reg-(1-C); if underflow then C := 0 else C := 1; reg := a a := reg-data[7:0]; if underflow then C := 0 else C := 1; reg := a a := reg3-reg2; if underflow then C := 0 else C := 1; reg1 := a a := reg1-reg2; if underflow then C := 0 else C := 1; reg1 := a a := reg-DM(eaddr); if underflow then C := 0 else C := 1; reg := a a := reg-data[7:0]-(1-C); if underflow then C := 0 else C := 1; reg := a a := reg3-reg2-(1-C); if underflow then C := 0 else C := 1; reg1 := a a := reg1-reg2-(1-C); if underflow then C := 0 else C := 1; reg1 := a a := reg-DM(eaddr)-(1-C); if underflow then C := 0 else C := 1; reg := a Mul reg,#data[7:0] Mul reg1, reg2, reg3 Mul reg1, reg2 Mul reg, eaddr Mula reg,#data[7:0] Mula reg1, reg2, reg3 Mula reg1, reg2 Mula reg, eaddr u, u, u, a u, u, u, a u, u, u, a u, u, u, a u, u, u, a u, u, u, a u, u, u, a u, u, u, a a := (data[7:0]*reg)[7:0]; reg := (data[7:0]*reg)[15:8] a := (reg2*reg3)[7:0]; reg1 := (reg2*reg3)[15:8] a := (reg2*reg1)[7:0]; reg1 := (reg2*reg1)[15:8] a := (DM(eaddr)*reg)[7:0]; reg := (DM(eaddr)*reg)[15:8] a := (data[7:0]*reg)[7:0]; reg := (data[7:0]*reg)[15:8] a := (reg2*reg3)[7:0]; reg1 := (reg2*reg3)[15:8] a := (reg2*reg1)[7:0]; reg1 := (reg2*reg1)[15:8] a := (DM(eaddr)*reg)[7:0]; reg := (DM(eaddr)*reg)[15:8] Mshl reg,#shift[2:0] Mshr reg,#shift[2:0] Mshra reg,#shift[2:0] u, u, u, a u, u, u, a u, u, u, a* a := (reg*2 )[7:0]; reg := (reg*2 )[15:8] (8-shift (8-shift a := (reg*2 )[7:0]; reg := (reg*2 )[15:8] (8-shift (8-shift a := (reg*2 )[7:0]; reg := (reg*2 )[15:8] Cmp reg,#data[7:0] Cmp reg1, reg2 Cmp reg, eaddr Cmpa reg,#data[7:0] Cmpa reg1, reg2 Cmpa reg, eaddr C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a C, V, Z, a a := data[7:0]-reg; if underflow then C :=0 else C:=1; V := C and (not Z) a := reg2-reg1; if underflow then C :=0 else C:=1; V := C and (not Z) a := DM(eaddr)-reg; if underflow then C :=0 else C:=1; V := C and (not Z) a := data[7:0]-reg; if underflow then C :=0 else C:=1; V := C and (not Z) a := reg2-reg1; if underflow then C :=0 else C:=1; V := C and (not Z) a := DM(eaddr)-reg; if underflow then C :=0 else C:=1; V := C and (not Z) Tstb reg,#bit[2:0] Setb reg,#bit[2:0] Clrb reg,#bit[2:0] Invb reg,#bit[2:0] -, -, Z, a -, -, Z, a -, -, Z, a -, -, Z, a a[bit] := reg[bit]; other bits in a are 0 reg[bit] := 1; other bits unchanged; a := reg reg[bit] := 0; other bits unchanged; a := reg reg[bit] := not reg[bit]; other bits unchanged; a := reg shift shift (c) Semtech 2006 www.semtech.com 3-5 XE8805/05A Sflag -,-,-, a a[7] := C; a[6] := C xor V; a[5] := ST full; a[4] := ST empty Rflag reg Rflag eaddr C, V, Z, a C, V, Z, a a := reg << 1; ; a[0] := 0; C := reg[7] a := DM(eaddr)<<1; a[0] :=0; C := DM(eaddr)[7] Freq divn -,-,-, - reduces the CPU frequency (divn=nodiv, div2, div4, div8, div16) Halt -,-,-, - halts the CPU Nop -,-,-, - no operation - = unchanged, u = undefined, *MSHR reg,# 1 doesn't shift by 1 Table 3-4. Instruction short reference The Coolrisc816 has 8 different addressing modes. These modes are described in Table 3-5. In this table, the notation ix refers to one of the data memory index registers i0, i1, i2 or i3. Using eaddr in an instruction of Table 3-4 will access the data memory at the address DM(eaddr) and will simultaneously execute the index operation. extended address eaddr addr[7:0] (ix) (ix, offset[7:0]) (ix,r3) (ix)+ (ix,offset[7:0])+ -(ix) -(ix,offset[7:0]) accessed data memory location DM(eaddr) DM(h00&addr[7:0]) DM(ix) DM(ix+offset) DM(ix+r3) DM(ix) DM(ix+offset) DM(ix-1) DM(ix-offset) index operation ix := ix+1 ix := ix+offset ix := ix-1 ix := ix -offset direct addressing indexed addressing indexed addressing with immediate offset indexed addressing with register offset indexed addressing with index post-increment indexed addressing with index post-increment by the offset indexed addressing with index pre-decrement indexed addressing with index pre-decrement by the offset Table 3-5. Extended address mode description Eleven different jump conditions are implemented as shown in Table 3-6. The contents of the column CC in this table should replace the CC notation in the instruction description of Table 3-4. CC condition CS CC ZS ZC VS VC EV C=1 C=0 Z=1 Z=0 V=1 V=0 (EV1 or EV0)=1 After CMP op1,op2 EQ NE GT GE LT LE op1=op2 op1op2 op1>op2 op1op2 op1Tx, 0 = no echo Enable uart reception Enable uart transmission Invert pad Rx Invert pad Tx Select baud rate Table 14-2: RegUartCtrl pos. 7-0 RegUartTx UartTx rw rw reset 00000000 resetsystem Description Data to be sent Table 14-3: RegUartTx (c) Semtech 2006 www.semtech.com 14-2 XE8805/05A pos. 7-2 1 0 RegUartTxSta UartTxBusy UartTxFull rw r r r reset 000000 0 resetsystem 0 resetsystem description Unused Uart busy transmitting RegUartTx full Set by writing to RegUartTx Cleared when transferring RegUartTx into internal shift register Table 14-4: RegUartTxSta pos. 7-0 RegUartRx UartRx rw r reset 00000000 resetsystem description Received data Table 14-5: RegUartRx pos. 7-6 5 4 3 2 RegUartRxSta UartRxSErr UartRxPErr UartRxFErr UartRxOErr rw r r r r rc Reset 00 0 resetsystem 0 resetsystem 0 resetsystem 0 resetsystem 1 0 UartRxBusy UartRxFull r r 0 resetsystem 0 resetsystem description Unused Start error Parity error Frame error Overrun error Cleared by writing RegUartRxSta Uart busy receiving RegUartRx full Cleared by reading RegUartRx Table 14-6: RegUartRxSta 14.4 Interrupts map interrupt source Irq_uart_Tx Irq_uart_Rx default mapping in the interrupt manager IrqHig(1) IrqHig(0) Table 14-7: Interrupts map 14.5 Uart baud rate selection In order to have correct baud rates, the Uart interface has to be fed with a stable and trimmed clock source. The clock source can be the RC oscillator or the crystal oscillator. The precision of the baud rate will depend on the precision of the selected clock source. 14.5.1 Uart on the RC oscillator To select the RC oscillator for the Uart, the bit SelXtal in RegUartCmd has to be 0. In order to obtain a correct baud rate, the RC oscillator frequency has to be set to one of the frequencies given in the table on the next page. The precision of the obtained baud rate is directly proportional to the frequency deviation with respect to the values in the table. (c) Semtech 2006 www.semtech.com 14-3 XE8805/05A Frequency selection for correct Uart baud rate with RC oscillator (Hz) 2'457'600 1'843'200 1'228'800 614'400 For each of these frequencies, the baud rate can be selected with the bits UartBR(2:0) in RegUartCtrl and UartRcSel(2:0) in RegUartCmd as shown in Table 14-8 RC frequency (Hz) UartRcSel 111 110 UartBR 101 100 2'457'600 010 1'228'800 001 38400 19200 9600 Not possible 614'400 000 4800 1'843'200 000 115200 57600 28800 14400 Table 14-8: Uart baud rate with RC clock Note: The precision of the baud rate is directly proportional to the frequency deviation of the used clock from the ideal frequency given in the table. In order to increase the precision and stability of the RC oscillator, the DFLL (digital frequency locked loop) can be used with the crystal oscillator as a reference. 14.5.2 Uart on the crystal oscillator In order to use the crystal oscillator as the clock source for the Uart, the bit SelXtal in RegUartCmd has to be set. The crystal oscillator has to be enabled by setting the EnableXtal bit in RegSysClock. The baud rate selection is done using the UartBR and UartRcSel bits as shown in Table 14-9. Xtal freq. (Hz) UartRcSel 32768 001 UartBR 011 010 001 000 Baud rate 2400 1200 600 300 Table 14-9: Uart baud rate with Xtal clock Due to the odd ratio between the crystal oscillator frequency and the baud rate, the generated baud rate has a systematic error of -2.48%. 14.6 Function description 14.6.1 Configuration bits The configuration bits of the Uart serial interface can be found in the registers RegUartCmd and RegUartCtrl. The bit SelXtal is used to select the clock source (see chapter 14.5). The bits UartSelRc and UartBR select the baud rate (see chapter 14.5). The bits UartEnTx is used to enable or disable the transmission. The bits UartEnRx1 and UartEnRx2 are used to enable or disable the reception. When one is set to 1, the reception is enabled. (c) Semtech 2006 www.semtech.com 14-4 XE8805/05A The word length (7 or 8 data bits) can be chosen with UartWL. A parity bit is added during transmission or checked during reception if UartPE is set. The parity mode (odd or even) can be chosen with UartPM. Setting the bits UartXRx and UartXTx inverts the Rx respectively Tx signals. The bit UartEcho is used to send the received data automatically back. The transmission function becomes then: Tx = Rx XOR UartXTx. 14.6.2 Transmission In order to send data, the transmitter has to be enabled by setting the bit UartEnTx. Data to be sent has to be written to the register RegUartTx. The bit UartTxFull in RegUartTxSta then goes to 1, indicating to the transmitter that a new word is available. As soon as the transmitter has finished sending the previous word, it then loads the contents of the register RegUartTx to an internal shift register and clears the UartTxFull bit. An interrupt is generated on Irq_uart_Tx at the falling edge of the UartTxFull bit. The bit UartTxBusy in RegUartTxSta shows that the transmitter is busy transmitting a word. A timing diagram is shown in Figure 14-1. Data are first sent LSB. New data should be written to the register RegUartTx only while UartTxFull is 0, otherwise data will be lost. Asynchronous Transmission write to RegUartTx word 1 RegUartTx reguarttx_shift word 1 shift clock Tx start b0 b1 b6/7 parity stop UartTxBusy UartTxFull Irq_uart_Tx Asynchronous Transmission (back to back) word 1 word 2 write to RegUartTx RegUartTx reguarttx_shift word 1 word 2 word 1 word 2 shift clock Tx start b0 b6/7 stop start UartTxBusy UartTxFull Irq_uart_Tx Figure 14-1. Uart transmission timing diagram. 14.6.3 Reception On detection of the start bit, the UartRxBusy bit is set. On detection of the stop bit, the received data are transferred from the internal shift register to the register RegUartRx. At the same time, the UartRxFull bit is set (c) Semtech 2006 www.semtech.com 14-5 XE8805/05A and an interrupt is generated on Irq_uart_Rx. This indicates that new data is available in RegUartRx. The timing diagram is shown in Figure 14-2. The UartRxFull bit is cleared when RegUartRx is read. If the register was not read before the receiver transfers a new word to it, the bit UartRxOErr (overflow error) is set and the previous contents of the register is lost. UartRxOErr is cleared by writing any data to RegUartRxSta. The bit UartRxSErr is set if a start error has been detected. The bit is updated at data transfer to RegUartRx. The bit UartRxPErr is set if a parity error has been detected, i.e. the received parity bit is not equal to the calculated parity of the received data. The bit is updated at data transfer to RegUartRx. The bit UartRxFErr in RegUartRxSta shows that a frame error has been detected. No stop bit has been detected. Asynchronous Reception read of RegUartRx (software) reguartrx_shift word 1 word 1 RegUartRx shift clock Rx start b0 b6/7 parity stop UartRxBusy UartRxFull Irq_uart_Rx Figure 14-2. Uart reception timing diagram. 14.7 Interrupt or polling The transmission and reception software can be driven by interruption or by polling the status bits. Interrupt driven reception: each time an Irq_uart_Rx interrupt is generated, a new word is available in RegUartRx. The register has to be read before a new word is received. Interrupt driven transmission: each time the contents of RegUartTx is transferred to the transmission shift register, an Irq_uart_Tx interrupt is generated. A new word can then be written to RegUartTx. Reception driven by polling: the UartRxFull bit is to be read and checked. When it is 1, the RegUartRx register contains new data and has to be read before a new word is received. Transmission driven by polling: the UartTxFull bit is to read and checked. When it is 0, the RegUartTx register is empty and a new word can be written to it. (c) Semtech 2006 www.semtech.com 14-6 XE8805/05A 14.8 Software hints Example of program for a transmission with polling: 1. The RegUartCmd register and the RegUartCtrl register are initialized (for example: 8 bit word length, odd parity, 9600 baud, enable Uart transmission). 2. Write a byte to RegUartTx. 3. Wait until the UartTxFull bit in RegUartTxSta register equals 0. 4. Jump to 2 to write the next byte if the message is not finished. 5. End of transmission. Example of program for a transmission with interrupt: 1. The RegUartCmd register and the RegUartCtrl register are initialized (for example: 8 bit word length, odd parity, 9600 baud, enable Uart transmission). 2. Write a byte to RegUartTx. 3. After an interrupt and if the message is not finished, jump to 2 4. End of transmission. Example of program for a reception with polling: 1. The RegUartCmd register and the RegUartCtrl register are initialized (for example: 8 bit word length, odd parity, 9600 baud, enable Uart reception). 2. Wait until the UartRxFull bit in the RegUartRxSta register equals 1. 3. Read the RegUartRxSta and check if there is no error. 4. Read data in RegUartRx. 5. If data is not equal to End-Of-Line, then jump to 2. 6. End of reception. Example of program for a reception with interrupt: 1. The RegUartCmd register and the RegUartCtrl register are initialized (for example: 8 bit word length, odd parity, 9600 baud, enable Uart reception). 2. When there is an interrupt, jump to 3 3. Read RegUartRxSta and check if there is no error. 4. Read data in RegUartRx. 5. If data is not equal to End-Of-Line, then jump to 2. 6. End of reception. (c) Semtech 2006 www.semtech.com 14-7 XE8805/05A 15 USRT 15.1 Features 15-2 15.2 Overview 15-2 15.3 Register map 15-2 15.4 Interrupts map 15-4 15.5 Conditional edge detection 1 15-4 15.6 Conditional edge detection 2 15-4 15.7 Interrupts or polling 15-5 15.8 Function description 15-5 (c) Semtech 2006 www.semtech.com 15-1 XE8805/05A 15.1 Features The USRT implements a hardware support for software implemented serial protocols: * Control of two external lines S0 and S1 (read/write). * Conditional edge detection generates interrupts. * S0 rising edge detection. * S1 value is stored on S0 rising edge. * S0 signal can be forced to 0 after a falling edge on S0 for clock stretching in the low state. * S0 signal can be stretched in the low state after a falling edge on S0 and after a S1 conditional detection. 15.2 Overview The USRT block supports software universal synchronous receiver and transmitter mode interfaces. External lines S0 and S1 respectively correspond to clock line and data line. S0 is mapped to PB[4] and S1 to PB[5] when the USRT block is enabled. It is independent from RegPBdir (Port B can be input or output). When USRT is enabled, the configurations in port B for PB[4] and PB[5] are overwritten by the USRT configuration. Internal pull-ups can be used by setting the PBPullup[5:4] bits. Conditional edge detections are provided. RegUsrtS1 can be used to read the S1 data line from PB[5] in receive mode or to drive the output S1 line PB[5] by writing it when in transmit mode. It is advised to read S1 data when in receive mode from the RegUsrtBufferS1 register, which is the S1 value sampled on a rising edge of S0. 15.3 Register map Block configuration registers: pos. 7-1 0 RegUsrtS1 UsrtS1 rw r rw reset function 0000000 1 resetsystem Unused Write: data S1 written to pad PB[5]), Read: value on PB[5] (not UsrtS1 value). Table 15-1: RegUsrtS1 pos. 7-1 0 RegUsrtS0 UsrtS0 rw r rw Reset 0000000 1 resetsystem function Unused Write: clock S0 written to pad PB[4], Read: value on PB[4] (not UsrtS0 value). Table 15-2: RegUsrtS0 The values that are read in the registers RegUsrtS1 and RegUsrtS0 are not necessarily the same as the values that were written in the register. The read value is read back on the circuit pins, not in the registers. Since the outputs are open drain, a value different from the register value may be forced by an external circuit on the circuit pins. (c) Semtech 2006 www.semtech.com 15-2 XE8805/05A pos. 7-4 3 RegUsrtCtrl UsrtWaitS0 rw r r reset "0000" 0 resetsystem 2 UsrtEnWaitCond1 rw 0 resetsystem 1 0 UsrtEnWaitS0 UsrtEnable rw rw 0 resetsystem 0 resetsystem function Unused Clock stretching flag (0=no stretching), cleared by writing RegUsrtBufferS1 Enable stretching on UsrtCond1 detection (0=disable) Enable stretching operation (0=disable) Enable USRT operation (0=disable) Table 15-3: RegUsrtCtrl pos. 7-1 0 RegUsrtCond1 UsrtCond1 rw r r/c reset 0000000 0 resetsystem function Unused State of condition 1 detection (1 =detected), cleared when written. Table 15-4: RegUsrtCond1 pos. 7-1 0 RegUsrtCond2 UsrtCond2 rw r r/c reset 0000000 0 resetsystem function Unused State of condition 2 detection (1 =detected), cleared when written. Table 15-5: RegUsrtCond2 pos. 7-1 RegUsrtBufferS1 - 0 UsrtBufferS1 rw r r w reset 0000000 function Unused Value on S1 at last S0 rising edge. Clear RegUsrtEdgeS0 bit in RegUsrtEdgeS0 Clear UsrtWaitS0 bit in RegUsrtCtrl with any value x Table 15-6: RegUsrtBufferS1 (c) Semtech 2006 www.semtech.com 15-3 XE8805/05A pos. 7-1 0 RegUsrtEdgeS0 UsrtEdgeS0 rw r r reset 0000000 0 resetsystem function Unused State of rising edge detection (1=detected). Cleared by RegUsrtBufferS1 on S0 reading Table 15-7: RegUsrtEdgeS0 15.4 Interrupts map interrupt source Irq_cond1 Irq_cond2 default mapping in the interrupt manager RegIrqMid(7) RegIrqMid(6) Table 15-8: Interrupts map 15.5 Conditional edge detection 1 S1 S0 Figure 15-1: Condition 1 Condition 1 is satisfied when S0=1 at the falling edge of S1. The bit UsrtCond1 in RegUsrtCond1 is set when the condition 1 is detected and the USRT interface is enabled (UsrtEnable=1). Condition 1 is asserted for both modes (receiver and transmitter). The UsrtCond1 bit is read only and is cleared by all reset conditions and by writing any data to its address. Condition 1 occurrence also generates an interrupt on Irq_cond1. 15.6 Conditional edge detection 2 S1 S0 Figure 15-2: Condition 2 (c) Semtech 2006 www.semtech.com 15-4 XE8805/05A Condition 2 is satisfied when S0=1 at the rising edge of S1. The bit UsrtCond2 in RegUsrtCond2 is set when the condition 2 is detected and the USRT interface is enabled. Condition 2 is asserted for both modes (receiver and transmitter). The UsrtCond2 bit is read only and is cleared by all reset conditions and by writing any data to its address. Condition 2 occurrence also generates an interrupt on Irq_cond2. 15.7 Interrupts or polling In receive mode, there are two possibilities for detecting condition 1 or 2: the detection of the condition can generate an interrupt or the registers can be polled (reading and checking the RegUsrtCond1 and RegUsrtCond2 registers for the status of USRT communication). 15.8 Function description The bit UsrtEnable in RegUsrtCtrl is used to enable the USRT interface and controls the PB[4] and PB[5] pins. This bit puts these two port B lines in the open drain configuration requested to use the USRT interface. If no external pull-ups are added on PB[4] and PB[5], the user can activate internal pull-ups by setting PBPullup[4] and PBPullup[5] in RegPBPullup. The bits UsrtEnWaitS0, UsrtEnWaitCond1, UsrtWaitS0 in RegUsrtCtrl are used for transmitter/receiver control of USRT interface. Figure 15-3 shows the unconditional clock stretching function which is enabled by setting UsrtEnWaitS0. S0 UsrtWaitS0 write Reg UsrtBufferS1 Figure 15-3: S0 Stretching (UsrtEnWaitS0=1) When UsrtEnWaitS0 is 1, the S0 line will be maintained at 0 after its falling edge (clock stretching). UsrtWaitS0 is then set to 1, indicating that the S0 line is forced low. One can release S0 by writing to the RegUsrtBufferS1 register. The same can be done in combination with condition 1 detection by setting the UsrtEnWaitCond1 bit. Figure 15-4 shows the conditional clock stretching function which is enabled by setting UsrtEnWaitCond1. (c) Semtech 2006 www.semtech.com 15-5 XE8805/05A S1 S0 UsrtWaitS0 write Reg UsrtBufferS1 Figure 15-4: Conditional stretching (UsrtEnWaitCond1=1) When UsrtEnWaitCond1 is 1, the S0 signal will be stretched in its low state after its falling edge if the condition 1 has been detected before (UsrtCond1=1). UsrtWaitS0 is then set to 1, indicating that the S0 line is forced low. One can release S0 by writing to the RegUsrtBufferS1 register. Figure 15-5 shows the sampling function implemented by the UsrtBufferS1 bit. The bit UsrtBufferS1 in RegUsrtBufferS1 is the value of S1 sampled on PB[4] at the last rising edge of S0. The bit UsrtEdgeS0 in RegUsrtEdgeS0 is set to one on the same S0 rising edge and is cleared by a read operation of the RegUsrtBufferS1 register. The bit therefore indicates that a new value is present in the RegUsrtBufferS1 which has not yet been read. S1 S0 UsrtBufferS1 read Reg UsrtBufferS1 UsrtEdgeS0 Figure 15-5: S1 sampling (c) Semtech 2006 www.semtech.com 15-6 XE8805/05A 16. Acquisition chain 16.1 ZoomingADCTM Features.......................................................................................................... 16-2 16.2 Overview .................................................................................................................................... 16-2 16.3 Register map ............................................................................................................................. 16-2 16.4 16.4.1 16.4.2 16.4.3 ZoomingADCTM Description ..................................................................................................... 16-4 Acquisition Chain ........................................................................................................................ 16-4 Peripheral Registers ................................................................................................................... 16-6 Continuous-Time vs. On-Request .............................................................................................. 16-8 16.5 Input Multiplexers ..................................................................................................................... 16-9 16.6 16.6.1 16.6.2 16.6.3 16.6.4 Programmable Gain Amplifiers............................................................................................. 16-10 PGA & ADC Enabling ............................................................................................................... 16-12 PGA1 ........................................................................................................................................ 16-12 PGA2 ........................................................................................................................................ 16-12 PGA3 ........................................................................................................................................ 16-12 16.7 16.7.1 16.7.2 16.7.3 16.7.4 16.7.5 16.7.6 16.7.7 16.7.8 ADC Characteristics ............................................................................................................... 16-13 Conversion Sequence .............................................................................................................. 16-13 Sampling Frequency................................................................................................................. 16-14 Over-Sampling Ratio ................................................................................................................ 16-14 Elementary Conversions........................................................................................................... 16-14 Resolution................................................................................................................................. 16-15 Conversion Time & Throughput................................................................................................ 16-16 Output Code Format ................................................................................................................. 16-16 Power Saving Modes................................................................................................................ 16-18 16.8 16.8.1 16.8.2 16.8.3 16.8.3.1 16.8.3.2 16.8.4 16.8.5 16.8.6 16.8.7 Specifications and Measured Curves................................................................................... 16-18 Default Settings ........................................................................................................................ 16-19 Specifications............................................................................................................................ 16-20 Linearity .................................................................................................................................... 16-21 Integral non-linearity ................................................................................................................. 16-21 Differential non-linearity ............................................................................................................ 16-25 Noise......................................................................................................................................... 16-26 Gain Error and Offset Error....................................................................................................... 16-27 Power Consumption ................................................................................................................. 16-28 Power Supply Rejection Ratio .................................................................................................. 16-30 16.9 16.9.1 16.9.2 16.9.3 16.9.4 16.9.5 Application Hints .................................................................................................................... 16-31 Input Impedance ....................................................................................................................... 16-31 PGA Settling or Input Channel Modifications ........................................................................... 16-31 PGA Gain & Offset, Linearity and Noise................................................................................... 16-31 Frequency Response................................................................................................................ 16-32 Power Reduction ...................................................................................................................... 16-33 (c) Semtech 2006 www.semtech.com 16-1 XE8805/05A 16.1 ZoomingADCTM Features The ZoomingADCTM is a complete and versatile low-power analog front-end interface typically intended for sensing applications. The key features of the ZoomingADCTM are: Programmable 6 to 16-bit dynamic range oversampled ADC * Flexible gain programming between 0.5 and 1000 * Flexible and large range offset compensation * 4-channel differential or 8-channel single-ended input multiplexer * 2-channel differential reference inputs * Power saving modes * Direct interfacing to CoolRiscTM microcontroller 16.2 Overview Analog Inputs MUX fS 0 1 2 3 4 5 6 7 VIN fS PGA1 PGA2 VD1 GD1 Input Selection MUX 0 Reference 1 Inputs 2 PGA3 VIN,ADC VD2 GD2 GD3 OFF2 OFF3 Offset2 Offset3 ADC 16 VREF 3 Reference Selection Gain1 Gain2 Gain3 ZOOM Figure 16-1. ZoomingADCTM general functional block diagram The total acquisition chain consists of an input multiplexer, 3 programmable gain amplifier stages and an oversampled A/D converter. The reference voltage can be selected on two different channels. Two offset compensation amplifiers allow for a wide offset compensation range. The programmable gain and offset allow one to zoom in on a small portion of the reference voltage defined input range. 16.3 Register map There are eight registers in the acquisition chain (AC), namely RegAcOutLsb, RegAcOutMsb, RegAcCfg0, RegAcCfg1, RegAcCfg2, RegAcCfg3, RegAcCfg4 and RegAcCfg5. Table 16-2 to Table 16-9 show the mapping of control bits and functionality of these registers while Table 16-1 gives an overview of these eight. The register map only gives a short description of the different configuration bits. More detailed information is found in subsequent sections. (c) Semtech 2006 www.semtech.com 16-2 XE8805/05A register name RegAcOutLsb RegAcOutMsb RegAcCfg0 RegAcCfg1 RegAcCfg2 RegAcCfg3 RegAcCfg4 RegAcCfg5 Table 16-1: AC registers pos. 7:0 RegAcOutLsb Out[7:0] rw r reset 00000000 resetsystem description LSB of the output code Table 16-2: RegAcOutLsb pos. 7:0 RegAcOutMsb Out[15:8] rw r reset 00000000 resetsystem description MSB of the output code Table 16-3: RegAcOutMsb pos. 7 6:5 RegAcCfg0 Start SET_NELCONV[1:0] rw w r0 rw reset 0 resetsystem 01 resetsystem 4:2 SET_OSR[2:0] rw 010 resetsystem 1 0 CONT reserved rw rw 0 resetsystem 0 resetsystem description starts a conversion sets the number of elementary conversions sets the oversampling rate of an elementary conversion continuous conversion mode Table 16-4: RegAcCfg0 pos. 7:6 5:4 3:0 RegAcCfg1 IB_AMP_ADC[1:0] IB_AMP_PGA[1:0] ENABLE[3:0] rw rw rw rw reset 11 resetsystem 11 resetsystem 0000 resetsystem description Bias current selection of the ADC converter Bias current selection of the PGA stages Enables the different PGA stages and the ADC Table 16-5: RegAcCfg1 pos. 7:6 5:4 3:0 RegAcCfg2 FIN[1:0] PGA2_GAIN[1:0] PGA2_OFFSET[3:0] rw rw rw rw reset 00 resetsystem 00 resetsystem 0000 resetsystem description Sampling frequency selection PGA2 stage gain selection PGA2 stage offset selection Table 16-6: RegAcCfg2 (c) Semtech 2006 www.semtech.com 16-3 XE8805/05A pos. 7 6:0 RegAcCfg3 PGA1_GAIN PGA3_GAIN[6:0] rw rw rw reset 0 resetsystem 0000000 resetsystem description PGA1 stage gain selection PGA3 stage gain selection Table 16-7: RegAcCfg3 pos. 7 6:0 RegAcCfg4 reserved PGA3_OFFSET[6:0] rw r rw reset 0 0000000 resetsystem description Unused PGA3 stage offset selection Table 16-8: RegAcCfg4 pos. 7 6 5:1 0 RegAcCfg5 BUSY DEF AMUX[4:0] VMUX rw r w r0 rw rw reset 0 resetsystem 0 00000 resetsystem 0 resetsystem description Activity flag Selects default configuration Input channel configuration selector Reference channel selector Table 16-9: RegAcCfg5 16.4 ZoomingADCTM Description Figure 16-2 gives a more detailed description of the acquisition chain. 16.4.1 Acquisition Chain Figure 16-1 shows the general block diagram of the acquisition chain (AC). A control block (not shown in Figure 16-1) manages all communications with the CoolRiscTM microcontroller. Analog inputs can be selected among eight input channels, while reference input is selected between two differential channels. The core of the zooming section is made of three differential programmable amplifiers (PGA). After selection of a combination of input and reference signals VIN and VREF, the input voltage is modulated and amplified through stages 1 to 3. Fine gain programming up to 1'000V/V is possible. In addition, the last two stages provide programmable offset. Each amplifier can be bypassed if needed. The output of the PGA stages is directly fed to the analog-to-digital converter (ADC), which converts the signal VIN,ADC into digital. Like most ADCs intended for instrumentation or sensing applications, the ZoomingADCTM is an over-sampled converter (See Note1). The ADC is a so-called incremental converter, with bipolar operation (the ADC accepts both positive and negative input voltages). In first approximation, the ADC output result relative to full-scale (FS) delivers the quantity: 1 Note: Over-sampled converters are operated with a sampling frequency f much higher than the input signal's Nyquist rate (typically f is 20S S 1'000 times the input signal bandwidth). The sampling frequency to throughput ratio is large (typically 10-500). These converters include digital decimation filtering. They are mainly used for high resolution, and/or low-to-medium speed applications. (c) Semtech 2006 www.semtech.com 16-4 XE8805/05A OUT ADC V IN , ADC FS / 2 V REF / 2 (Eq. 1) in two's complement (see Sections 16.4 and 16.7 for details). The output code OUTADC is -FS/2 to +FS/2 for VIN,ADC -VREF/2 to +VREF/2 respectively. As will be shown in section 16.6, VIN,ADC is related to input voltage VIN by the relationship: V IN , ADC = GDTOT V IN - GDoff TOT V REF (V) (Eq. 2) where GDTOT is the total PGA gain, and GDoffTOT is the total PGA offset. 0 1 AC_R 2 fS fS PGA1 PGA2 PGA3 GD1 GD2 GD3 OFF2 OFF3 VIN VIN,ADC ADC VREF MUX 0 1 2 3 AC_A 4 5 6 7 MUX Inputs 3 5 2 4 7 7 Acquisition Chain Register Bank RegACCfg5 RegACCfg4 8 RegACCfg3 RegACOutLSB RegACCfg2 RegACOutMSB RegACCfg1 RegACCfg0 Power Saving Modes PGA Enabling Conversion Start Nbr of Elementary Cycles Over-Sampling Ratio Continuous vs. On-Request 8 ADC Busy Flag Default Settings Sampling Frequency fS Figure 16-2. ZoomingADCTM detailed functional block diagram (c) Semtech 2006 www.semtech.com 16-5 XE8805/05A 16.4.2 Peripheral Registers Figure 16-2 shows a detailed functional diagram of the ZoomingADCTM. In table 16-10 the configuration of the peripheral registers is detailed. The system has a bank of eight 8-bit registers: six registers are used to configure the acquisition chain (RegAcCfg0 to 5), and two registers are used to store the output code of the analog-to-digital conversion (RegAcOutMsb & Lsb). The register coding of the ADC parameters and performance characteristics are detailed in Section 16.7. Table 16-10. Peripheral registers to configure the acquisition chain (AC) and to store the analog-to-digital conversion (ADC) result Register Name Bit Position 7 6 5 4 3 RegAcOutLsb OUT[7:0] RegAcOutMsb OUT[15:8] RegAcCfg0 Default values: RegAcCfg1 Default values: RegAcCfg2 Default values: RegAcCfg3 Default values: RegAcCfg4 Default values: RegAcCfg5 Default values: START 0 SET_NELC[1:0] 01 IB_AMP_ADC[1:0] 11 FIN[1:0] 00 PGA1_G 0 0 BUSY 0 DEF 0 SET_OSR[2:0] 010 2 1 CONT 0 IB_AMP_PGA[1:0] ENABLE[3:0] 11 0001 PGA2_GAIN[1:0] PGA2_OFFSET[3:0] 00 0000 PGA3_GAIN[6:0] 0000000 PGA3_OFFSET[6:0] 0000000 AMUX[4:0] 00000 0 TEST 0 VMUX 0 With: * OUT: (r) digital output code of the analog-to-digital converter. (MSB = OUT[15]) * START: (w) setting this bit triggers a single conversion (after the current one is finished). This bit always reads back 0. SET_NELC[1:0] * SET_NELC: (rw) sets the number of elementary conversions to 2 . To compensate for offsets, the input signal is chopped between elementary conversions (1,2,4,8). (3+SET_OSR[2:0]) . OSR = 8, 16, 32, ..., * SET_OSR: (rw) sets the over-sampling rate (OSR) of an elementary conversion to 2 512, 1024. * CONT: (rw) setting this bit starts a conversion. A new conversion will automatically begin as long as the bit remains at 1. * TEST: bit only used for test purposes. In normal mode, this bit is forced to 0 and cannot be overwritten. * IB_AMP_ADC: (rw) sets the bias current in the ADC to 0.25*(1+ IB_AMP_ADC[1:0]) of the normal operation current (25, 50, 75 or 100% of nominal current). To be used for low-power, low-speed operation. * IB_AMP_PGA: (rw) sets the bias current in the PGAs to 0.25*(1+IB_AMP_PGA[1:0]) of the normal operation current (25, 50, 75 or 100% of nominal current). To be used for low-power, low-speed operation. * ENABLE: (rw) enables the ADC modulator (bit 0) and the different stages of the PGAs (PGAi by bit i=1,2,3). PGA stages that are disabled are bypassed. * FIN: (rw) These bits set the sampling frequency of the acquisition chain. Expressed as a fraction of the oscillator frequency, the sampling frequency is given as: 00 AE 1/4 fRC, 01 AE 1/8 fRC, 10 AE 1/32 fRC, 11AE ~8kHz. * PGA1_GAIN: (rw) sets the gain of the first stage: 0 AE 1, 1 AE 10. * PGA2_GAIN: (rw) sets the gain of the second stage: 00 AE 1, 01 AE 2, 10 AE 5, 11 AE 10. * PGA3_GAIN: (rw) sets the gain of the third stage to PGA3_GAIN[6:0]1/12. * PGA2_OFFSET: (rw) sets the offset of the second stage between -1 and +1, with increments of 0.2. The MSB gives the sign (0 positive, 1 negative); amplitude is coded with the bits PGA2_OFFSET[5:0]. * PGA3_OFFSET: (rw) sets the offset of the third stage between -5.25 and +5.25, with increments of 1/12. The MSB gives the sign (0 positive, 1 negative); amplitude is coded with the bits PGA3_OFFSET[5:0]. (c) Semtech 2006 www.semtech.com 16-6 XE8805/05A * * * * BUSY: (r) set to 1 if a conversion is running. Note that the flag is set at the effective start of the conversion. Since the ADC is generally synchronized on a lower frequency clock than the CPU, there might be a small delay (max. 1 cycle of the ADC sampling frequency) between the writing of the START or CONT bits and the appearance of BUSY flag. DEF: (w) sets all values to their defaults (PGA disabled, max speed, nominal modulator bias current, 2 elementary conversions, over-sampling rate of 32) and starts a new conversion without waiting the end of the preceding one. AMUX(4:0): (rw) AMUX[4] sets the mode (0 AE 4 differential inputs, 1 AE 7 inputs with A(0) = common reference) AMUX(3) sets the sign (0 AE straight, 1AE cross) AMUX[2:0] sets the channel. VMUX: (rw) sets the differential reference channel (0 AE R(1) and R(0), 1 AE R(3) and R(2)). (r = read; w = write; rw = read & write) (c) Semtech 2006 www.semtech.com 16-7 XE8805/05A 16.4.3 Continuous-Time vs. On-Request The ADC can be operated in two distinct modes: "continuous-time" and "on-request" modes (selected using the bit CONT). In "continuous-time" mode, the input signal is repeatedly converted into digital. After a conversion is finished, a new one is automatically initiated. The new value is then written in the result register, and the corresponding internal trigger pulse is generated. This operation is sketched in Figure 16-3. The conversion time in this case is defined as TCONV. TCONV Internal Trig Ouput Code RegACOut[15:0] BUSY IRQ Figure 16-3. ADC "continuous-time" operation T CONV Internal Trig Request START Ouput Code RegACOut[15:0] BUSY IRQ Figure 16-4. ADC "on-request" operation In the "on-request" mode, the internal behaviour of the converter is the same as in the "continuous-time" mode, but the conversion is initiated on user request (with the START bit). As shown in Figure 16-4, the conversion time is also TCONV. Note that the flag is set at the effective start of the conversion. Since the ADC is generally synchronized on a lower frequency clock than the CPU, there might be a small delay (max. 1 cycle of the ADC sampling frequency) between the writing of the START or CONT bits and the appearance of BUSY flag. (c) Semtech 2006 www.semtech.com 16-8 XE8805/05A 16.5 Input Multiplexers The ZoomingADCTM has eight analog inputs AC_A(0) to AC_A(7) and four reference inputs AC_R(0) to AC_R(3). Let us first define the differential input voltage VIN and reference voltage VREF respectively as: VIN = VINP - VINN (V) (Eq. 3) VREF = VREFP - VREFN (V) (Eq. 4) and: As shown in Table 16-11 the inputs can be configured in two ways: either as 4 differential channels (VIN1 = AC_A(1) - AC_A(0),..., VIN4 = AC_A(7) - AC_A(6)), or AC_A(0) can be used as a common reference, providing 7 signal paths all referred to AC_A(0). The control word for the analog input selection is AMUX[4:0]. Notice that the bit AMUX[3] controls the sign of the input voltage. AMUX[4:0] (RegAcCfg5[5:1]) VINP VINN AMUX[4:0] (RegAcCfg5[5:1]) VINP VINN 00x00 00x01 00x10 00x11 AC_A(1) AC_A(3) AC_A(5) AC_A(7) AC_A(0) AC_A(2) AC_A(4) AC_A(6) 01x00 01x01 01x10 01x11 AC_A(0) AC_A(2) AC_A(4) AC_A(6) AC_A(1) AC_A(3) AC_A(5) AC_A(7) 10000 10001 10010 10011 10100 10101 10110 10111 AC_A(0) AC_A(1) AC_A(2) AC_A(3) AC_A(4) AC_A(5) AC_A(6) AC_A(7) AC_A(0) 11000 11001 11010 11011 11100 11101 11110 11111 AC_A(0) AC_A(0) AC_A(1) AC_A(2) AC_A(3) AC_A(4) AC_A(5) AC_A(6) AC_A(7) Table 16-11. Analog input selection Similarly, the reference voltage is chosen among two differential channels (VREF1 = AC_R(1)-AC_R(0) or VREF2 = AC_R(3)-AC_R(2)) as shown in Table 16-12. The selection bit is VMUX. The reference inputs VREFP and VREFN (common-mode) can be up to the power supply range. (c) Semtech 2006 www.semtech.com 16-9 XE8805/05A VMUX (RegAcCfg5[0]) 0 1 VREFP VREFN AC_R(1) AC_R(3) AC_R(0) AC_R(2) Table 16-12. Analog Reference input selection 16.6 Programmable Gain Amplifiers As seen in Figure 16-1, the zooming function is implemented with three programmable gain amplifiers (PGA). These are: * PGA1: coarse gain tuning * PGA2: medium gain and offset tuning * PGA3: fine gain and offset tuning All gain and offset settings are realized with ratios of capacitors. The user has control over each PGA activation and gain, as well as the offset of stages 2 and 3. These functions are examined hereafter. ENABLE[3:0] Block xxx0 xxx1 xx0x xx1x x0xx x1xx 0xxx 1xxx ADC disabled ADC enabled PGA1 disabled PGA1 enabled PGA2 disabled PGA2 enabled PGA3 disabled PGA3 enabled Table 16-13. ADC & PGA enabling PGA1 Gain GD1 (V/V) 1 10 PGA1_GAIN 0 1 Table 16-14. PGA1 Gain Settings PGA2 Gain GD2 (V/V) 1 2 5 10 PGA2_GAIN[1:0] 00 01 10 11 Table 16-15. PGA2 gain settings (c) Semtech 2006 www.semtech.com 16-10 XE8805/05A PGA2_OFFSET[3:0] 0000 0001 0010 0011 0100 0101 1001 1010 1011 1100 1101 PGA2 Offset GDoff2 (V/V) 0 +0.2 +0.4 +0.6 +0.8 +1 -0.2 -0.4 -0.6 -0.8 -1 Table 16-16. PGA2 offset settings PGA3 Gain GD3 (V/V) 0 1/12(=0.083) ... 6/12 ... 12/12 16/12 PGA3_GAIN[6:0] 0000000 0000001 ... 0000110 ... 0001100 0010000 ... 0100000 ... 1000000 ... 1111111 32/12 64/12 127/12(=10.58) Table 16-17. PGA3 gain settings PGA3_OFFSET[6:0] 0000000 0000001 0000010 ... 0010000 ... 0100000 ... 0111111 1000000 1000001 1000010 ... 1010000 ... 1100000 ... 1111111 PGA3 Offset GDoff3 (V/V) 0 +1/12(=+0.083) +2/12 ... +16/12 ... +32/12 ... +63/12(=+5.25) 0 -1/12(=-0.083) -2/12 ... -16/12 ... -32/12 ... -63/12(=-5.25) Table 16-18. PGA3 offset settings (c) Semtech 2006 www.semtech.com 16-11 XE8805/05A 16.6.1 PGA & ADC Enabling Depending on the application objectives, the user may enable or bypass each PGA stage. This is done according to the word ENABLE and the coding given in Table 16-13. To reduce power dissipation, the ADC can also be inactivated while idle. 16.6.2 PGA1 The first stage can have a buffer function (unity gain) or provide a gain of 10 (see Table 16-14). The voltage VD1 at the output of PGA1 is: V D1 = GD1 V IN (V) (Eq. 5) where GD1 is the gain of PGA1 (in V/V) controlled with the bit PGA1_GAIN. 16.6.3 PGA2 The second PGA has a finer gain and offset tuning capability, as shown in Table 16-15 and Table 16-16. The voltage VD2 at the output of PGA2 is given by: V D 2 = GD2 V D1 - GDoff 2 V REF (V) (Eq. 6) where GD2 and GDoff2 are respectively the gain and offset of PGA2 (in V/V). These are controlled with the words PGA2_GAIN[1:0] and PGA2_OFFSET[3:0]. As shown in equation 6, the offset correction is directly proportional to the reference voltage. All drifts and perturbations on the reference voltage will affect the precision of the offset compensation. 16.6.4 PGA3 The finest gain and offset tuning is performed with the third and last PGA stage, according to the coding of Table 16-17 and Table 16-18. The output of PGA3 is also the input of the ADC. Thus, similarly to PGA2, we find that the voltage entering the ADC is given by: V IN , ADC = GD3 V D 2 - GDoff 3 V REF (V) (Eq. 7) where GD3 and GDoff3 are respectively the gain and offset of PGA3 (in V/V). The control words are PGA3_GAIN[6:0] and PGA3_OFFSET[6:0] . To remain within the signal compliance of the PGA stages, the condition: V D1 , V D 2 < V DD (V) (Eq. 8) must be verified. As shown in equation 7, the offset correction is directly proportional to the reference voltage. All drifts and perturbations on the reference voltage will affect the precision of the offset compensation. (c) Semtech 2006 www.semtech.com 16-12 XE8805/05A Finally, combining equations Eq. 5 to Eq. 7 for the three PGA stages, the input voltage VIN,ADC of the ADC is related to VIN by: V IN , ADC = GDTOT V IN - GDoff TOT V REF (V) (Eq. 9) where the total PGA gain is defined as: GDTOT = GD3 GD2 GD1 (V/V) (Eq. 10) and the total PGA offset is: GDoff TOT = GDoff 3 + GD3 GDoff 2 (V/V) (Eq. 11) 16.7 ADC Characteristics The main performance characteristics of the ADC (resolution, conversion time, etc.) are determined by three programmable parameters: * * * sampling frequency fS, over-sampling ratio OSR, and number of elementary conversions NELCONV. The setting of these parameters and the resulting performances are described hereafter. 16.7.1 Conversion Sequence A conversion is started each time the bit START or the bit DEF is set. As depicted in Figure 16-5, a complete analog-to-digital conversion sequence is made of a set of NELCONV elementary incremental conversions and a final quantization step. Each elementary conversion is made of (OSR+1) sampling periods TS=1/fS, i.e.: TELCONV = (OSR + 1) / f S (s) (Eq. 12) The result is the mean of the elementary conversion results. An important feature is that the elementary conversions are alternatively performed with the offset of the internal amplifiers contributing in one direction and the other to the output code. Thus, converter internal offset is eliminated if at least two elementary sequences are performed (i.e. if NELCONV 2). A few additional clock cycles are also required to initiate and end the conversion properly. TELCONV= (OSR+1)/f S Init Elementary Conversion Conversion index Offset 1 + Elementary Conversion Elementary Conversion Elementary Conversion 2 - NELCONV- 1 + N ELCONV - T CONV End Conversion Result Figure 16-5. Analog-to-digital conversion sequence (c) Semtech 2006 www.semtech.com 16-13 XE8805/05A 16.7.2 Sampling Frequency The word FIN[1:0] is used to select the sampling frequency fS (Table 16-19). Three sub-multiples of the internal RC-based frequency fRCEXT can be chosen. For FIN = "11", sampling frequency is about 8kHz. Additional information on oscillators and their control can be found in the clock block documentation. FIN[1:0] 00 01 10 11 Sampling Frequency fS (Hz) 01/05 02 1/4fRC 1/8fRCEXT 1/8fRC 1/16fRCEXT 1/32fRC 1/64fRCEXT 8kHz 4kHz Table 16-19. Sampling frequency settings (fRC= RC-based frequency) 16.7.3 Over-Sampling Ratio The over-sampling ratio (OSR) defines the number of integration cycles per elementary conversion. Its value is set with the word SET_OSR[2:0] in power of 2 steps (see Table 16-20) given by: 3 + SET_OSR[2 : 0] OSR = 2 (-) SET_OSR[2:0] (RegAcCfg0[4:2]) 000 001 010 011 100 101 110 111 (Eq. 13) Over-Sampling Ratio OSR (-) 8 16 32 64 128 256 512 1024 Table 16-20. Over-sampling ratio settings 16.7.4 Elementary Conversions As mentioned previously, the whole conversion sequence is made of a set of NELCONV elementary incremental conversions. This number is set with the word SET_NELC[1:0] in power of 2 steps (see Table 16-21) given by: SET_NELC[1: 0] N ELCONV = 2 (-) (Eq. 14) (c) Semtech 2006 www.semtech.com 16-14 XE8805/05A # of Elementary Conversions NELCONV (-) 1 2 4 8 SET_NELC[1:0] (RegAcCfg0[6:5]) 00 01 10 11 Table 16-21. Number of elementary conversion settings As already mentioned, NELCONV must be equal or greater than 2 to reduce internal amplifier offsets. 16.7.5 Resolution The theoretical resolution of the ADC, without considering thermal noise, is given by: n = 2 log 2 (OSR) + log 2 ( N ELCONV ) (Bits) (Eq. 15) 17 Resolution - n [Bits] 15 13 11 SET_NELC= 11 10 01 00 9 7 5 000 001 010 011 100 101 110 111 SET_OSR Figure 16-6. Resolution vs. SET_OSR[2:0] and SET_NELC[2:0] SET_OSR [2:0] 000 001 010 011 100 101 110 111 00 SET_NELC 01 10 11 6 8 10 12 14 16 16 16 7 9 11 13 15 16 16 16 9 11 13 15 16 16 16 16 8 10 12 14 16 16 16 16 (shaded area: resolution truncated to 16 bits due to output register size RegAcOut[15:0]) Table 16-22. Resolution vs. SET_OSR[2:0] and SET_NELC[1:0] settings Using look-up Table 16-22 or the graph plotted in Figure 16-6, resolution can be set between 6 and 16 bits. Notice that, because of 16-bit register use for the ADC output, practical resolution is limited to 16 bits, i.e. n 16. Even if the resolution is truncated to 16 bit by the output register size, it may make sense to set OSR and NELCONV to higher values in order to reduce the influence of the thermal noise in the PGA (see section 16.8.4). (c) Semtech 2006 www.semtech.com 16-15 XE8805/05A 16.7.6 Conversion Time & Throughput As explained using Figure 16-5, conversion time is given by: TCONV = ( N ELCONV (OSR + 1) + 1) / f S (s) (Eq. 16) and throughput is then simply 1/TCONV. For example, consider an over-sampling ratio of 256, 2 elementary conversions, and a sampling frequency of 500kHz (SET_OSR = "101", SET_NELC = "01", fRC = 2MHz, and FIN = "00"). In this case, using Table 16-23, the conversion time is 515 sampling periods, or 1.03ms. This corresponds to a throughput of 971Hz in continuous-time mode. The plot of Figure 16-7 illustrates the classic trade-off between resolution and conversion time. SET_OSR [2:0] 000 001 010 011 100 101 110 111 SET_NELC[1:0] 01 10 19 37 35 69 67 133 131 261 259 517 515 1029 1027 2053 2051 4101 00 10 18 34 66 130 258 514 1026 11 73 137 265 521 1033 2057 4105 8201 Table 16-23. Normalized conversion time (TCONV fS) vs. SET_OSR[2:0] and SET_NELC[1:0](normalized to sampling period 1/fS) Resolution - n [Bits] 16.0 14.0 12.0 10.0 8.0 6.0 10 00 11 SET_NELC 01 4.0 10.0 100.0 1000.0 10000.0 Normalized Conversion Time - TCONV*fS [-] Figure 16-7. Resolution vs. normalized conversion time for different SET_NELC[1:0] 16.7.7 Output Code Format The ADC output code is a 16-bit word in two's complement format (see Table 16-24). For input voltages outside the range, the output code is saturated to the closest full-scale value (i.e. 0x7FFF or 0x8000). For resolutions smaller than 16 bits, the non-significant bits are forced to the values shown in Table 16-25. The output code, expressed in LSBs, corresponds to: OUTADC = 216 VIN , ADC OSR + 1 (LSB) VREF OSR (Eq.17) Recalling equation Eq. 9, this can be rewritten as: (c) Semtech 2006 www.semtech.com 16-16 XE8805/05A OUT ADC = 216 V IN V REF V GDTOT - GDoff TOT REF VIN OSR + 1 OSR (LSB) (Eq. 18) where, from Eq. 10 and Eq. 11, the total PGA gain and offset are respectively: GDTOT = GD3 GD2 GD1 (V/V) and: GDoff TOT = GDoff 3 + GD3 GDoff 2 (V/V) ADC Input Voltage VIN,ADC % of Full Scale (FS) +2.49505V +0.5FS +2.49497V ... ... +76.145V 0V -76.145V ... ... ... 0 ... ... -2.49505V ... -2.49513V -0.5FS Output in LSBs +215-1 =+32'767 15 +2 -2 =+32'766 ... +1 0 -1 ... 15 -2 -1 =-32'767 -215 =-32'768 Output Code in Hex 7FFF 7FFE ... 0001 0000 FFFF ... 8001 8000 Table 16-24. Basic ADC Relationships (example for: VREF = 5V, OSR = 512, n = 16 bits) SET_OSR [2:0] 000 001 010 011 100 101 110 111 SET_NELC = 00 SET_NELC = 01 SET_NELC = 10 SET_NELC = 11 1000000000 10000000 100000 1000 10 - 100000000 1000000 10000 100 1 - 10000000 100000 1000 10 - 1000000 10000 100 1 - Table 16-25. Last forced LSBs in conversion output registers for resolution settings smaller than 16 bits (n < 16) (RegAcOutMsb[7:0] & RegAcOutLsb[7:0]) (c) Semtech 2006 www.semtech.com 16-17 XE8805/05A The equivalent LSB size at the input of the PGA chain is: LSB = 1 V REF OSR n 2 GDTOT OSR + 1 (V) (Eq. 19) Notice that the input voltage VIN,ADC of the ADC must satisfy the condition: VIN , ADC 1 OSR (V REFP - VREFN ) 2 OSR + 1 (V) (Eq. 20) to remain within the ADC input range. 16.7.8 Power Saving Modes During low-speed operation, the bias current in the PGAs and ADC can be programmed to save power using the control words IB_AMP_PGA[1:0] and IB_AMP_ADC[1:0] (see Table 16-26). If the system is idle, the PGAs and ADC can even be disabled, thus, reducing power consumption to its minimum. This can considerably improve battery lifetime. ADC PGA [1:0] Bias Current Bias Current 00 01 10 11 x 1/4IADC 1/2IADC 3/4IADC IADC x x 00 01 10 11 x 1/4IPGA 1/2IPGA 3/4IPGA IPGA IB_AMP_ADC [1:0] IB_AMP_PGA Max. fS [kHz] 62.5 125 250 500 62.5 125 250 500 Table 16-26. ADC & PGA power saving modes and maximum sampling frequency 16.8 Specifications and Measured Curves This section presents measurement results for the acquisition chain. A summary table with circuit specifications and measured curves are given. (c) Semtech 2006 www.semtech.com 16-18 XE8805/05A 16.8.1 Default Settings Unless otherwise specified, the measurement conditions are the following: * * * * * * Temperature TA = +25C VDD = +5V, GND = 0V, VREF = +5V, VIN = 0V RC frequency fRC = 2MHz, sampling frequency fS = 500kHz Offsets GDOff2 = GDOff3 = 0 Power operation: normal (IB_AMP_ADC[1:0] = IB_AMP_PGA[1:0] = '11') Resolution: for n = 12 bits: OSR = 32 and NELCONV = 4 for n = 16 bits: OSR = 512 and NELCONV = 2 (c) Semtech 2006 www.semtech.com 16-19 XE8805/05A 16.8.2 Specifications Unless otherwise specified: Temperature TA = +25C, VDD = +5V, GND = 0V, VREF = +5V, VIN = 0V, RC frequency fRC = 2MHz, sampling frequency fS = 500kHz, Overall PGA gain GDTOT = 1, offsets GDOff2 = GDOff3 = 0. Power operation: normal (IB_AMP_ADC[1:0] = IB_AMP_PGA[1:0] = '11'). For resolution n = 12 bits: OSR = 32 and NELCONV = 4. For resolution n = 16 bits: OSR = 512 and NELCONV = 2. VALUE PARAMETER UNITS COMMENTS/CONDITIONS MIN TYP MAX ANALOG INPUT CHARACTERISTICS -2.42 V Differential Input Voltage Ranges Gain = 1, OSR = 32 (Note 1) +2.42 -24.2 mV VIN = (VINP - VINN) Gain = 100, OSR = 32 +24.2 -2.42 mV Gain = 1000, OSR = 32 +2.42 Reference Voltage Range VREF = (VREFP - VREFN) PROGRAMMABLE GAIN AMPLIFIERS (PGA) Total PGA Gain, GDTOT PGA1 Gain, GD1 PGA2 Gain, GD2 PGA3 Gain, GD3 Gain Setting Precision (each stage) Gain Temperature Dependence Offset PGA2 Offset, GDoff2 PGA3 Offset, GDoff3 Offset Setting Precision (PGA2 or 3) Offset Temperature Dependence Input Impedance PGA1 PGA2, PGA3 Output RMS Noise PGA1 PGA2 PGA3 ADC STATIC PERFORMANCE Resolution, n No Missing Codes Gain Error Offset Error 0.5 1 1 0 -3 -1 -127/12 -3 Throughput Rate (Continuous Mode), 1/TCONV Nbr of Initialization Cycles, NINIT Nbr of End Conversion Cycles, NEND PGA Stabilization Delay DIGITAL OUTPUT ADC Output Data Coding 0.5 5 V 1000 10 10 127/12 +3 V/V V/V V/V V/V % ppm/C +1 +127/12 +3 V/V V/V % ppm/C k k k 1500 150 150 V V V 205 340 365 6 Integral Non-Linearity, INL Resolution n = 16 Bits Differential Non-Linearity, DNL Resolution n = 16 Bits Power Supply Rejection Ratio, PSRR DYNAMIC PERFORMANCE Sampling Frequency, fS Conversion Time, TCONV 0.5 5 VDD 16 Bits See Table 16-14 See Table 16-15 Step=1/12 V/V, 16-17 See Step=0.2 V/V, See Table 16-16 Step=1/12 V/V, See Table 16-18 (Note 2) PGA1 Gain = 1 (Note 3) PGA1 Gain = 10 (Note 3) Maximal gain (Note 3) (Note 4) (Note 5) (Note 6) (Note 7) (Note 8) (Note 9) n = 16 bits (Note 10) 0.15 1 % of FS LSB 1.0 LSB (Note 11) 0.5 78 72 LSB dB dB (Note 12) VDD = 5V 0.3V (Note 13) VDD = 3V 0.3V (Note 13) 3 133 1027 3.76 0.49 0 0 2 5 OSR kHz cycles/fS cycles/fS kSps kSps cycles cycles cycles Table n = 12 bits (Note 14) n = 16 bits (Note 14) n = 12 bits, fS = 500kHz n = 16 bits, fS = 500kHz (Note 15) Binary Two's Complement See Table 16-24 and Table 16-25 (c) Semtech 2006 www.semtech.com 16-20 XE8805/05A Specifications (Cont'd) PARAMETER POWER SUPPLY Voltage Supply Range, VDD Analog Quiescent Current Consumption, Total (IQ) ADC Only PGA1 PGA2 PGA3 Analog Power Dissipation Normal Power Mode 3/4 Power Reduction Mode 1/2 Power Reduction Mode 1/4 Power Reduction Mode TEMPERATURE Specified Range Operating Range MIN VALUE TYP MAX +2.4 +5 +5.5 -40 -40 UNITS V 720/620 250/190 165/150 130/120 175/160 A A A A A 3.6/1.9 2.7/1.4 1.8/0.9 0.9/0.5 mW mW mW mW +85 +125 COMMENTS/CONDITIONS Only Acquisition Chain VDD = 5V/3V VDD = 5V/3V VDD = 5V/3V VDD = 5V/3V VDD = 5V/3V All PGAs & ADC Active VDD = 5V/3V (Note 16) VDD = 5V/3V (Note 17) VDD = 5V/3V (Note 18) VDD = 5V/3V (Note 19) C C Notes: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) = GD1GD2GD3. Maximum input voltage is given by: Gain defined as overall PGA gain GDTOT VIN,MAX = (VREF/2)(OSR/OSR+1). Offset due to tolerance on GDoff2 or GDoff3 setting. For small intrinsic offset, use only ADC and PGA1. Measured with block connected to inputs through AMUX block. Normalized input sampling frequency for input impedance is fS = 512kHz. This figure must be multiplied by 2 for fS = 256kHz, 4 for fS = 128kHz. Input impedance is proportional to 1/fS. See model of Figure 16-18(a). Figure independent from PGA1 gain and sampling frequency fS. See equation Eq. 21 to calculate equivalent input noise. Figure independent on PGA2 gain and sampling frequency fS. See model of Figure 16-18(a). See equation Eq. 21 to calculate equivalent input noise. Figure independent on PGA3 gain and sampling frequency fS. See model of Figure 16-18(a) and equation Eq. 21 to calculate equivalent input noise. Resolution is given by n = 2log2(OSR) + log2(NELCONV). OSR can be set between 8 and 1024, in powers of 2. NELCONV can be set to 1, 2, 4 or 8. If a ramp signal is applied to the input, all digital codes appear in the resulting ADC output data. Gain error is defined as the amount of deviation between the ideal (theoretical) transfer function and the measured transfer function (with the offset error removed). (See Figure 16-19) Offset error is defined as the output code error for a zero volt input (ideally, output code = 0). For 1 LSB offset, NELCONV must be 2. INL defined as the deviation of the DC transfer curve of each individual code from the best-fit straight line. This specification holds over the full scale. DNL is defined as the difference (in LSB) between the ideal (1 LSB) and measured code transitions for successive codes. Figures for Gains = 1 to 100. PSRR is defined as the amount of change in the ADC output value as the power supply voltage changes. Conversion time is given by: TCONV = (NELCONV (OSR + 1) + 1) / fS. OSR can be set between 8 and 1024, in powers of 2. NELCONV can be set to 1, 2, 4 or 8. PGAs are reset after each writing operation to registers RegAcCfg1-5. The ADC must be started after a PGA or inputs commonmode stabilisation delay. This is done by writing bit Start several cycles after PGA settings modification or channel switching. Delay between PGA start or input channel switching and ADC start should be equivalent to OSR (between 8 and 1024) number of cycles. This delay does not apply to conversions made without the PGAs. Nominal (maximum) bias currents in PGAs and ADC, i.e. IB_AMP_PGA[1:0] = `11' and IB_AMP_ADC[1:0] = `11'. Bias currents in PGAs and ADC set to 3/4 of nominal values, i.e. IB_AMP_PGA[1:0] = `10', IB_AMP_ADC[1:0] = `10'. Bias currents in PGAs and ADC set to 1/2 of nominal values, i.e. IB_AMP_PGA[1:0] = `01', IB_AMP_ADC[1:0] = `01'. Bias currents in PGAs and ADC set to 1/4 of nominal values, i.e. IB_AMP_PGA[1:0] = `00', IB_AMP_ADC[1:0] = `00'. 16.8.3 Linearity 16.8.3.1 Integral non-linearity The integral non-linearity depends on the selected gain configuration. First of all, the non-linearity of the ADC (all PGA stages bypassed) is shown in Figure 16-8. (c) Semtech 2006 www.semtech.com 16-21 XE8805/05A Figure 16-8. Integral non-linearity of the ADC (PGA disabled, reference voltage of 4.8V) The different PGA stages have been designed to find the best compromise between the noise performance, the integral non-linearity and the power consumption. To obtain this, the first stage has the best noise performance and the third stage the best linearity performance. For large input signals (small PGA gains, i.e. up to about 50), the noise added by the PGA is very small with respect to the input signal and the second and third stage of the PGA should be used to get the best linearity. For small input signals (large gains, i.e. above 50), the noise level in the PGA is important and the first stage of the PGA should be used. The following figures give the non-linearity for different gain settings of the PGA, selecting the appropriate stage to get the best noise and linearity performance. Figure 16-9 shows the non-linearity when the third stage is used with a gain of 1. It is of course not very useful to use the PGA with a gain of 1 unless it is used to compensate offset. By increasing the gain, the integral non-linearity becomes even smaller since the signal in the amplifiers reduces. Figure 16-10 shows the non-linearity for a gain of 2. Figure 16-11 shows the non-linearity for a gain of 5. Figure 16-12 shows the non-linearity for a gain of 10. By comparing these figures to Figure 16-8, it can be seen that the third stage of the PGA does not add significant integral non-linearity. Figure 16-13 shows the non-linearity for a gain of 20 and Figure 16-14 shows the non-linearity for a gain of 50. In both cases the PGA2 is used at a gain of 10 and the remaining gain is realized by the third stage. It can be seen again that the second stage of the PGA does not add significant non-linearity. For gains above 50, the first stage PGA1 should be selected in stead of PGA2. Although the non-linearity in the first stage of the PGA is larger than in stage 2 and 3, the gain in stage 3 is now sufficiently high so that the non-linearity of the first stage does become negligible as is shown in Figure 16-15 for a gain of 100. Therefor, the first stage is preferred over the second stage since it has less noise. Increasing the gain further up to 1000 will further increase the linearity since the signal becomes very small in the first two stages. The signal is full scale at the output of stage 3 and as shown in Figure 16-9 to Figure 16-12, this stage has very good linearity. (c) Semtech 2006 www.semtech.com 16-22 XE8805/05A Figure 16-9. Integral non-linearity of the ADC and with gain of 1 (PGA1 and PGA2 disabled, PGA3=1, reference voltage of 5V) Figure 16-10. Integral non-linearity of the ADC and gain of 2 (PGA1 and PGA2 disabled, PGA3=2 reference voltage of 5V) Figure 16-11. Integral non-linearity of the ADC and gain of 5 (PGA1 and PGA2 disabled, PGA3=5, reference voltage of 5V) (c) Semtech 2006 www.semtech.com 16-23 XE8805/05A Figure 16-12. Integral non-linearity of the ADC and gain of 10 (PGA1 and PGA2 disabled, PGA3=10, reference voltage of 5V) Figure 16-13. Integral non-linearity of the ADC and gain of 20 (PGA1 and PGA2=10, PGA3=2, reference voltage of 5V) (c) Semtech 2006 www.semtech.com 16-24 XE8805/05A Figure 16-14. Integral non-linearity of the ADC and gain of 50 (PGA1 disabled, PGA2=10, PGA3=5, reference voltage of 5V) Figure 16-15. Integral non-linearity of the ADC and gain of 100 (PGA1=10 and PGA3=10, PGA2 disabled, reference voltage of 5V) 16.8.3.2 Differential non-linearity The differential non-linearity is generated by the ADC. The PGA does not add differential non-linearity. Figure 16-16 shows the differential non-linearity. (c) Semtech 2006 www.semtech.com 16-25 XE8805/05A Figure 16-16. Differential non-linearity of the ADC converter. 16.8.4 Noise Ideally, a constant input voltage VIN should result in a constant output code. However, because of circuit noise, the output code may vary for a fixed input voltage. Thus, a statistical analysis on the output code of 1200 conversions for a constant input voltage was performed to derive the equivalent noise levels of PGA1, PGA2, and PGA3. The extracted rms output noise of PGA1, 2, and 3 are given in Table 16-27: standard output deviation and output rms noise voltage. Figure 16-17 shows the distribution for the ADC alone (PGA1, 2, and 3 bypassed). Quantization noise is dominant in this case, and, thus, the ADC thermal noise is below 16 bits. The simple noise model of Figure 16-18(a) is used to estimate the equivalent input referred rms noise VN,IN of the acquisition chain in the model of Figure 16-18(b). This is given by the relationship: V N , IN = 2 (V N 1 / GD1 ) 2 + (V N 2 /(GD1 GD2 )) 2 + (V N 3 /(GD1 GD2 GD3 )) 2 (OSR N ELCONV ) (V2rms) (Eq. 21) where VN1, VN2, and VN3 are the output rms noise figures of Table 16-27, GD1, GD2, and GD3 are the PGA gains of stages 1 to 3 respectively. As shown in this equation, noise can be reduced by increasing OSR and NELCONV (increases the ADC averaging effect, but reduces noise). Parameter Standard deviation at ADC output (LSB) Output rms noise (V) 1 PGA1 PGA2 PGA3 0.85 1.4 1.5 205 (VN1) 340 (VN2) 365 (VN3) Note: see noise model of Figure 16-18 and equation Eq. 21. Table 16-27. PGA noise measurements (n = 16 bits, OSR = 512, NELCONV = 2, VREF = 5V) (c) Semtech 2006 www.semtech.com 16-26 XE8805/05A Occurences [% of total samples] 80 60 40 20 0 -5 -4 -3 -2 -1 0 1 2 3 4 5 Output Code Deviation From Mean Value [LSB] Figure 16-17. ADC noise (PGA1, 2 & 3 bypassed, OSR=512,NELCONV=2) fS PGA1 VN1 GD1 PGA2 VN2 GD2 PGA3 VN3 GD3 ADC (a) fS PGA1 PGA2 PGA3 GD1 GD2 GD3 VN,IN ADC (b) Figure 16-18. (a) Simple noise model for PGAs and ADC and (b) total input referred noise As an example, consider the system where: GD2 = 10 (GD1 = 1; PGA3 bypassed), OSR = 512, NELCONV = 2, VREF = 5V. In this case, the noise contribution VN1 of PGA1 is dominant over that of PGA2. Using equation Eq. 21, we get: VN,IN = 6.4V (rms) at the input of the acquisition chain, or, equivalently, 0.85 LSB at the output of the ADC. Considering a 0.2V (rms) maximum signal amplitude, the signal-to-noise ratio is 90dB. Noise can also be reduced by implementing a software filter. By making an average on a number of subsequent measurements, the apparent noise is reduced the square root of the number of measurement used to make the average. 16.8.5 Gain Error and Offset Error Gain error is defined as the amount of deviation between the ideal transfer function (theoretical equation Eq. 18) and the measured transfer function (with the offset error removed). The actual gain of the different stages can vary depending on the fabrication tolerances of the different elements. Although these tolerances are specified to a maximum of 3%, they will be most of the time around 0.5%. Moreover, the tolerances between the different stages are not correlated and the probability to get the maximal error in the same direction in all stages is very low. Finally, these gain errors can be calibrated by the software at the same time with the gain errors of the sensor for instance. Figure 16-19 shows gain error drift vs. temperature for different PGA gains. The curves are expressed in % of FullScale Range (FSR) normalized to 25C. (c) Semtech 2006 www.semtech.com 16-27 XE8805/05A Offset error is defined as the output code error for a zero volt input (ideally, output code = 0). The offset of the ADC and the PGA1 stage are completely suppressed if NELCONV > 1. The measured offset drift vs. temperature curves for different PGA gains are depicted in Figure 16-20. The output offset error, expressed in LSB for 16-bit setting, is normalized to 25C. Notice that if the ADC is used alone, the output offset error is below 1 LSB and has no drift. NORMALIZED TO 25C Gain Error [% of FSR] 0.2 0.1 0.0 -0.1 1 5 20 100 -0.2 -0.3 -0.4 -50 -25 0 25 50 75 100 Temperature [C] Figure 16-19. Gain error vs. temperature for different PGA gains Output Offset Error [LSB] NORMALIZED TO 25C 100 1 5 20 100 80 60 40 20 0 -20 -40 -50 -25 0 25 50 75 100 Temperature [C] Figure 16-20. Offset error vs. temperature for different PGA gains 16.8.6 Power Consumption Figure 16-21 plots the variation of quiescent current consumption with supply voltage VDD, as well as the distribution between the 3 PGA stages and the ADC (see Table 16-28). As shown in Figure 16-22, if lower sampling frequency is used, the quiescent current consumption can be lowered by reducing the bias currents of the PGAs and the ADC with registers IB_AMP_PGA [1:0] and IB_AMP_ADC [1:0]. (In Figure 16-22, IB_AMP_PGA/ADC[1:0] = '11', '10', '00' for fS = 500, 250, 62.5kHz respectively.) Quiescent current consumption vs. temperature is depicted in Figure 16-23, showing a relative increase of nearly 40% between -45 and +85C. Figure 16-24 shows the variation of quiescent current consumption for different frequency settings of the internal RC oscillator. It can be seen that the quiescent current varies by about 20% between 100kHz and 2MHz. (c) Semtech 2006 www.semtech.com 16-28 XE8805/05A 800 Quiescent Current - IQ [ A] 700 PGA1, 2 & 3 + ADC 600 500 PGA1 & 2 + ADC 400 PGA1 + ADC 300 200 No PGAs, ADC only 100 2.5 3.0 3.5 4.0 4.5 5.0 5.5 Supply Voltage - VDDA [V] Figure 16-21. Quiescent current consumption vs. supply voltage 800 Sampling Frequency fS : 500kHz Quiescent Current - IQ [ A] 700 600 250kHz 500 400 300 62.5kHz 200 100 2.5 3.0 3.5 4.0 4.5 5.0 5.5 Supply Voltage - VDDA [V] Figure 16-22. Quiescent current consumption vs. supply voltage for different sampling frequencies 20 Relative Quiescent Current Change IQ / IQ,25C [%] Quiescent Current - IQ [ A] 900 850 800 750 700 650 600 550 15 10 5 0 -5 -10 -15 -20 -25 500 -50 -25 0 25 50 75 100 125 -50 -25 0 25 50 75 100 125 Temperature [C] Temperature [C] (a) (b) Figure 16-23. (a) Absolute and (b) relative change inquiescent current consumption vs. temperature (c) Semtech 2006 www.semtech.com 16-29 XE8805/05A Supply VDD = 5V VDD = 3V ADC PGA1 PGA2 PGA3 TOTAL Unit 250 190 165 150 130 120 175 160 720 620 A A 15 850 10 800 Quiescent Current - IQ [ A] Relative Quiescent Current Change IQ / IQ,2MHz [%] Table 16-28. Typical quiescent current distributions in acquisition chain (n = 16 bits, fS = 500kHz) 5 0 -5 -10 -15 750 700 650 600 550 500 -20 0 500 1000 1500 2000 2500 3000 0 3500 500 1000 1500 2000 2500 3000 3500 Frequency - fRC [kHz] Frequency - fRC [kHz] (a) (b) Figure 16-24. (a) Absolute and (b) relative change in quiescent curent consumption vs. RC oscillator frequency (all PGAs active, VDD = 5V) 16.8.7 Power Supply Rejection Ratio Figure 16-25 shows power supply rejection ratio (PSRR) at 3V and 5V supply voltage, and for various PGA gains. PSRR is defined as the ratio (in dB) of voltage supply change (in V) to the change in the converter output (in V). PSRR depends on both PGA gain and supply voltage VDD. 105 100 VDD=3V VDD=5V PSRR [dB] 95 90 85 80 75 70 65 60 1 5 10 20 100 PGA Gain [V/V] Figure 16-25. Power supply rejection ratio (PSRR) (c) Semtech 2006 www.semtech.com 16-30 XE8805/05A Supply VDD = 5V VDD = 3V GAIN = 1 GAIN =5 GAIN = 10 GAIN = 20 GAIN =100 Unit 79 72 78 79 100 90 99 90 97 86 dB dB Table 16-29. PSRR (n = 16 bits, VIN = VREF = 2.5V, fS = 500kHz) 16.9 Application Hints 16.9.1 Input Impedance The PGAs of the acquisition chain employ switched-capacitor techniques. For this reason, while a conversion is done, the input impedance on the selected channel of the PGAs is inversely proportional to the sampling frequency fS and to stage gain as given in equation 22. Z in 768 10 9 Hz f s gain (Eq. 22) The input impedance observed is the input impedance of the first PGA stage that is enabled or the input impedance of the ADC if all three stages are disabled. PGA1 (with a gain of 10), PGA2 (with a gain of 10) and PGA3 (with a gain of 10) each have a minimum input impedance of 150k at fS = 512kHz (see Specification Table). Larger input impedance can be obtained by reducing the gain and/or by reducing the sampling frequency. Therefor, with a gain of 1 and a sampling frequency of 100kHz, Zin > 7.6M. The input impedance on channels that are not selected is very high (>100M). 16.9.2 PGA Settling or Input Channel Modifications PGAs are reset after each writing operation to registers RegAcCfg1-5. Similarly, input channels are switched after modifications of AMUX[4:0] or VMUX. To ensure precise conversion, the ADC must be started after a PGA or inputs common-mode stabilization delay. This is done by writing bit START several cycles after PGA settings modification or channel switching. Delay between PGA start or input channel switching and ADC start should be equivalent to OSR (between 8 and 1024) number of cycles. This delay does not apply to conversions made without the PGAs. If the ADC is not settled within the specified period, there is most probably an input impedance problem (see previous section). 16.9.3 PGA Gain & Offset, Linearity and Noise Hereafter are a few design guidelines that should be taken into account when using the ZoomingADCTM: 1) 2) 3) 4) Keep in mind that increasing the overall PGA gain, or "zooming" coefficient, improves linearity but degrades noise performance. Use the minimum number of PGA stages necessary to produce the desired gain ("zooming") and offset. Bypass unnecessary PGAs. For high gains (>50), use PGA stage 1. For low gains (<50) use stages 2 and 3. For the lowest noise, set the highest possible gain on the first (front) PGA stage used in the chain. For example, in an application where a gain of 20 is needed, set the gain of PGA2 to 10, set the gain of PGA3 to 2. (c) Semtech 2006 www.semtech.com 16-31 XE8805/05A 4) For highest linearity and lowest noise performance, bypass all PGAs and use the ADC alone (applications where no "zooming" is needed); i.e. set ENABLE[3:0] = '0001'. For low-noise applications where power consumption is not a primary concern, maintain the largest bias currents in the PGAs and in the ADC; i.e. set IB_AMP_PGA[1:0] = IB_AMP_ADC[1:0] = '11'. For lowest output offset error at the output of the ADC, bypass PGA2 and PGA3. Indeed, PGA2 and PGA3 typically introduce an offset of about 5 to 10 LSB (16 bit) at their output. Note, however, that the ADC output offset is easily calibrated out by software. 5) 6) 16.9.4 Frequency Response The incremental ADC is an over-sampled converter with two main blocks: an analog modulator and a low-pass digital filter. The main function of the digital filter is to remove the quantization noise introduced by the modulator. As shown in Figure 16-26, this filter determines the frequency response of the transfer function between the output of the ADC and the analog input VIN. Notice that the frequency axes are normalized to one elementary conversion period OSR/fS. The plots of Figure 16-26 also show that the frequency response changes with the number of elementary conversions NELCONV performed. In particular, notches appear for NELCONV 2. These notches occur at: f NOTCH (i ) = i fS OSR N ELCONV for i = 1,2,..., ( N ELCONV - 1) (Hz) (Eq. 23) and are repeated every fS/OSR. 1.2 1 Normalized Magnitude [-] Normalized Magnitude [-] Information on the location of these notches is particularly useful when specific frequencies must be filtered out by the acquisition system. For example, consider a 5Hz-bandwidth, 16-bit sensing system where 50Hz line rejection is needed. Using the above equation and the plots below, we set the 4th notch for NELCONV = 4 to 50Hz, i.e. 1.25fS/OSR = 50Hz. The sampling frequency is then calculated as fS = 20.48kHz for OSR = 512. Notice that this choice yields also good attenuation of 50Hz harmonics. NELCONV = 1 0.8 0.6 0.4 0.2 0 1.2 1 NELCONV = 2 0.8 0.6 0.4 0.2 0 0 1 2 3 4 0 1.2 1 N ELCONV = 4 0.8 0.6 0.4 0.2 0 0 1 2 3 1 2 3 4 Normalized Frequency - f *(OSR/fS) [-] Normalized Magnitude [-] Normalized Magnitude [-] Normalized Frequency - f *(OSR/fS) [-] 4 1.2 NELCONV = 8 1 0.8 0.6 0.4 0.2 0 0 1 2 3 4 Normalized Frequency - f *(OSR/fS) [-] Normalized Frequency - f *(OSR/fS) [-] Figure 16-26. Frequency response: normalized magnitude vs. frequency for different NELCONV (c) Semtech 2006 www.semtech.com 16-32 XE8805/05A 16.9.5 Power Reduction The ZoominADCTM is particularly well suited for low-power applications. When very low power consumption is of primary concern, such as in battery operated systems, several parameters can be used to reduce power consumption as follows: 1) 2) 3) 4) 5) Operate the acquisition chain with a reduced supply voltage VDD. Disable the PGAs which are not used during analog-to-digital conversion with ENABLE[3:0]. Disable all PGAs and the ADC when the system is idle and no conversion is performed. Use lower bias currents in the PGAs and the ADC using the control words IB_AMP_PGA[1:0] and IB_AMP_ADC[1:0]. (This reduces the maximum sampling frequency according to Table 16-26.) Reduce internal RC oscillator frequency and/or sampling frequency. Finally, remember that power reduction is typically traded off with reduced linearity, larger noise and slower maximum sampling speed. (c) Semtech 2006 www.semtech.com 16-33 XE8805/05A 17. Vmult (Voltage Multiplier) 17.1 Features 17-2 17.2 Overview 17-2 17.3 Control register 17-2 17.4 External component 17-2 (c) Semtech 2006 www.semtech.com 17-1 XE8805/05A 17.1 Features * * Generates a voltage that is higher or equal to the supply voltage. Can be easily enabled or disabled 17.2 Overview The Vmult block generates a voltage (called "Vmult") that is higher or equal to the supply voltage. This output voltage is used in the acquisition chain. The voltage multiplier should be on (bit ENABLE in RegVmultCfg0) when using the acquisition chain or analog properties of the Port B while VBAT is below 3V. If the multiplier is enabled, the external capacitor on the pin VMULT is mandatory. The source clock of Vmult is selected by FIN[1:0] in RegVmultCfg0. It is strongly recommended to use the same settings as in the ADC. 17.3 Control register There is only one register in the Vmult. Table 177-1 describes the bits in the register. Pos. 2 RegVmultCfg0 Enable rw rw Reset 0 resetsystem 1-0 Fin rw 0 resetsystem Function enable of the vmult `1' : enabled `0' : disabled system clock division factor `00' : 1/2, `01' : 1/4, `10' : 1/16, `11' : 1/64 Table 177-1. RegVmultCfg0 17.4 External component When the multiplier is enabled, a capacitor has to be connected to the VMULT pin. If the multiplier is disabled, the pin may remain floating. Min. Max. 1.0 3.0 Capacitor on VMULT (c) Semtech 2006 Note nF www.semtech.com 17-2 XE8805/05A 18. Signal D/A (DAS) 18.1 Features 18-2 18.2 Overview of Signal DAC - The generic DAC 18-2 18.3 Registers Map 18-3 18.4 18.4.1 18.4.2 18.4.3 The D/A description What is a noise shaper ? Advantages/disadvantages D/A setup and resolution 18-4 18-4 18-4 18-5 18.5 Amplifier 18-7 18.6 18.6.1 18.6.2 Low pass filter First order low pass filter Second order low pass filter 18-8 18-8 18-9 18.7 18.7.1 18.7.2 4-20mA loop 2-wire loop with first order filtering 2-wire loop with second order filtering 18-10 18-10 18-12 (c) Semtech 2006 www.semtech.com 18-1 XE8805/05A 18.1 Features * * * * * * * 16-bits maximum input word width Synchronization mechanism to guarantee data integrity when writing LSB and MSB 8-bits data Programmable noise shaper order: second, first or order zero Programmable PWM modulation between 4 and 11-bits Programmable clock input frequency: fin or fin/2 Programmable output polarity: active high or low On chip amplifier for analog filtering, voltage output or 4-20 mA loop 18.2 Overview of Signal DAC - The generic DAC The generic DAC block consists of two major parts: the noise shaper (sigma-delta modulator) and the PWM modulator as shown in Figure 18-1. CPU bus PWM modulator Sigma-delta modulator control 16 DAS Out 4-11 m amp Figure 18-1. General block diagram A D/A converter that is built with a digital PWM modulator needs a high clock frequency for a small signal bandwidth. For a 10 bit digital PWM modulator for instance, a 10 bit counter is needed in order to create a pulse with a resolution of 1024. This means that, in case an infinitely sharp analog output filter is used, the clock frequency has to be at least 1024 times the output bandwidth. In practice however, in order to be able to build the analog filter, the clock frequency needs to be much higher. In order to reduce this frequency requirement, the input digital word is broken down into n words with a smaller width m by a noise shaper so that the "average" (average for first order noise shaper, more complicated for higher order noise shapers) value of the n m-bit words represents the full width input code. Instead of 1 pulse with the full resolution, the PWM modulator now generates n pulses with a smaller resolution m. This increases the output pulse repetition frequency with a factor n for identical clock frequency. Therefore, the analog output filtering is easier to implement. Higher order noise shapers (order >1) allow to decrease the clock frequency for identical signal bandwidth. Another advantage is that the signal distortion is less dependent on the signal value. A disadvantage is however, that the output signal after filtering is more dependent on the rise and fall times of the PWM output since there are many more pulses. The maximum word width at the input is 16-bit. If the word is narrower, 0's have to be added after the LSB. In order to maintain maximum flexibility, the order of the noise shaper and the resolution of the PWM modulation are programmable by writing the codes CodeLmax and NsOrder to the configuration register. The possible noise shaper order is 0 (which means no noise shaping), 1 or 2. The possible PWM modulation resolution m can be set between 4 and 11. (c) Semtech 2006 www.semtech.com 18-2 XE8805/05A 18.3 Registers Map All registers are reset with the system reset. The contents of the registers RegDasInLsb and RegDasInMsb are transferred to the D/A converter when after data have been written into RegDasInMsb. Therefore, in order to maintain the synchronisation between the LSB and MSB, the LSB should always be written before the MSB. Pos. 7-0 RegDasInLsb DasInLsb(7:0) rw rw reset 0 resetsystem function Data to convert LSB Table 18-1. RegDasInLsb Pos. 7-0 RegDasInMsb DasInMsb(7:0) rw rw reset 0 resetsystem function Data to convert MSB Table 18-2. RegDasInMsb Pos. 7:6 RegDasCfg0 NsOrder(1:0) rw rw reset 00 resetsystem 5:3 CodeLmax(2:0) rw 000 resetsystem 2:1 Enable(1:0) rw 0 Fin rw 00 resetsystem 0 resetsystem function Noise Shaper order 00 : order 0 01 : order 1 1x : order 2 PWM pulse resolution : 000 : 4 bits 001 : 5 bits 010 : 6 bits 011 : 7 bits 100 : 8 bits 101 : 9 bits 110 : 10 bits 111 : 11 bits Bit 0 : enables the D/A Bit 1 : enables the amplifier Input frequency of modulator as a fraction of oscillator frequency 0 : 1.fRC, 1 : 1/2.fRC Table 18-3. RegDasCfg0 Pos. 7:2 1 RegDasCfg1 BW rw rw rw reset 000000 0 resetsystem 0 INV rw 0 resetsystem function Unused Amplifier bandwidth 0 : small bandwidth 1 : large bandwidth Inverts the PWM output 0 : normal, active high 1 : inverted, active low Table 18-4. RegDasCfg1 (c) Semtech 2006 www.semtech.com 18-3 XE8805/05A 18.4 The D/A description The D/A converter consists of 2 parts: a classic PWM modulator which is preceded by a noise shaper (Figure 18-1). The PWM signal has then to be low pass filtered using the amplifier and external components to obtain the analog signal. 18.4.1 What is a noise shaper? The major disadvantage of using a PWM modulator to generate a high resolution analog signal is that it requires a high ratio between the PWM switching frequency and the useful bandwidth of the output analog signal after low pass filtering. Example: assuming the switching frequency of the PWM modulator is 1MHz and one wants to resolve 16 bit, i.e. 216=65536 steps. In this case, the PWM has to code each step in increments of 1s=1/1MHz and needs therefore 65536s per pulse. This means that the PWM pulse repetition rate is 1/65536s=15.25Hz. So, even with a higher order low pass filter, more than 1 frequency decade will be required to filter the PWM signal down to a 16 bit accurate analog signal. This leaves a useful bandwidth below 1Hz. The goal of the noise shaper is to reduce the ratio between the PWM switching frequency and the useful bandwidth. The noise shaper will not reduce the "truncation noise" and "PWM modulation noise" but move it to higher frequencies. It "shapes" the frequency spectrum ("noise") of the generated PWM signal, hence its name. In practice, the noise shaper allows the generation of a signal with a given resolution using a PWM modulator that has a lower resolution. The noise shaper then generates a series of different subsequent low resolution codes for the PWM so that the average value corresponds to the high resolution code. The first order noise shaper interpolates between two adjacent PWM codes to obtain a higher resolution. The second order noise shaper can use non-adjacent PWM codes. Example for first order noise shaper: assuming again the resolution of 16 bits using a 1MHz PWM switching frequency using the noise shaper with order 1. If a PWM modulator with 4 bits, i.e. 16 steps is used, the PWM repetition frequency becomes then 1MHz/16=62.5kHz. The PWM modulator can convert only the 4 MSB's of the 16 bit input such as h0000, h1000 until hF000. In order to convert the code h5800, which is between h5000 and h6000? In this case, the first order noise shaper will interpolate by presenting alternatively the code h5 and h6 to the PWM so that after filtering a signal is obtained halfway between the normal PWM steps. To convert the code h5400, it will present h5 3 times and h6 once to the PWM and so on. It is clear from this that the PWM repetition frequency is much higher than for the simple PWM and can be filtered out more easily. The quantization noise frequency will depend on the code to be converted: for this example for instance we need two PWM pulses to implement the code h5800, but we need four to implement h5400 etc. Example for second order noise shaper: if we use the same conditions as for the example above, we will obtain the same PWM repetition frequency. However, to implement the code h5400, the noise shaper now can present the following sequence to the PWM modulator: h6, h5, h6, h4. This increases the frequency components at the PWM pulse repetition frequency and 1/2 of the PWM pulse repetition frequency but at the same time reduces energy at 1/4 of the PWM pulse repetition frequency with respect to the first order noise shaper. The low pass cut-off frequency can therefore be higher than for a first order noise shaper. A disadvantage of the second order noise shaper is however that the resolution will drop when the code is very close to h0000 or hFFFF. Example: if we assume the same conditions as above, but we want to convert the code h0400. It is now impossible to use a similar sequence as above (which would be h1, h0, h1, h(-1) ) due to saturation of the code. There is no choice left but the sequence h1 h0 h0 h0 which is the same sequence as in the first order noise shaper. 18.4.2 Advantages/disadvantages Advantages: Using a high order noise shaper together with a PWM modulator with low resolution reduces the ratio between the low pass cut off frequency and the PWM switching frequency for the same total resolution. This can be used to (c) Semtech 2006 www.semtech.com 18-4 XE8805/05A increase the output signal bandwidth or to reduce the PWM switching frequency and therefore the power consumption of the D/A. Signal distortion is less dependent on the signal value. Disadvantages: Using a high order noise shaper together with a PWM modulator with low resolution will use lots of short pulses in stead of 1 long pulse. The D/A is therefore more sensitive to rise and fall times of the PWM resulting in a slightly higher non-linearity and temperature dependence. The second order noise shaper also has a reduced resolution for codes very close to zero or full scale. 18.4.3 D/A setup and resolution In this section, the resolution that can be obtained with the D/A as a function of settings is calculated. These calculations are based on the quantization and PWM modulation noise. Noise on the reference, i.e. the supply voltage is not taken into account. High frequency noise on the supply voltage can be filtered by the output low pass filter, but in band noise on the reference will show up in the output signal with amplitude that will depend on the signal value. Therefore, when using the D/A, one should take care to minimize the switching activity on the digital ports and/or to limit the load on these ports. 18.4.3.1 Noise shaper of order 0 Setting the noise shaper to order 0 (NsOrder=00), reduces the D/A to a regular PWM. Two parameters are setting the resolution of the D/A: the resolution of the modulator itself and the amount of low pass filtering at the output. The modulation width m of the PWM modulator is given by: m = 4 + CodeLmax The cut-off frequency f c of the low pass filter required to get the resolution is calculated below. The PWM modulator repetition frequency f PWM can be calculated as a function of the selected modulation width m , the frequency of the RC oscillator of the circuit f RC and the selected frequency division set by Fin : f PWM 1 f RC 1 + Fin = 2m To obtain an analog signal with the required solution, the PWM signal has to be low pass filtered. The resolution that can be obtained depends on the filter order and the ratio between the PWM modulation frequency f PWM and the filter cut-off frequency f c . For a low pass filter of LpOrder, we obtain: f resolution PWM = LpOrder log 2 PWM fc The total resolution of the D/A is then the minimal value of both criteria: resolution = min(m, resolution PWM ) In Table 18-5 the required cut-off frequency of the low pass filter is shown for a noise shaper of order 0 as a function of the desired resolution for both a first and second order low pass filter. The PWM modulation factor m should be chosen equal to the desired resolution. (c) Semtech 2006 www.semtech.com 18-5 XE8805/05A resolution (bit) 4 5 6 7 8 9 10 11 m 4 5 6 7 8 9 10 11 fc for LpOrder=1 (Hz) 7812 1953 488 122 30 7.6 1.9 0.48 fc for LpOrder=2 (Hz) 31250 11048 3906 1381 488 172 61 22 Table 18-5. Signal bandwidth as a function of the required resolution for the PWM without noise shaper (Fin=0, NsOrder=00, fRC=2MHz). 18.4.3.2 Noise shaper of order 1 or 2 The calculation on the required low pass cut-off frequency given in 18.4.3.1 remains valid in this case. However, the noise shaper allows using smaller PWM modulation for the same resolution. This increases the PWM modulation frequency and as a consequence increases the output bandwidth. An additional criterion however shows up: the filtering of the quantization noise. As can be seen from the examples in 18.4.1, the interpolation between PWM codes generated by the noise shaper introduce sequences at frequencies below the PWM modulation frequency. Assuming a low pass filter that has at least the same order as the noise shaper, the resolution is given by (NsOrder1) : f resolution quant = 0.359 + m + NsOrder log 2 ( PWM ) - 2.65 fc The total resolution of the D/A is then the minimal of both criteria: resolution = min(resolutionquant , resolution PWM ) Table 18-6 and Table 18-7 show the signal bandwidth that can be obtained as a function of required resolution and PWM modulation for first and second order noise shapers. It can be seen that these options are useful to obtain high resolution using low PWM modulation m. For high PWM modulation m, the resolution is limited by the PWM modulator and adding a noise shaper does not change anything. NsOrder=1, fRC=2MHz, Fin=0, LpOrder=2 Resolution PWM modulation m (bit) 4 5 6 8 1596.4 1596.4 1596.4 9 798.2 798.2 798.2 10 399.1 399.1 399.1 11 199.5 199.5 199.5 12 99.8 99.8 99.8 13 49.9 49.9 49.9 14 24.9 24.9 24.9 15 12.5 12.5 12.5 16 6.2 6.2 6.2 7 976.6 690.5 399.1 199.5 99.8 49.9 24.9 12.5 6.2 8 488.3 345.3 244.1 172.6 99.8 49.9 24.9 12.5 6.2 9 244.1 172.6 122.1 86.3 61.0 43.2 24.9 12.5 6.2 10 122.1 86.3 61.0 43.2 30.5 21.6 15.3 10.8 6.2 11 61.0 43.2 30.5 21.6 15.3 10.8 7.6 5.4 3.8 Table 18-6. Low pass cut-off frequency as a function of the selected PMW modulation and required resolution for a first order noise shaper. (c) Semtech 2006 www.semtech.com 18-6 XE8805/05A NsOrder=2, fRC=2MHz, Fin=0, LpOrder=2 Resolution PWM modulation m (bit) 4 5 6 8 5638.4 3906.3 1953.1 9 3986.9 2762.1 1381.1 10 2819.2 1953.1 976.6 11 1993.5 1381.1 690.5 12 1409.6 976.6 488.3 13 996.7 690.5 345.3 14 704.8 488.3 244.1 15 498.4 345.3 172.6 16 352.4 244.1 122.1 7 976.6 690.5 488.3 345.3 244.1 172.6 122.1 86.3 61.0 8 488.3 345.3 244.1 172.6 122.1 86.3 61.0 43.2 30.5 9 244.1 172.6 122.1 86.3 61.0 43.2 30.5 21.6 15.3 10 122.1 86.3 61.0 43.2 30.5 21.6 15.3 10.8 7.6 11 61.0 43.2 30.5 21.6 15.3 10.8 7.6 5.4 3.8 Table 18-7. Low pass cut-off frequency as a function of the selected MPW modulation and required resolution for a second order noise shaper. The output range of the D/A is for code 0h0000 is VSS and for code 0hFFFF is (VBAT-VSS)(2m-1)/2m. 18.5 Amplifier The amplifier can be used to implement the low pass filter and/or a 4-20mA loop. The amplifier is enabled using the bit Enable(1)=1. The amplifier has two different modes selected by the bit BW: a low frequency mode (BW=0) that allows driving a high capacitive load and a high frequency mode (BW=1). The first mode is particularly adapted when a voltage output is used. The second mode is more adapted for a 420mA loop since loads are small and higher bandwidth is required to reject current consumption changes in the loop. Table 18-8 shows the specification of the amplifier. Note that the amplifier can not be used to generate signals that are larger than the supply voltages VBAT and VSS since the amplifier inputs and outputs are clamped to these voltages. The amplifier inputs and outputs should stay within the input and output ranges specified below. (c) Semtech 2006 www.semtech.com 18-7 XE8805/05A sym gain GBW0 CL0 GBW1 CL1 m RL SR CMR OR Voff CMRR noise PSRR Iquie Ioff 1. 2. 3. 4. 5. 6. 7. 8. 9. description gain at DC gain bandwidth product capacitive load gain bandwidth product capacitive load phase margin resistive load slew rate common mode input range output range offset common mode rejection integrated input noise power supply rejection ratio quiescent bias current off current min 80 25 typ 100 70 max 5 250 450 55 5 10 VSS-0.2 VSS+0.2 65 200 30 VBAT-1.2 VBAT-0.2 5 60 20 50 60 100 150 1 unit dB kHz nF kHz pF k kV/s V V mV dB uVrms dB Comment 1 6 6 7 7 8 5 9 2 3 4 uA uA For the minimal resistive load and the maximal capacitive load The amplifier common mode is VSS in the 4-20mA loop. At DC At DC. Only a low rejection ratio is needed since the D/A output refers directly to the power supplies. Short circuit protection at >3mA. GBW when the maximal load is cl0 and with the bit BW=0 GBW when the maximal load is cl1 and with the bit BW=1 In both cases BW=0 and BW=1 for the maximal capacitive load and the minimal resistive load. For maximal load CL0, BW=0 and maximal resistive load RL Table 18-8. Specification of the amplifier. 18.6 Low pass filter Several low pass filters are proposed here as examples. Other filter types are possible depending on the features or constraints of the application. If the filter is inverting the signal, the bit INV can be used to invert the D/A output. This inversion does not need to be done by calculation. A first or second order low pas filter can be built with the amplifier. If higher order filters are needed, additional first or second order sections can be added using external amplifiers. 18.6.1 First order low pass filter Figure 18-2 shows a possible implementation of a first order low pass filter. Ideally, the analog ground should be halfway between VBAT and VSS. The gain G and cut-off frequency fc of such a filter are given by: G= R2 R1 fc = 1 2R2 C As an example, to obtain a 1kHz filter with unity gain, we can choose C=1nF and R1=R2=150k. (c) Semtech 2006 www.semtech.com 18-8 XE8805/05A XE88xx c o n t r o l D DAS_OUT A R1 DAS_AI_M R2 amp C DAS_AO DAS_AI_P analog ground Figure 18-2. First order low pass filter. 18.6.2 Second order low pass filter Figure 18-3 shows an example of a second order low pass filter using the multi-feedback architecture. The gain G, cut-off frequency fc and the damping factor (or quality factor Q) as a function of the factors k and m (see Figure 18-3) are given by: G = -k 1 (n + 1) km = 2Q 2 n 1 fc = 2RC kmn = For a second order Butterworth filter, = 2 2 . For smaller damping factors, the filter is under damped resulting in overshoots on the step response. For higher damping factors, the filter is over damped resulting in a smooth but slower step response. An example of a 1dB ripple Chebychev filter with a cut-off frequency of about 1.5kHz and a DC gain of 1 is given by choosing m=0.22, k=1, n=0.5, R=330k and C=1nF. The resistor nR can be rounded to 180k. A 60Hz unity gain low pass Butterworth filter can be built choosing R=180k, C=12nF, k=1, m=0.183, n=8.33. Note that parasitic capacitors between the DAS_OUT node and the filter output DAS_AO will adversely affect the high frequency behavior of the filter. Care should be taken when routing these signals. (c) Semtech 2006 www.semtech.com 18-9 XE8805/05A XE88xx c o n t r o l D DAS_OUT A R C nR DAS_AI_M DAS_AO mC kR amp DAS_AI_P analog ground Figure 18-3. Second order low pass filter. 18.7 4-20mA loop 18.7.1 2-wire loop with first order filtering The amplifier can be used to build a 4-20mA loop externally. Figure 18-4 shows the principle of such a 2-wire loop using a first order low pass filter. In a 2-wire loop, the current consumption of the sensor and read-out electronics is drawn on the same wires as the signal current. The current consumption of the sensor and read-out electronics should therefore remain below 4mA. The signal current is then added by the bipolar transistor. The resistors Rlim1 and Rlim2 are added to protect the bipolar transistor against high transient currents during power-up. Rlim1 is generally set to a few k. The value of Rlim2 is chosen as a function of the external loop voltage VEXT and the transistor saturation voltage VCEsat. Rlim 2 = (V EXT - VCEsat - Rsense 20mA) 20mA If VEXT is larger than 5.5V, a voltage regulator has to be inserted. Since the quiescent current of the regulator adds up to the 4mA budget, a component with sufficiently low quiescent current has to be selected. The resistor Rsense measures the total current in the loop (if Rsense<VSS+2.3V and VR-Vsensor>0.2V (VRAOP and VRAOM specifications in Table 19-4) to guarantee correct functionality of this schematic. Choosing the Vrefp equal to the supply voltage or close to the supply voltage in order to have the highest possible voltage on the sensor is recommended. From the equation, it can be seen that the sensor current step per LSB can be made smaller by reducing the voltage between Vrefp and Vrefn or by increasing the sense resistor value. As for the voltage controlled sensor bias, capacitors can be added on several nodes to filter out the noise. XE8805A DAB_R_P D DAB_R_M * Voltage must remain above VSS + 2.3 V Vrefp Vrefn * Voltage must remain below VBAT - 2.3 V VSS DAB_OUT VD/A DAB_AIM A Rsense * Voltage must remain above VSS + 2.3 V DAB_AOP VR * Needs a 300 - 100 k load * Max capacitive load is 1 nF amp DAB_AOM Vsensor DAB_AIP reference * In this configuration, the bridge current and DAB_AOM decrease when DAB_OUT increases. VSS signal Figure 19-3. Current controlled bridge bias In Figure 19-4, the sense resistor is inserted between the negative reference voltage and the sensor. This schematic has the same principle as above, but it is easier to respect the limits on VRAOP when VBAT is low. The sensor current is now: I sensor = VR - Vrefn Rsense = VD / A - Vrefn Rsense = (Vrefp - Vrefn ) (code 255) Rsense In this case, it is recommended to choose Vrefn equal to VSS or close to VSS in order to have the highest possible voltage on the sensor. The only limit is now Vsensor