6 votos

¿En qué momento hay que utilizar un búfer I2C?

Estoy diseñando un sistema que puede expresarse en un esquema abstracto como éste:

enter image description here

Hay un MCU principal que actúa como maestro I2C y algunos esclavos. Algunos de ellos están en la misma PCB, pero otros están conectados con cables en otras PCB. En el caso de Slave7 y Slave8, hay una conexión "serie": Un cable largo va al PCB4 desde el PCB1 y luego del PCB4 al PCB5.

Trabajo en modo estándar (100 kHz). Aquí no se trata de velocidad, sino de fiabilidad. Este circuito me parece tener mucha capacitancia debido a muchos dispositivos conectados y cables largos (de 1m a 2m). Estoy pensando en usar buffers I2C, como el PCA9515A.

Considero pocas opciones:

No utilice tampones en absoluto, tal vez a esta velocidad es lo suficientemente bueno con baja resistencia pull-ups?

Utiliza sólo 1 buffer para dividir el bus en 2 lados: En el 1er lado Maestro, Esclavo1, Esclavo2, Esclavo3 y Esclavo4. En el otro: Esclavo5, 6, 7, 8.

Utilizar muchos búferes (cada PCB tendría uno). PCB4 tendría 2, ya que está "puenteando" el bus a PCB5.

¿Qué cree que sería necesario? Entiendo que esto es una función de la capacitancia del bus y la longitud de los cables, pero estoy buscando un enfoque genérico escalable aquí. Agradecería toda ayuda.

Notas laterales: Todos los dispositivos son 3V3 lógica, por lo que no hay ganancia en la toma de las señales de mayor amplitud. También me preguntaba sobre la conversión de las señales de bus SDA a par diferencial con dedicar IC, pero eso parece demasiado, los cables no son tan largos.

9voto

FredB Puntos 496

Deberías usar un buffer siempre que la capacitancia del bus vaya a ser más de 400pF . Si apenas llegas a eso entonces puedes tomar la decisión de usar pull-ups más fuertes en lugar de un amortiguador.

En general, si vas fuera de la placa a un cable, deberías tener un búfer allí. Si alguna vez quisieras tener cables más largos, te alegrarías de que hubiera un búfer para soportarlo. Para más información al respecto, véase esta pregunta .

0 votos

Yo también pienso así. Pero, por ejemplo, ¿utilizaría 3 búferes en PCB1 ya que está separando a 3 placas diferentes o 1 para todos ellos sería suficiente?

1 votos

@Bremen Un búfer por conexión fuera de borda. Si estás encadenando las tarjetas esclavas, entonces tendrías sólo un búfer en cada punto de conexión.

0 votos

Eso parece lo más razonable, pero son muchos búferes... 8 para ser exactos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X