Forum: FPGA, VHDL & Co. Problem mit I/O Ports


von HB (Gast)


Lesenswert?

Hallo...

ich habe im Moment folgendes Problem: Ich will an meinem Spartan3 ein 
paar LEDs dranhängen. Dazu sollen ein paar I/O Pins 3,3V Pegel liefern.

Bisher habe ich folgendes gemacht:
- die Portpins in der *.ucf Datei als LVCMOS33 oder LVTTL konfiguriert.
- OUTBUF verwendet

Die Portpins zeigen mir danach das korrekte, angegebene Bitmuster (z.B. 
für 8 LEDs "01010101"... allerdings mit Pegeln 0V und 1,53V

Was mach ich falsch???

von Klaus F. (kfalser)


Lesenswert?

Hast Du auch eine VCCIO Spannung von 3.3 V an diesen Bänken?
Diese wird von der Leiterplatte geliefert, die SW Konfiguration muß dazu 
passen.

Klaus

von Klaus F. (kfalser)


Lesenswert?

Wie hast Du die LED's reingehängt?
Zwischen Pin und GND oder Pin und 3.3 V?

von fpgakuechle (Gast)


Lesenswert?

Versehtnlich die FpGA-internen PullUps/downs an den I/O aktiviert?
Steht im PAD file.
Oder misst du die Flussspannung über den LED's forward voltage ?

von HB (Gast)


Lesenswert?

@Klaus Falser 1
Die "Softwarekonfigruartion" wird doch in dem ContraintsFile gemacht. 
LVCMOS33 bzw. LVTTL hab ich ausprobiert. Ebenfalls hab ich den OBUF 
entsprechend konfiguriert... wie in der lib.pdf beschrieben.

@Klaus Falser 2 und fpgakuechele
Noch hab ich gar keine LED's drangehängt... ich messe lediglich mit dem 
Oszi die Spannung an den Pins gegen Masse.
Wie man das mit den PullUps/downs macht weiß ich ehrlich gesagt nicht... 
werde aber mal das PAD File checken...

von Klaus Falser (Gast)


Lesenswert?

Es genügt nicht, die Pins für einen bestimmten I/O Standard ( = LVCMOS33 
oder LVTTL) zu konfigurieren.
Jeder I/O Standard braucht auch eine bestimmte Versorgungsspannung an 
speziellen Versorgungspin. Jeder I/O Pin gehört zu einer bestimmten 
Bank, jede Bank hat gemeinsam mehrere solche Versorgungspins (VCCIO).
Wenn Du deine Pins für LVCMOS33 oder LVTTL konfigurierst, müssen die 
Versorgungspins für die dazugehörige Bank mit 3.3 V verbunden sein.

Klaus

von Lukas (Gast)


Lesenswert?

Hi! Ich habe glaube ich das gleiche problem! Ich habe eine 
Ampelschaltung geschrieben. mit dem Atmega8 funktioniert die auch 
einwand frei. aber mit dem mega8515 gibt es ein problem: Wenn ich an den 
ausgängen für die verschiedenen Ampeln die Spannung messe, messe ich 
dort 5 VDC oder ca 0,3 VDC
sobald ich aber eine LED anschließe, bricht die Spannung anscheinend 
zusammen,  dann messe ich nur noch 1,4 VDC oder ca 0,3 VDC.
Ich habe mal eine Low current LED angeschlossen, die hat ohne 
vorwiderstand ganz wenig geleuchtet.


Woran liegt soetwas?

von Falk B. (falk)


Lesenswert?

@ Lukas (Gast)

>sobald ich aber eine LED anschließe, bricht die Spannung anscheinend
>zusammen,  dann messe ich nur noch 1,4 VDC oder ca 0,3 VDC.

Klar, das ist die Flusspannung.

>Ich habe mal eine Low current LED angeschlossen, die hat ohne
>vorwiderstand ganz wenig geleuchtet.

Auch Low-Current LEDs brauchen einen Vorwiderstand! 1-2kOhm ist 
ausreichend.
Wahrscheinlich hast du die Ports nicht als Ausgang geschaltet.

DDRx = 0xFF;

MFg
Falk

von Lukas (Gast)


Lesenswert?

Doch ich habe den entsprechenden Port definitiv als ausgang gesetzt.

von Falk B. (falk)


Lesenswert?

@ Lukas (Gast)

>Doch ich habe den entsprechenden Port definitiv als ausgang gesetzt.

Zeig mal deinen Quelltext, als Anhang.

MFG
Falk

von Lukas (Gast)


Angehängte Dateien:

Lesenswert?

Sorry ich dachte ich hätte ihn schon reingestellt.

von Falk B. (falk)


Lesenswert?

@ Lukas (Gast)

>ldi temp, 0xff
>out DDRC, temp          ;Port B ist ausgang

Kleine Differenz zwischen Assembler und Kommentar ;-)

Ich nehme mal an, deine LEDs hängen MIT Vorwiderstand an Port C. 
Wieviele LEDs hast du denn angeschlossen? Dein Programm scheint sechs 
LEDs zu steuern. Ist das Korrekt? Ansonsten sieht das Programm OK aus.

MfG
Falk

von Lukas (Gast)


Lesenswert?

jo, ich habe das prog mal auf Port C geändert, und anscheinend vergessen 
das Kommentar zu ändern.
Also es ist richtig, das ich damit 6 LEDs steuere. Zurzeit benutze ich 
LEDs mit intigrirtem Vorwiderstand. Wenn ich dort direkt 5 Volt anlege 
leuchten die auch.

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.