¿Conectando esclavos i2c para dominar sobre un cable estilo RJ45?

1

Estoy diseñando varios módulos (por ejemplo, sensores, controlador de motor, etc.) que necesitan comunicarse a través de I²C. Estos módulos pueden estar a una distancia de hasta 15 pies (5 m) del módulo base (maestro I²C - Spark Photon), aunque la mayoría estará a menos de 5 pies. Para mantener las conexiones simples, me gustaría poder encadenar estos módulos.

Cada módulo utiliza un ATTiny84 / 85 que maneja las diversas funciones de cada módulo (por ejemplo, ADC / DAC). Cada micro también actúa como esclavo i2c (dirección configurable) y responde a los comandos del maestro I²C (Spark Photon).

Realmente me gustaría usar (abusar) un cable estilo Ethernet (RJ45). Dado que los cables Ethernet están ampliamente disponibles en varias longitudes y son relativamente económicos, serían ideales. Podría proporcionar energía (3.3V y 5V) y tierra, así como las líneas I²C a cada módulo y aún tener cables de repuesto que podría usar en una futura revisión. Incluso podría usar dos pares trenzados para proteger las líneas i2c. ¿Tal vez? El único inconveniente que veo aquí es que alguien podría estar usando un cable cruzado, que podría arruinar las cosas.

Alternativamente, podría usar cables USB (Un tipo de cables de extensión hembra). Si renuncio a líneas de energía separadas y uso un regulador de voltaje en los módulos que requieren 3.3V. No estoy seguro de si mis requisitos de longitud se cumplirían aquí, pero si el encadenamiento funciona, esto no debería ser un gran problema.

¿Hay conectores RJ45 que me permitan usar un conector tipo cable a placa (por ejemplo, Molex Mini-Latch)? Realmente me gustaría no tener que lidiar con el fresado de precisión y el costo que requieren los conectores de montaje en superficie o en orificio.

Lo mismo sucedería con los conectores estilo USB.

ACTUALIZACIÓN: Parece que I²C es de hecho una solución viable. Mi mayor preocupación en este momento es el uso del cable y, si hay conectores disponibles, no es necesario soldarlos directamente a la PCB (el cable a placa sería ideal).

    
pregunta davethebrave

2 respuestas

2

Si "encadenamiento" significa que los datos entrarán en "I2C0" y se repetirán "I2C1", no debería tener muchos otros problemas además de que sus esclavos están demasiado ocupados respondiendo a las interrupciones para medir cualquier cosa.

"Encadenamiento de margaritas" también podría significar transportarlos.

En cualquier caso, considere aumentar su voltaje y / o usar un búfer / controlador de línea (al menos entre las carreras más largas). Esto se aproxima a un rediseño de RS-232.

Simple y podría ser lo suficientemente bueno:

simular este circuito : esquema creado usando CircuitLab

    
respondido por el Jon
1

La hoja de datos del P82B715 extensor de bus I2C afirma que puede conducir las señales I2C hasta 50 m torcido Par de cables como Cat5e, aunque dicen que 30m es una figura más segura. Eso sigue siendo mucho más de lo que necesita.

Estas cifras asumen una velocidad de datos de 100 kHz; Ya que se comunicará a una distancia mucho más corta, podría alejarse con una velocidad más alta, ya sea de 200 kHz o incluso de 400 kHz.

Comopuedeverenelesquema,puedetenermásdedoschipsP82B715conectadosjuntosenelmismobusexterno(representadoporlascuatrolíneasdepuntosquesalendelaparteinferiordeldiagrama),porloquepuedetomarlaformadeunRedenestrellaenlugardesolopuntoapunto.

LosICestándisponibles de Digi-Key por tres o cuatro dólares.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas