TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: johenrod en 16 de Mayo de 2024, 16:03:56

Título: Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: johenrod en 16 de Mayo de 2024, 16:03:56
Cordial saludo,,
En esta ocasion requiero recibir datos transmitidos (valores) desde 8 fuentes diferentes, sumarlos y luego transmitir el total de estos.
No se, si se puedan crear 8 entradas RX virtuales en el pic y ademas que en algun momento si 2 o mas dispositivos transmiten al tiempo no se pierdan los datos.
Podrian brindarme alguna idea,, gracias de antemano.
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: DominusDRR en 16 de Mayo de 2024, 21:24:17
Cordial saludo,,
En esta ocasion requiero recibir datos transmitidos (valores) desde 8 fuentes diferentes, sumarlos y luego transmitir el total de estos.
No se, si se puedan crear 8 entradas RX virtuales en el pic...

Utiliza RS485. Un solo canal de comunicación, varios dispositivos.

... y ademas que en algun momento si 2 o mas dispositivos transmiten al tiempo no se pierdan los datos.
Podrian brindarme alguna idea,, gracias de antemano.

Tienes que crear un protocolo para volver a intentar cuando 2 o más desean transmitir al mismo tiempo.
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: SavageChicken en 17 de Mayo de 2024, 08:50:37
Yo lo abordaría de la siguiente manera.
Usaría un bus de datos en común (8 bits) y un bus de direcciones (3 bits)
Cuando el bus de direcciones selecciones una de las 8 fuentes, esta transmite la información... la leo por el bus de datos y la almaceno en una byte de memoria
Repito el proceso con cada fuente, luego hago las operaciones que sean necesarias con los datos que se han coleccionado y mando el resultado final a donde corresponda.

Salud  8)
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: johenrod en 17 de Mayo de 2024, 12:02:58

Utiliza RS485. Un solo canal de comunicación, varios dispositivos.


Tienes que crear un protocolo para volver a intentar cuando 2 o más desean transmitir al mismo tiempo.
Gracias por tu respuesta, se me viene a la cabeza que cada transmisor debe mantener los datos en una variable  o buffer mientras que voy a preguntar por el dato.
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: johenrod en 17 de Mayo de 2024, 12:08:22
Yo lo abordaría de la siguiente manera.
Usaría un bus de datos en común (8 bits) y un bus de direcciones (3 bits)
Cuando el bus de direcciones selecciones una de las 8 fuentes, esta transmite la información... la leo por el bus de datos y la almaceno en una byte de memoria
Repito el proceso con cada fuente, luego hago las operaciones que sean necesarias con los datos que se han coleccionado y mando el resultado final a donde corresponda.

Salud  8)
Gracias por tu respuesta, asumo que me hablas de bus para datos en paralelo. tambien me gusta la idea solo que me salta una duda, luego de que un dispositivo transmita habria que colocar su puerto en alta impedancia(entrada) para que los datos de los otros transmisores no colapsen haciendo que se puedan dar unos y ceros y quemen los puertos de los otros transmisores?.
Esta duda siempre la he tenido cuando veo que i2c, spi... comparten la misma linea para transmitir. (como es que no se queman los puertos?)
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: Aaronsanchez en 18 de Mayo de 2024, 22:39:54
con un mismo pic no solo se me ocurre que sean 8 pics dedicados a solo recibir mas un maestro que cuando tengan todos los datos se los pasen al maestro o ya sea 4 pics que tengan 2 rx dedicados así no se perdería nada ya que como comentan en una misma linea todo colapsaría
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: Yoshua en 19 de Mayo de 2024, 11:58:20
¿Podes hacer que transmitan los datos secuencialmente o darles alguna habilitacion para que empiezen con el envio?
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: DominusDRR en 19 de Mayo de 2024, 22:24:59
Encontrar un microcontrolador con 8 puertos RS232 (UART o USART) creo que está complicado.

Tal vez lo que necesitas es un ampliador de puertos, es decir del lado del microcontrolador mediante SPI controlas varios puertos seriales, como este IC:

(https://pbs.twimg.com/media/GN_DHHEWIAEAsFe?format=png&name=900x900)

Caso contrario, deberías  recurrir a un FPGA
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: scrwld en 20 de Mayo de 2024, 05:13:05
hola johenrod,

te recomiendo como protocolo de comunicación el modbus, es simple y fácil de implementar.
es un protocolo ampliamente usado en la industria.

consiste en un master (pc ,plc, microcontrolador) que realiza la petición de los datos, hasta un máximo de 247 estaciones remotas. cada estación remota se le asigna un numero o id, y solo responde aquella que recibe su id. este protocolo tiene funciones de escritura y lectura de datos hacia y desde las estaciones remotas.

la comunicación fisica es serial a dos hilos, usando para ello convertidores rs485 como por ej. el max485.

las estaciones siempre  en recepción y solo responden al recibir su id.
 
si el master es una pc ademas del max485 necesitas   el max232, los plc en su mayoría tienen puerto rs485.

si el master como las estaciones remotas son microcontroladores necesitan  el max485.

saludos

luis lopez
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: Sispic en 20 de Mayo de 2024, 12:23:50
hola johenrod,

te recomiendo como protocolo de comunicación el modbus, es simple y fácil de implementar.
es un protocolo ampliamente usado en la industria.

consiste en un master (pc ,plc, microcontrolador) que realiza la petición de los datos, hasta un máximo de 247 estaciones remotas. cada estación remota se le asigna un numero o id, y solo responde aquella que recibe su id. este protocolo tiene funciones de escritura y lectura de datos hacia y desde las estaciones remotas.

la comunicación fisica es serial a dos hilos, usando para ello convertidores rs485 como por ej. el max485.

las estaciones siempre  en recepción y solo responden al recibir su id.
 
si el master es una pc ademas del max485 necesitas   el max232, los plc en su mayoría tienen puerto rs485.

si el master como las estaciones remotas son microcontroladores necesitan  el max485.
saludos
luis lopez

Es lo ideal .
y si tus pics en el uart tiene esta opcion muchisimo mejor .
pero hay que trabajar con el software .

ADDEN: Address Character Detect bit (bit 8 of received data = 1)
1 = Address Detect mode enabled. If 9-bit mode is not selected, this control bit has no effect
0 = Address Detect mode disabled

Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: johenrod en 20 de Mayo de 2024, 13:16:47
Gracias a todos por sus respuestas, me llama la atencion las diferentes formas que me exponen de implementar la solucion a lo que requiero.
Dado que lo que diseñamos tambien esta enfocado a costo beneficio, el max14830 tiene un valor de $10 dolares y serian 2 para obtener 8 puertos. (Tendria que encargarlos a "USA o China")
Si lo implementara con "485" cada modulo cuesta $1 dolar. seria colocar 8 micros de baja gama y 8 modulos 485 (Se consiguen localmente) y asignarles direcciones tal cual me lo exponen, e ir recopilando los datos.
Creeria que con la informacion que amablemente me han brindado, puedo comenzar a implementar la red.
"Muchas gracias"
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: Picuino en 23 de Mayo de 2024, 08:06:04
Echa un vistazo a la red LIN:
https://www.sorion-group.com/support/technologies/lin-local-interconnect-network/

EDITO:
https://developerhelp.microchip.com/xwiki/bin/view/applications/lin/
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: johenrod en 23 de Mayo de 2024, 13:45:48
Echa un vistazo a la red LIN:
https://www.sorion-group.com/support/technologies/lin-local-interconnect-network/

EDITO:
https://developerhelp.microchip.com/xwiki/bin/view/applications/lin/
Hooo, Que buena informacion, y aqui en locombia se consiguenen algunos MCP20xx.
Título: Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
Publicado por: johenrod en 23 de Mayo de 2024, 13:49:47
Gracias a todos por ayudarme.