

The ADG728 is a dual 4-channel analog switch manufactured by Adafruit. It is designed for switching multiple analog signals in a matrix configuration, offering low on-resistance, high-speed switching, and low power consumption. This makes it an ideal choice for applications requiring efficient signal routing, such as telecommunications, audio systems, and data acquisition systems.








The ADG728 is typically available in a 16-lead TSSOP package. Below is the pin configuration:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | SCL | I²C clock input |
| 2 | SDA | I²C data input/output |
| 3 | A0 | I²C address selection pin |
| 4 | A1 | I²C address selection pin |
| 5 | GND | Ground |
| 6-9 | S1A-S4A | Analog switch inputs for channel A |
| 10-13 | S1B-S4B | Analog switch inputs for channel B |
| 14 | D1 | Common output for channel A |
| 15 | D2 | Common output for channel B |
| 16 | VDD | Positive power supply |
Below is an example of how to control the ADG728 using an Arduino UNO:
#include <Wire.h> // Include the Wire library for I²C communication
#define ADG728_ADDR 0x70 // Default I²C address of the ADG728
void setup() {
Wire.begin(); // Initialize I²C communication
Serial.begin(9600); // Initialize serial communication for debugging
// Select channel 1A (S1A to D1)
selectChannel(0x01); // 0x01 corresponds to channel 1A
}
void loop() {
// Main loop can be used to switch channels dynamically
}
// Function to select a specific channel on the ADG728
void selectChannel(uint8_t channel) {
Wire.beginTransmission(ADG728_ADDR); // Start communication with ADG728
Wire.write(channel); // Send the channel selection command
Wire.endTransmission(); // End communication
Serial.print("Channel selected: ");
Serial.println(channel, HEX); // Print the selected channel for debugging
}
Wire.begin() function initializes the I²C communication.selectChannel() function sends a command to the ADG728 to select a specific channel. The channel is specified as a hexadecimal value (e.g., 0x01 for channel 1A).No Response from the ADG728
Signal Distortion
Switch Not Changing Channels
Q1: Can the ADG728 handle digital signals?
A1: Yes, the ADG728 can switch both analog and digital signals, provided the signal voltage is within the supply voltage range.
Q2: How many devices can be connected on the same I²C bus?
A2: Up to 4 ADG728 devices can be connected on the same I²C bus by configuring the A0 and A1 address pins.
Q3: What is the maximum signal frequency the ADG728 can handle?
A3: The ADG728 is suitable for signals up to 10 MHz, depending on the load and circuit configuration.
Q4: Is the ADG728 bidirectional?
A4: Yes, the ADG728 supports bidirectional signal flow, making it versatile for various applications.