Cómo comunicarse mínimamente con un ADC ADS131E04 a través de SPI

0

He comprado algunos ADC de enlace y no puedo escucharlos a través del SPI.

Estoy colocando el ADC en un zócalo TQFP y conecto las señales PWDN, RESET, SCLK, CS, DIN y DOUT a los pines correspondientes de un microcontrolist Arduino Due (3.3V). También estoy alimentando a través de DVDD y conectando a tierra a través de DGND. Esto debería ser suficiente para que lea un registro para que pueda ver que la comunicación SPI con el ADC está funcionando. Lamentablemente no tengo noticias del chip. La solicitud de registro de lectura SPI se envía al ADC pero el chip no responde. He intentado casi todo, incluida la generación manual de la forma de onda SPI. Estoy comprobando todo con un alcance y un analizador lógico. Simplemente no sé cómo hacer que esto funcione.

Edit 1: Gracias a todos por dar sugerencias. Hoy he rehecho todo el cableado y me aseguré de que el encendido esté bien. Medí VCAP1 y llego a aprox. 1.3 V, por lo que el encendido analógico está bien. Revisé todos los requisitos de CLK y SCLK y parecen estar bien. Esta es una captura de pantalla del analizador lógico:

    
pregunta major4x

2 respuestas

1

¿Está enviando una transferencia adicional para permitir que la parte envíe los datos? El protocolo SPI no permite que el dispositivo esclavo envíe datos de vuelta sin que el maestro envíe los relojes necesarios. Para enviar estos relojes, necesita enviar otra transferencia. El proceso es así:

  • El maestro selecciona un esclavo (~ CS baja)
  • El maestro envía una solicitud de datos al esclavo (relojes MOSI- > DIN, SCLK).
  • Cuando se completa la transferencia, el esclavo decodifica la solicitud y coloca los datos en su búfer de transmisión.
  • El maestro envía un byte "ficticio" de datos al esclavo (relojes MOSI- > DIN, SCLK).
  • Durante esa transferencia "ficticia", el esclavo devuelve los datos solicitados al maestro (DOUT- > MISO).
  • El maestro elimina los datos de su búfer de recepción y libera el esclavo (~ CS va alto).

Sospecho que te estás perdiendo esa cuarta operación.

    
respondido por el Mark
0

Lo tengo funcionando. Gracias a todos. Editaré esta respuesta cuando averigüe qué hice mal, por lo que es útil para otras personas.

    
respondido por el major4x

Lea otras preguntas en las etiquetas