Autor Tema: Usar mismo pin para conectarse/usarse en diferentes dispositivos o componentes  (Leído 804 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado ALFREDOSKY

  • PIC16
  • ***
  • Mensajes: 118
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  :shock: 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  :lol: ) ; 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.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Usar mismo pin para conectarse/usarse en diferentes dispositivos o componentes
« Respuesta #1 en: 21 de Octubre de 2022, 10:46:22 »
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  :shock: cuando diseño este tipo de tarjetas.

La única explicación para que pienso del porque deseas hacer eso, es porque deseas crear una tarjeta educativa, ya que una vez que has diseñado un sistema determinado, la tarjeta comercial que construyes tiene los terminales del microcontrolador conectado de manera fija a los periféricos que deseas controlar.

En cambio, cuando tu microcontrolador no tiene suficientes terminales, una forma de ampliar dichos terminales, es similar a como se hace con los microprocesadores.

Es decir un mismo bus o puerto se conecta a un LATCH tipo D para crear salidas:



Mientras que para "aumentar" entradas puedes usar un buffer.



También podrías hacerlo vía serial, es decir mediante un terminal del microcontrolador envías o recibes la información vía serial hacia los lacth o desde los buffers.





También existen ampliadores de puertos vía I2C, SPI, etc.
« Última modificación: 21 de Octubre de 2022, 11:16:58 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado ALFREDOSKY

  • PIC16
  • ***
  • Mensajes: 118
Re:Usar mismo pin para conectarse/usarse en diferentes dispositivos o componentes
« Respuesta #2 en: 24 de Octubre de 2022, 17:46:58 »
Hola DominusDRR, gracias por tu respuesta; si, deseo hacer una tarjeta educativa, no había pensado esas alternativas que planteas, me parecen una solución muy buena, sobre todo el método serial que es bidireccional, entiendo que el del buffer también; voy a ponerlo en práctica; en cuanto al primer método, entiendo que puedo conectar un grupo de 8 pines a unos periféricos antes de pasarlo por el flip flop y luego tomar otros 8 pines a la salida del FF, lo que en la practica seria usar 8 pines como si fueran 16 y con un pin de control darle al clock; pero tratados como salidas, no hay lectura ahí, sobre todo del lado 'posterior' digamos del FF, no se si estoy equivocado, voy probar todos y decantarme por uno de ellos o una combinación, saludos  :mrgreen:

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Usar mismo pin para conectarse/usarse en diferentes dispositivos o componentes
« Respuesta #3 en: 24 de Octubre de 2022, 17:59:03 »
Hola DominusDRR, gracias por tu respuesta; si, deseo hacer una tarjeta educativa,

Si es algo comercial,  no va ser una tarjeta tan económica, a veces algo simple es mejor para vender, obviamente ningún producto va ser un producto B3 (bueno. bonito y barato)


en cuanto al primer método, entiendo que puedo conectar un grupo de 8 pines a unos periféricos antes de pasarlo por el flip flop y luego tomar otros 8 pines a la salida del FF, lo que en la practica seria usar 8 pines como si fueran 16 y con un pin de control darle al clock; pero tratados como salidas, no hay lectura ahí, sobre todo del lado 'posterior' digamos del FF, no se si estoy equivocado, voy probar todos y decantarme por uno de ellos o una combinación,

Si te refieres a que deseas leer a la salida de cada uno de los latch, deberías utilizar un buffer (74LS244) en esas salidas para leer lo que has puesto en esas "salidas"

La pregunta es ¿por que lo harías? ¿Tan inseguro estás de que por alguna razón no se ha colocado ese valor a las salidas de los latch?

En sistemas críticos con PLCs de seguridad, se hace lo que mencionas, se lee la salida física del PLC para determinar si realmente dicha salida está en el valor que se ha colocado, obviamente esa clase de PLCs tienen un costo elevado por las redundancias.

Pero si no es así, tu en memoria RAM puedes conocer lo que has colocado en dichas salidas.






Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado ALFREDOSKY

  • PIC16
  • ***
  • Mensajes: 118
Re:Usar mismo pin para conectarse/usarse en diferentes dispositivos o componentes
« Respuesta #4 en: 24 de Octubre de 2022, 19:31:27 »
DominusDRR ok entiendo, gracias por compartir todo ese conocimiento, hay muchas cosas que ignoro y hago proyectos para aprender, por ahora no lo hago con fines comerciales, sino es una combinación de aprendizaje para mi y también un poco el animo de donarlos a muchachos o niños que tengan interés en estudiar electrónica, que sea un primer acercamiento, tanto en hardware como en software, por eso quería hacerlo lo mas simple posible, sin tantos jumpers que el usuario tenga que modificar; pero ahora con algunas modificaciones que realizaré en base a tus sugerencias posiblemente aprendan también sobre registros de desplazamiento y comunicación serial  ((:-))

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Usar mismo pin para conectarse/usarse en diferentes dispositivos o componentes
« Respuesta #5 en: 24 de Octubre de 2022, 19:41:22 »
por eso quería hacerlo lo mas simple posible, sin tantos jumpers que el usuario tenga que modificar

Pues por lo que planteas hacer, parece que no va ser tan simple, al contrario, un sistema muy complejo.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
Re:Usar mismo pin para conectarse/usarse en diferentes dispositivos o componentes
« Respuesta #6 en: 25 de Octubre de 2022, 04:28:25 »
Hola el mcp2317 i2 o el mcp23s17 spi de microchip son una caña para expandir puertos
https://www.microchip.com/en-us/product/MCP23S17

The MCP23017/MCP23S17 (MCP23X17) device family provides 16-bit, general purpose parallel I/O expansion for I2C bus or SPI applications. The two devices differ only in the serial interface.
• MCP23017 – I2C interface
• MCP23S17 – SPI interface
The MCP23X17 consists of multiple 8-bit configuration registers for input, output and polarity selection. The system master can enable the I/Os as either inputs or outputs by writing the I/O configuration bits (IODIRA/B).  The data for each input or output is kept in the corresponding input or output register. The polarity of the Input Port register can be inverted with the Polarity Inversion register. All registers can be read by the system master.


Desconectado ALFREDOSKY

  • PIC16
  • ***
  • Mensajes: 118
Re:Usar mismo pin para conectarse/usarse en diferentes dispositivos o componentes
« Respuesta #7 en: 27 de Octubre de 2022, 19:42:16 »
Gracias por tu respuesta y recomendación Sispic; si, estoy considerando esos expansores, el de microchip por acá en mi ciudad es poco común, tendría que importarlo, pero creo que el PCF8575 si lo encontraré, me parece es por I2C, entra en el paquete de evaluaciones para un diseño optimo, gracias nuevamente.  :mrgreen:


 

anything