¿Puedo usar un cable Dupont con una resistencia soldada en el medio como una resistencia de extracción para las comunicaciones I2C?

1

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

Entorno:breadboard,elEspressifESP32MCUcomoMasterI2Cusandoelpin#21comoSCLyelpin#17comoSDA(lospullupsinternos"débiles" + -4.7K están habilitados), un Melexis El sensor de campo magnético MLX90393 como esclavo I2C en una placa de ruptura Sparkfun (producto enlace ; los controles de 10K en la placa de ruptura Sparkfun también son habilitado). Vea la imagen para la configuración del tablero (enfoque en la resistencia pullup).

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

Sin embargo, quería simplificar el cableado de las cosas en el tablero y usar un cable Dupont modificado para el pullup . Así que tomé un cable Dupont de 30 centímetros, lo corté en el medio y soldé una resistencia de pull-up estándar de 10K y coloqué un tubo retráctil a su alrededor. Si mido la impedancia entre los 2 extremos del cable, entonces es de + -10K Ohm.

Así que conecté el cable Dupont modded, además del pin Nº 21 de SCL de la MCU y el riel de 3.3V de la placa de pruebas (en reemplazo de la resistencia básica de la configuración anterior). Ahora el sistema ya no funciona * (la comunicación I2C falla).

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

Gracias de un principiante.

    
pregunta Rolf

3 respuestas

2

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

Pero tal vez

  • los encabezados de dupont no hacen buen contacto con su tablero
  • su configuración es marginal de alguna manera (¿la frecuencia es demasiado alta?) y este cableado adicional se disparó por el borde
  • cometiste algún otro error (de la segunda foto parece que puedes tener un tablero que tiene una ruptura a medio camino en las líneas eléctricas, pero la última foto es una bb de 400 hoyos que nunca he visto con roturas)
respondido por el Wouter van Ooijen
1

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 (esclavo I2C) a la MCU (maestro I2C). Así que los he reemplazado con cables Dupont más cortos de 10 cm y ahora funcionan perfectamente (las resistencias de pullup externas tampoco son necesarias).

  2. Estoy usando otro tipo de placa nueva y diferente. Desmonté la placa transparente que se usó para este proyecto y vi que las conexiones de metal eran de mala calidad (aunque he usado algunas de ellas durante 3 meses sin problemas). Supongo que las conexiones de una placa de pruebas se desgastan con el tiempo y éstas deben reemplazarse de vez en cuando cuando se usan intensivamente.

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

    
respondido por el Rolf
0

Definitivamente hay una diferencia: una funciona y la otra no.

Pero bromeando a un lado: el cable Dupont va a introducir más capacitancia. No menciona la frecuencia de SCL, pero si la capacitancia es demasiado alta, el tiempo de aumento de SCL se degradará. Puede degradarse hasta el punto en que no se contagie con el VIH, momento en el que I2C ya no funcionará.

Es una lástima que no tenga un osciloscopio, porque podría verificarlo fácilmente. La forma más rápida de verificar será reducir la frecuencia de I2C a algo ridículamente lento; Si eso funciona, entonces la capacitancia es tu problema. Si es tu problema, puedes solucionarlo reduciendo tu resistencia de pullup, que limpiará los bordes ascendentes.

    
respondido por el Annie

Lea otras preguntas en las etiquetas