Forum: FPGA, VHDL & Co. Spartan-6 interner Pullup funktioniert nicht richtig


von finalcu (Gast)


Lesenswert?

Hallo Zusammen,

habe zwei Taster an einem Spartan-6 ohne externe Pullup Widerstaende. 
Dafuer habe ich die Pullup Widerstaende im .ucf file wie folgt 
definiert:

NET "PushButtonxABI" LOC = W4;
NET "RSTxRBI" LOC = R7;

NET "PushButtonxABI" PULLUP;
NET "RSTxRBI" PULLUP;

wenn ich nun die Spannung am Taster messe so sehe ich nur 1.5V (anstelle 
3.3V) und darum springt der Input auch immer...

Habe ich was falsch konfiguriert oder ist es wahrscheinlicher, dass ich 
irgendwo einen Kurzschluss verursacht habe?

Gruss und Danke,
finalcu

von P. K. (pek)


Lesenswert?

Was stellt sich für eine Spannung ein, wenn Du den internen Pullup 
weglässt und (temporär) einen externen von ähnlicher Grösse benutzt 
(beim Taster solltest Du rankommen, und die Powerrails sind in der Regel 
auch zugänglich)?

Welche Spann ung stellt sich ein? Jetzt weisst Du den Strom durch den 
Pullup, und musst nur noch den fehlenden Teil des Astes suchen.

von BiBi (Gast)


Lesenswert?

Ich habe einen S6 im Gebrauch (LX-Version) und benutze beide Richtungen 
(pullup und pulldown) erfolgreich. Hast Du gfs noch einen weiteren R 
dran oder nutzt eine 1,5V-Bank?

von finalcu (Gast)


Angehängte Dateien:

Lesenswert?

Ich werde mal versuchen einen externen Widerstand dranzuhaengen und dann 
die Spannung messen.

Ich habe im PlanAhead Tool soeben gesehen, dass IOSTANDARD auf 
default(LVCMOS25) gesetzt ist...

Ich bin gerade etwas verwirrt. Auf meinem FPGA Board (Raggedstone2) hat 
es einen Jumper um jeweils die IO Sapnnung fuer die BANK1 und BANK2 auf 
3.3V resp. 2.5V zu setzen. Ich habe es auf 3.3V gesetzt. Der Taster war 
aber bereits auf dem Board (BANK3). Eigentlich sollte es doch ueberhaupt 
keine Rolle spielen welchen IOSTANDARD ich waehle, da der Pullup 
Widerstand doch sicherlich an der gleichen Spannung wie die BANK 
angeschlossen ist, d.h. wenn ich 2.5V dann zieht er auf 2.5V und bei 
3.3V auf 3.3V... oder nicht? Und ich nehme mal an, dass das interne 
Logik-Level jeweils an den IOSTANDARD der jeweiligen Bank angepasst 
wird.

Ich hab noch einen Screenshot vom PlanAhead Tool angehaengt.

von Duke Scarring (Gast)


Lesenswert?

finalcu schrieb:
> Eigentlich sollte es doch ueberhaupt
> keine Rolle spielen welchen IOSTANDARD ich waehle, da der Pullup
> Widerstand doch sicherlich an der gleichen Spannung wie die BANK
> angeschlossen ist, d.h. wenn ich 2.5V dann zieht er auf 2.5V und bei
> 3.3V auf 3.3V... oder nicht?
Da wäre ich vorsichtig.

Der interne Pullup ist m.W. kein echter Widerstand, sondern ein FET, der 
als Stromquelle bzw. -senke funktioniert.

Duke

von Andreas (Gast)


Lesenswert?

Welchen R Wert ist denn am VREF pin der Bank angeschlossen.

Der dort angeschloßene Wert wird auf die Pins generiert wie Duke

es gesagt hat.

Also anders gesagt du kanst deinen eigenen benötigten Wert mit nur einem
Widerstand generieren.

von finalcu (Gast)


Lesenswert?

Da hat es z.B.

IO_L1N_VREF_3
IO_L57N_VREF_3 (NC 25T
IO_L83N_VREF_3

alle an 0.75V angeschlossen und dann sehe ich noch

IO_L2N_3

ueber einen Widerstand von 160 Ohm an 1.5V angeschlossen.

Die meisten IO-Pins der Bank 3 gehen zu einem DDR Ram. Der Taster ist 
einer der wenigen anderen Pins an dieser Bank.

Sieht so aus als ob der IOSTANDARD dieser Bank 1.5V ist... Kann ich nun 
einfach meinen IOSTANDARD fuer den Taster-Pin im .ucf file auf 1.5 
setzen?

von Christian R. (supachris)


Lesenswert?

finalcu schrieb:
> Sieht so aus als ob der IOSTANDARD dieser Bank 1.5V ist... Kann ich nun
> einfach meinen IOSTANDARD fuer den Taster-Pin im .ucf file auf 1.5
> setzen?

Nicht nur können, sondern auch müssen. Wenn da 1,5V VCCIO angeschlossen 
sind, kannst du nur einen IO-Standard einstellen, der 1,5V hat.

von Duke Scarring (Gast)



Lesenswert?

Andreas schrieb:
> Welchen R Wert ist denn am VREF pin der Bank angeschlossen.
Vref ist aber nur für HSTL und SSTL Eingänge relevant.

finalcu schrieb:
> Sieht so aus als ob der IOSTANDARD dieser Bank 1.5V ist... Kann ich nun
> einfach meinen IOSTANDARD fuer den Taster-Pin im .ucf file auf 1.5
> setzen?
Überflieg mal Chapter 1 vom Spartan-6 FPGA SelectIO Resources User Guide 
(UG381).
Dort findest Du in Tabelle 1-5, welcher IO-Standard mit welchem 
gleichzeitig genutztwerden kann (in Abhängigkeit der Bank-Spannung).

Duke

von Duke Scarring (Gast)


Angehängte Dateien:

Lesenswert?

Offenbar mag die Forensoftware keine allzulangen Dateinamen.
Hier nochmal der Anhang.

Duke

von finalcu (Gast)


Lesenswert?

Jetzt funktionierts:

Habe den IOSTANDARD des Taster-Pins auf LVCMOS15 gesetzt.

Vielen Dank fuer die Hilfe.

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.