Muchos de los micros Renesas tienen soporte incorporado para precargar o descargar la tapa de muestreo en las entradas analógicas para poder detectar cuando el circuito externo está desconectado. En la imagen de muestra, cuando el circuito de entrada analógica usa una resistencia pullup, puede precargar la tapa y, si el circuito externo está desconectado, la señal de entrada permanecerá alta. Se puede hacer algo similar descargando la tapa si el circuito de entrada usa una resistencia desplegable. Ambos asumen que el circuito está interrumpido en la "X" negra.
¿Hay alguna forma de detectar cuándo se interrumpe el circuito de entrada analógica en la "X" roja? ¿Es posible detectar un pin de entrada analógica flotante o abierto?
Si ayuda, el port.pin en cuestión se puede reconfigurar como una E/S digital para hacer [cosas] y volver a una entrada analógica.
Solución (en caso de que te lo estés preguntando...)
La siguiente imagen muestra un circuito de muestra utilizado en la aplicación. Vdd es una fuente no regulada que es considerablemente más alta de lo que el micro espera ver. Vcc es una fuente regulada que también es la fuente de voltaje para el motor A2D en el micro. El sensor es un dispositivo resistivo.
La falla que se estaba induciendo en el circuito que se esperaba que encontrara el software era la eliminación de la resistencia que se muestra en rojo. La razón por la que la precarga no funcionó es que el capacitor externo era lo suficientemente grande como para evitar que el capacitor de muestreo A2D se cargara lo suficiente; su tiempo máximo de carga es de 15 ciclos de reloj y el reloj es de 50 MHz (300 nseg.)
El código fue modificado para realizar una "precarga" manualmente. Para probar si el pin de entrada analógica está abierto, el pin se reconfiguró como una salida digital, se puso alto, luego se reconfiguró como una entrada analógica y se leyó después de un retraso muy breve. Este valor A2D podría usarse para determinar si la resistencia roja estaba presente o ausente.
Ignacio Vázquez-Abrams
Nick Alexeev
osterwal
Nick Alexeev
osterwal