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!
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?
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?
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?
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.
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
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.
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!
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.
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.
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 VDaniel 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.
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?
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.