¿Puedo usar un cable Dupont con una resistencia soldada en el medio como resistencia pullup para comunicaciones I2C?

La pregunta corta : ¿hay alguna diferencia entre usar (en una placa de pruebas) una resistencia pullup estándar de 10K de orificio pasante y usar un cable Dupont modificado con una resistencia pullup de 10K soldada en el medio, al configurar una MCU y un periférico usando I2C? ? El cable Dupont modificado no funciona para mi caso.

ingrese la descripción de la imagen aquí

Entorno : placa de pruebas, el Espressif ESP32 MCU como maestro I2C usando el pin n.° 21 como SCL y el pin n.° 17 como SDA (las pullups internas "débiles" +-4.7K están habilitadas), un sensor de campo magnético Melexis MLX90393 como esclavo I2C en un Sparkfun placa de conexión (producto https://www.sparkfun.com/products/14571 ; las dominadas de 10K en la placa de conexión Sparkfun también están habilitadas). Vea la imagen para la configuración de la placa de prueba (enfóquese en la resistencia pullup).

El software funciona bien y obtengo 5 lecturas de sensor por segundo si conecto una resistencia pull-up de 10K básica entre el orificio junto al pin SCL n.º 21 de la MCU y un orificio en el riel de 3,3 V de la placa de prueba. Este es un procedimiento estándar para los esquemas I2C con el fin de llevar el SCL I2C alto de forma predeterminada. Lo mismo para SDA.

Sin embargo, quería hacer que el cableado de las cosas en la placa de prueba fuera mucho más fácil y usar un cable Dupont modificado para el pullup . Así que tomé un cable Dupont de 30 centímetros, lo corté por la mitad y soldé una resistencia pull-up estándar de 10K en el medio y puse un tubo retráctil alrededor. Si mido la impedancia entre los 2 extremos del cable, entonces es +-10K Ohm.

Así que conecté el cable Dupont modificado además del pin SCL n.º 21 de la MCU y el riel de 3,3 V de la placa de prueba (reemplazando las resistencias básicas de la configuración anterior). Ahora el sistema ya no funciona* (falla la comunicación I2C).

¿Cuál podría ser la razón (¿eléctrica?) de la falla? No tengo osciloscopio pero si analizador lógico.

Gracias de un principiante.

Cuando dices cable Dupont , ¿te refieres a un cable puente?
@king ese es otro nombre para ellos en.m.wikipedia.org/wiki/Jump_wire ver también cable molex, cable jst, etc.
Tengo curiosidad por saber cómo cortar un cable de puente, soldar una resistencia y cubrirlo con un tubo retráctil fue "mucho más fácil" que conectar una resistencia a la placa. ¿Puedes explicar tu pensamiento? ¿Había alguna otra motivación?
@Elliot es menos probable que se acorte, más tiempo, por lo que puede ser más fácil de administrar en un tablero abarrotado, flexible y dura más que flexionar una resistencia desnuda. No es completamente ilógico.
@Elliot Eso es correcto. Solo se usa durante el desarrollo donde el cableado debe cambiarse con mucha frecuencia.

Respuestas (3)

No, en casos normales eso no debería hacer una diferencia notable.

Pero tal vez

  • los encabezados dupont no hacen buen contacto con su protoboard
  • su configuración es marginal de alguna manera (¿frecuencia demasiado alta?) y este cableado adicional lo hizo tropezar con el borde
  • cometiste algún otro error (por la 2da foto parece que podrías tener un protoboard que tiene una rotura a la mitad en las líneas eléctricas, pero la última foto es un bb de 400 agujeros que nunca he visto con roturas)
Gracias por la confirmación. a) He comprobado dos veces los contactos de los cabezales dupont; También hice 2 juegos de cables Dupont modificados y los probé en 2 placas de prueba; b) La frecuencia es de 100Khz que no es tan alta para I2C (las pruebas con 10Khz y 400Khz muestran el mismo problema).
... c) Sí, probablemente cometí otro error, con la esperanza de resolverlo con el Analizador lógico y ver qué falla con la señal CLK. Tenga en cuenta que los pullups de 10K también están habilitados en la placa de conexión del sensor, pero no parecen tener ningún efecto (aunque puedo medir 10K entre el pin SCL y el pin VCC cuando desconecto el sensor). Tal vez debería soldar todo en una placa perforada de PCB, pero eso es mucho trabajo y, sinceramente, el proyecto no está listo para eso.

He tomado algunas medidas drásticas para llegar al fondo de esto; y la configuración está funcionando ahora :)

  1. He leído en alguna parte que I2C fue diseñado principalmente para conectar dispositivos I2C que están relativamente cerca de la MCU. Estaba usando cables Dupont de 30 cm para conectar la placa del sensor (I2C Slave) a la MCU (I2C Master). Así que los reemplacé con cables Dupont más cortos de 10 cm y ahora funciona perfectamente (las resistencias pullup externas ya no son necesarias).

  2. Estoy usando otro tipo de protoboard nuevo y diferente. He desmontado la protoboard transparente que se utilizó para este proyecto y vi que las conexiones metálicas eran de mala calidad (aunque he usado algunas durante 3 meses sin problemas). Supongo que las conexiones de una placa de prueba se desgastan con el tiempo y una placa de prueba debe reemplazarse de vez en cuando cuando se usa intensamente.

Espero que estas suposiciones sean correctas y que los informes también ayuden a otros.

ingrese la descripción de la imagen aquí

Definitivamente hay una diferencia: uno funciona y el otro no.

Pero bromas aparte: el cable Dupont va a introducir más capacitancia. No menciona la frecuencia de SCL, pero si la capacitancia es demasiado, el tiempo de subida de SCL se degradará. Puede degradarse hasta el punto en que no supera el VIH, momento en el cual I2C ya no funcionará.

Es una lástima que no tenga un osciloscopio, porque podría verificar esto fácilmente. La forma más rápida de verificar será reducir la frecuencia I2C a algo ridículamente lento; si eso funciona, entonces la capacitancia es su problema. Si ese es su problema, puede solucionarlo reduciendo la resistencia al pull-up, lo que limpiará los bordes ascendentes.

Acabo de ver su respuesta a la otra respuesta de que ya probó 10kHz... Dejaré mi respuesta por ahora en caso de que haya algo más allí que pueda ser útil.