problema: comunicazione seriale e spi

Buonasera a tutti,

Sto svolgendo un progetto con Arduino DUE che prevede la comunicazione seriale con un DAC esterno a 16-bit, il componente è il AD5570http://www.analog.com/media/en/technical-documentation/data-sheets/AD5570.pdf.

Sono nuovo nel mondo di Arduino ma ho letto che il DUE utilizza i sei pin “centrali” per la comunicazione SPI, quindi ho collegato il pin SCLK del DAC al pin SCK del connettore SPI, mentre al pin SDIN del DAC ho collegato il pin MOSI del connettore SPI. Infine il pin SYNC l’ho collegato al pin 10 del DUE e il pin LDAC al 34 della board.

Ho utilizzato questo codice per testare un valore costante in uscita da me determinato tramite seriale:

#include <SPI.h>

float DAC_CODE;
unsigned int D_INPUT;                 //Segnale in ingresso 
const int V_ref = 5;              //riferimento del DAC
long LEVEL = 65536;           //2^16 livelli dell'uscita (16 bit DAC)

const int pinSYNC_DAC = 10;
const int pinLDAC = 34;

void setup() {
  
  pinMode(pinSYNC_DAC,OUTPUT);
  pinMode(pinLDAC,OUTPUT);

  digitalWrite(pinLDAC,LOW);
  pinMode(pinSYNC_DAC,HIGH);
  
  SPI.begin(pinSYNC_DAC);
  SPI.setBitOrder(MSBFIRST);
  SPI.setClockDivider(pinSYNC_DAC,21);       
  SPI.setDataMode(pinSYNC_DAC,SPI_MODE1);
  Serial.begin(115200);
}

void loop() {
  if (Serial.available()!=0){
    DAC_CODE = Serial.parseFloat() ;
    Serial.print("Tensione scelta: ");
    Serial.println(DAC_CODE,DEC);
    D_INPUT = ((DAC_CODE + 2* V_ref)*LEVEL)/(4*V_ref);         
    Serial.println(D_INPUT);
    delay(1000);
    if(D_INPUT>=LEVEL){
      D_INPUT=LEVEL;}
    byte msg2=(byte)D_INPUT;
    byte msg1=(byte)(D_INPUT>>8);
    msg1=msg1 | 0b01010000;
    digitalWrite(pinSYNC_DAC,LOW);                                  
    SPI.transfer(pinSYNC_DAC, msg1, SPI_CONTINUE);
    SPI.transfer(pinSYNC_DAC, msg2, SPI_LAST);
    delay(4000);
   
    }
}

Tuttavia misurando con un tester l’uscita Vout, questa rimane circa a 0 e rimane costante indipendentemente da quello che inserisco sul monitor seriale. Per caso ho omesso qualcosa nel codice? Oppure ho omesso qualche collegamento tra DAC e Arduino DUE?

Vi ringrazio!