Buenos días,
una consulta a la comunidad, espero me puedan ayudar, he realizado algunas tarjetas de desarrollo con PIC donde se usa un microcontrolador y diferentes componentes o dispositivos para interactuar con fines educativos, las llamadas tarjetas entrenadoras donde se usan pantallas LCD, leds, comunicación serial, teclados matriciales, etc.
Hasta ahora lo he hecho con jumpers para poder seleccionar el pin correspondiente para cada componente o funcionalidad, por ejemplo un mismo pin se comparte para el teclado, para leds y para puerto de propósito general (GPIO); he visto tarjetas comerciales que no hay jumpers(o muy pocos) pero a mi me salen como 20 jumpers
cuando diseño este tipo de tarjetas.
Mi consulta es si hay alguna técnica que usan estas tarjetas comerciales para usar un pin para diferentes componentes, me imagino que tiene que ver con multiplexación, pero me parece que igual se gastan muchos pines y también que se discrimina la operación.
Por ejemplo pensaba en un demultiplexor 1x4 donde un solo pin lo puedo usar en 4 componentes o dispositivos, usaría 1 pin de datos y 2 de control, o sea 3 pines para controlar 1 pin en 4 diferentes funciones; y si quiero usar 4 leds, luego conectar 4 pines en un LCD(mas allá que se pueda usar esos módulos i2c que solo usan 2 pines, pienso usar la conexión tradicional), otros 4 a GPIO y por ultimo, 4 para controlar relés; para esto tendría que usar 2 IC's duales de 1x4, los pines de control conectados entre si, usaría 4 pines del microcontrolador + 2 pines del mismo uC para control de los DEMUX's; 6 pines para 4 funcionalidades(que es poco para una tarjeta entrenadora) y considerando que será IC THT, lo cual empeora la situación por el tamaño; ahora, si quiero más funcionalidades, necesitaría más IC's que ocuparán mas espacio(siendo THT, no hay opción para SMD
) ; en relación a la discriminación que comento, lo que quiero decir es que al seleccionar control de los demux, solo se usará una función a la vez, claro que el programa estará en un loop constante y se pueda modificar el control de ellos para cada función, tendría que probarlo.
Planteado esto, me gustaría saber y aprender la manera de hacer la magia que permita usar los pines en múltiples tareas y que las funciones no se cancelen o discriminen entre sí, por ejemplo que funcione a la vez el teclado con los botones de un teclado matricial, gracias de antemano por sus respuestas, espero haya sido clara mi explicacion, saludos a todos.