Forum: FPGA, VHDL & Co. Ab welcher Spannung wird eine logische 1 gelesen - Artix-7


von Daniel (Gast)


Lesenswert?

Hallo zusammen,

leider bin ich mir nicht sicher, ob ich die richtige Spannung aus dem 
Datenblatt herauslese, zu der ein logischer Pegel von 1 oder 0 im 
Inneren des Artix-7 erkannt wird.

Das gefundene Datenblatt befindet sich unter dem Link:
https://www.xilinx.com/support/documentation/data_sheets/ds181_Artix_7_Data_Sheet.pdf

Auf Seite 9 unter dem Punkt : DC Input and Output Levels schaue ich bei 
I/O Standatd LVCMOS33 (ist so in Vivado angegeben)

und finde als Spannung ab der ein high Pegel sicher erkannt wird: 2 bis 
3,45 V

und für den low Pegel : -0,3 bis 0,8 V

Denn leider Verhält sich meine Schaltung ein wenig anders...

Ich würde mich über Hilfe sehr freuen!

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Sind die Versorgungsspannungen der betreffenden I/O-Bänke kompatibel zu 
den gewählten IOSTANDARD?

Befindet sich in der Constraint-Datei für jeden Pin eine entsprechende 
IOSTANDARD-Zuweisung?

Wo "in Vivado" hast Du LVCMOS33 eingestellt?

Um welchen konkreten Artix-7 in welchem Gehäuse geht es?

Welche konkreten Pins sind denn betroffen?

Hast Du das Verhalten verifiziert, indem Du die betreffenden 
Eingangspins direkt, z.B. in der Top-Level-Beschreibung, auf 
Ausgangspins geführt und dort mit einem Oszilloskop nachgemessen hast?

: Bearbeitet durch User
von Tobias B. (Firma: www.elpra.de) (ttobsen) Benutzerseite


Lesenswert?

Daniel schrieb:
> Denn leider Verhält sich meine Schaltung ein wenig anders...

Wie verhält sie sich denn? :-)

von Daniel (Gast)


Lesenswert?

Danke erstmal für die Antworten,

Die betreffenden Pins sind im Constraint file - das bereits zur 
Verfügung gesetellte Contraint file von ( 
https://github.com/Digilent/digilent-xdc/ ) - Nexys-4-DDR-Master.xdc 
folgendermaßen definiert:

constraint file:
...
set_property -dict { PACKAGE_PIN H4    IOSTANDARD LVCMOS33 } [get_ports 
{ JD[1] }];
set_property -dict { PACKAGE_PIN H1    IOSTANDARD LVCMOS33 } [get_ports 
{ JD[2] }];
...

Der betreffende Artix-7 ist der :XC7A100T

Ja, das Verhalten habe ich nur durch das Messen mit dem Oszilloskop 
festgestellt.

:Dabei habe ich das Eingangssignal an einen Ausgang verschalten und mit 
dem Oszilloskop gemessen, ab welcher Spannung der Ausgangspegel 
wechselt.



Es geht mir in erster Linie nicht darum das Problem zu lösen sondern im 
Datenblatt die Spannungswerte für high und low Pegel zu finden.

Habe ich denn an der richtigen Stelle geschaut? Oder ist das ein ganz 
anderer Wert??
Wie finde ich sonst die vom Hersteller angegebenen Spezifikationen?

von Andreas B. (bitverdreher)


Lesenswert?

Tobias B. schrieb:
> Wie verhält sie sich denn? :-)

Daniel schrieb:
> Dabei habe ich das Eingangssignal an einen Ausgang verschalten und mit
> dem Oszilloskop gemessen, ab welcher Spannung der Ausgangspegel
> wechselt.

Und?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Daniel schrieb:
> Habe ich denn an der richtigen Stelle geschaut?
Diese Frage wurde als erste gestellt, weil keine Reaktion darauf kam, 
wiederhole ich sie zur Sicherheit einfach nochmal:
Daniel schrieb:
> Auf Seite 9 unter dem Punkt : DC Input and Output Levels schaue ich bei
> I/O Standatd LVCMOS33
Mit welcher Spannung ist die IO-Bank versorgt?
Für LVCMOS33 müssen dort 3,3V angelegt werden. Siehe z.B. Tabelle 1-55 
im UG471.

: Bearbeitet durch Moderator
von Duke Scarring (Gast)


Angehängte Dateien:

Lesenswert?

Lothar M. schrieb:
> Für LVCMOS33 müssen dort 3,3V angelegt werden. Siehe z.B. Tabelle 1-55
> im UG471.
Laut dem Schaltplan [1] liegen die Pins in Bank 35, welche mit 3,3V 
versorgt wird.
Außerdem gehen die Pins über 200 Ohm Widerstände und Schutzdioden an 
eine Stiftleiste (PMOD).


Daniel schrieb:
> Wie finde ich sonst die vom Hersteller angegebenen Spezifikationen?
Das sind die garantierten Werte.
Bei CMOS liegt die Schaltschwelle bei Vcc/2, hier also 1,65 Volt.
Falls eine Hysterese verbaut ist, liegt die Einschaltschwelle höher und 
die Ausschaltschwelle niedriger.

Duke

[1] 
https://reference.digilentinc.com/reference/programmable-logic/nexys-4/start

von S. R. (svenska)


Lesenswert?

Daniel schrieb:
> Es geht mir in erster Linie nicht darum das Problem zu lösen sondern im
> Datenblatt die Spannungswerte für high und low Pegel zu finden.

Die können bei jedem Pin und jedem Device unterschiedlich sein.

In der Übergangszone zwischen High und Low können außerdem seltsame 
Effekte auftreten (z.B. erhöhte Leistungsaufnahme), daher vermeidet man 
diesen Bereich üblicherweise.

Garantiert sind nur die angegebenen Grenzen unter den angegebenen 
Bedingungen, wo auch sowas wie eine minimale Änderungsgeschwindigkeit 
angegeben sein kann.

von Daniel (Gast)


Lesenswert?

Danke an alle! Der Moderator,  Duke und svenska haben meine Frage 
richtig verstanden. Tut mir leid falls sie unklar gestellt worden ist.

Ja es liegen an den Bänken 3,3 Volt an.
Von dem her müssten die Werte die ich gefunden habe stimmen (also bei 
den Werten sie sicher erkannt werden ). In der Grauzone wie Duke und 
svenska beschrieben ist wie auch nach meinem Wissen nichts definiert.

Werde jetzt weiterbasteln und schauen warum ein high Pegel bei ca. 0,9 V 
erkannt wird...

Vielen Dank!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Duke Scarring schrieb:
> Lothar M. schrieb:
>> Für LVCMOS33 müssen dort 3,3V angelegt werden. Siehe z.B. Tabelle 1-55
>> im UG471.
> Laut dem Schaltplan [1] liegen die Pins in Bank 35, welche mit 3,3V
> versorgt wird.
Gut gepuzzelt...  ;-)

Jetzt wären also noch Zahlen zu dem "anderen Verhalten" interessant.
> Denn leider Verhält sich meine Schaltung ein wenig anders...
Wie denn? Wann erkennt deine Schaltung eine '1', wann eine '0'?

Daniel schrieb:
> und finde als Spannung ab der ein high Pegel sicher erkannt wird: 2 bis
> 3,45 V  und für den low Pegel : -0,3 bis 0,8 V
> Denn leider Verhält sich meine Schaltung ein wenig anders...
Erkennt deine Schaltung den High-Pegel z.B. erst bei 2,9V? Un den 
Low-Pegel erst unter 0,3V?

BTW: es ist meist keine gute Idee, solche (langsamen) Analogwerte an 
IO-Pins anzulegen. Denn wenn du mit der Eingangsspannung gerade so bei 
Vcc/2 bist, dann leiten beide FETs der Eingangsstugfe und du bekommst im 
Eingangstreiber einen erhöhten Strom von Vcc nach GND.

von Thorsten (Gast)


Lesenswert?

Daniel schrieb:
> Werde jetzt weiterbasteln und schauen warum ein high Pegel bei ca. 0,9 V
> erkannt wird...

0.9V ist oberhalb des Wertes bei dem sicher LOW (0.8V) erkannt wird.

von Andreas B. (bitverdreher)


Lesenswert?

Daniel schrieb:
> und finde als Spannung ab der ein high Pegel sicher erkannt wird: 2 bis
> 3,45 V
>
> und für den low Pegel : -0,3 bis 0,8 V

Daniel schrieb:
> Werde jetzt weiterbasteln und schauen warum ein high Pegel bei ca. 0,9 V
> erkannt wird...

Da brauchts Du nicht zu basteln. Das passt schon.

Thorsten schrieb:
> 0.9V ist oberhalb des Wertes bei dem sicher LOW (0.8V) erkannt wird.

Mal etwas konkreter für den TO:
-0.3 - 0.8 Low wird sicher erkannt
0.8 - 2 V Hier kann alles mögliche erkannt werden. Dieser Bereich ist 
nicht definiert
 > 2V High wird sicher erkannt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hoppla, da war mein voriges Edit-Fenster offenbar zu lange offen...  :-/

Daniel schrieb:
> Werde jetzt weiterbasteln und schauen warum ein high Pegel bei ca. 0,9 V
> erkannt wird...
Wie gesagt sind 0,9V im undefinierten Bereich. Da kann alles passieren. 
Es ist nicht festgelegt, ob da ein high oder low erkannt wird. Genauso 
könntest das FPGA bei 2,3V ein low erkennen.

Wenn bei (unter) 0,8V noch low erkannt wird (ist das so?), dann ist 
alles im grünen Bereich. Nur das Verhalten unter 0,8V und über 2,4V ist 
im Datenblatt spezifiziert.

Andreas B. schrieb:
> Daniel schrieb:
>> Werde jetzt weiterbasteln und schauen warum ein high Pegel bei ca. 0,9 V
>> erkannt wird...
> Da brauchts Du nicht zu basteln. Das passt schon.
Was uns zur eigentlichen Frage führt: warum stellt dieses Verhalten hier 
ein Problem dar?

: Bearbeitet durch Moderator
von Schlumpf (Gast)


Lesenswert?

Lothar M. schrieb:
> Genauso
> könntest das FPGA bei 2,3V ein low erkennen.

Lothar M. schrieb:
> Nur das Verhalten unter 0,8V und über 2,4V ist
> im Datenblatt spezifiziert.

Das stimmt so aber nicht..

Low:  -0,3 bis 0,8 V
High: *2,0* bis 3,45 V

@TO:
Wie bereits gesagt wurde:
Wenn bei 0,9V High erkannt wird, dann ist das völlig ok.

Du verstehst das Datenblatt falsch.
Ich vermute, du gehst davon aus, dass in den genannten Bereichen 
entweder ein Low oder ein High erkannt wird.
Aber wenn das so wäre, was soll denn dann in dem Bereich zwischen 0,8 
und 2V erkannt werden?
Es kann nur High oder Low erkannt werden.
Spannungen kleiner 0,8V werden garantiert also Low erkannt
Spannungen größer 2,0V werden garantiert als High erkannt
Spannungen dazwischen können entweder als High oder Low erkannt werden.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Schlumpf schrieb:
> Das stimmt so aber nicht..
Ok, offenbar eine Nachkommaleseschwäche... ;-)

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.