More and more embedded systems are based on collecting measurements from sensors of all kinds, with typical applications including medical, smart grid, energy control and, of course, industrial control systems. As a result, there is an ever-growing need for precision A/D conversion. A majority of microcontrollers come with A/D converters, but they are usually 10- or 12-bit converters and very often they have an error of 4 or 5 bits (counts) – making them effectively 8- or 9-bit converters.
Put another way, an error of 1 bit out of 8 is about 0.4%. Not too bad, really. I usually figure on 1%, or a little less, for a true 8-bit resolution – factoring in some reference voltage drift with time and temperature. However, if you need more precision, maybe a lot more, you have to look carefully for an MCU that will meet that need. What’s more, let’s say you need true 12-bit accuracy (~0.025%); now you have to look really hard. Can you get that kind of precision with an A/D in an MCU, or must you go with discrete A/D IC?
To answer that question you must first study manufacturer’s datasheets very closely, as they tend to express accuracy in different ways. The two types of MCU A/D’s are Successive Approximation (SAR) and Sigma-Delta (Σ-Δ). Generally speaking the latter is slower and more accurate – usually with 16- or 24-bit resolution. The 16-bit versions of a Sigma-Delta A/D are usually viable for about 13-bits and the 24-bit for about 16.
SAR A/D suppliers usually give accuracy in terms of integral non-linearity (INL), offset, and gain errors. The latter two can usually be removed with some sort of calibration (Mx+b) technique. INL is the real accuracy term and it is usually given in bits and is therefore very easy to use. As an example, for a 12-bit A/D an INL of ±0.8 bits typ., ±1.5 bits maximum is very good and fairly common – but beware that many 12-bit A/Ds have INL of ±4 bits so they are really 8-bit converters.
16-and 24-bit Σ-Δ devices often use an accuracy spec of SINAD or “signal-to-noise and distortion ratio”. This is because they are often used in audio applications and because at this level noise becomes the dominant error. I like to use effective number of bits (ENOB) for accuracy. The conversion of SINAD to ENOB is straightforward enough:
ENOB = SNR-1.7 / 6.02
-40 db ~ 6.4 ENOB 6.4 bits = ±1.5%
-50 db ~ 8 ENOB 8 bits = ±0.4%
-74 db ~ 12 ENOB 12 bits = ±0.024%
-80 db ~ 13.0 ENOB 13 bits = ±0.012% resolution
-100 db ~ 16.3 ENOB 16 bits = ±0.0015%
-146 db ~ 24 ENOB 24 bits = ±0.000006%
The other item you must look at is the reference voltage error. You can calibrate out the initial error fairly easily. The temperature drift of the reference is harder to calibrate out and is usually in the range of 10 to 100 ppm/°C. Some other accuracy elements are: common mode rejection ratio, power supply rejection ratio, and possible crosstalk errors.
Following are a few MCU with precision A/D converters that are worth paying attention to.
Microchip’s PIC18F87J72 (Fig. 1) has a dual-channel, 24-bit analog front end with an A/D specified at -90 db typical SINAD at an over-sampling ratio of 256 (for about 14.7 ENOB). It has a programmable gain amplifier with differential voltage inputs and a programmable data rate of up to 64 ks/s. Input Z is 350 kΩ. The AFE needs a 4.5 to 5.5 V supply, while the rest on the chip takes 2.0 to 3.6 V. INL is said to be 15 ppm typical. No maximum is given.
Microchip calls the 80-pin TQFP packaged device an “energy meter/monitor.” The IC also has a 12-bit, 12-channel, 100 ks/s SAR A/D converter with INL of ±1 bit typ, ±2 bits maximum. It has 128 Kbytes of Flash, 3.9 Kbytes of SRAM, and a LCD driver.
Figure 1: Microchip’s PIC18F87J72 has a dual channel 24-bit A/D.
Current draw in power down mode is only 1.4 µA. Running at 4 MHz, it takes about 1.7 mA. The datasheet for this device says almost nothing about the CPU, but the PIC18 series is an 8-bit architecture said to deliver up to 16 MIPS. It has an 8 x 8 single cycle hardware multiply and two capture/compare/PWM modules. The chip works over -40° to 85°C.
The Silicon Labs C8051F351-GM (Fig. 2) 8051 based 8-bit MCU features a fully-differential, 24-bit Sigma-Delta A/D with on-chip calibration capabilities and a programmable gain amplifier with eight gain settings. The A/D is specified as having “0.0015% nonlinearity,” which should yield about 16-bit accuracy.
An internal or external reference can be used. Internally, there is a 1.25 V band-gap voltage reference and a gain-of-two output buffer amplifier. Stability is ±15 ppm typical. Maximum temperature drift is not given. The chip has only 8 Kbytes of Flash and 768 bytes of RAM and is said to yield 50 MIPS peak performance. It comes in a 28-pin package.
Figure 2: The C8051F350-53 from Silicon Labs uses a 28 VFQFN package.
Silicon Labs also has The Precision32 family (e.g., SIM3C136-B-GQ) with a 12-bit A/D converter specified with INL of ±1 LSB typical, ±1.9 LSB maximum. Not bad, but really not up to the high resolution we are looking for.
There are a huge number of Texas Instruments (TI) MSP430 family members and these very low-power 16-bit microcontrollers come with an equally large variety of peripherals. Let’s look at two specific parts to get an idea of what you can find.
The MSP430AFE253 ultra-low-power mixed signal MCUs integrate three independent 24-bit Sigma-Delta A/D converters, differential PGA Inputs, a 16-bit timer, a 16-bit hardware multiplier, and 11 I/O pins and features wake-up from low-power modes in less than 1 μs. While this is a very interesting device, unfortunately its datasheet does not give accuracy information for the A/D converters. The 12 MHz MCU has 16 Kbytes of Flash and 512 bytes of RAM. In active Mode it takes just 220 μA at 1 MHz. It costs about $2.48 ea. /1,000 and comes in a TSSOP24 package with a -40° to 85°C operating range.
The other TI device worth noting is the MSP430F4783, which has three independent 16-bit Sigma-Delta A/D converters. Each channel has a differential analog input pair and programmable-gain amplifier input stage. An internal VCC sense and temperature sensor are also available for measurement. This devices data sheet lists a SINAD of 83 db minimum, 85 db typical, with a gain of 1, and 81 db minimum with a gain of 2. Offset error change over temperature is listed at ±4 ppm typ and 20 ppm maximum.
This chip has 48 Kbytes + 256 bytes of Flash, 2 Kbytes of RAM and features a supply-voltage range of 1.8 to 3.6 V with current consumption of just 280 μA at 1 MHz, 2.2 V. Standby mode takes 1.1 μA and off mode (RAM retention) needs 0.2 μA. Wake-up from standby takes less than 6 µs. It has two 16-bit timers, each with three capture/compare registers and works over −40° to 85°C.
The ADuCM360 (Fig. 4) from Analog Devices has a Cortex-M3 core and dual 24-bit A/D converters with an output rate of 3.5 Hz to 3.9 kHz. The device is a fully integrated 24-bit data acquisition system with dual high performance, multichannel Sigma-Delta (Σ-Δ) A/D converters, 128 Kbytes of Flash, and 8 Kbytes of SRAM. It has six differential input channels plus four internal channels for monitoring the D/A, temperature sensor, and supply voltages. RMS noise is 0.052 µV at 3.75 Hz.
Figure 3: The ADuCM360 has a Cortex-M3 core and dual 24-bit A/Ds.
The ADuCM360 data sheet lists the A/D INL at ±10 ppm at a gain of 1 and ±20 ppm for gains of 2 to 16. It also lists the effective number of bits at 21.1 with a gain of 1, 2, or 4 and a 3.5 Hz sample rate, using the internal 1.2 V reference. This is around ±0.00005%. With a 100 Hz sample rate, this falls to about 18.7 bits and at the maximum 3,906 Hz sample rate, it falls to about 14.8 bits. The temperature coefficient of the internal reference is ±5 ppm typ, ±15 ppm/°C maximum (-40° to 125°C). The reference has an initial accuracy of ±0.1% and a 90 db power supply rejection.
The IC is designed for direct interfacing to external precision sensors. The low power ARM core offers 20 MIPS peak performance and has a flexible 11-channel DMA controller. Other features include dual programmable excitation current sources, diagnostic current sources, and a bias voltage generator. A low-side internal ground switch is provided to allow power-down of an external circuit between conversions. The A/Ds have two parallel filters: a sinc3 or sinc4 filter in parallel with a sinc2 filter. A 16-bit PWM controller with six output channels is also provided.
The microcontroller core can be configured in a normal operating mode that consumes 290 μA/MHz, including Flash/SRAM. An overall system current consumption of 1 mA can be achieved most functions activated. A hibernate mode consumes only 4 μA. This IC comes in a 48-WFQFN exposed pad package.
STM32F373 from STMicroelectronics has a 72 MHz Cortex-M4 core with 256 KBytes of Flash, 32 Kbytes of SRAM, memory protection and CRC check units, and analog/DSP functions. It has a 12-channel DMA controller and two I²C, three SPI, a CAN port, and one USB 2.0 interface. The LQFP48 packaged version has 56 I/Os and 14 capacitive sense channels. It operates from 2.0 to 3.6 V at -40 to 85°C or -40 to 105°C ambient.
This processor has one fast 12-bit A/D converter (1 Msps), three 16-bit Sigma-Delta A/Ds, two comparators, and two D/A converters. The fast 12-bit A/D has INL of ±0.8 typ., ±1.5 bits maximum. So, it’s pretty accurate. Its total unadjusted error is ±1.3 typ., ±3 maximum, over temperature.
The 16-bit A/D’s INL is 14 counts or 3.875 bits – for a little better than 12-bit accuracy. The resolution may attain closer to 16-bits by oversampling, if you can spare the time. It has 50 ks/s input sampling rate for single-channel operation and a programmable gain of x0.5, x1, x2, x4, x8, x16 and x32. There are low power modes where the sample rate is limited to 12.5 ks/s. The 16-bit A/Ds have a full analog front end and may be configured in any combination of single-ended (21) or differential inputs (11). The input Z is 47 K to 540 KΩ.
Freescale’s KL15Z128VLK4 Kinetis processor has a sixteen-channel A/D converter with 16- and 12-bit modes and a sample rate of 37 to 462 ks/s. The ENOB of the A/D in 16-bit mode with 32 sample averaging is 12.8 bits minimum and 14.5 typical. With just 4 averages, you get 11.9 bits minimum and 13.9 typical. Total harmonic distortion is said to be -92 db with an average of 32 samples. It uses and external reference.
This MCU has a 48 MHz Cortex™-M0+ 32-bit core, 128 Kbytes of Flash, and 16 Kbytes of SRAM. It also comes with a 12-bit D/A, an analog comparator with a 6-bit DAC and programmable reference input, a six channel timer/PWM, a real-time clock, a four channel DMA controller, and an 80-bit unique ID number. Supply voltage is 1.7 to 3.6 V and run mode current at 4 MHz is 300 µA typ, 745 µA maximum 3.0 volts. The KL15 comes in 32 to 80 pin packages.
The market for precision sensing equipment in application areas such as medical and energy control has helped drive the trend to integrate as much functionality into a single MCU as possible. Benefits of this integration include reduction in overall component count and PCB complexity and lowered overall system cost and size. This article began by determining whether you can get a high level of precision in an A/D converter onboard an MCU, or must you go with discrete A/D IC? As was demonstrated, the answer is yes. You can find precise A/D conversion integrated into an MCU. The article also provided typical accuracy figures and gave tips on what to look for when examining a datasheet as part of your part search. It then presented a sampling of notable products.
For more information on these parts use the links provided to access product pages on the Hotenda website.