¿Cómo obtener los valores de resistencia de AD8403 (digPot) programáticamente?

0

Estoy usando Arduino para controlar un potenciómetro digital a través de SPI. Puedo configurar los valores de resistencia, pero me pregunto,
1- ¿Puedo leer el valor de resistencia también a través de la misma interfaz SPI?
Aquí está la hoja de datos de AD8403 . Lo he revisado pero no pude encontrar información relacionada. También hay un pin SDO en AD8403 que creo que es para conexión en cadena.

2- En realidad estoy usando una aplicación Java para enviar los valores de resistencia a arduino y luego a AD8403. Quiero saber si los valores son establecidos . Por lo tanto, puedo responder a Java que Arduino envió el comando al potenciómetro digital O puedo buscar directamente los valores del potenciómetro digital y tener la arduino responde a java que "Sí, le pregunté a AD8403 y está configurado en los valores deseados". ¿No es este segundo enfoque más robusto? ¿Cuál es el estándar en la industria aquí?

    

2 respuestas

1

El pin SDO en estos dispositivos es solo para conexión en cadena, son de solo escritura.

Lo mejor que puede hacer con este IC es leer el pin SDO simultáneamente a través de SPI, y le dirá que al menos la parte de entrada de datos está funcionando. Pero no puede leer lo que realmente está en los registros individuales. Saber que los datos se transfieren le da mucha confianza de que el IC está funcionando, pero no al 100%.

Puede haber otros tipos de Digi-pot que puede leer de nuevo los registros de resistencias sobre SPI. Sin embargo, leer de nuevo los registros de potes no le dará un 100% de confianza de que el IC está presentando la resistencia correcta en sus terminales.

Tenga en cuenta qué tipo de fallas tienden a ocurrirle a los circuitos integrados, es muy inusual que se desarrolle una falla interna, es mucho más probable que haya una tensión de voltaje en los pines que matan la E / S. Si su Digi-pot IC hubiera pasado su prueba funcional (e incluso leer los registros de datos de la resistencia en sí mismos es inadecuado para esto, la prueba funcional tendría que asegurarse de que las resistencias funcionaran), y luego leer los datos de paso desde la entrada la lógica verifica que el chip tiene poder, su registro de entrada se está comportando y, por lo tanto, es muy probable que el resto esté funcionando.

La lectura de registros individuales es importante para depurar el software del controlador y para verificar la sincronización de los datos entre el controlador y sus periféricos. Se podría argumentar que una vez que el software está funcionando, esta prueba se vuelve menos relevante. Sin embargo, hace posible la prueba automática de regresión del software, que es más o menos importante dependiendo de su industria, aeroespacial o reproductores de medios, respectivamente.

    
respondido por el Neil_UK
1

He usado algunos de estos, y si miras en la página 3, encontrarás esta declaración:

El pin de reinicio (RS) obliga a que el limpiador alcance la escala media al cargar 80H en el pestillo VR.

Por lo tanto, siempre que esté generando un pulso de reinicio al inicio, la condición inicial siempre se conoce.

Para las aplicaciones críticas, normalmente almaceno el voltaje de un divisor (del cual este digipot formaría parte de la mayoría de las aplicaciones) y lo ejecuto a un ADC donde puedo leer el voltaje resultante; eso me permite saber que el limpiador ha alcanzado la posición solicitada.

Tenga en cuenta que lo primero que suelo hacer en estas aplicaciones es leer el voltaje de restablecimiento (lo que me da cierta confianza de que el potenciómetro y otros circuitos funcionan correctamente).

A veces necesito escalar el voltaje para cumplir con los requisitos de entrada del ADC.

    
respondido por el Peter Smith

Lea otras preguntas en las etiquetas