Autor Tema: Como crear y monitorear 8 puertos "UART RX" sin perder datos?  (Leído 9048 veces)

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

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« 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.
Si algo parece complicado... es por que esta mal explicado.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #1 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.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Conectado SavageChicken

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 936
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #2 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)
No hay preguntas tontas...
Solo hay tontos que no preguntan.

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #3 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.
Si algo parece complicado... es por que esta mal explicado.

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #4 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?)
« Última modificación: 17 de Mayo de 2024, 12:16:56 por johenrod »
Si algo parece complicado... es por que esta mal explicado.

Desconectado Aaronsanchez

  • PIC10
  • *
  • Mensajes: 24
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #5 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

Desconectado Yoshua

  • PIC16
  • ***
  • Mensajes: 213
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #6 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?

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #7 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:



Caso contrario, deberías  recurrir a un FPGA
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado scrwld

  • PIC12
  • **
  • Mensajes: 59
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #8 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

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1700
    • winpic800
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #9 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


Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #10 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"
« Última modificación: 20 de Mayo de 2024, 13:56:52 por johenrod »
Si algo parece complicado... es por que esta mal explicado.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
« Última modificación: 23 de Mayo de 2024, 08:11:34 por Picuino »

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Si algo parece complicado... es por que esta mal explicado.

Desconectado johenrod

  • PIC18
  • ****
  • Mensajes: 276
Re:Como crear y monitorear 8 puertos "UART RX" sin perder datos?
« Respuesta #13 en: 23 de Mayo de 2024, 13:49:47 »
Gracias a todos por ayudarme.
Si algo parece complicado... es por que esta mal explicado.