Forum: FPGA, VHDL & Co. Nexys3: Pins High während Programmierung per PC


von Tobias M. (twam) Flattr this


Lesenswert?

Hallo!

Ich bin gerade dabei meine ersten Gehversuche mit einem FPGA auf dem 
Nexys3 Board von Digilent 
(http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,897&Prod=NEXYS3) 
zu machen. An die Pins des VHCDI Connectors habe ich ein paar LEDs 
angeschlossen die ich Multiplexen möchte, was auch schon gut 
funktioniert.

Ich hab nur das Problem, das während des Programmierens durch Impact 
alle Ausgänge auf HIGH sind und somit alle LEDs (ungepulst) aufleuchten, 
was ich natürlich nicht haben will. Wie kann ich das am einfachsten 
abstellen?

Grüße
  Tobias

von Thomas T. (knibbel)


Lesenswert?

Hallo,

Du schreibst im ersten Absatz, dass du die LEDs multiplexen willst. Wenn 
dann alle Ausgangs-Pins während Reset auf High sind, dann dürfte aber 
keine einzige LED der LED-Matrix leuchten!

Hast du vielleicht im Moment noch die LEDs mit Anode an den Pin und alle 
Kathoden an GND angeschlossen? Dann würde dein zweite Absatz Sinn 
machen.

Um das abzustellen, könntest du die Kathoden der LEDs an die 
Ausgangs-Pin hängen und alle Anoden an VCC anschließen. Während Reset 
hast du dann auf beiden Seiten der LED High-Pegel und es leuchtet nichts 
mehr. Zum Ansteuern der LED musst du dann das Signal invers ausgeben.

Mit Multiplexen hast mein vorheriger Absatz allerdings wenig zu tun...

Gruß,
Thomas

von Tobias M. (twam) Flattr this


Lesenswert?

Hallo Thomas!

Die LEDs hängen nicht direkt daran sondern übern N-MOSFETs und P-MOSFET 
mit Inverter. Um also eine bestimmte LED anzuschalten, geben ich auf die 
jeweilige Spalte und Zeile HIGH  und der Rest ist LOW.

Die Idee war dabei, dass wenn alles LOW oder auf Eingang steht, dass 
dann kein Strom fließt.

Grüße
  Tobias

von Thomas T. (knibbel)


Lesenswert?

Hallo,

sollte deine Schaltung schon fertig sein, dann lässt sich evtl. mit 
Pulldown-Widerständen etwas machen, da die Pins während der 
Konfiguration hochohmig sind (<== Vermutung, hängt bei Spartan 6 unter 
anderem von einem externen Pin (HSWAPEN) ab). Die Widerstände würden 
dann die Pegel entsprechend runter ziehen.

Generell würde ich aber genau die inverse Funktion wählen: Reihe und 
Spalte mittels Low-Pegel durchschalten (und dann evtl. externe Pull-Ups 
verwenden).

Gruß,
Thomas

von Tobias M. (twam) Flattr this


Lesenswert?

Hi

Das mit HSWAPEN war ein guter Tipp. Auf meinem Board ist der auf GND 
gelegt und damit haben wohl alle Pins eine Pull-Up während der 
Konfiguration.

Meine Schaltung ist noch lange nicht fertig und ich kann daher noch 
(fast) alles ändern. Warum ist es besser mittels Low-Pegel zu schalten? 
Ich dachte, das die Version mit High-Pegel zu schalten den Vorteil hat, 
das ich gerade nicht ziemlich viele Pull-Ups brauche :)

Grüße
  Tobias

von Christian R. (supachris)


Lesenswert?

Mit Low hat hier den Vorteil, dass man eben gerade während der Config 
des FPGA über die internen Pull-Ups per HSWAPEN einen inaktiven Pegel 
erzeugen kann, und somit die externen Pull-Ups sparen kann. Interne 
Pull-Downs kann man erst nach der Config aktivieren.

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.