
Getting Started with Anabit's Flex Dual Channel ADC
Share
Flex Dual Channel ADC summary:
The Flex Dual Channel ADC reference design is a 14 bit 2MSPS ADC with two unipolar channels. It comes with every thing you need to make fast and accurate measurements including an anti-aliasing filter (~750kHz cutoff frequency), high bandwidth op amp driver, 1Mohm input termination, and a precision voltage reference. The Flex ADC offers three different precision voltage reference options: 2.5V, 3.3V, and 4.096V. SPI communication is used to interface with the Flex so any microcontroller or microprocessor that supports SPI can control it. The Flex Dual Channel ADC is powered by a 5V source, but the 2.5V reference voltage version can run off a 3.3V source. For voltage logic level flexibility, it features an optional digital power input which powers the digital circuits and sets the logic level voltage for communication and control of the Flex.
Features and Technical Notes
The Flex's two channel inputs:
- The Flex Dual Channel ADC features two unipolar inputs that can both be easily routed to the 14 bit ADC using an on board MUX that is controlled by a simple logic level input.
- Each of the two inputs voltage range is defined by the Flex's precision voltage reference options: 0V - 2.5V or 3.3V or 4.096V
- Both inputs consist of 1Mohm input termination, high bandwidth unity gain buffer amplifiers, and anti-aliasing filters
Communicating with the ADC and setting its sample rate:
- The Flex runs off standard SPI communication in mode 0, sending the data MSB first. The chip select pin is required since its high to low level changes trigger ADC measurements
- The sample rate of the Flex is dependent on the SPI clock rate and the speed that the chip select pin can change levels.
- The max specified SPI clock frequency for the ADC is 40MHz, which is the clock frequency you need to run it at its max sample rate. We have played around with overclocking it. We used it at clock rates up to 80MHz, which still captured data but at a reduced amplitude.
Measures down to true zero volts with no amplifier saturation
- The Flex features a negative bias low voltage charge pump circuit that is used with the input driver op amps
- This small negative voltage (-0.23V) ensures the op amp does not saturate when signals swing close to or at 0V (ground)
Flex Dual Channel ADC Pin Description:
Below is a diagram of the Flex Dual Channel ADC's pins or connections. If you are facing the Flex pin headers, the analog ADC inputs and voltage reference output pins are on the right. The input power, SPI communication, and hardware control pins are found of the left. The layout of the design was done to keep the noisy power and digital signals on one side of the design and the precision analog signals on other. The following is a detailed description of the Flex pins:
- The VIN pin along with the GND pin is where to connect your 5V power source to power the Flex. As mentioned earlier the 2.5V reference version can support input power voltages as low as 3.3V.
- The DVIN pin is optional and is meant for interfacing with a device like a microcontroller that does not use 5V logic. You can input a 1.8V to 5V power source along with a GND connection to power the digital circuits and set the logic level.
- The next three pins are used for SPI communication:
- SPI Clock (SCLK) pin is the input clock signal for the SPI communication.
- The Control In Peripheral Out (CIPO) pin is the communication line that fetches data from the ADC
- The Chip Select (CS) pin is not optional and needed for triggering new acquisitions
- The channel select pin (Ch Sel) can be pulled high to access the second ADC channel. By default it is pulled low so you can leave it unconnected if you do not need to use the second ADC channel
- Moving to the pins on the right, the VREF pin allows you to access the Flex's on board precision voltage reference.
- The +IN1 is the channel 1 input (selected by default) and +IN2 is the channel 2 input. Both channels are referenced to ground (GND).
Flex Dual Channel ADC Example Arduino Code and Where to get Help:
The Flex example code was made to run in the Arduino programming environment and should work on any Arduino board that has hardware SPI capabilities. There is also a second version of the code specifically for ESP32 based development boards. This second ESP32 specific version of the example code was developed to take advantage of the ESP32 function calls that perform faster digital write speeds then the standard Arduino digitalWrite() library. Using fast digital logic changes on the chip select pin helps achieve faster sampling rates on the Flex.
Both versions of the example code perform two user selectable measurement types on the Flex:
- Single measurements that are made every couple of seconds and printed out to the serial monitor
- Burst measurements that are made continuously as fast as possible and stored in an array. That array can then be printed to either the serial monitor or the serial plotter
Links to the two versions of the Flex Dual Channel ADC example code on github:
- Link to general Arduino code example for Flex Dual Channel ADC
- Link to ESP32 specific Arduino code example for Flex Dual Channel ADC
Have a question about the Flex Dual Channel ADC or run into any issues getting started with it? Please use the Anabit ADC Forum
Flex Dual Channel ADC Specifications:
- Measurement accuracy of ADC + front end + reference voltage: ±(0.051% of reading + 3.3 LSB) — typical for either channel
- By employing a simple two point calibration, each channel can achieve a calibrated accuracy: ±(0.01% of reading + 1.3 LSB) — typical
- Internal reference voltage can be accessed from pin "VREF" current range of reference for external use is -5mA to 5mA.
- With the 2.5V voltage reference option, the input power voltage range (VIN) is 3.3V to 5V. With either the 3.3V or 4.096V voltage reference options the input power voltage range (VIN) is 5V.
- Max current consumption (analog and digital) is ~10mA. Just digital current is about 3mA.
- An optional digital supply input for the SPI communication can be added if the digital logic voltage is different than the analog voltage supply, range: 1.8V to 5V.
- Front end input circuit includes 1Mohm input termination, ~750kHz anti-alias filter, buffer amp to drive ADC input, and charge bucket filter to prevent measurement glitches