RTFM: ADCs and DACs

RTFM: ADCs and DACs

It’s tough to find a project these days that doesn’t use an analog-to-digital converter (ADC) or digital-to-analog converter (DAC) for something. Whether these converters come as built-in peripherals on a microcontroller, or as separate devices connected over SPI, I2C, or parallel buses, all these converters share some common attributes, and knowing how to read the specs on them can save you a lot of headaches when it comes to getting things working properly.


There are some key things to know about these devices, and the first time you try to navigate a datasheet on one, you may find yourself a bit confused. Let’s take a deep dive into the static (DC) properties of these converters — the AC performance is complex enough to warrant its own follow-up article.

The Two Domains


Think of digital pins on a microcontroller. The value of the pin can be a 1 or a 0 and it’s easy to understand that the voltage for those values will be zero volts or five volts (assuming our microcontroller is powered by a five volt source). What about all those voltages in between? If we need to measure or generate a signal anywhere in between the zero and five volt levels we’re going to need an ADC or DAC. But there are myriad different uses for the two.


The obvious purpose of these converters is to translate a quantity between analog and digital domains. Shown in the figure are two hypothetical 3-bit converters, one of each type. For simplicity, we’ll assume a straight binary encoding on the digital side, with ‘000’ corresponding to the smallest output and ‘111’ the largest. Other converters may use a signed or offset binar ..

Support the originator by clicking the read the rest link below.