Estoy intentando conectar el TLV5606 con un mbed a través de SPI.
Las conexiones que he hecho son las siguientes:
Nota: mbed se alimenta desde la misma fuente de 5V.
HemodificadoelmbedSPIhelloworldprorgam:
#include"mbed.h"
SPI spi(p5, p6, p7); // mosi, miso, sclk
DigitalOut fs(p8);
int main() {
fs = 0;
uint16_t fixed = 0x4000;
uint16_t value = 1024;
value = value - 1 << 2;
uint16_t final = fixed | value;
spi.format(16,1);
spi.frequency(1000000);
fs = 1;
fs = 0;
spi.write(final);
fs = 1;
}
Los primeros 4 bits (desde la izquierda) deben ser 0100, y los últimos 2 bits, 00. El valor de 10 bits se encuentra entre. Esto se explica en la hoja de datos ( enlace ).
He usado el patrón de bits 0x4000, y XOR lo hice con el valor de 10 bits, que se desplaza en dos. Esto debería resultar en un patrón de bits aceptado por el DAC.
Al principio, OUT, según lo medido por el voltímetro es de alrededor de 9mv (generalmente -9mv). Después de entre 5 y 20 segundos (aprox.), El voltaje aumenta a aproximadamente 1.6v, y una vez a 3.3v. Con un valor de 1024, se esperaría un valor cercano a 3.3v (la referencia). En ocasiones, el 1.6v aumenta hasta alrededor de 3.3v después de unos minutos. Además, después de haber aumentado a 1.6v o 3.3v, el voltaje a menudo bajará a 9mv después de algún tiempo.
Debo mencionar que no he usado un condensador en este circuito, aunque no creo que sea necesario probar la funcionalidad básica.
¿Alguna idea sobre qué está mal?