Forzar el estado de la entrada digital flotante a un nivel particular

-1

Dado: un microcontrolador en el paquete QFP. Un pin se configura como entrada digital, sin pullups / pulldowns. El pin físico no está conectado a ninguna otra cosa, además del pad en PCB.

¿Hay alguna forma de forzar el estado de la entrada digital (alta / baja) sin tocar físicamente el pin? ¿Campo electrostático? ¿Calentando el IC para aumentar la corriente de fuga en diodos de sujeción?

Para aquellos que se preguntan por qué: suponga que está trabajando en un sistema complejo. En la revisión anterior de HW, había un botón + resistencia de activación / extracción. El botón y la resistencia se eliminaron en la próxima revisión de hardware. El equipo de firmware no eliminó el código que estaba procesando la entrada, simplemente inicializó el sistema al estado deseado. Debido a que el software aún reaccionó al presionar un botón largo (no solo subiendo / bajando el borde) y no tenía suficiente registro, esto llevó a problemas muy difíciles de depurar en el futuro (requiriendo varias semanas de depuración para encontrar la causa).

Lo que estoy buscando es una prueba relativamente rápida para ver si no hay una reacción del software a los pines de entrada "supuestamente no utilizados" que cambian de estado. Auditar el software completo que se ejecuta en la MCU no es una tarea trivial (> 1M LOC).

    
pregunta fest

2 respuestas

1

Si no puede auditar el software, debe modificar una copia del hardware para realizar pruebas conectando ese pin a un controlador externo. Puede hacerlo con un alambre fino bajo un microscopio de soldadura, especialmente si es solo un pin y no varios adyacentes. Con cuidado, incluso puede soldar la metalización lateral de un QFN, pero su QFP será mucho más fácil.

También puede sostener manualmente una sonda de inyección en posición durante una prueba de duración más corta.

Y podría hacer una revisión de hardware personalizada que otorga un acceso más fácil.

Pero esto realmente está haciendo las cosas de la manera incorrecta. Dado el código fuente, debería ser bastante fácil automáticamente identificar los puntos donde se accede a I / O y luego revisar manualmente esas secciones de código. Si el código usa funciones de biblioteca para E / S, incluso podría escribir versiones filtradas que forzaron el estado reportado de las entradas "no utilizadas" en una revisión de hardware. Si no utiliza bibliotecas, al menos debería usar estructuras o definiciones para los registros.

Si solo tiene los binarios para su programa, o si tiene un código lleno de direcciones de registro de hardware codificadas, tiene problemas de organización más allá de una solución simple.

    
respondido por el Chris Stratton
0

Este es un problema difícil: si no puedes tocar físicamente el pin, tus opciones son bastante limitadas. Y parece que tampoco se puede modificar el software. No sé cuáles son sus capacidades de depuración, pero ¿puede ejecutar el SW / FW en algún tipo de modo de depuración y configurar una bandera o punto de interrupción si el pin cambia de estado?

si desea calentar / enfriar, es probable que tenga que salir de las especificaciones de la MCU para que ocurra algo, ya que está diseñado para que las entradas funcionen normalmente dentro de su rango de temperatura especificado. Eso podría dañar a otras partes o al MCU en sí. Incluso entonces parece improbable y poco fiable.

Parece poco probable que el pin QFN tenga suficiente hierro / níquel / etc en el interior para ser de alguna utilidad con un campo magnético. Tal vez, como supuso, algún tipo de campo electrostático podría tener un impacto, pero probablemente necesitaría uno muy grande, y se arriesgaría a golpear el tablero con un golpe de ESD.

    
respondido por el G. Gross

Lea otras preguntas en las etiquetas