

The NAU7802 is a high-precision analog-to-digital converter (ADC) designed specifically for load cell applications. It features a built-in programmable gain amplifier (PGA), low noise, and high resolution, making it ideal for applications requiring accurate weight or force measurements. The NAU7802 is commonly used in digital weighing scales, industrial force measurement systems, and other applications where precise load cell data acquisition is critical.








The NAU7802 offers a range of features that make it suitable for high-precision measurements. Below are its key technical specifications:
The NAU7802 is typically available in a 16-pin QFN package. Below is the pin configuration and description:
| Pin | Name | Type | Description |
|---|---|---|---|
| 1 | AVDD | Power | Analog power supply (2.7V to 5.5V). |
| 2 | AVSS | Ground | Analog ground. |
| 3 | VREFP | Input | Positive reference voltage for ADC. |
| 4 | VREFN | Input | Negative reference voltage for ADC. |
| 5 | VIN1P | Input | Positive input for differential channel 1. |
| 6 | VIN1N | Input | Negative input for differential channel 1. |
| 7 | VIN2P | Input | Positive input for differential channel 2. |
| 8 | VIN2N | Input | Negative input for differential channel 2. |
| 9 | SCL | Input | I²C clock line. |
| 10 | SDA | Input/Output | I²C data line. |
| 11 | DVDD | Power | Digital power supply (2.7V to 5.5V). |
| 12 | DVSS | Ground | Digital ground. |
| 13 | XTAL1 | Input | External crystal oscillator input (optional). |
| 14 | XTAL2 | Output | External crystal oscillator output (optional). |
| 15 | RST | Input | Reset pin (active low). |
| 16 | DRDY | Output | Data ready signal (active low, indicates new data is available). |
The NAU7802 is straightforward to use in load cell applications. Below are the steps and considerations for integrating it into a circuit:
Power Supply:
Load Cell Connection:
Reference Voltage:
I²C Communication:
Reset and Data Ready:
Below is an example of how to interface the NAU7802 with an Arduino UNO to read load cell data:
#include <Wire.h> // Include the Wire library for I²C communication
#define NAU7802_ADDRESS 0x2A // Default I²C address of the NAU7802
#define REG_PU_CTRL 0x00 // Power-up control register
#define REG_CTRL1 0x01 // Control register 1
#define REG_CTRL2 0x02 // Control register 2
#define REG_ADCO_B2 0x12 // ADC output MSB register
void setup() {
Wire.begin(); // Initialize I²C communication
Serial.begin(9600); // Initialize serial communication for debugging
// Initialize the NAU7802
nau7802Init();
}
void loop() {
long adcValue = readADC(); // Read ADC value
Serial.println(adcValue); // Print ADC value to the serial monitor
delay(500); // Delay for readability
}
void nau7802Init() {
// Reset the NAU7802
writeRegister(REG_PU_CTRL, 0x01); // Set reset bit
delay(10); // Wait for reset to complete
writeRegister(REG_PU_CTRL, 0x02); // Power up the ADC
delay(10); // Wait for power-up to complete
// Configure the ADC
writeRegister(REG_CTRL1, 0x30); // Set gain to 128
writeRegister(REG_CTRL2, 0x00); // Set default settings
}
long readADC() {
// Wait for data ready
while ((readRegister(REG_PU_CTRL) & 0x20) == 0);
// Read ADC output registers
long value = (long)readRegister(REG_ADCO_B2) << 16;
value |= (long)readRegister(REG_ADCO_B2 + 1) << 8;
value |= (long)readRegister(REG_ADCO_B2 + 2);
// Convert to signed 24-bit value
if (value & 0x800000) {
value |= 0xFF000000; // Sign extend if negative
}
return value;
}
void writeRegister(byte reg, byte value) {
Wire.beginTransmission(NAU7802_ADDRESS);
Wire.write(reg);
Wire.write(value);
Wire.endTransmission();
}
byte readRegister(byte reg) {
Wire.beginTransmission(NAU7802_ADDRESS);
Wire.write(reg);
Wire.endTransmission(false);
Wire.requestFrom(NAU7802_ADDRESS, (byte)1);
return Wire.read();
}
No Data Output:
Inconsistent Readings:
I²C Communication Failure:
Q: Can I use the NAU7802 with a 5V microcontroller?
A: Yes, the NAU7802 supports a supply voltage of up to 5.5V, making it compatible with 5V systems.
Q: How do I calibrate the load cell with the NAU7802?
A: Perform a two-point calibration using known weights to calculate the scale factor and offset.
Q: What is the maximum load cell resistance supported?
A: The NAU7802 can support load cells with resistance values typically in the range of 350Ω to 1kΩ.
By following this documentation, you can effectively integrate the NAU7802 into your load cell applications for precise and reliable measurements.