Estoy diseñando una placa de interfaz de propósito general y quiero poner a disposición la mayor cantidad de 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 pullup I2C sean intercambiables, de modo que se puedan desactivar cuando no se necesiten. Mi idea inicial simplemente usa una salida GPIO libre para subir las resistencias o se desactiva (alta impedancia) cuando no se necesita, como se muestra a continuación. Esto aparentemente me ahorra un transistor interruptor. ¿Hay algo que deba tener en cuenta o es factible?
Sé que los valores de la resistencia pullup dependen de la longitud y la velocidad del bus, pero descubrimos que, para nuestras aplicaciones, 4k7 Ohm generalmente están bien.
simular este circuito : esquema creado con CircuitLab
Su uso de un pin GPIO para extraer la resistencia del bus I2C es una idea razonable siempre que la MCU en uso tenga GPIO que tengan una fuerte salida activa de alto nivel.
Deberá usar dos GPIO, uno para cada resistencia. De lo contrario, las dos resistencias colocarán 2x 4,7 K ohmios entre las dos líneas de señal.
Así que tienes una compensación. Use dos GPIO para esto o un GPIO y dos FET de interruptor pequeño. O puede equipar cada resistencia con un encabezado de dos pines y un puente y no usar GPIO en absoluto.
Parece bastante razonable (especialmente si usa dos líneas, como sugiere @MichealKaras, pero me preocuparía la idea de dejar que el bus I2C flote, por supuesto, dependiendo de lo que esté haciendo con el bus. En como mínimo, contaría con más pruebas y verificaciones de las que normalmente haría para asegurarme de que el autobús vuelva a subir sin problemas.
Por supuesto, plantea la pregunta de por qué necesita deshabilitar el bus de todos modos. Si es solo para ahorrar corriente, entonces consideraría subir el bus con algunas resistencias robustas conectadas permanentemente en paralelo con sus resistencias conmutadas, si puede ahorrar algunos microamperios. De esa manera, su autobús permanece atado alto durante la inactividad.
arne
PlasmaHH
arne