Hallo, Gibt es eine Möglichkeit mit einem FPGA, am Ausgang ein 'Z' erfassen zu können?
du moechtest wissen, ob ein FPGA eine '0', eine '1' oder ein 'Z' treibt? Ganz einfach: Du legst eine '0' und eine '1' an die Leitung an und pruefst, ob du auch eine '0' oder '1' zurueck lesen kannst! Im schlimmsten Fall gibt es einen Kurzschluss ueber den High-side des externen und ueber den Low-side deines Chips...
> Gibt es eine Möglichkeit mit einem FPGA, am Ausgang ein 'Z' erfassen zu > können? Nein. Es gibt keinen definierten Zustand von 'Z', und damit auch keine Möglichkeit das Vorhandensein von 'Z' abzufragen. Warum stellst du die Frage? Was willst du machen?
@ Lothar Miller (lkmiller) >> Gibt es eine Möglichkeit mit einem FPGA, am Ausgang ein 'Z' erfassen zu >> können? >Nein. Es gibt keinen definierten Zustand von 'Z', und damit auch keine >Möglichkeit das Vorhandensein von 'Z' abzufragen. Geht nicht, gibts nicht! Kann man einfach mit einem Spannungsteiler aus zwei gleichen Widerständen, z.B. 2x100k gegen GND und VCC. Per Fensterkomparator kann man messen, ob die Spannung bei ~0,5Vcc liegt, dann ist der Ausgang auf Tristate. MFG Falk
Falk Brunner schrieb: > Per Fensterkomparator kann man messen, ob die Spannung bei ~0,5Vcc liegt, > dann ist der Ausgang auf Tristate. Das war mir schon auch im Sinn... Aber die ursprüngliche Frage war, ob es >>> eine Möglichkeit mit einem FPGA gebe, und da fallen mir nur die Actel-Chips ein, die so ein wenig Analog-Geraffel mit drauf haben. Unbeantwortet ist bis dato: >> Warum stellst du die Frage? Was willst du machen?
Ok sorry hab erstmal nen Schnipsel in den Raum geschmissen ohne genauere Erläuterungen:-) geht zunächst mal um das Testen von ICs im allgemeinen (kein spezieller) mit Scan-Pfad. Jetzt gibt es hier auch bidirektionale Pins die überprüft werden mussen ob sie den Wert 1, 0 und Z annehmen wenn die Schaltung geeignet stimuliert wird. Bei 0 und 1 ist ja alles klar, aber auf Z zu prüfen ist mir nicht klar. Also ne externe Beschaltung ist auch völlig in Ordnung? Wollte erstmal allgemein Wissen wie man irgendwie erkennen/prüfen kann ob der Treiber deaktiviert wurde?
Wenn die Lecktröme sehr gering sind, hält so eine Leitung in der Regel den letzten Spannungswert. D.h. Schreibe eine eins, deaktiviere den Treiber, lies schnell zurück - die Leitung könnte längere Zeit auf high bleiben. Jedenfalls war das in unserem Multi-DSP System mit SRAM/SDRAM/FPGA damals der Fall.
Naja, sowas in der Art macht das Boundary Scan System von Göpel. Da wird der Treiber deaktiviert und nach einer Zeit gemessen ob der Pegel durch den externe Pull-Up oder Pull-Down entsprechend gezogen wurde. Damit lassen sich aber nur externe Pull-Widerstände erkennen.
> D.h. Schreibe eine eins, deaktiviere den Treiber,
Und dann weißt du mit einer Wahrscheinlichkeit von 50% ob das Ding Z
ist...
Nein, die richtige Mehtode ist doch von Falk schon genannt worden:
Einen definierten Spannungspegel von Vio/2 anlegen und hochohmig
schalten. Dann kontrollieren, ob 0V, Vio, oder Vio/2 an der Leitung
anliegt.
Einfach den messpunkt über einen 100kOhm widerstand an einen weiteren FPGA ausgangspin legen. Damit hast du einen umschaltbaren Pull-Up/Pull-Down. Wenn du nun den ausgangspin einmal mit 0 und einmal mit 1 treibst und den messpunkt zurückliest, dann kann tristate angenommen werden wenn der messpunkt dem schwachen Pull-Up/Pull-Down folgt. Benötigt natürlich einen weitern cycle in der auswerte logik.
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.