i2c a i2c bridge (enrutador)?

1

Actualmente estoy trabajando en un proyecto donde algo tan tonto como un puente de i2c a i2c sería perfecto. Lamentablemente no parecen existir. Alguien sabe de uno? ¿Hay alguna razón por la que no existan además de que nadie ve la necesidad?

Déjame explicarte el proyecto. Estoy haciendo un modificador de video de módulo que puede tener módulos para diferentes tipos de entrada (RGB, Componente, HDMI, etc.). Cada módulo se apilará con un módulo de microcontrolador que podrá controlar todo en la pila. Sería bueno si solo tuviera que usar 2 líneas en las interconexiones de la tarjeta para controlar todas las tarjetas (i2c). El problema es que se pueden usar múltiples de la misma placa en la pila, por lo que habría chips i2c idénticos en el mismo bus. Claro que podría usar interruptores DIP para cada IC para abordar cada uno de ellos, pero eso hace que el diseño y el desarrollo de software sean una pesadilla. Así que sería bueno si pudiera dirigirme a un esclavo i2c en cada placa (1 interruptor DIP para cada placa) y luego ordenarle a ese esclavo que sea el maestro de los chips i2c en esa placa.

Una idea es utilizar un i2c a SPI conectado a un SPI a i2c (no estoy seguro si eso funcionaría). ¿Alguna idea sobre todo esto divagando? Gracias a todos por adelantado.

    
pregunta Ryan Christie

2 respuestas

3

Lo que está buscando es probablemente un multiplexor I2C . Hay una amplia selección de estas piezas disponibles, pero un ejemplo es TCA9544A de TI. Es efectivamente un interruptor 1 a 4 para las señales I2C, que responderá a los comandos I2C en una dirección configurable. Sin embargo, a diferencia de un interruptor normal, cada uno de los cuatro canales en sentido descendente se puede activar o desactivar por separado, por lo que es posible habilitar más de uno de esos canales a la vez, si corresponde, o incluso deshabilitarlos a todos.

Otra opción es un traductor de direcciones I2C . Estos son menos comunes; un ejemplo es el LTC4317 de Linear. Este dispositivo se puede usar para cambiar efectivamente la dirección de un dispositivo I2C detrás del traductor.

    
respondido por el duskwuff
0

El I2C requiere un tiempo específico. Ese 'enrutador' debería ser casi invisible para que todo el tiempo funcione. Hay fichas para el cambio de nivel e incluso un translateral sobre la marcha: Hackaday sobre LTC4316 . Pero eso es suficiente problema ya, no hay enrutador.

Es posible tener un Arduino Uno con su hardware I2C para actuar como esclavo y un software I2C para actuar como maestro. No estoy seguro si entiendo tu pregunta. Requerirá mucha programación y un buen protocolo, no será fácil de implementar y no sé qué tan confiable será. Algunos microcontroladores tienen dos buses I2C. Por ejemplo, el ATmega328PB, tiene dos buses I2C y una ID única en cada chip.

    
respondido por el Jot

Lea otras preguntas en las etiquetas