¿Qué IC pequeño podría proporcionar un pullup de I2C conmutable?

7

Mi objetivo es reemplazar un DPST en las resistencias pullup con algo simple, barato y muy pequeño que pueda activarse con el voltaje del bus I2C. Pensé que este podría ser un requisito bastante común como para encontrar un IC simple para esta tarea, pero después de horas buscando en las hojas de datos no encuentro una solución tan ideal como sugiere mi instinto.

La pregunta sobre cómo Usar GPIO para Pullups conmutables de I2C tiene los conceptos básicos de lo que estoy intentando Para lograr en una PCB muy pequeña. No necesariamente quiero usar un GPIO para activar y desactivar los pullups, mi objetivo es la flexibilidad del diseño, por lo que un jumper o un GPIO pueden activarlos.

simular este circuito : esquema creado usando CircuitLab

Inspirado por el Bus Pirate que hace algo similar con CD4066BC, quad bilateral switch Encontré el TC7W66F, doble interruptor bilateral que se ajusta vagamente a mis objetivos de precio y espacio, pero me imaginé algo similar a un paquete SOT-23.

La pregunta mencionada anteriormente tiene una respuesta que sugiere el uso de FET y encontré algunos paquetes de FET duales con una fuente ya unida que parecían funcionar, pero principalmente soy un tipo de software y tengo que admitir que no me siento cómodo usando algo como esto sin más consejos, o si es necesario ¿Más componentes matando mis deseos espaciales?

    
pregunta DanSut

4 respuestas

12

Yo sugeriría BJTs "pre-sesgados"

Los MOSFET dobles tienden a tener una gran capacidad de Drain-Source que afectará el tiempo de subida de su bus I2C. Los transistores de conmutación BJT tienden a tener menos. Por ejemplo, estos tienen Cob con solo 3pF Por lo general, a 10 V (será 2-3 veces más alto a bajo voltaje, lo que no te dicen y se supone que debes saber), pero aún así es bastante modesto. Agregue las resistencias pullup a los colectores, los emisores a Vdd, y conecte las bases a su línea / enable y listo (una parte más las resistencias, y el paquete es de solo 2.0 x 2.1 mm). Muy barato en volumen, y no te preocupes mucho por la ESD.

simular este circuito : esquema creado usando CircuitLab

Entonces, ¿por qué no MOSFET?

Son de menor resistencia, ¿verdad? Bueno, los BJT saturados caerán 50 ~ 100 mV muy probablemente a las corrientes que los usará (se comparan bien con los conmutadores 4066), y comparan la capacitancia de salida de un MOSFET FDS6312P (Coss), generalmente varios cientos de pF cerca de 0V, que es casi tan alto como el máximo de 400pF para todos los dispositivos en el bus.

    
respondido por el Spehro Pefhany
5

Una opción es dos MOSFETS de canal P. Estos se pueden conectar de la siguiente manera:

simular este circuito : esquema creado usando CircuitLab

Básicamente, si usa MOSFETS de nivel lógico, puede alimentar la señal EN_n (no habilitada) con + V voltios para deshabilitar las resistencias de pull-up y 0V para habilitarlos. Cuando están desactivadas, las resistencias esencialmente no estarán allí. Tendrá diodos corporales desde las líneas I2C a V +, pero no deberían causar ningún problema.

Como @bitsmack señala, también puede agregar una resistencia de pull-up opcional (R3) en el pin EN_n que mantendría los MOSFETS deshabilitados si el pin se deja flotando. Esto permitiría que la entrada se vacíe por completo, simplemente un cortocircuito a tierra para habilitarla, o dejar flotante para deshabilitarla.

Es posible obtener paquetes muy pequeños (SOT23-6 o SOT23-5) que contienen dos MOSFETS P-Ch (por ejemplo, este ) que luego se puede conectar como se muestra arriba, generalmente están organizados de manera que el enrutamiento sea bastante simple. Básicamente, puede unir las puertas y las fuentes haciendo un paquete muy pequeño de 4 pines. Incluso si lanza la resistencia de pull-up como dice un 0603, todo el circuito probablemente sería más pequeño que un puente de 2x2 pines de 0.1 ".

    
respondido por el Tom Carpenter
4

Enfoque práctico

  

Todas las tablas de separación que estoy conectando están bajo mi control [...]

Mantenlo simple. Extraiga las resistencias pull-up I2C de cada tabla de ruptura que tenga. Instale resistencias pull-up con valores razonables en la placa del microcontrolador.

  

mi deseo básico es poder encender la PU donde la quiero con un solo puente en lugar de 2

Tratar de reducir el número de saltadores de 2 a uno es mucho más que disminuir los retornos, si puedo decirlo yo mismo.

Si un enfoque práctico no apela

Puede hacer algo en la línea del circuito activo de extracción de corriente constante.

\ $ I = \ cfrac {V_Z-0.65} {R_ {307}} \ $

\ $ R_ {307} = R_ {308} \ $

Cualquier transistor PNP de pequeña señal de propósito general haría.

    
respondido por el Nick Alexeev
1

¿Qué tal si usas un acelerador de bus I2C con una habilitación, como LTC4300A-1

Esto puede aislar partes del bus, y está destinado a hacerlo. El inconveniente es que necesita sus pullups en ambos lados. ¡Lo bueno es que no tendrías que preguntarte!

    
respondido por el Scott Seidman

Lea otras preguntas en las etiquetas