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
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
entitytestis
2
Port(GCK:inSTD_LOGIC;
3
A:outSTD_LOGIC;
4
B:outSTD_LOGIC);
5
endtest;
6
7
architectureBehavioraloftestis
8
begin
9
A<='1';
10
11
B<='0';
12
13
endBehavioral
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??
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
Eine eigene Frage?
Dieser Thread ist über 18 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.