I am working with a DAC that requires 4 bits of setup data, then a 12 bit value for the analog output. Here is the code I have right now:
int CS = 2;
int SCK = 3;
int SDI = 4;
int LDAC = 5;void setup(){
// Setup input and output modes
pinMode(CS, OUTPUT);
pinMode(SCK, OUTPUT);
pinMode(SDI, OUTPUT);
pinMode(LDAC, OUTPUT);
digitalWrite(CS, HIGH);
digitalWrite(LDAC, HIGH);}
void loop(){
digitalWrite(CS, LOW);
digitalWrite(LDAC, HIGH);
shiftOut(SDI, SCK, LSBFIRST, 0010);
shiftOut(SDI, SCK, LSBFIRST, 4095);
digitalWrite(CS, HIGH);
digitalWrite(LDAC, LOW);
digitalWrite(LDAC, HIGH);delay(1000);
digitalWrite(CS, LOW);
digitalWrite(LDAC, HIGH);
shiftOut(SDI, SCK, LSBFIRST, 0010);
shiftOut(SDI, SCK, LSBFIRST, 0);
digitalWrite(CS, HIGH);
digitalWrite(LDAC, LOW);
digitalWrite(LDAC, HIGH);delay(1000);
}
Right now this will only output .255 volts. Also, if I start with a value of 1 and step up, the output does not increase as would be expected. I am a little lost here and I am hoping to do this without going to SPI.
Thanks,
Ryan