ADG1712 no-OS driver

Supported Devices

ADG1712

Overview

The ADG1712 is a low voltage, 2.4 Ω quad SPST (Single Pole Single Throw) switch designed for applications requiring high performance switching with low on-resistance.

The ADG2712 is a pin-compatible ultra-low leakage variant with 9.3 Ω typical on-resistance and picoamp-level leakage currents (7 pA typical at 25°C).

Both devices operate from a single +1.08 V to +5.5 V supply or dual ±1.08 V to ±2.75 V supply and are controlled via four digital inputs (IN1, IN2, IN3, IN4) that control the corresponding switch pairs (S1-D1, S2-D2, S3-D3, S4-D4).

Applications

  • Audio and video signal routing

  • Communications systems

  • Test and measurement equipment

  • Data acquisition systems

  • Instrumentation

ADG1712 Device Configuration

Driver Initialization

In order to be able to use the device, you will have to provide the support for the communication protocol (GPIO) as described in the no-OS documentation.

The first API to be called is adg1712_init. Make sure that it returns 0, which means that the driver was initialized correctly.

Switch Control

The driver provides functions to control individual switches:

  • adg1712_set_switch_state - Enable or disable a specific switch

  • adg1712_get_switch_state - Read the current state of a specific switch

ADG1712 Driver Initialization Example

struct adg1712_dev *dev;
struct adg1712_init_param init_param;

init_param.chip_id = ID_ADG1712; // or ID_ADG2712
init_param.gpio_in1.number = 1;
init_param.gpio_in1.platform_ops = &gpio_ops;
init_param.gpio_in2.number = 2;
init_param.gpio_in2.platform_ops = &gpio_ops;
init_param.gpio_in3.number = 3;
init_param.gpio_in3.platform_ops = &gpio_ops;
init_param.gpio_in4.number = 4;
init_param.gpio_in4.platform_ops = &gpio_ops;

ret = adg1712_init(&dev, &init_param);
if (ret)
        return ret;

// Enable switch 1
ret = adg1712_set_switch_state(dev, ADG1712_SW1, true);
if (ret)
        return ret;

// Check switch 1 state
bool enabled;
ret = adg1712_get_switch_state(dev, ADG1712_SW1, &enabled);
if (ret)
        return ret;