Arduino due e DAC

Sto cercando di utilizzare il DAC arduino per creare una tensione da utilizzare con VREF per un amplificatore.
Però

int sample;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  
  analogWriteResolution(12);  // set the analog output resolution to 12 bit (4096 levels)
  analogReadResolution(12);   // set the analog input resolution to 12 bit 

 }

void loop() {
  // put your main code here, to run repeatedly: 
  for (int i=0; i<4096; i++)  
  {
    analogWrite(DAC0, i);
    sample = analogRead(A0);
    delay(2000);
    Serial.print(i);
    Serial.print("\t");
    Serial.println(sample);
  }
  delay(1000);
}

sia leggendo il valore in uscita dal DAC con lo stesso arduino che utilizzando un multimetro
ho notato che il valore in uscita dal DAC non parte da 0 ma da circa 500 mv.
E' normale oppure c'è qualcosa di sbagliato nel codice ?

gcam

La variabile i è indefinita se commenti il ciclo for.
Aggiungi

int i = 0;

il commento non doveva asserci.

Eseguito test sul DAC dell'arduino DUE. Risultati identici sia per DAC0 e DAC1

Si tratta di bug?

il bug a cui mi riferisco è il valore in uscita dal dac, che come si vede dalla figura non va da 0 a 3300 mv, ma il valore minimo parte da oltre 500 mv.

quindi non è possibile settare un'uscita esempio di 412 mv o un valore inferiore.

gcam

Dovresti controllare nel datasheet del Sam le impostazioni e le caratteristiche del DAC. (pag. 1367 e seguenti Smart | Connected | Secure | Microchip Technology)

Non è un bug è normale che sia così. Nel datasheet del SAM3X sono documentate tutte le caratteristiche del DAC. Cerca nella sezione delle caratteristiche elettriche.