Forum: FPGA, VHDL & Co. Verhalten von CPLD ausgang im high-z modus


von Christian H. (cavorca)


Lesenswert?

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

von Gugu (Gast)


Lesenswert?

Das ist die Bushaltefunktion. Ist im Datenblatt beschrieben.

von Christian H. (cavorca)


Lesenswert?

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

von Feadi F. (feadi)


Angehängte Dateien:

Lesenswert?

Im Anhang ist ein Beispiel wie man sich die Bushaltefunktion vorstellen 
kann.

Diese Funktion verhindert dass die Eingänge 'floaten'.

Gruß, Feadi

von Christian H. (cavorca)


Lesenswert?

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

von Falk (Gast)


Lesenswert?

@ 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
Noch kein Account? Hier anmelden.