Question about ad5592r DAC output

Hello,

we are using Arduino UNO to control AD5592R, output a range of voltages. 

We want to know how long it takes the DAC to set and achieve its output voltage.

#include <libad5592r.h>
ad5592r_t ad5592r;

const int pin = PB0;

void setup() {
  //DDRB |= (1 << pin);
  Serial.begin(2000000);
  ad5592r_init(&ad5592r);
  ad5592r_reset(&ad5592r);
  ad5592r_setup_source_ref_set(&ad5592r, AD5592R_VREF_SOURCE_INTERNAL);
  ad5592r_setup_double_vref_set(&ad5592r, true); 
  ad5592r_setup_supply_voltage_mV(&ad5592r, 5000);
  
  ad5592r_setup_dac(&ad5592r, AD5592R_IO(1));
  /**  
  noInterrupts(); //disable all interrupts
  TCCR1A = 0;
  TCCR1B  = 0;
  TCNT1 = 0;
  OCR1A = 26;  //compare match register 16MHz/256/2Hz
  TCCR1B |= (1 << WGM12);   //CTC mode
  TCCR1B |= (1 << CS10);    //256 prescaler
  TIMSK1 |= (1 << OCIE1A); //enable timer compare interrupt
  interrupts(); //enable all interrupts**/
  ad5592r_dac_voltage_set_mV(&ad5592r, AD5592R_IO(1), 0);
}

ISR(TIMER1_COMPA_vect)  //timer compare interrupt servicec routine
{
  //PORTB ^= 1<<pin;
}

void loop() {
  PORTB |= 1<<pin;
  delayMicroseconds(100);
  PORTB &= ~(1<<pin); 
    //output sinewave on ad5592r
  //ad5592r_dac_voltage_set_mV(&ad5592r, AD5592R_IO(1), 0);
  ad5592r_dac_voltage_set_mV(&ad5592r, AD5592R_IO(1), 1000);
  ad5592r_dac_voltage_set_mV(&ad5592r, AD5592R_IO(1), 0);
  
  delay(5);
  // put your main code here, to run repeatedly:

}

The result came out by our testing using file is 64µs, but this data is not mentioned in the AD5592R data sheet.

And we also want to know is it possible for the timing to be shorter then 64µs.

Thank you.

  • 0
    •  Analog Employees 
    on May 25, 2020 5:24 AM

    The slew rate and settling time of the DAC is mentioned in AC Specifications on Page 5 of the datasheet.

    Based on the slew rate of the DAC, the DAC output will change from 0V - 2.5V in less than 3us.

    Care need to be taken on the resistive and capacitive load of the DAC to ensure faster settling time.