7 votos

Resistencias de pull-up opcionales para I²C

Necesito un circuito que me permita agregar opcionalmente resistencias de pull-up a un bus I²C. Una forma sería agregar dos jumpers para cada resistencia de pull up. Pero se me ocurrió algo como esto:

Introduzca la descripción de la imagen aquí

De esta manera solo se utiliza un jumper y SDA no interfiere con SCL cuando J1 no está montado. En mi opinión, esto debería funcionar, pero tal vez no estoy viendo algo.

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?

15voto

DmitrySandalov Puntos 129

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.

0 votos

Pero las capacidades de pin y track en un bus I2C promedio probablemente sean mucho mayores a 8 pF. La especificación de I2C permite hasta 200 pF con resistencias de pull-up. Me sorprendería mucho si esto realmente causara un problema, MM. Estaría casi asombrado, ya que hemos estado utilizando este transistor/diodo/resistor sin ningún problema en placas que hemos estado fabricando y utilizando durante años :-) Una falsa alarma, me temo, tengo que darle un voto negativo.

0 votos

@TonyM ¡ah! ¡ves, una experiencia como la tuya es una fortaleza! ¡te doy la bienvenida a tu voto negativo :) Lo arreglaré en un minuto.

0 votos

La adulación te ha llevado a todas partes, buen señor, al igual que revisar la respuesta. Ahora es una respuesta muy extraña y algo autocontradictoria, pero he eliminado el voto negativo :-)

7voto

user3314570 Puntos 25

Es importante que los dispositivos de pull-up externos conectados a las líneas del bus se adapten para acomodar el tiempo de subida máximo permisible más corto (o tiempo de bajada) para el bus I²C de modo Rápido. Debe ser inferior a 300 ns.

El método recomendado para cambiar un pull-up en la especificación I²C es el siguiente:

Circuito de pull-up conmutado

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X