Tengo una pantalla LCD que funciona con un micro bastante potente, con GPU y todo tipo de cosas. Sin embargo, resulta que tardará más de 5 segundos en arrancar el núcleo. Desde la perspectiva de la experiencia del usuario, 5 segundos para ver cualquier imagen/animación de inicio en la pantalla después del encendido es inaceptable.
Así que estaba pensando en incluir un micro separado muy barato que pueda mantener la línea maestra durante los primeros segundos y proporcionar la imagen de arranque. Luego entregaría el bus SPI al micro principal.
Por supuesto, este no es el único caso de uso del micro más pequeño. También lo usaría para todo el control de la retroiluminación. El micro más grande podría entrar en un estado de suspensión y me gustaría que el micro más pequeño aún mantuviera la pantalla encendida. (Entonces, básicamente, el micro principal simplemente le dirá al micro pequeño qué brillo mantener encendido y un brillo predeterminado en caso de que el micro principal duerma).
¿Hay alguna manera de que pueda mantener el micro pequeño como maestro durante los primeros 5 segundos y luego dejarlo ir al micro principal por el resto del tiempo (y como beneficio adicional, devolvérselo al micro pequeño cuando el micro principal entre en modo de suspensión) )?
¡Gracias!
El principal problema aquí es probablemente no elegir un MUX adecuado; la mayoría de los interruptores analógicos probablemente funcionarán. Sino más bien cómo sincronizar "GPU" y "MCU". Debido a que MCU debería estar hablando la mayor parte del tiempo, excepto cuando GPU toma el control, entonces debería estar en silencio.
La GPU no puede simplemente cortar los cables SPI cuando le plazca, porque entonces corromperá una transferencia SPI en curso. Esto puede tener efectos secundarios muy malos si la MCU se interrumpe al escribir comandos en la pantalla.
Puede resolver esto haciendo que los dos dispositivos escuchen entre sí/líneas SS y use eso como un medio de "arbitraje".
GPU:
UCM:
MUX:
Probablemente sería más sencillo elegir un "micro pequeño" que tenga dos interfaces SPI. Utilice uno como maestro para controlar la pantalla y el otro como esclavo conectado al "micro grande".
Luego, el firmware de su micro pequeño puede arbitrar entre pasar las transacciones del micro grande a través de la pantalla y enviar sus propios comandos.
Tenga en cuenta que enviar datos a la pantalla de esta manera es sencillo. Pero si el gran micro necesita leer algo de la pantalla, se requiere pensar un poco más.
La forma directa de implementar lo que desea es insertar algunos circuitos entre los procesadores y la pantalla. Este circuito puede tomar dos formas:
Este esquema requiere que tenga cuidado cuando cambia la pantalla de un maestro a otro. Le gustaría evitar cambiar mientras hay una transacción SPI activa en curso en la interfaz. Algunos dispositivos pueden confundirse cuando esto sucede. Otros dispositivos SPI se recuperarían simplemente llevando la señal SPI_CS al nivel inactivo durante un período de tiempo.
El interruptor analógico Quad SPDT también serviría como http://www.ti.com/lit/ds/symlink/ts3a5018.pdf Ese es un nivel de 3.3V, también hay interruptores de nivel de 5V.
annie
Hasman404