www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Allgemein Messen von 'Z'


Autor: Steffen Böttcher (waxology)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Gibt es eine Möglichkeit mit einem FPGA, am Ausgang ein 'Z' erfassen zu 
können?

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: berndl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...oder umgekehrt...

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Steffen Böttcher (waxology)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Ottmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.