Tengo un proyecto (máquina de pinball) que tendrá un número decente de microinterruptores que se conectarán en una matriz de conmutadores de 8x8. Estoy tratando de determinar cuáles son mis opciones para leer esta matriz sin consumir una gran cantidad de pines en un microcontrolador.
Intenté buscar un IC diseñado específicamente para tal aplicación (escaneando una gran cantidad de botones) pero todo lo que pude encontrar es el TCA8418 y el TCA8418E de TI, buscando chips similares que me lleven a un par de otros, pero todos Comparte un problema común. Solo están en paquetes QFN o BGA que están más allá de mi capacidad para soldar a mano. Sé que es posible, pero no es algo que quiera emprender. Esas fichas son hermosas para esto, sin embargo, es una verdadera pena.
Alternativamente, he analizado los extensores de bus de 16 puertos que pueden comunicarse a través de I2C o SPI. Estas parecen ser una buena opción, pero me preocupa que falten las pulsaciones de los botones. Los pinballs correrán rápidamente, así que probablemente en el rango de milisegundos. No es tan rápido en términos de una MCU, pero estará ocupado haciendo mucho más que solo leer los interruptores (audio, matriz de puntos, alimentación de video y una matriz de LED de 8x8). Además de eso, tendría que manejar el rebote del interruptor.
Mi otra preocupación es el diodo necesario que puede causar que V (il) se deslice hacia el límite de 0.8V de LVCMOS. A continuación se muestra un ejemplo de 2x2.
También he considerado usar un pequeño microprocesador de 8 bits para dedicarlo a la captura de claves, probablemente podría emular la función de esos chips TCA8418. Pero aún tengo más código para escribir y otra fuente de errores para resolver. Sin embargo, tienen el mismo precio que el extensor de bus, así que si es una solución superior a la que es.
¿Hay algo más por ahí, o algún método para escanear matrices grandes (ish) de interruptores / botones?