Extracción de las resistencias pull-up de la placa de conexiones

Utilizo placas de conexión VL53L0X para la medición de distancia en I2C, cada una con un cambiador de nivel incorporado y resistencias pull-up (10kΩ, según lo medido). Como conecto muchos de ellos en un solo bus (5 y más), necesito quitar las resistencias pull-up para mantener la resistencia total por encima de un valor crítico, alrededor de 1,63 kΩ para 5 V, como se explica aquí, para que i2c sea bajo . el nivel de tensión no supera los 0,4 V.

No estoy seguro de identificar correctamente la resistencia en el tablero y cómo quitarla. Es una placa barata de eBay, por lo que, por supuesto, no hay esquemas, etc. El tablero se ve así: [![frente del tablero][1]][1] [![reverso del tablero][2]][2]

Esta es una mejor imagen trasera de Amazon: [![ingrese la descripción de la imagen aquí][3]][3]

Al medir las resistencias, pude identificar la resistencia como la "103" (no EDIeditada; gracias) en el medio, que es una resistencia de 4 vías. Parece estar conectando más cosas, así que creo que si lo elimino por completo, la placa dejará de funcionar por completo. ¿Es factible "a mano" (tengo esa punta fina para soldar pero no tengo mucha experiencia con la soldadura en miniatura)?

Agradezco cualquier sugerencia, tengo conocimientos numéricos, esto es nuevo para mí :)

El dispositivo de 8 conductores marcado como "103" (no "EDI") es probablemente un paquete de resistencias, con cuatro resistencias de 10 K (10 000 ohmios) (el código de valor es "103"). Hay dos resistencias individuales de 10K en la parte inferior izquierda de la segunda foto.
Edité el EDI, gracias :)) Los dos de la izquierda van a los pines X y G, los pull-ups están entre SCL-VIN y SDA-VIN.
Realmente deberías poder ver por ti mismo que estas imágenes están desenfocadas.
Por lo que veo, VL53L0X tiene una dirección I2C estática y no programable. No se puede conectar más que en un autobús.
@oldfart la dirección es perfectamente programable, simplemente no persistente. Usando el pin XSHUT, uno los trae uno por uno y reprograma la dirección.
@OlinLathrop Subí uno mejor de Amazon. Sin embargo, los rastros de PCB son bien visibles y aquellos que dominan i2c no tendrán problemas para reconocer cómo encajan los componentes.
" No estoy ejecutando 7 sensores en un bus... ¿Quieres decir "ahora"?

Respuestas (2)

¿Es [posible quitar las resistencias pull-up I2C] "a mano" (tengo esa punta fina para soldar pero no tengo mucha experiencia con la soldadura en miniatura)?

Creo que hice ingeniería inversa del esquema para su placa (sería más fácil con la placa en mis manos), y luego encontré un esquema en línea para una placa de ruptura similar (aunque no idéntica) a la suya, que encaja con mi análisis.

Así que estoy bastante seguro, pero usted tiene el tablero en sus manos y yo no, así que verifique mis suposiciones.

La mala noticia es que, como sabe, su placa no fue diseñada para permitir una fácil desconexión de los pull-ups I2C. Aunque es fácil desconectar el pull-up de SDA, es un poco más difícil para SCL. Mi enfoque requiere un bisturí afilado para cortar los rastros y se debe agregar un pequeño cable de puente.

Encontré una foto un poco más enfocada de su tablero de uno de los muchos vendedores de Ebay, así que marqué los cambios allí:

Tablero de conexiones VL53L0X con modificaciones para desconectar pull-ups I2C

Hay varias formas de acercarse a su requerimiento. Supongo que desea realizar modificaciones mínimas en las placas de conexión.

  • Mirando la línea verde vertical 4: creo que las dos resistencias de 10k en el paquete de resistencias a la izquierda de esa línea, ambas tienen sus conexiones superiores a los 3.3V del regulador de 3 pines inmediatamente arriba en la PCB. Piense en ellos como los "pull-ups I2C internos". No querrás desconectarlos.

  • Las dos resistencias de 10k en el paquete de resistencias del lado derecho de la línea verde 4tienen sus conexiones superiores al VINpin externo. Piense en ellos como "expulsores I2C externos" y esos son los que desea desconectar.

  • Aunque no es fácil de ver en ninguna de las fotos hasta ahora, encontré otra foto de esta placa de conexión que mostraba que el dispositivo del paquete SOT323 de 6 pines tenía la marca superior 702. Eso encaja con el paquete siendo un MOSFET de doble canal N (similar a dos MOSFET 2N7002 en un solo paquete). Como ejemplo, el GSM7002T es un dispositivo de este tipo y tiene el código superior 702:

Asignación de pines MOSFET de doble canal N GSM7002T

Siempre que los pocos parámetros críticos (especialmente Vgs) sean adecuados, también se podrían usar otros dispositivos MOSFET de canal N dual en esa ubicación, por lo que espero que haya una variedad de otras marcas superiores en esos dispositivos utilizados en las diversas placas de conexión. El propósito de ese dispositivo es como un cambiador de nivel típico (traductor de nivel) para las dos señales I2C, ya que de acuerdo con la hoja de datos VL53L0X , no debe conectarse directamente a un bus I2C que se eleva a cualquier cosa por encima de 3,5 V, por ejemplo. un bus I2C de 5V.

  • Para desconectar los "pul-ups I2C externos" necesita:
    • Corte la pista en el punto 1para desconectar el pull-up externo a SDA.
    • Corte la pista en el punto 2para desconectar el pull-up externo a SCL.
    • Suelde un cable de puente aislado como se muestra para la conexión 3, entre el drenaje D1del MOSFET de canal N dual y el orificio del pasador del cabezal SCL.

Luego, puede agregar una resistencia pull-up adecuada a cada una de las dos señales I2C, según corresponda para todo el bus I2C. ¡Trabajo hecho!


Más tarde, descubrí que Pololu fabrica una placa de conexión VL53L0X y proporciona un diagrama esquemático:

Esquema de la placa de conexiones Pololu VL53L0X

Ese esquema muestra muy bien el uso de los MOSFET de canal N como cambiadores de nivel. No es completamente exacto para su tablero, pero las diferencias son bastante pequeñas, por ejemplo:

  • El pinout del encabezado es obviamente diferente.

  • Su tablero probablemente tenga un regulador de 3.3V (esto se basa en los códigos principales que vi en varios otros listados de Ebay; no puedo leer el código principal del regulador en sus fotos); la placa Pololu tiene un regulador de 2.8V.

  • En lugar de resistencias discretas en la placa Pololu, se reemplazan 4 resistencias por el paquete de resistencias en su placa.

  • La placa Pololu tiene pull-ups de 47k XSHUTy GPIO1resistencias en serie de 1k en ambas señales; su tablero tiene pull-ups de 10k y no tiene resistencias en serie.

De una comparación rápida:

  • Pololu R1 = 4ta resistencia desde la izquierda en su paquete de resistencias de 10k
  • Pololu R2 = tercera resistencia desde la izquierda en su paquete de resistencias de 10k
  • Pololu R3 = 2da resistencia desde la izquierda en su paquete de resistencias de 10k
  • Pololu R4 = resistencia más a la izquierda en su paquete de resistencias de 10k
  • Pololu R5 y R6 = resistencias separadas de 10k cerca de los orificios de los pines XSHUTy GPIO1del cabezal en su placa.

No tengo asociación con Pololu, pero su documentación siempre está muy por encima de la información casi nula de los vendedores de Ebay, Ali Express y Amazon, etc., por lo que he sido un feliz comprador de sus productos.

Guau, excelente, muchas gracias! Probaré y te aviso. Para Pololu (y Adafruit) estoy de acuerdo en que es bueno apoyarlos comprando sus productos, por la calidad superior de los documentos, el soporte y la fabricación; en este caso, sin embargo, es su factor de forma el que es demasiado grande para el dispositivo que me gustaría construir.
Ahora medí las resistencias en la placa y obtuve "ceros" entre SCL-D1 y SDA-D2, y también entre el VIN y la mitad superior derecha del paquete de resistencias. ¿Por qué sería necesario agregar el puente SCL-D1? También de los esquemas de Pololu, ¿debería ser suficiente cortar los rastros de R1/R2 antes de Q2A/Q1A, ya que los rastros de SCL-Q1A y SDA-Q1B ya deben estar allí?
" Obtengo "ceros" entre SCL-D1 y SDA-D2... ¿Quiere decir 0 Ω o circuito abierto?
@Transistor: 0Ω (más algo de ruido de medición y resistencia de rastreo).
@eudoxos - "¿ Por qué sería necesario agregar el puente SCL-D1? " Porque de lo contrario, después de cortar en el punto 2, no hay conexión desde D1. " debería ser suficiente para cortar los rastros de R1/R2 antes de Q2A/Q1A " Eso es efectivamente lo que estoy sugiriendo en su tablero (dependiendo de lo que quiera decir con "antes"). El desafío en su tablero es que su "R1 y R2" están en ese paquete de resistencias. " Los rastros de SCL-Q1A y SDA-Q1B ya deben estar allí " Sí, lo están, pero debido al acceso físico limitado para cortar en cualquier lugar más fácilmente, mi corte sugerido 2desconecta la ruta SCL-Q1A (D1) y necesita agregar el puente.

Basado en la excelente respuesta de @SamGibson (y su comentario con sugerencia), me di cuenta de que el rastreo VIN solo se usa para alimentar el regulador de voltaje y esas dos resistencias pull-up. Entonces podría cortar el rastro en la ubicación 5 ( después de que el VIN va al regulador) y 1 (que desconecta SCL y SDA entre sí a través de una resistencia de 2x10k a la derecha del paquete de 4); el resto del tablero es consumido regulado 2.8. Para cortar, el microtaladro es muy bueno, mejor que el cuchillo Stanley. Ahora estoy ejecutando 7 sensores en un bus sin ningún problema. Funciona perfectamente.

tabla cortada 5 esquemas

protoboard con 7 sensores vl53l0x y OLED

Me alegro de que la modificación te funcione :-) Sin embargo, hay una razón por la que deliberadamente no la sugerí: deja SDA y SCL conectados entre sí a través de 20k, es decir, a través de las dos resistencias de 10k de la derecha en el paquete de resistencias. Mídelo y verás que estoy en lo cierto. Esto causará diafonía entre las dos señales y puede causar problemas (lo he visto). Si realmente desea cortar en un punto 5, entonces, para evitar la diafonía, también debe cortar la pista que une los pads superiores de las dos resistencias de la derecha. Sin embargo, pensé que sería más difícil que mi sugerencia. Tu decides :-)
@SamGibson: tienes razón, SDA y SCL tienen 20k entre ellos :)) Si corto tanto (5) como (1), ¿estará bien? Estoy buscando una solución sin cables de puente, es más complicado agregarlos.
" Si corto tanto en (5) como en (1), ¿estará bien? " Sí, parece un buen plan: es más fácil que mi sugerencia (que usa un puente), siempre que las personas puedan cortar en el punto 5( usando solo una hoja, pensé que el espacio limitado alrededor lo haría difícil, pero con su microtaladro, luego cortar hay una opción, como lo ha hecho). ¿Puede agregar este "corte en 5y 1" como una actualización en su respuesta? Después de hacer eso, está bien para mí si desea "desaceptar" mi respuesta y aceptar la suya, ya que la suya es la solución más simple para las personas que pueden cortar en el punto 5. +1 :-)
@SamGibson Hice lo que dijiste, aunque moralmente eres tú quien debería obtener todos los puntos de solución. Muchas gracias de nuevo.