Ich verwende einen SPI-Bus von der CPU zu zwei FPGAs mit unterschiedlichen (dh individuellen) CS-Signalen.
Die CPU und das erste FPGA werden eingeschaltet, und das zweite FPGA wird nicht mit Strom versorgt.
Wenn ich SPI-Signale an beide FPGAs sende, schließt das zweite (nicht mit Strom versorgte) FPGA die gemeinsamen SPI-Signale kurz und das erste (mit Strom versorgte) FPGA kann die Signale mit niedriger Amplitude nicht erkennen.
Warum kann das passieren und wie kann man es beheben?
Obwohl mir einige Teile der Geschichte nicht ganz klar sind, scheint die Gesamtsituation ein bekanntes Problem zu sein.
Warum das passieren kann
Das Anschließen von Signalen an einen nicht mit Strom versorgten IC (in Ihrem Fall das zweite FPGA) liegt normalerweise außerhalb der Spezifikation dieses ICs (mit wenigen Ausnahmen, typischerweise bei ICs, die speziell für die Busisolierung ausgelegt sind - siehe unten). Überprüfen Sie das Datenblatt dieses Geräts, um festzustellen, ob die Eingangsspannungsspezifikation Vcc / Vdd oder eine bestimmte Spannung erwähnt. Wenn Spannungen erwähnt werden, die sich auf Vcc / Vdd beziehen, denken Sie darüber nach, was das bedeutet, wenn das Gerät nicht mit Strom versorgt wird.
Wenn Sie Hilfe beim Interpretieren des Datenblatts Ihres FPGA benötigen, geben Sie einen Link zur Seite mit den elektrischen Spezifikationen an, und wir können versuchen, das relevante Teil für Sie zu finden.
Wenn Sie Signale an einen solchen stromlosen IC anschließen, versucht dies tendenziell, den stromlosen IC durch die ESD-Schutzstrukturen an diesen Signalpins des stromlosen ICs mit Strom zu versorgen. Der IC sollte jedoch nie über seine Signalstifte mit Strom versorgt werden. Diese Signale können möglicherweise nicht den erforderlichen Strom liefern, um den IC mit Strom zu versorgen (natürlich waren sie nie dafür ausgelegt), und daher können die Signalspannungen ausfallen -Spezifikation wird der IC möglicherweise nicht korrekt mit Strom versorgt (da diese Methode der Stromversorgung nie beabsichtigt war) und es kann eine Vielzahl von Fehlverhalten beobachtet werden. Sehen Sie sich die Fragen und Antworten zu diesen vorherigen Themen für ähnliche Probleme an:
Isolieren Sie den Mikrocontroller von der Platine und verwenden Sie einen anderen
Geräte ohne Stromversorgung am I2C/SPI-Bus
wie man es repariert?
Verwenden Sie geeignete Busisolations-ICs, die so ausgelegt sind, dass ein Teil eines Busses stromlos geschaltet werden kann, ohne andere Geräte im gespeisten Teil des Busses zu beeinträchtigen. Zum Beispiel stellen TI und Analog Devices (neben vielen anderen Herstellern) solche Geräte her, abhängig von Ihrer Geschwindigkeit, Ihrem Strom, Ihrem Paket, Ihren Kosten, Ihrer Verfügbarkeit und anderen Anforderungen.
In einigen Fällen ist der 74LCX125 (der eine Spezifikation hat, die aktive Eingangssignale zulässt, auch wenn er nicht mit Strom versorgt wird) ein Beispiel für einen IC-Typ, der verwendet werden kann, um Signale an ein nicht mit Strom versorgtes Gerät zu puffern, dh den 74LCX125 und das nicht mit Strom versorgte Gerät würden an dieselbe Stromschiene angeschlossen und würden daher gemeinsam mit Strom versorgt oder nicht mit Strom versorgt.
Sie könnten einen Spannungsumsetzer-Chip verwenden, der sich garantiert gut verhält (die Eingänge nicht lädt), wenn eine Versorgung (von zwei) fehlt.
In einigen Fällen können Sie möglicherweise nur Vorwiderstände für SCK und Daten und /CS für Ihr zweites FPGA verwenden, dies ist jedoch nicht die beste Vorgehensweise.
Es ist auch möglich, dass bestimmte FPGA-Eingangsstrukturen (die so ausgelegt sind, dass sie höhere Eingangsspannungen als die relevante I/O-Versorgung tolerieren) dieses Problem nicht aufweisen, aber lesen Sie die Spezifikationen in Bezug auf zulässige Eingangsspannungen sehr sorgfältig. Sie haben das nicht getan, weshalb Sie dieses Problem sehen - wahrscheinlich gibt es eine absolute maximale Eingangsspannung von Vddio + 0,3 V oder etwas Ähnliches, und Sie verletzen diese Spezifikation.
SamGibson
Ilja A
SamGibson