ADG1712 no-OS driver
Supported Devices
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;