Emulando un interruptor con salidas de drenaje abiertas

1

Necesito reemplazar los interruptores mecánicos con algún tipo de interruptor digital. Específicamente, quiero enviar entradas de control a varios juegos de arcade que usan entradas JAMMA estándar, que básicamente son conmutadores a tierra para cada botón / joystick. Las entradas provendrán de un microcontrolador de 3.3V, pero la mayoría de los juegos usan pull-ups de 5V, por lo que se requiere un búfer.

La solución obvia es utilizar salidas de drenaje abierto. Estoy tratando de decidir qué tipo es el mejor. Los dos candidatos que tengo son el búfer hexadecimal SN74LVC07 y un ULN2003 o una matriz Darlington similar. El SN74LVC07 está basado en MOSFET con salidas de drenaje abiertas y tiene una capacidad de hasta 5,5 V, mientras que el ULN2003 aceptará voltajes más altos (los sistemas arcade usan 12 V, aunque dudo que lo utilicen para entradas de control) y es probablemente un poco más robusto. / p>

¿Algún comentario sobre cuál de estos sería mejor, o alguna otra opción sería completamente mejor? ¿Qué pasa con los botones no utilizados? No puedo ver ningún problema con dejar esas salidas desconectadas y las hojas de datos no dicen nada.

Gracias.

    
pregunta user

5 respuestas

1

En primer lugar, gracias a EM Fields por hablar de esto. Esa conversación me lleva a la respuesta.

El SN74LVC07A parece la mejor opción. Manejará los voltajes requeridos y tendrá un bajo V OL en el suministro de 3.3V. Lamentablemente, la hoja de datos no tiene ninguna curva, pero los números dados sugieren que estará bien.

Otra opción sería el clásico 2N3904 NPN transistor, que está disponible en un quad como MMPQ2222A o MMPQ3904. Alternativamente, el LM3046 también se ve similar y adecuado. A bajas corrientes en el rango de los miliamperios, tienen un Vce (sat) de solo 0.2-0.3V, que debería ser lo suficientemente bajo para casi cualquier tipo de lógica hasta 3.3V. La desventaja es que requerirán resistencias de base y solo vendrán en paquetes cuádruples o quíntuples.

    
respondido por el user
3

Ya que conducirás los interruptores con una MCU, la inversión del 2003 no importará, por lo que me parece:

                 Vce   Vcc    IC           $/pkg   $/dev
                  V     V     mA   n/pkg   DKEY1   DKEY1
              |------|-----|-----|-------|-------|-------|      
     ULN2003     50     0    500     7     0.59    0.084
     74LVC07     6.5   6.5    50     6     0.45    0.075 

al igual que el centavo extra por dispositivo para el 2003 bien vale su robustez y versatilidad adicionales.

Aquí están las hojas de datos de ULN2003 y de 74LVC07 .

    
respondido por el EM Fields
2

El método más simple es simplemente reemplazar (o desviar) cada botón con un solo transistor NPN. Conecte la conexión a tierra de su controlador a la conexión a tierra del dispositivo objetivo, baje la base del NPN con una resistencia de 10 KΩ y conduzca la base desde el puerto IO de su controlador a través de una resistencia de 470Ω. Cuando conduzca ALTO, el NPN se encenderá conectando la señal del dispositivo a tierra. No hay necesidad de chips de lujo.

    
respondido por el Majenko
0

Ya que declaró que la integración es un requisito importante (al menos 30 líneas deberían estar disponibles), le recomiendo que se deshaga de estos circuitos integrados más antiguos y se mueva hacia una solución más moderna y efectiva. Por ejemplo, use uno de los siguientes " expansores GPIO ":

  1. Desde Microchip - MCP23016 (16 bits \ $ I ^ 2C \ $)
  2. Desde Microchip - MCP23017 / MCP23S17 (16 bits \ $ SPI \ $)
  3. Desde ST - STMPE2401 (24 bits \ $ I ^ 2C \ $)
  4. Desde NXP - PCA9505 / 06 (40 bits \ $ I ^ 2C \ $)

La principal ventaja es el gran ahorro de pines de E / S del microcontrolador, que también sigue utilizando más de uno de ellos. Además, hay otras características únicas: el comportamiento del pin es totalmente programable, como salidas de drenaje abiertas , salidas PWM (en algunos números de pieza), capacidad de interrupción , registro de captura (consulte las hojas de datos para obtener más información). Si no tiene \ $ SPI \ $ o \ $ I ^ 2C \ $ pines disponibles en su microcontrolador, el software siempre puede emularlo - el bono es que se puede hacer en cualquier MCU, ya que la velocidad no es una limitación punto (recuerde que está tratando con botones).

    
respondido por el Dirceu Rodrigues Jr
0

Este es un problema bastante simple. Cualquiera de esos chips funcionará. Por qué querría usar un búfer sobre un drenaje abierto estándar está más allá de mí. No es como si necesitaras el búfer que conduce tus señales a alta velocidad a menos que no hayas agregado las resistencias pull-up. Siempre y cuando los dispositivos puedan acumular tanta corriente como lo brinden tus pull-ups, todo funcionará.

Puede utilizar un MOSFET en la topología de drenaje abierto, BJT en la topología de colector abierto o un par Darlington en la misma configuración. Si desea eliminar las resistencias pull-up del circuito, puede usar un búfer. De lo contrario, eso se siente como una exageración.

Un chip mux te ahorraría pines en tu MCU. Otros han recomendado chips expandidos de IO.

También me pregunto por qué no has tomado una ruta completamente diferente. Obtenga una versión similar de su MCU que puede manejar 5V con muchos pines IO para manejar sus 30 líneas. Entonces no necesitas un chip (s) extra en absoluto.

Alternativamente, puedes mirar en matrices de conmutadores analógicos. Aquí hay una, por ejemplo. Si fuera a utilizar ese chip, lo haría tengo que agregar una palanca de cambio de un solo nivel porque es un chip de 5V.

    
respondido por el horta

Lea otras preguntas en las etiquetas