Pulsador de MCU activado por descargas electrostáticas

2

En un proyecto simple basado en un microcontrolador STM32, necesitaba un par de botones adicionales. Así que conecté cada botón entre un pin en el STM32 y GND, configuré los pines como entrada y activé las resistencias de pull-up internas.

Parecía funcionar bien al principio. Al presionar el botón se tira del pin a GND y se dispara una interrupción. Pero pronto surgió un problema, que era que la configuración era extremadamente sensible a las descargas electrostáticas cercanas. Si tocara una pieza de metal a varios pies de distancia, las interrupciones se dispararían.

El STM32 está en una placa de demostración Discovery que tiene un botón pulsador. Ese botón no tiene el problema, así que busqué el esquema (incluido a continuación).

Así que hay 3 resistencias, una tapa y conexiones tanto para VCC como para GND (y quizás también se usa el pull-up interno).

¿Tendré que agregar todo eso para que mis botones sean confiables? Si no es así, ¿qué circuito necesito? ¿Cuál es la razón por la que la resistencia interna no es suficiente para filtrar el ruido de las descargas electrostáticas cercanas?

Actualización1:

Heverificadoquelasresistenciasinternasdepull-upestánactivas.Silosinhabilito,losbotonessedisparanaleatoriamentecadapocossegundos.Paraactivarlospull-ups,uso:

GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;

Yparadeshabilitarlos:

GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;

Actualización2:

Cambiémicircuitodepulsadorparaquecoincidaconelesquema(conR20yC22eliminados,R22reemplazadoconcable)ydeshabilitéelpull-upinterno.Nonocambiólasensibilidadalasdescargaselectrostáticas.

Actualización3:

ResultaqueestabausandoelesquemaparalaplacaDiscoveryincorrecta.Heincluidoelcorrectoacontinuación.Estenuevotienetodosloscomponentesinstaladosyesmuyprobablequeelcircuitoresuelvalosproblemasdeactivaciónaleatoria.

    
pregunta Roger Dahl

1 respuesta

2

Parece que la resistencia de pull-up interna no funciona. Es posible que el código haya acumulado un error o que el pull-up esté dañado.

Prueba una resistencia de pull-up externa.

El diagrama del botón de la placa de descubrimiento muestra:

  • R22 es 0Ω, y no está haciendo nada
  • R21 es un desplegable, en lugar de un desplegable, por lo que es necesario
  • Condensador C22 como "N / A", que en los esquemas de ST a menudo significa la parte no está equipado.
  • R20: si C22 no está instalado, no hace nada.

Entonces, una resistencia + interruptor es equivalente.

Editar:
El ruido, que activa los otros pines no utilizados que no tienen un estado definido podría ser una explicación para la activación relativamente frecuente y aleatoria.

Mirando tu foto del proyecto en github , veo que hay energía principal cerca. El ruido puede venir de ese camino.

En general, es una buena práctica asegurarse de que todos los pines no utilizados estén en un estado conocido de todos modos. De lo contrario, los pines podrían activarse, o incluso ir a un "estado medio" donde uno, o incluso ambos de los transistores MOSFET complementarios conducen en la región "análoga", causando calor excesivo.

No dice cuáles son las cargas principales, pero pueden asegurar la estabilidad de los pasadores, al excluir el ruido, incluso más.

Establezca las clavijas no utilizadas, que aún no están conectadas a tierra o energía, a un estado conocido mediante las resistencias internas desplegables o elevadoras. Déjalos como entradas. Tenga cuidado de no hacer esto para los pines ya atados a señales, tierra o energía.

Puede comenzar con cualquier pin no utilizado que dispare la misma interrupción que está utilizando.

(También podría considerar manejar diferentes interrupciones de pin para ver si está afectando a más de la MCU. Por ejemplo, puede configurar un LED si cualquiera de los pines no utilizados se dispara. Esto no es una solución, pero es solo para ayudar a una investigación o análisis.)

Intente asegurarse de que esta configuración de pines deliberada esté resaltada / documentada para que los cambios futuros en el sistema no causen que ningún pin entre en conflicto con estas configuraciones de pull-up / down.

También ...
También podría valer la pena realizar una prueba en la que la placa de solenoide y la alimentación de red se eliminen por completo de las proximidades de la placa Discovery, ante la pequeña posibilidad de que se produzca ruido a través de esa placa. Por ejemplo, puede haber un bucle de tierra.

    
respondido por el gbulmer

Lea otras preguntas en las etiquetas