Leer pin analogico, y recuperarlo con MCP4922

buenos dias!, disculpen necesito leer un sensor, bueno varios, pero en este caso solo 1, por el pin A0, y procesar la señal pero antes de agregar las operaciones me gustaría ver de forma directa la señal, y recuperarla con ayuda del chip mcp4922 el cual funciona por SPI

encontre este codigo de prueba donde tu generas la señal, pero necesito tomarla del puerto Analogico y desplegarla. les agradecere mucho su ayuda

  MCP4922 test
  connections
  ====================================================
  
  +5v           > 4922 pin 1
  Ard pin 10    > 4922 pin 3   (SS - slave select)
  Ard pin 13    > 4922 pin 4   (SCK - clock)
  Ard pin 11    > 4922 pin 5   (MOSI - data out)
  Ground        > 4922 pin 8   (LDAC)
  +5v           > 4922 pin 11  (voltage ref DAC B)
  Ground        > 4922 pin 12
  +5v           > 4922 pin 13  (voltage ref DAC A)
  4922 pin 14 DAC A > 1k resistor > synth CV in
  
 */
 

// MCP4922 DAC out
#define DATAOUT 11//MOSI
#define DATAIN 12//MISO - not used, but part of builtin SPI
#define SPICLOCK  13//sck
#define SLAVESELECT0 10//ss

int i = 0;

void setup() {
  SPI_setup();
 // Serial.begin(9600);
}

void loop() {
 //i++;
 //Serial.println(i);
 write_note(0);
 write_note(1023);
 write_note(2048);
 write_note(2049);
// if(i>=4096) {
 // i=0; 
// }
}

void write_note(int i) {
  write_valueDACA(i);
 //write_valueDACB(i);
}




// **************************************************
// SPI for DAC

void SPI_setup(){

  byte clr;
  pinMode(DATAOUT, OUTPUT);
  pinMode(SPICLOCK,OUTPUT);
  pinMode(SLAVESELECT0,OUTPUT);
  digitalWrite(SLAVESELECT0,HIGH); //disable device

  SPCR = (1<<SPE)|(1<<MSTR) | (0<<SPR1) | (0<<SPR0);
  clr=SPSR;
  clr=SPDR;
  delay(10);
}

// write out through DAC A
void write_valueDACA(int sample)
{
  // splits int sample in to two bytes
  byte dacSPI0 = 0;
  byte dacSPI1 = 0;
  dacSPI0 = (sample >> 8) & 0x00FF; //byte0 = takes bit 15 - 12
  dacSPI0 |= (1 << 7);    // A/B: DACa or DACb - Forces 7th bit  of    x to be 1. all other bits left alone.
  dacSPI0 |= 0x10;
  dacSPI1 = sample & 0x00FF; //byte1 = takes bit 11 - 0
  dacSPI0 |= (1<<5);  // set gain of 1
  digitalWrite(SLAVESELECT0,LOW);
  SPDR = dacSPI0;        // Start the transmission
  while (!(SPSR & (1<<SPIF)))     // Wait the end of the transmission
  {
  };

  SPDR = dacSPI1;
  while (!(SPSR & (1<<SPIF)))     // Wait the end of the transmission
  {
  };
  digitalWrite(SLAVESELECT0,HIGH);
  //delay(2);
}

// write out through DAC B
void write_valueDACB(int sample)
{
  // splits int sample in to two bytes
  byte dacSPI0 = 0;
  byte dacSPI1 = 0;
  dacSPI0 = (sample >> 8) & 0x00FF; //byte0 = takes bit 15 - 12
  dacSPI0 |= 0x10;
  
  dacSPI1 = sample & 0x00FF; //byte1 = takes bit 11 - 0
  dacSPI0 |= (1<<5);  // set gain of 1
  
  digitalWrite(SLAVESELECT0,LOW);
  SPDR = dacSPI0;       // Start the transmission
  while (!(SPSR & (1<<SPIF)))     // Wait the end of the transmission
  {
  };


  SPDR = dacSPI1;
  while (!(SPSR & (1<<SPIF)))     // Wait the end of the transmission
  {
  };
  digitalWrite(SLAVESELECT0,HIGH);
  //delay(2);
}

Y la hoja de datos del mcp4922? como para entender porque lo necesitas y asi tener mejor idea de que hacer?

hola buenas tardes, el mcp 4922 es un DAC convertidor digital analogico, el cual por el protocolo SPI y sus 3 pines mosi, ss, sck recibe informacion de la salidas digitales, y las puedes ver de forma analogica con un osciloscopio, u aparato para mediciones de este tipo

adjunto la hoja de datos del DAC mcp 4922.

en el codigo que puse, se genera una señal que se envia por los pines SPI de forma digital, de tal forma que se convierte a analogico de nuevo, ya pude visualizar la señal generada correctamente pero
mi duda es ahora con una recibida del puerto analogico

Hoja de datos

Que quieres decir con desplegarla?

Generas 0, lees con el AD0 analogRead(A0) pero en 1024 pasos o sea 10 bits. Tarda 100 useg
Generas 1023 lo mismo, idem
Generas 2048 lo mismo, idem
Generas 2049 lo mismo, idem

void loop() {
 
 write_note(0);
 valor = analogRead(A0);
 write_note(1023);
 valor = analogRead(A0);
 write_note(2048);
 valor = analogRead(A0);
 write_note(2049);
 valor = analogRead(A0);
}

Que quieres hacer con valor, tal vez enviarlo al puerto serie, no lo se.