Tengo una placa que me gustaría diseñar y hay 11 dispositivos a los que solo se les puede hablar a través de UART . Estoy restringido a una gama de productos de chips uC de Microchip y he encontrado uno con 5 puertos UART. He ideado una solución basada en puentes en la que el usuario, al realizar la conexión a través de puentes a los 5 puertos disponibles, puede elegir 5 de los 11 dispositivos. He estado buscando un chip que admita UART, SPI o I2C y me brinde algunos puertos UART adicionales, pero me he quedado corto. ¿Alguien puede sugerir una solución o un producto que pueda haber encontrado?
No es crítico que los 11 dispositivos puedan conectarse al uC (eso sería bueno), pero es importante que estos dispositivos estén en la placa para un producto modular. Sin embargo, deseo que el producto sea más fácil de usar, ya que la solución basada en puentes es un poco complicada a primera vista, o eso me han dicho.
EDITAR
Bueno, lo siento, no estoy explicando el problema correctamente. Con este método, limitas las opciones del usuario. Digamos que vincula el puerto a al dispositivo 1 y 2 y el puerto b al dispositivo 3 y 4 y así sucesivamente...
Pero, ¿y si al usuario le gustaría usar el dispositivo uno y dos? Entonces el producto limita mucho al usuario. Con 5 opciones de puerto y 11 opciones para dispositivos, el coeficiente binomial produce 462 combinaciones para que el usuario elija. Eso es exagerado, no busco ese nivel. Pero con la solución basada en puentes, el puerto a puede conectarse a 9 de los dispositivos, mientras que el puerto b puede conectarse a 7 de los dispositivos, el puerto c puede conectarse a 8, el puerto d puede conectarse a 7 y el puerto e puede conectarse a 9. El número de los interruptores mux necesarios para hacer esto estarían por encima del límite.
¿Hay otra solución para darle al usuario la opción de usar (cerca de) cualquier combinación de los dispositivos?
Pensé en usar dos uC con 5 puertos UART cada uno para conectarme a 10 de los dispositivos y luego usar una solución basada en puentes mucho más pequeña para el último dispositivo, pero esta solución es demasiado complicada para la producción y costosa.
¿Hay algún chip o concepto que amplíe el control UART a 11 dispositivos?
Use algunos circuitos integrados de puente UART-SPI, como:
Puede tener tantos UART como pines GPIO de repuesto tenga para usar como líneas Chip-Select (o use un demux o decodificador y puede tener órdenes de magnitud más), limitado solo por la velocidad en baudios de su UART frente a la velocidad máxima que puede ejecutar su SPI.
Puede usar circuitos integrados de interruptores analógicos (multiplexores analógicos) para reemplazar los puentes manuales.
Si tiene 5 puertos UART, puede multiplexar 1 de esos puertos a 8 puertos UART multiplexados. Necesita usar interruptores de 8 canales, como DG4051E .
controlar un registro de desplazamiento SIPO (p. ej., 74hc595) desde 2 pines GPIO conectar la entrada ~OE a la salida UART
usando el reloj GPIO en un patrón que representa el dispositivo con el que desea hablar, luego use el UART para enviar
si hay un pull up en su lugar, el puerto con un bit cero hará eco de la salida UART.
para el extremo receptor, use una puerta/puertas para combinar la señal del dispositivo UARTS.
Creo que está utilizando el protocolo y/o la topología incorrectos para su caso. Sugeriría usar transceptores RS-485 y construir una topología de bus. Si tiene 11 dispositivos posibles, puede usar 4 líneas para habilitar uno de ellos.
Las advertencias que veo para esta opción son:
No vi ningún detalle en sus preguntas sobre cómo estas limitaciones pueden afectar su sistema o si vale la pena. Espero que esto pueda ayudar.
Como alternativa, PSoC podría ayudarte
aquí hay un ejemplo con 11 UART en un PSoC 5lp
https://hackaday.io/project/11974-averaging-many-gpses/log/39157-11-serial-ports-with-psoc5
broma
MarkU
chupacabras
gareth t
chupacabras