AD7616 El pin REFCAP no genera 4V

1

He diseñado una placa con un chip AD7616 , conectado a un microcontrolador. El chip AD7616 está configurado en modo de software y con interfaz SPI (un cable MISO y un cable MOSI). He leído toda la hoja de datos y creo que las conexiones están bien. Este es mi esquema:

Estos son mis hallazgos:

1. SPI no funciona
El primer problema que encuentro es la conexión SPI no funcional. Intento escribir CONFIGURATION_REG en la dirección 0b00010, y leerlo nuevamente para verificar si el valor realmente cambió. Sólo leo ceros. El pin MISO (master in, slave out) permanece bajo. En resumen, la conexión SPI no funciona. He comprobado las señales con mi osciloscopio. El microcontrolador produce las formas de onda esperadas. El AD7616 sigue muerto.

2. Todas las fuentes de alimentación están conectadas
He comprobado la presencia de 3.3V y 5V en todos los pines de alimentación del AD7616. Las fuentes de alimentación al chip están bien. Por lo tanto, el problema no está relacionado con niveles de potencia erróneos o faltantes.

3. Sin voltaje en el pin REFCAP
Todos los pines siguientes deben tener un voltaje específico: REFCAP, REFINOUT, REGCAPD y REGCAP. Todos están bien, excepto el REFCAP. Este pin debe generar 4.096V, pero no mido ningún voltaje.

¿Qué podría estar mal?

    
pregunta K.Mulier

2 respuestas

1

Por lo que veo, siempre solo que los suministros son correctos y que REFSEL es alto, debe obtener ~ 4.096V en REFCAP.

Verifique que REFSEL sea realmente alto (en el lado AD7616 de R24) y verifique que no haya cortos a tierra en REFCAP. Puede hacerlo midiendo la resistencia en los condensadores REFCAP con la alimentación apagada.

Suponiendo que los suministros estén bien, entonces el chip debe estar defectuoso. Yo diría que las posibilidades son bastante buenas, hay un poco de algún tipo.

En cuanto a sus otros problemas, ese tipo de cosas suele estar relacionado con el tiempo. Puede solucionar problemas agregando retrasos en todas partes. Asegúrese de estar en el modo SPI correcto (un problema común). Las resistencias de 1K agregarán algo de demora, así que ralentice el reloj SPI para la prueba.

    
respondido por el Spehro Pefhany
1

El problema estaba relacionado con la secuencia de inicio (muchas gracias al Sr. Scott Seidman por señalarlo en el chat). La secuencia de inicio para el AD7616 se puede encontrar en la hoja de datos en la página 30:

Así es como implemento prácticamente la secuencia de inicio:

    /*
     * Startup sequence of AD7616 adc-chip and
     * mbed-os SPI settings for communication with
     * AD7616 adc-chip.
     */
    void ad7616_spi_init()
    {
        // Disable the SPI cs
        cs.write(1);

        // Startup the ADC chip
        reset.write(0);
        Thread::wait(2);  // Wait 2ms (minimum would be 1ms)
        reset.write(1);
        Thread::wait(1);  // Wait 1ms (minimum would be 240us)

        // Format SPI channels
        spi.format(16,2);
        spi.frequency(SPI_FREQUENCY);

        // Attach function pointers
        spi_compl_int_p.attach(spi_compl_int);
    }

Como lo señaló el Sr. Scott Seidman en el chat, también tuve que prestar más atención a los horarios SPI, ver Fig 6 en la página 9.
¡Ahora todo funciona!

    
respondido por el K.Mulier

Lea otras preguntas en las etiquetas