Serial bus Raspberry Pi a múltiples AVRs

5

Antecedentes: Estoy tratando de reemplazar la electrónica por un marcador de hockey sobre hielo. La vieja electrónica tenía los siguientes problemas:

  • Deja de funcionar. Desde entonces, he descubierto que un par de diodos y condensadores se habían quemado.
  • El controlador fue cableado. Queremos deshacernos del cable que corre a lo largo de la pista.
  • Los conectores para el controlador dieron muchos problemas. He tenido que volver a soldarlos innumerables veces.

Elmarcadortieneaproximadamente3,5metrosdeancho.

PlaneopegarunaRaspberryPienelmarcador.Planeoponerundongleusbwifiqueadmitaelmodoap,yejecutarhostapd.LosmarcadoresderesultadospuedenconectarsealaRaspberryPiatravésdeunainterfazwebdesdeunatableta/computadoraportátil.

PlaneoreemplazarlasbombillasincandescentesconLED,posiblemente OSRAM LR G5AP-BZCZ .

Originalmente pensé usar los extensores GPIO i2c. Pero desde entonces he aprendido que el cableado para un bus i2c debe ser lo más corto posible. Esto significaría que necesitaría un montón de cableado desde los gpios a los leds. De ahí llego a mi pregunta.

Pregunta: Me gustaría tener un microprocesador AVR para cada segmento de 7 o cada segmento de 2 7, cuyo trabajo es un extensor de GPIO. Estos serían colocados físicamente cerca de los LEDs. Me gustaría comunicarme desde Raspberry Pi a los múltiples microprocesadores AVR a través de un bus serie común.

He leído que RS-485 puede tener múltiples hosts en un bus. Y como mi comunicación es en una dirección (salida de la Raspberry Pi), espero que esto pueda simplificar la solución.

¿La Raspberry Pi y el AVR pueden hacer RS-485 usando las interfaces seriales existentes? ¿Qué circuitos se necesitan para hacer esto?

    

3 respuestas

5

Hay disponibles circuitos integrados de transceptor RS422 / RS485

Aquí '' encuentra muchas páginas de circuitos integrados relacionados con RS485 en Digikey

Puede usar datos seriales asíncronos estándar usando RS485 si lo desea. El "código rodante" no debería ser demasiado difícil [tm], pero es una rueda inventada con frecuencia. Habrá muchas personas que ya ofrecen software (de forma gratuita) que hace esto.

El bus CAN vive encima de RS485, pero probablemente es demasiado para lo que quieres.

Nota de aplicación excelente

AN-218 Implementación de una red multipunto RS-485

Esto está dirigido a ZBASIC pero puede ser de relevancia directa para su aplicación.

  • Esta nota de aplicación describe cómo conectar dispositivos ZX con una red multipunto RS-485. Redes RS-485 son utilizados por muchas aplicaciones industriales, incluido el control de procesos, la automatización de edificios e incluso el control de luces en un concierto. Se proporciona una placa de cabecera RS-485 y un ejemplo de conexión para explicar el hardware simple Requerido para comenzar con la red de dispositivos ZX. El software incluido con esta nota de aplicación da una muestra aplicación y un conjunto reutilizable de API para enviar y recibir mensajes en una red RS-485. Aquí hay una tabla de Contenidos para ayudar con la navegación de documentos.

Aquí encontrará ...

Diagrama de cableado multipunto RS485 & RS232 - Comparación RS485

Dicen -

  • RS485 a veces se denomina RS485 Multidrop LAN, ya que puede conectar varios dispositivos en un entorno de red LAN. Estos dispositivos están todos conectados a un solo par de cables. Transmitir y recibir comparten los mismos dos cables.

  • Oficialmente, la especificación RS485 permite solo 32 nodos (dispositivos) en la LAN. Sin embargo, I.C. los fabricantes han desarrollado controladores RS485 capaces de permitir 128 a 255 nodos en una LAN RS485. Utilizamos estos controladores RS485 de próxima generación en nuestros productos. Esto significa que puede usar nuestros convertidores y dispositivos de E / S remotos en situaciones más expansivas.

Tutorial útil Wikipedia - RS485

Muchas ideas aquí de la búsqueda de imágenes de G

    
respondido por el Russell McMahon
1

Mientras que otros están abordando su pregunta planteada, quiero abordar sus inquietudes sobre i2c. 3.5 metros está justo debajo de 11.5 pies. Mirando el tablero, eso es probablemente a solo 10 pies (3 m) desde el dígito más a la derecha hasta el dígito más a la izquierda. Ahora considera que puedes poner el punto muerto de RPi, y un maestro i2c no tiene que estar al principio de un bus físico, eso es realmente 5 pies a cada lado del bus. Francamente, cualquier bus i2c de aves de corral puede hacer 3m solo. Yo personalmente he hecho 10m. Y eso sin entrar en extensores de bus. Puede obtener kilómetros y millas utilizando búferes i2c, o incluso duplicar / triplicar un bus regular con multiplexores i2c.

Al cablear el RPI en el medio del bus, no hay problemas con la caída de voltaje a 1.5 m. El uso de par trenzado (ethernet cat 5 / 5e) estaría bien, pero puede obtener un rendimiento aún mejor con cat 6 (par trenzado blindado). A lo sumo, es posible que tenga que reducir la velocidad del bus, pero para su aplicación? No es necesario que actualices nada más de una o dos veces por segundo (los relojes de tiempo).

Aún mejor, el RPI Modelo B, Rev 2 (el último) tiene dos buses i2c reales. También puede acceder al segundo bus.

En resumen, puedes usar i2c sin un solo problema. (Heck, dependiendo de cómo estén cableadas las luces existentes, es probable que ni siquiera necesite ejecutar el bus i2c a lo largo de la placa). Ciertamente, es menos costoso o complicado, ya que usar varios microcontroladores e implementar RS485.

    
respondido por el Passerby
0

Ya que su comunicación es solo desde la Raspberry Pi a los AVR, puede usar RS-232. Un transmisor RS-232 puede alimentar varios receptores RS-232 sin problemas. Probablemente también podría usar los niveles lógicos directamente desde Pi UART a AVR UART, aunque el uso de niveles RS-232 puede facilitar la depuración.

    
respondido por el Peter Bennett

Lea otras preguntas en las etiquetas