

The AD654 is a precision voltage-to-frequency converter manufactured by Analog Devices. It transforms an input voltage into a frequency output that is linearly proportional to the input. This component is designed for applications requiring high accuracy, low cost, and ease of use. Its monolithic design ensures reliability and consistent performance.








The following table outlines the key technical specifications of the AD654:
| Parameter | Value |
|---|---|
| Input Voltage Range | 0 V to +10 V |
| Output Frequency Range | 1 Hz to 500 kHz |
| Power Supply Voltage (Vcc) | +5 V to +36 V |
| Supply Current | 1.2 mA (typical) |
| Linearity Error | ±0.03% (typical) |
| Temperature Range | 0°C to +70°C (commercial grade) |
| Package Type | 8-pin PDIP (AD654JNZ) |
The AD654 is available in an 8-pin PDIP package. The pinout and descriptions are as follows:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | V+ | Positive power supply input (+5 V to +36 V). |
| 2 | GND | Ground reference for the circuit. |
| 3 | VIN | Input voltage signal (0 V to +10 V). |
| 4 | RIN | Input resistor connection for setting the input current. |
| 5 | C1 | External capacitor connection for frequency setting. |
| 6 | C2 | External capacitor connection for frequency stability. |
| 7 | FOUT | Frequency output signal (proportional to VIN). |
| 8 | NC | No connection (leave unconnected or grounded for stability). |
The AD654 can be interfaced with an Arduino UNO to measure the frequency output. Below is an example code snippet:
// Example: Reading frequency output from AD654 using Arduino UNO
// Connect AD654 FOUT (Pin 7) to Arduino digital pin 2 (interrupt pin)
const int freqPin = 2; // Pin connected to AD654 FOUT
volatile unsigned long pulseCount = 0; // Variable to store pulse count
void setup() {
pinMode(freqPin, INPUT); // Set freqPin as input
attachInterrupt(digitalPinToInterrupt(freqPin), countPulse, RISING);
Serial.begin(9600); // Initialize serial communication
}
void loop() {
delay(1000); // Wait for 1 second
noInterrupts(); // Disable interrupts to read pulseCount safely
unsigned long frequency = pulseCount; // Frequency in Hz
pulseCount = 0; // Reset pulse count
interrupts(); // Re-enable interrupts
Serial.print("Frequency: ");
Serial.print(frequency);
Serial.println(" Hz");
}
// Interrupt service routine to count pulses
void countPulse() {
pulseCount++;
}
No Output Signal:
Inaccurate Frequency Output:
Output Signal Distortion:
Q1: Can the AD654 handle negative input voltages?
A1: No, the AD654 is designed for input voltages in the range of 0 V to +10 V. Negative voltages may damage the device.
Q2: What is the maximum frequency output of the AD654?
A2: The maximum frequency output is 500 kHz, depending on the input voltage and external components.
Q3: Can I use the AD654 with a 3.3 V power supply?
A3: No, the minimum supply voltage for the AD654 is +5 V. Using a lower voltage may result in improper operation.
Q4: How do I improve frequency stability?
A4: Use high-quality capacitors for C1 and C2, and ensure a stable power supply with minimal noise.
This concludes the documentation for the AD654. For further details, refer to the official datasheet provided by Analog Devices.