Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Buenas,
estoy trabajando en un proyecto donde necesito conectar una bateria de PICs 18F2550 en serie. La última debe recibir los datos de las anteriores. La duda es si es viable realizarlo con RS232 o con USB. Entiendo que con RS232 podría utilizar TX->RX entre 2 PICs (la primera pareja), y luego usar el puerto TX de la segunda PIC hacia el RX de la tercera PIC, y así sucesivamente. La distancia entre PICs es de 2 metros. No sé si el ruido puede hacer que se lean carateres erróneos.
Por otro lado, veis viable la conexión en serie mediante USB?. Supongo que no podía usar en una comunicación D+ -> D+ y entre la segunda y tercera PIC D- -> D- o sí?¿
Bueno, pues cualqueir sugerencia es bien acogida.
Gracias.
Saludos
No es factible: en modo broadcast no hay respuesta de ninguno de los slaves (literalmente, esto es de manual).
No te queda otra que ir de uno en uno.
Y eso significa antes asignar de alguna forma direcciones.
Yo he usado broadcast en modo puerto serie... suena raro pero funcionaba a la perfección, fué para manipular la información en tiempo real de un sistema de alarmas en una empresa de seguridad donde trabajé hace años.
Monté un cable Tx Rx GND normal pero del Tx del aparato que emitia los codigos de alarma (master) saqué dos cables adicionales que iban a sendos PCs que podian procesar la información igual que el ordenador principal, asi que uno emitia, tres recibian la señal pero solo respondia el ordenador principal.
Si puedes unir todos los dispositivos por puerto serie (sin problemas de caida de señal por cableado, etc...) no veo inconveniente en usar broadcast en modo serie y por software tu mismo filtras si la orden es particular, para todos los dispositivos o incluso para un grupo de ellos.... es lo bueno del software, tu te lo guisas y tu te lo comes... 🙂
Inconvenientes.... si el "master" envia una orden que requiere respuesta y lo envia para que lo ejecuten todos o varios dispositivos esclavos tendrás que temporizar la respuesta de cada uno para evitar que todos respondan a la vez...
furri.
Gracias por la información.
Bien, en mi caso, todas las PICS(que serán básculas de pesaje) tendrán que enviar el contenido de un registro de la EEPROM (donde almaceno el peso de la báscula) al Master. Ya que es comunicación todos a uno, creo que necesitaría temporizadores en los envíos para sincronizar que al Master le llegan todas las lecturas. Al fin y al cabo me temo que es una llamada mediante "holding_registers" ejecutada por el Master a los esclavos.
La idea es que cada vez que inserto una báscula en el sistema, no tuviera que modificar el Master añadiendo un número más de Slave en las peticiones de lectura, para hacerlo más dinámico, por eso la idea del broadcast, pero ya que todos deben contestar:
1. O bien uso temporizadores como bien me dices
1. O uso comunicación unidireccional Master -> Slave1, 2, 3...