Ich habe ein LCD-Display, das von einem ziemlich leistungsstarken Mikro mit GPU und allem möglichen Zeug gespeist wird. Es stellt sich jedoch heraus, dass das Booten des Kerns über 5 Sekunden dauert. Aus Sicht der Benutzererfahrung sind 5 Sekunden, um nach dem Einschalten ein Startbild / eine Animation auf dem Bildschirm zu sehen, nicht akzeptabel.
Also dachte ich daran, ein separates, sehr billiges Mikro einzubauen, das die Master-Leitung für die ersten paar Sekunden halten und das Boot-Up-Image liefern kann. Es würde dann den SPI-Bus an das Hauptmikro übergeben.
Dies ist natürlich nicht der einzige Anwendungsfall des kleineren Mikros. Ich würde es auch für die gesamte Hintergrundbeleuchtung verwenden. Das größere Mikro geht möglicherweise in einen Ruhezustand und ich möchte, dass das kleinere Mikro das Display weiterhin eingeschaltet lässt. (Im Grunde teilt das Hauptmikro dem kleinen Mikro einfach mit, welche Helligkeit eingeschaltet bleiben soll, und eine Standardhelligkeit, falls das Hauptmikro schläft).
Gibt es eine Möglichkeit, das kleine Mikro für die ersten 5 Sekunden als Master zu halten und dann für den Rest der Zeit auf das Hauptmikro loszulassen (und es als Bonus an das kleine Mikro zurückzugeben, wenn das Hauptmikro in den Ruhezustand übergeht? )?
Danke!
Das Hauptproblem besteht hier wahrscheinlich darin, keinen geeigneten MUX auszuwählen - die meisten analogen Schalter werden wahrscheinlich funktionieren. Sondern wie man "GPU" und "MCU" synchronisiert. Da die MCU die meiste Zeit sprechen sollte, außer wenn die GPU übernimmt, sollte es ruhig sein.
Die GPU kann die SPI-Drähte nicht einfach nach Belieben durchtrennen, da dies eine laufende SPI-Übertragung korrumpieren würde. Dies kann sehr schlimme Nebenwirkungen haben, wenn die MCU beim Schreiben von Befehlen an das Display unterbrochen wird.
Sie können dies lösen, indem Sie die beiden Geräte die /SS-Leitungen des anderen abhören lassen und dies als Mittel zur "Schlichtung" verwenden.
GPU:
MCU:
MUX:
Es wäre wahrscheinlich am einfachsten, ein "kleines Mikro" auszuwählen, das zwei SPI-Schnittstellen hat. Verwenden Sie einen als Master, um das Display anzusteuern, und den anderen als Slave, der an das "große Mikro" angeschlossen ist.
Dann kann die Firmware Ihres kleinen Mikros entscheiden, ob sie die Transaktionen des großen Mikros an das Display weiterleitet oder ihre eigenen Befehle sendet.
Beachten Sie, dass das Senden von Daten an das Display auf diese Weise unkompliziert ist. Aber wenn das große Mikro etwas vom Display zurücklesen soll, ist etwas mehr Überlegung erforderlich.
Der direkte Weg, um das zu implementieren, was Sie wollen, besteht darin, einige Schaltkreise zwischen den Prozessoren und dem Display einzufügen. Diese Schaltung kann zwei Formen annehmen:
Bei diesem Schema müssen Sie jedoch vorsichtig sein, wenn Sie die Anzeige tatsächlich von einem Master auf den anderen umschalten. Sie sollten vermeiden, zu wechseln, während auf der Schnittstelle eine aktive SPI-Transaktion ausgeführt wird. Einige Geräte könnten in diesem Fall verwirrt werden. Andere SPI-Geräte würden sich einfach erholen, indem sie das SPI_CS-Signal für eine gewisse Zeit auf den inaktiven Pegel treiben.
Quad-SPDT-Analogschalter würde auch wie http://www.ti.com/lit/ds/symlink/ts3a5018.pdf funktionieren . Dieser ist ein 3,3-V-Pegel, es gibt auch 5-V-Pegelschalter.
Annie
Hasman404