Hallo, Ich bin jetzt dabei mein erstes größeres Projekt umzusetzen. An einer Stelle habe ich einen Tristate Ausgang. Das Projekt ist als FSM geschrieben, im sequentiellen Logik-Teil ist der Tristate-Port so umgesetzt: aus<=(state==1) ? next_aus : 8'bZ; Die zugehörigen Deklarationen sind: output [7:0] aus; reg [7:0] aus; reg [7:0] next_aus; reg [2:0]state; Das Programm läuft nach viel Hilfe aus diesem Forum, allerdings zeigt der CPLD ein Verhalten, dass ich nicht verstehe. Nachdem eine 1 am Tristate Ausgang ausgegeben wurde und anschließend auf Z geschaltet wurde ist die 1 weiterhin am Ausgang vorhanden. Zuerst dachte ich das hätte etwas mit einer parasitären Kapazutät zu tun, da aber auch nach einigen Sekunden entladen über einen 200K Widerstand immer noch die 1 anliegt müsste diese Kapazität ja riesig sein. Gehe ich aber mal kurz mit Masse an den pin ist die 1 dauerhaft weg. Der Ausgang verhält sich also ein wenig wie ein Schmitt-Trigger. Kennt das jemand? Ist das ein erwünschtes Phänomen? Ich kann es mir nicht vorstellen... Stört das nicht die anderen Signale die auf der Leitung sein sollen, wenn man auf Z geschaltet hat? Wie Schalte ich das ab? Viele Grüße, Christian
Das ist die Bushaltefunktion. Ist im Datenblatt beschrieben.
Ah ok. Danke! Habe ich es richtig Verstanden: -Die Bushaltefunktion ist permanent im high-z modus aktiviert (also nicht nur bis das erste mal ein anderes gerät auf dem Bus Daten gesendet hat) -die Funktion ist nützlich und sollte nicht deaktiviert werden (falls das überhaupt geht), da sie die elektrischen Eigenschaften des Systems verbessert. Bitte beschweren wenn das nicht stimmt! Viele Grüße Christian
Im Anhang ist ein Beispiel wie man sich die Bushaltefunktion vorstellen kann. Diese Funktion verhindert dass die Eingänge 'floaten'. Gruß, Feadi
ok, so in etwa hatte ich mir es auch aus den informationen aus dem datenblatt vorgestellt. Mir ist aber noch nicht ganz klar ob es unter bestimmten Umständen sinvoll wäre die funktion zu deaktivieren. Kann es vielleicht sein, dass es Probleme gibt oder geben kann, wenn man am Bus 2 Geräte hat die diese Funktion haben? viele grüße, Christian
@ Christian Honisch >sinvoll wäre die funktion zu deaktivieren. Kann es vielleicht sein, dass >es Probleme gibt oder geben kann, wenn man am Bus 2 Geräte hat die diese >Funktion haben? Ich denke nicht. Der Bus wird durch einen aktiven Ausgang auf LOW oder HIGH getrieben. Wenn dann der aktive Ausgang auf Tristate geht, halten beide Buskeeper den Bus auf dem alten Potential. Was Probleme machen könnte ist eine Mischung aus Pull-up/downs und Buskeepern. Die könnten gegeneinander arbeiten und undefinierte Buszustände erzeugen (Bus ist low, Pull-up zihet nac HIGH, Keeper nach LOW, Busspannung ergibt sich aus dem Spannungsteiler von Pull-up und Busskeeper). MfG Falk
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.