¿Existe un enfoque de buenas prácticas para apagar los dispositivos periféricos (SPI, I2C, UART) que consumen mucha energía?

Estoy tratando de limitar el uso de energía de un sistema que usa varios sensores y transceptores en los buses SPI, I2C y UART. No puedo diseñar fácilmente alrededor de los sensores en uso, por lo que lamentablemente no es una opción seleccionar dispositivos con modos de apagado explícitos o baja corriente de reposo. Algunos de los dispositivos (un ESP8266 por ejemplo) ofrecen modos de bajo consumo que son suficientes, pero otros no.

Los dispositivos varían en función: detección de voltaje/corriente/potencia, detección de temperatura y humedad, MEMS, transceptores.

En una pregunta sobre dispositivos I2C sin alimentación , entiendo que existen algunas dificultades para apagar estos dispositivos por completo, debido a los posibles efectos parásitos en el bus.

Una opción que observé es insertar un aislador galvánico bidireccional en el pin SDA de cada dispositivo I2C que deseo apagar, aunque me preocupa el retraso de propagación: ¿tendría que conducir el pin del reloj a través de otro canal para garantizar una coincidencia de retraso? ? Esto también podría volverse costoso de implementar rápidamente, ya que los circuitos integrados aisladores no son los circuitos integrados más baratos.

Esto todavía me deja sin mucha información sobre los posibles efectos parásitos en los buses SPI y UART de dispositivos sin alimentación. ¿Tienen estos problemas similares? Tampoco estoy seguro de cuál es la mejor manera de desconectar el dispositivo de la alimentación: ¿es apropiado un MOSFET de canal N único en línea con el pin Vcc (o equivalente) del dispositivo?

Intente buscar conmutadores de bus FET. Hay algunos con muy poca energía en espera. Cuando están habilitados, conectan directamente las entradas y salidas. Cuando está deshabilitado, hay una alta impedancia entre la entrada y la salida.

Respuestas (2)

Yo usaría un multiplexor analógico como se muestra a continuación:

Uso de un mpx analógico para aislar un dispositivo

Utilice la línea de selección para conectar el lado maestro (a la izquierda) al dispositivo (a la derecha) cuando esté encendido; seleccione las líneas ficticias (que no pueden ir a ninguna parte) para conectarse al maestro y luego apague el dispositivo.

El multiplexor proporcionará aislamiento.

El dispositivo puede necesitar un pullup (valor alto, no está allí por ningún motivo excepto para poner un nivel válido en los pines) en SDA y SCL.

Los dispositivos apagados con SDA y SCL conectados a un riel de alimentación que está encendido, perderán corriente en los pines SDA y SCL del dispositivo apagado, por lo que debe aislarlos.

Usaría un interruptor analógico para aislar las líneas I2C al dispositivo antes de apagarlo. Deberá tener rieles de voltaje (al menos 2 aquí, uno para el maestro y otro para el dispositivo) con el mismo nivel de voltaje para mantener la compatibilidad lógica entre el dispositivo y el maestro.