Problemas con la comunicación con un AD5292

0

Tengo un AD5292 conectado a un SPI del puerto D de ATXMEGA y se supone que debo comunicarme con él. Por desgracia, no reacciona a mis comandos.

(En lugar de una resistencia de pullup "real", activé los pullups internos de ATXmega, pero a bajas velocidades (alrededor de 500 kHz), al menos parece que funciona.)

Según su hoja de datos , se supone que debo tener CPOL = 0, CPHA = 1, lo que significa el modo SPI 1. Al probar los modos 0 y 2, obtengo los datos que puse atrás, pero cambiados en 1 bit. Los modos 1 y 3 me dan los mismos datos que coloqué.

Como se dijo, obtengo los mismos datos del dispositivo que le envié, incluso si emito comandos de lectura (lea el registro RDAC, lea la memoria, lea el registro de estado) y el dispositivo ignora mis solicitudes para cambiar la resistencia . Así que parece ignorar los comandos todos .

Ya tengo la idea de que hago algo mal con la línea SYNC / CS, pero si omito esa línea, el dispositivo solo me devuelve 0 bits, así que probablemente la línea SYNC también se active correctamente.

Además de los problemas de comunicación, observo que el dispositivo mantiene constantemente el pin RDY BAJO.

Estos dos problemas probablemente están relacionados entre sí. Creo que si soluciono el problema de la línea RDY, el otro también desaparece. (Resp .: si soluciono su causa raíz común, ambos son g0one). Pero no puedo entender por qué el dispositivo mantendría el RDY bajo todo el tiempo.

¿Alguno de ustedes tuvo el mismo problema?

    
pregunta glglgl

1 respuesta

2

Inicialmente tuve un gran problema con estos y resultó que no respetaba lo suficiente el retraso de 2 milisegundos después de encender / reiniciar, antes de enviar el primer comando. El chip lo ignora si envía los comandos de configuración (0x1803, etc.) demasiado pronto después del encendido. Vea tPOWER-UP en la tabla 7 de la hoja de datos.

    
respondido por el B.J.

Lea otras preguntas en las etiquetas