Hallo alle zuammen.. Ich habe ein riesiges Problem.. Ich sitze hier vor meinem CPLD von Xilinx und weiß nicht mehr weiter. Ich habe zwei Pins als Ausgänge definiert. An einem habe ich dann ein "High-" und an dem anderen ein "Low-Pegel" per VHDL definiert. Dies ist nntürlich lediglich ein exemplarisches Programm zur Fehlersuche.. Wenn ich jetzt mit dem Multimeter an den Pins messe, messe ich an dem "High-Pin" ca 3.6 V und an dem "Low-Pin" exakt 0 V. Das sieht im ersten Moment erstmal TTL-Kompatibel aus! Verwende ich diese Signale jedoch in einer TTL-Schaltung weiter oder messe sie mit dem Logik-Tester durch werden beide als "High-Pegel" interpretiert. Ich frage mich ernsthaft ob ich zu blöd bin und verzweifle langsam.. Wie können 0 V als "High-Pegel" erkannt werden?? Ich würde mich über eine schnelle Antwort freuen, Mit freundlichen Grüßen, JH
Wie kann ich das herrausfinden? Habe außer mit TTL noch keine großartigen Digitaltechnik-Erfahrung..
1k gegen Vcc, was sagts Multimeter, 1k gegen GND, was sagts Multimeter nun? Oder mitm Oszilloskop wenn du eines hast - da sieht man die Leitung schön hüpfen und Finger dran reicht um sie auf low zu ziehn. Wie sieht dein VHDL Code aus? Hängt der Output (tristate?) von irgendwelchen möglicherweise floatenden Eingängen ab?
"1k gegen Vcc, was sagts Multimeter, 1k gegen GND, was sagts Multimeter nun?" Ich verstehe die Aussage so irgendwie nicht.. Welchen Spannungsabfall soll ich nun messen.. Zwischen Vcc und ? Der Code sieht so aus:
1 | entity test is |
2 | Port ( GCK : in STD_LOGIC; |
3 | A : out STD_LOGIC; |
4 | B : out STD_LOGIC); |
5 | end test; |
6 | |
7 | architecture Behavioral of test is |
8 | begin
|
9 | A <= '1'; |
10 | |
11 | B <= '0'; |
12 | |
13 | end Behavioral |
Ich habe ein Digitalspeicheroszi. hier stehen.. Wie kann ich denn damit den Wdst. ermitteln?? Ich bin verdammt aufgeschmissen wenn ich das nicht hinbekomme.. Danke für das Verständis für mein Unwissen ;)
Lassen wir das Oszi mal... Den Widerstand jeweils einmal (nicht zur selben Zeit) zwischen "Ausgang" und Vcc und zwischen "Ausgang" und GND. Dabei am "Ausgang" messen. Wenn der "Ausgang" hochohmig ist misst du bei 1k gegen Vcc am "Ausgang" ca. 3.6V und 0V bei 1k gegen GND. Der VHDL code ist soweit ok. Wenn mit der 1k-Methode rauskommt dass er hochohmig ist: * Sicher, dass der CPLD richtig programmiert ist? * Sicher, dass die PIN-Assignments stimmen? * Sicher, dass deine Leitung physikalisch Kontakt zum richtigen CPLD pin hat? (Wenn du sonen sockel benutz kanns z.B. sein dass der PIN nicht ordentlich drandrückt)
Also wenn ich gegen Vcc messe ergibt das 4,14 V, gegen GND 0 V.. Das PIN-Assignment ist def. korrekt, tausendmal überprüft. Nehme direkt am SOckel das signal mit Messpitzen ab.. Auf dem Board sind an einigen Pins LEDs angebracht. Wenn ich diese als Ausgang def., läufts.. Daraus folge ich, das alles korrekt programmiert wird.. Habe das Ding schon x-mal neu programmiert.. Hast du sonst noch eine Lösungsidee??
Und was schließt du daraus? Überleg mal, ob es sein kann, dass du dort ~5V misst wenn der Pin eigentlich 0V als Quelle bringen sollte. . .. ... Nö. Die vermeindliche 0V-Quelle ist hochohmig, also falsch konfiguriert. Guck dir deine Constrains an, entweder ist der Pin als Input definiert oder dein Design ist vermurkst...
Deine Messung ergibt dass der pin hochohmig ist. Kann der cpld bzw. der ausgangstreiber kaputt sein... also anderen cpld probieren - wenn das nicht hilft liegts problem irgendwo auf der softwareseite.
An einen anderen CPLD komme ich nciht dran, ist ein Schulprojekt, Lehrer auf Klassenfahrt, muss bis Freitag fertig sein.. Wo können den Probleme auf der Softwareseite liegen??
In den Constraints. Is'n Xilinx, ne? Guckst du in der .ucf-Datei. Inhalt hier posten und sagen um welchen Pin es sich handelt.
JH wrote: > ^^ sorry, es waren gegen Vcc 5,14 V ;) Mal eine andere Frage: Mit was für einer Versorgungsspannung wird dein CPLD betrieben? Die XL Typen von Xilinx brauchen 3V3. Gruß Jörn
1 | #PACE: Start of Constraints generated by PACE |
2 | |
3 | #PACE: Start of PACE I/O Pin Assignments |
4 | NET "A" LOC = "P1" ; |
5 | NET "B" LOC = "P2" ; |
6 | NET "GCK" LOC = "P5" ; |
7 | |
8 | #PACE: Start of PACE Area Constraints |
9 | |
10 | #PACE: Start of PACE Prohibit Constraints |
11 | |
12 | #PACE: End of Constraints generated by PAC |
A ist High, B ist Low.. Danke nochmal für die Hilfe ;)
JH wrote:
> Mit 5V wir der betrieben..
Das sollte aber nicht so sein. Was ist mit dem Topmodul (siehe oben)?
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.