Aunque creo que esto funcionaría, no veo la ventaja inmediata de tener pullups desconectables; ¡seguro que tienes una buena razón!
¡Ten cuidado:
Un diodo en polarización inversa es un condensador. A, por ejemplo, 3.3V de tu bus, con el puente abierto, significa que si SDA está baja y SCL se pone alta, entonces uno de los diodos está en forward y otro en reverse bias. La hoja de datos me dice que entonces tiene una capacidad de alrededor de 8pF. La resistencia equivalente a 400 kHz × 5 (un armónico que querrás tener para obtener bordes de reloj mínimamente limpios y bonitos) es \$\dfrac{1}{2 \cdot 10^6 \times 8 \cdot 10^{-12}} = 1/16 M\Omega\$ - ¡bastante cercano a los valores de tus resistencias de pull up! Podrías estar introduciendo acoplamiento cruzado involuntario entre SDA y SCL. No será grave, pero verás un poco de ringing de SCL en SDA.
Ahora, como señala @TonyM, 200 pF de capacitancia está bien según las especificaciones para I²C, y él ha estado haciendo esto durante años, así que: No te preocupes por ese crosstalk.
2 votos
¿Por qué quieres desconectar las resistencias pull-up? ¿Cuál es la razón?
3 votos
Porque el circuito que se conectará a éste podría tenerlos. En caso de que no los tenga, puedo desconectarlos. De lo contrario, se producirá una resistencia en paralelo. Pero ese no es realmente el caso. Es más importante para mí que este tipo de circuito esté operativo.
2 votos
¿Por qué no puedes simplemente mantener la huella en el PCB y luego puedes instalarlos o no instalarlos?
0 votos
Sí, estará bien. Hemos hecho lo mismo en placas para razones similares sin problemas. Parece que la configuración programable es lo que necesitas aquí, no jumpers. Por favor edita tu pregunta y añade esa información.
1 votos
Por cierto, ¿qué chip(s) usas en ese bus I²C? Pregunto porque la mayoría de los microcontroladores modernos tienen pullups programables, ¡y ni siquiera necesitas externos!
1 votos
@MarcusMüller Esta es una aplicación en la que uso P82B96DP. Sin entrar en muchos detalles, hay una situación en la que necesito conectar un dispositivo a la línea "local" i2c sin que haya ningún dispositivo conectado al i2c externo con sus propios pull ups. En ese caso, las líneas LCL y LDA necesitan pullups, porque de lo contrario las líneas no estarán en alta impedancia. Por lo tanto, este truco con resistencias.
0 votos
¡ha, caso interesante, ¡bueno!
1 votos
Puedes mantener ambos conjuntos de resistencias siempre y cuando tengas cuidado con la corriente total que circula a través de tus ICs de i2c.
0 votos
@Marcus Tengo que cuestionar tu afirmación de que los microcontroladores tienen resistencias de pull-up internas que son suficientemente buenas para I2C. Hay evidencia en sentido contrario (aquí, aquí, aquí son algunos ejemplos). ¿Podrías publicar un modelo de microcontrolador que tenga resistencias de pull-up que cumplan con la especificación I2C?
0 votos
@NickAlexeev Buen punto; sí, de hecho, tienes toda la razón: las resistencias internas de pull-up rara vez son más fuertes que 25 k, por lo tanto, no son suficientes para I²C. ¡Parece que he tenido suerte!
0 votos
Proporcionaría jumpers separados para cada diodo. Con solo uno, el ahorro es mínimo y el riesgo de acoplamiento cruzado (o peor) es alto.