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 de distancia. Para mantener las conexiones simples, me gustaría poder conectar en cadena 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 un esclavo i2c (dirección configurable) y responde a los comandos del maestro I²C (Spark Photon).
Realmente me gustaría usar (abusar) de 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 alimentación (3,3 V y 5 V) y conexión a tierra, así como las líneas I²C a cada módulo y todavía tengo cables de repuesto que podría usar en una revisión futura. 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, lo que podría estropear las cosas.
Alternativamente, podría usar cables USB (cables de extensión hembra estilo A). Si renuncio a las líneas eléctricas 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án aquí, pero si la conexión en cadena funciona, esto no debería ser un gran problema.
¿Existen conectores RJ45 que me permitan usar un conector estilo 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 estilo de montaje en superficie o de orificio pasante.
Lo mismo ocurriría con los conectores de estilo USB.
ACTUALIZACIÓN: Parece que I²C es de hecho una solución viable. Mi mayor preocupación en este punto es el cable a usar y si hay conectores disponibles que no necesitan soldarse directamente a la PCB (lo ideal sería cable a placa).
Si "conectar en cadena" significa que los datos entrarán en "I2C0" y se repetirán en "I2C1", no debería tener muchos problemas aparte de que sus esclavos están demasiado ocupados respondiendo a las interrupciones para medir algo.
"Conectar en cadena" también podría significar transportarlos.
En cualquier caso, considere aumentar su voltaje y/o usar un controlador de línea/búfer (al menos entre las ejecuciones más largas). Esto se acerca a un rediseño de RS-232.
Simple y podría ser lo suficientemente bueno:
simular este circuito : esquema creado con CircuitLab
La hoja de datos del extensor de bus I2C P82B715 afirma que puede conducir señales I2C hasta 50 m a través de cables de par trenzado como Cat5e, aunque dicen que 30 m es una cifra más segura. Eso sigue siendo mucho más de lo que necesita.
Estas cifras suponen una velocidad de datos de 100 kHz; dado que se comunicará a una distancia mucho más corta, es posible que obtenga una velocidad más rápida, ya sea 200kHz o incluso 400kHz.
Como puede ver en el esquema, puede tener más de dos chips P82B715 conectados juntos en el mismo bus externo (indicado por las cuatro líneas punteadas que salen de la parte inferior del diagrama), por lo que puede tomar la forma de una red en estrella. de punto a punto.
Los circuitos integrados están disponibles en Digi-Key por tres o cuatro dólares.
Arsenal
Jon
davethebrave
Jon
Jon
captcha
AKR