Use GPIO para Pullups conmutables de I2C

4

Estoy diseñando una placa de interfaz de propósito general y quiero poner a disposición tantos periféricos disponibles y utilizables en un encabezado de expansión sin la necesidad de cambios permanentes (soldadura).

Un problema es hacer que las resistencias de extracción I2C sean conmutables, de modo que puedan desactivarse cuando no sean necesarias. Mi idea inicial simplemente utiliza una salida GPIO libre para tirar de las resistencias altas o se deshabilita (alta impedancia) cuando no se necesita, como se muestra a continuación. Esto aparentemente me salva un interruptor de transistor. ¿Hay algo que deba tener en cuenta o es factible?

Sé que los valores de la resistencia de pull-up dependen de la longitud y la velocidad del bus, pero encontramos que para nuestras aplicaciones 4k7 Ohm en general están bien.

simular este circuito : esquema creado usando CircuitLab

    
pregunta Arne

2 respuestas

2

El uso de un pin GPIO para extraer la resistencia del bus I2C es una idea razonable, siempre y cuando la MCU en uso tenga GPIO que tengan una salida de alto nivel activa activa.

Deberá usar dos GPIO, uno para cada resistencia. Si no, las dos resistencias colocarán 2x 4.7K ohms entre las dos líneas de señal.

Así que tienes una compensación. Utilice dos GPIO para este o un GPIO y dos FET de conmutador pequeño. O puede equipar cada resistencia con un cabezal de dos pines y un puente y no usar GPIO en absoluto.

    
respondido por el Michael Karas
1

Parece bastante razonable (especialmente si usa dos líneas, como sugiere @MichealKaras, pero me preocuparía la idea general de dejar que el bus I2C flote en absoluto, por supuesto, dependiendo de lo que esté haciendo con el autobús. Por lo menos, contaría con más pruebas y verificaciones de las que haría para asegurarme de que el autobús vuelva a funcionar sin problemas.

Por supuesto, plantea la pregunta de por qué necesitas deshabilitar el bus de todos modos. Si es solo para ahorrar corriente, entonces consideraría tirar el autobús alto con algunas resistencias robustas atadas permanentemente altas en paralelo con las resistencias conmutadas, si puedes ahorrar algunos microamperios. De esa manera, su autobús se mantiene alto durante la inactividad.

    
respondido por el Scott Seidman

Lea otras preguntas en las etiquetas