duda cuando Arduino se conecta a múltiples dispositivos i2c

Estoy usando Arduino nano para controlar múltiples dispositivos i2c, en realidad, son módulos prefabricados que están disponibles en eBay. ads1115 ADC, ds3231 RTC, módulo i2c LCD de 20x4 caracteres, módulo at24c02 EEPROM

todos estos módulos tienen resistencias pull-up I2C SDA y SCL en el módulo, corríjame si me equivoco.

Duda: si conecto todos estos dispositivos al mismo bus SDA y SCl i2c, ¿qué pasará con las resistencias pullup? según la teoría, ya que están configurados en paralelo, las resistencias bajarán, ¿no? ¿Significa que la resistencia de arranque bajará?

¿Cómo afectará esto a mi dispositivo final?

¿Existe una distancia específica entre los pines SDA/SCL y la resistencia de extracción?

Si usa módulos con resistencias pullup presoldadas, puede quitar manualmente todas las resistencias pullup, excepto 1 módulo. Necesita entre 1k y 10k pullup para I2c, siendo 4.7k muy estándar.

Respuestas (3)

Sí, estás en lo correcto. La resistencia baja y eso no es bueno para sus dispositivos, ya que la corriente máxima que pasa por los transistores desplegables aumentará varias veces.

Pero también depende de la configuración de cableado, la longitud de los cables y la tasa de bits del protocolo. Por lo general, puede tener varias resistencias pull-up más cerca de los dispositivos I2C.

Por favor, lea este artículo: Cálculo de la resistencia pull-up del bus I2C

Y esta respuesta: ¿Existe un valor de resistencia correcto para las resistencias pull-up I2C?

Compruebe los valores de las resistencias. Si la resistencia resultante es superior a 2 kOhm @ 400kHz-1MHz, entonces está más o menos seguro. En 100kHz, puede usar valores de resistencia más altos hasta 10 kOhm en total.

¿Hay una distancia específica entre los pines SDA/SCL y la resistencia de extracción? mi bus estará a menos de 100kHz
@iopertyki No hay una "distancia especificada" que yo sepa. Diría que esto se puede calcular de alguna manera, si conoce la resistencia / capacitancia de los cables / capacitancia de entrada / frecuencia exacta, pero en la medida en que no conozca estos parámetros, diría que está bien usar hasta varias decenas de centímetros. solo una resistencia, pero varias de ellas también están bien. Si la frecuencia es inferior a 100 kHz, intente acercar la resistencia total a 10 kOhm o un poco menos. Pero 2 kOhm y más también deberían funcionar. Tienes que probar en tu propio equipo.

Si todos sus módulos tienen resistencias pullup, entonces la resistencia pullup efectiva será el valor paralelo equivalente de esas resistencias. Este valor puede ser demasiado bajo para permitir que sus dispositivos funcionen juntos.

Si desea una respuesta más específica, debe proporcionar enlaces a las hojas de datos del fabricante real ( no a la página del proveedor de eBay) para todos los módulos que desea conectar. Necesitamos ver las especificaciones de los circuitos integrados individuales, así como los esquemas de los módulos que desea utilizar. Si no puede encontrar esa información, debe buscar diferentes módulos.

Por lo general, solo se tendrían pullups en el último dispositivo de la cadena de dispositivos para obtener los mejores resultados. Mantenga su cableado corto y ordenado. No olvides conectar todos los Gnds.