Múltiples interruptores para múltiples entradas: ¿qué tipo de diodo?

Tengo seis botones en un microcontrolador en seis pines IO. Tengo un séptimo pin que actúa como una interrupción y activa el microcontrolador, que siempre está dormido hasta que se presiona un botón (esto es para un control remoto). ¿Es este circuito una forma legítima de hacerlo para que presionar cualquiera de los botones active el microcontrolador y qué tipo de diodo (Schottky, Zener, conmutación, rectificador) debo usar?

Pensé en hacer interruptores SPDT pero son mucho más caros que los diodos SMT.

circuito de microcontrolador simple con seis botones y una interrupción

En los microcontroladores con los que estoy familiarizado, todo el puerto (D0-D7) se puede configurar para interrumpir. Por lo tanto, los diodos y el pin de interrupción separado no son necesarios.

Respuestas (1)

Como las señales de entrada provienen de botones pulsadores operados manualmente, las velocidades de conmutación requeridas no son muy altas. presumiblemente, cualquier antirrebote se solucionará en el software.

El circuito:

  • Agregar una resistencia desplegable débil (quizás de 10K) al pin 19 ayudaría: al presionar un botón, se encenderá el diodo, la línea se elevará, pero no hay nada para bajar la línea cuando se suelta el botón. Por lo tanto, llevará tiempo volver al nivel bajo si la entrada es de alta impedancia.
  • Dependiendo de la longitud del cable/traza a los botones y diodos del microcontrolador, los condensadores en las entradas pueden ser útiles para evitar cualquier ESD que capten las líneas, evitando activaciones falsas.
  • Dependiendo de la MCU utilizada, los pull-ups / pull-downs débiles programables internos pueden estar disponibles en las entradas. Si hay pull-ups programables disponibles (por ejemplo, AVR), el circuito y la lógica del código correspondiente se pueden invertir para ahorrar en las resistencias desplegables en el esquema, así como en la adicional en el pin 19.
  • ¿Es ésta la mejor manera de hacer ésto? No estoy seguro, pero muchas MCU permiten una activación debido al cambio de estado en cualquier GPIO digital, por lo tanto, todo esto puede ser redundante.

Los diodos:

  • Prácticamente cualquier diodo de silicio, germanio o Schottky de pequeña señal con polarización directa con un voltaje directo bajo servirá. Como el precio es un factor, elige lo barato.
  • Los diodos de silicio elevarán la línea hasta alrededor de 2,6 voltios, por lo general lo suficiente como para que se reconozca como alto en las partes lógicas de 3,3 voltios. Los diodos de germanio o Schottky permitirían una señal aún más alta en el pin 19 cuando están activos, aunque no es necesario.
  • Los diodos Zener no ayudarán (generalmente se usan con polarización inversa, los voltajes de ruptura inversa son de 2.x voltios y más) ya que el objetivo es tener una caída de voltaje lo más baja posible.
  • Un rectificador de conmutación no es ideal, el nombre le dice que están optimizados para la rectificación, no para propósitos de pequeña señal como este.
¡ups! buena captura en el menú desplegable que falta. Tengo una pregunta para el fabricante sobre la reactivación en cualquier GPIO; hay una capa intermedia de firmware que no controlo que puede limitarlo. Gracias por la aclaración sobre los diodos.
@BobBaddeley ¿Qué MCU es?
es un BLE112 - Estoy usando Bluetooth Low Energy. Resulta que su documentación es engañosa y cualquiera de los pines lo despertará del modo de suspensión, por lo que este es un punto discutible.