
Getting Started with Anabit's Reflex DAC Family
Share
Reflex DAC summary:
Anabit's Reflex DAC family is a fast, 14-bit bipolar voltage output DAC that turns SPI data into clean, precise analog signals. This family comes in two different output voltage ranges: +/- 4.096V and +/- 10V. Both designs feature the same DAC IC from Texas instruments so their feature set and example code are almost the same with a few differences that will be covered in this guide. The Reflex DAC features a fast sample rate of 2MSPS. The sample rate speed is based on the SPI communication speed of the microcontroller or microprocessor that interfaces with it. To achieve the maximum sample rate you need a SPI clock rate of 50MHz and the ability to rapidly change the state of the chip select pin which is used to signal incoming data to the DAC IC. The Example code provides communication examples for maximizing the DAC sample rate. We have also experimented with over clocking the design at SPI clock speeds greater than 50MHz with success but reduced amplitude values at the output.
The Reflex DAC family runs off a single input power source at 5V. Both designs use an inverting DC to DC converter to generate a negative voltage rail to enable the bipolar capabilities. Both designs also focus on filtering out power supply noise to ensure clean low noise analog signal outputs.
Technical Features and Differences between the Two Versions
- The Reflex DAC design uses a summing amplifier configuration along with on board voltage reference and negative power rail to create the bipolar DAC output range. Because of the higher voltage on the 10V version the amplifier's output bandwidth is slightly lower than the 4.096V
- Both versions feature flexible digital power and logic voltage levels — digital circuit power auto-selects: use the main 5 V, or plug in an optional 2.7–5.0 V digital supply and it routes itself—no jumpers to remember.
- Both versions include shorting pad at the output if you want to terminate the output at 1 Mohms (connects 1Mohm resistor between the output and ground)
- Both versions provide access to the onboard voltage reference. But the 4.096V version allows you to input an external reference between 2.048V and 5V via the reference select pin. This external reference will change the +/- output range of the Reflex DAC. The 10V version does not allow external voltage references.
- Both versions at power up have the DAC output initialize to code 0, which results to the maximum negative voltage at the output, -4.096V or -10V. To prevent this pull the "RSEL" pin on the 4.096V version and the "PWR DIS" pin on the 10V version high. This will disable the DAC outputs so they are at 0V and you can then program the DAC to mid range and release the pin to get 0V out.
- The Reflex DAC includes some analog filtering on the signal's output path to attenuate frequency artifacts based on the DAC sample rate. This is mainly accomplished via capacitors C24 and C25. A middle ground value of 68pF was selected to balance filtering out sample rate frequency artifacts without limiting frequencies in the Nyquist range. You could always pop these caps off to get the full slew rate speed of the DAC and op amp outputs or increase their value (150pF for instance) to get smoother analog transitions between points
Reflex DAC Pin Description:
Below is a diagram of the Reflex DAC's pins or connections. If you are facing the Reflex pins, the analog DAC output 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 designs 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 Reflex DAC pins (both versions):
- The "5V Pwr In" pin (VIN) along with the "GND" pin is where to connect your 5V power source to power the Reflex
- The "Dig Pwr In" pin (VDIG) is optional and is meant for interfacing with a device like a microcontroller that does not use 5V logic. You can input a 2.7V to 5V power source along with a GND connection to power the digital circuits and set the logic level.
- The next three pins are the SPI communication and output control. These are not optional pins and are required to output analog data from the DAC.
- SPI Clock (SCLK) pin is the input clock signal for the SPI communication. The clock rate helps set the updated rate of the DAC, the faster the clock rate the faster the DAC's output update rate. The max supported clock frequency is 50MHz.
- The Control Out Peripheral In (COPI) pin is the communication line that sends output data and settings to the DAC
- The Chip Select (CS) pin is used to update the DAC's output and serves the Chip Select function of the SPI communication. This pin is required even if this is the only peripheral on your SPI communication bus. See example code or DAC datasheet for correct usage.
- The last control pin on the Reflex design differs a bit depending on the version you have:
- For the 4.096V version this pin has two functions. The first is to pull it high to disable the DAC output to zero volts. The second is to pull it high to use an external voltage reference for the DAC. Please note that if you are using an external reference then the output of the DAC cannot be set to 0V using this pin
- For the 10V version this pin sets the output of the DAC to zero volts. This could be useful when powering up the DAC to prevent the output to default to code 0 or -10V out
- Moving to the pins on the right, the VREF pin allows you to access the Reflex's on board precision voltage reference, which is either 4.096V or 10V depending on the version you have. As mentioned already, it also serves as the external reference input for the 4.096V versions.
- The "DAC Out" (OUT) is the pin where you can access the DAC's output signal.
- For accessing either the DAC output or the voltage reference output, it is recommended to use the "AGND" pins as your return paths. These ground connections are lower noise ground connections compared to the ones on the left side of the design
Reflex DAC Example Arduino Code and Where to get Help:
The Reflex DAC 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 get the faster sampling rates from the Reflex DAC, that are not possible with the Arduino digitalWrite() library.
Both versions of the example code perform four user selectable output functions on the Reflex DAC. There four functions are as follows:
- Single output mode: outputs a single static voltage value from the DAC
- Ramp output mode: continuously outputs a ramp waveform that cycles through each output code of the DAC (all 16384 of them)
- Sine wave output mode: outputs a sinewave with a user defined number of points per cycle
- Quick output change mode: toggles between the max output voltage value (code 16383) to the minimum output voltage value (code 0). This is done as fast as possible and its speed is based on the SPI clock rate and speed to change the chip select levels
Links to the +/- 4.096V Reflex versions of the example code on github:
- Link to general Arduino code example for Reflex DAC
- Link to ESP32 specific Arduino code example for Reflex DAC
Links to the +/- 10V Reflex versions of the example code on github:
- Link to general Arduino code example for Reflex DAC
- Link to ESP32 specific Arduino code example for Reflex DAC
Have a question about the Reflex DAC or run into any issues getting started with it? Please use the Anabit DAC Forum
Reflex DAC Specifications:
General performance specifications for both versions:
- Resolution / topo: 14-bit monotonic
- Max specified DAC update rate: up to 2 MSPS
- SPI interface only requires three pins: SCK, COPI, and CS. No data is read from the DAC so no CIPO connection.
- SPI Max clock rate is specified 50 MHz SCLK (device-rated maximum). Can over clock but with degraded output amplitude
- On board precision voltage reference maximum output current is +/- 5mA for both versions
General performance specifications for +/- 10V version:
- Full-scale range (FSR): ±10 V (span = 20V)
- Accuracy @ 25 °C (typical): ±(0.15% of reading + 1.0 LSB)
- Accuracy @ 25 °C after two-point calibration (zero + gain ±(0.01% of reading + 1.0 LSB)
- Max output current from final op amp stage (source/sink): ±75 mA class (typical)
- Form factor (see tutorial section for pin descriptions):
- Dimensions: 44.5 mm x 34 mm
- Mounting holes: 3.5 mm diameter
- Pin headers: 2.54 mm spacing
General performance specifications for +/- 4.095V version:
- Analog accuracy (uncalibrated, 25 °C ):
- Reflex DAC LSB size (14-bit, ±4.096 V FS): 0.5 mV/LSB (FS span = 8.192 V → 1 LSB ≈ 0.0061% FS)
- System output accuracy — uncalibrated, 25 °C (typical): ±8 LSB (±4.0 mV) ≈ ±0.049% FS
- System output accuracy — after Two-Point Calibration technique (typical): ±2 LSB (±1.0 mV) ≈ ±0.012% FS.
- Link to tutorial on Two-Point Calibration method for DACs
- Max output current from final op amp stage (source/sink): ±30 mA (typical)
- External voltage reference can be used between 2.048V and 5V. Note that -/+ 5V is the power rail voltage of the op amps on this version of the Reflex so if a 5V external reference is used the output will start to clip at around +/- 4.9V or +/- 4.8V depending on the load.
- Form factor (see tutorial section for pin descriptions):
- Dimensions: 44.5 mm x 33 mm
- Mounting holes: 3.5 mm diameter
- Pin headers: 2.54 mm spacing