

The AD7781 is a low-power, 24-bit sigma-delta analog-to-digital converter (ADC) manufactured by Analog Devices. It is designed for high-precision measurement applications, offering exceptional performance in a compact package. The AD7781 features an integrated programmable gain amplifier (PGA) and operates via a simple serial interface, making it ideal for applications requiring accurate and reliable data acquisition.








| Parameter | Value |
|---|---|
| Resolution | 24-bit |
| Input Type | Differential |
| Supply Voltage | 2.7 V to 5.25 V |
| Power Consumption | 330 µA (typical) |
| Input Voltage Range | ±VREF/Gain |
| Programmable Gain Settings | 1, 2, 4, 8, 16, 32, 64, 128 |
| Reference Voltage Range | 0.1 V to AVDD |
| Output Data Rate | Up to 16.6 Hz |
| Interface Type | Serial Peripheral Interface (SPI) |
| Operating Temperature | −40°C to +105°C |
| Package Type | 16-lead TSSOP |
The AD7781 is available in a 16-lead TSSOP package. Below is the pin configuration and description:
| Pin No. | Pin Name | Description |
|---|---|---|
| 1 | AVDD | Analog power supply (2.7 V to 5.25 V). |
| 2 | REFIN(+) | Positive reference input. |
| 3 | REFIN(−) | Negative reference input. |
| 4 | AIN(+) | Positive analog input. |
| 5 | AIN(−) | Negative analog input. |
| 6 | GND | Ground reference. |
| 7 | SCLK | Serial clock input for SPI communication. |
| 8 | DIN | Serial data input for SPI communication. |
| 9 | DOUT/RDY | Serial data output and data ready signal. |
| 10 | CS | Chip select input (active low). |
| 11 | PDRST | Power-down/reset input (active low). |
| 12 | NC | No connection. Leave unconnected or tied to ground. |
| 13 | NC | No connection. Leave unconnected or tied to ground. |
| 14 | NC | No connection. Leave unconnected or tied to ground. |
| 15 | NC | No connection. Leave unconnected or tied to ground. |
| 16 | DVDD | Digital power supply (2.7 V to 5.25 V). |
Below is an example of how to interface the AD7781 with an Arduino UNO using SPI:
| AD7781 Pin | Arduino UNO Pin |
|---|---|
| AVDD | 5V |
| DVDD | 5V |
| GND | GND |
| SCLK | D13 (SCK) |
| DIN | D11 (MOSI) |
| DOUT/RDY | D12 (MISO) |
| CS | D10 (SS) |
| PDRST | D9 |
#include <SPI.h>
// Define AD7781 pins
const int CS_PIN = 10; // Chip Select
const int RDY_PIN = 12; // Data Ready (DOUT/RDY)
const int RESET_PIN = 9; // Power-down/Reset
void setup() {
// Initialize serial communication for debugging
Serial.begin(9600);
// Configure SPI settings
SPI.begin();
SPI.setDataMode(SPI_MODE1); // CPOL = 0, CPHA = 1
SPI.setClockDivider(SPI_CLOCK_DIV16); // Set SPI clock speed
SPI.setBitOrder(MSBFIRST); // Most significant bit first
// Configure AD7781 pins
pinMode(CS_PIN, OUTPUT);
pinMode(RDY_PIN, INPUT);
pinMode(RESET_PIN, OUTPUT);
// Reset the AD7781
digitalWrite(RESET_PIN, LOW);
delay(1); // Hold reset low for at least 100 ns
digitalWrite(RESET_PIN, HIGH);
// Initialize the AD7781
digitalWrite(CS_PIN, HIGH); // Deselect the chip
}
void loop() {
// Wait for data ready signal
if (digitalRead(RDY_PIN) == LOW) {
// Select the AD7781
digitalWrite(CS_PIN, LOW);
// Read 24-bit data from the AD7781
unsigned long data = 0;
for (int i = 0; i < 3; i++) {
data = (data << 8) | SPI.transfer(0x00);
}
// Deselect the AD7781
digitalWrite(CS_PIN, HIGH);
// Print the conversion result
Serial.println(data, HEX);
}
}
No Data Output:
Incorrect Conversion Results:
Device Not Responding:
Q: Can the AD7781 operate with a single-ended input?
A: No, the AD7781 is designed for differential input signals. Single-ended inputs can be used with proper biasing, but this may reduce performance.
Q: What is the maximum SPI clock frequency supported by the AD7781?
A: The AD7781 supports SPI clock frequencies up to 5 MHz.
Q: How do I calculate the input voltage range for a given gain setting?
A: The input voltage range is ±VREF/Gain. For example, with a 2.5 V reference and a gain of 128, the range is ±19.53 mV.