SPI DAC no cambia desde el valor inicial

0

He escrito un programa de prueba que genera 255 en el DAC TLV5606 a través de SPI, todo lo cual funciona como se esperaba.

Luego intenté extender el programa para actualizar el valor a 512, luego de un retraso de 5 segundos.

#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 = 255;

    value = value << 2;
    uint16_t final = fixed | value;


    spi.format(16,1);
    spi.frequency(100000);



    fs = 1;

    fs = 0;

    spi.write(final);



    fs = 1;

    wait(5000);



    value = 512;
    value = value << 2;
    final = fixed | value;

    fs = 0;

    spi.write(final);



    fs = 1;





}

Al medir con mi osciloscopio, puedo ver que el voltaje inicial es ~ 1.01v, que se espera, sin embargo, no hay cambios posteriores, después de 5 segundos o más. Intenté traer fs alto y luego bajo otra vez también, y esto no hizo ninguna diferencia. ¿Alguna idea sobre lo que está pasando?

Esto es lo que muestra el alcance para la primera transmisión (fs y datos):

    
pregunta 19172281

0 respuestas

Lea otras preguntas en las etiquetas