mikrocontroller.net

Forum: FPGA, VHDL & Co. Spartan 3 Input Pin Problem


Autor: ChrisB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo an Alle,

ich habe einen IP Core, der einfach einen Pin vom FPGA einliest und den 
Wert in ein Register schreibt, jedoch habe ich mit der Hardware 
folgendes Problem:
An dem Pin habe ich einen Taster gegen Masse und einen Widerstand (4,7K) 
gegen 3,3V, leider liegen im Ruhezustand nur 1 Volt an dem Pin, beim 
gedrückten Taster liegen 0 Volt an (was ja auch richtig ist).
Mit ist unerklärlich, warum bei nicht gedrücktem Taster nur 1 Volt am 
Pin anliegen. Ich habe den Pin auch schon mit internem PULLUP belegt, 
jedoch hat sich nichts geändert.
Hat jemand eien Ahnung, was ich falsch mache?

Lieben gruß,
Christoph

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welches FPGA (Typ, Hersteller)?
Welche IO-Spannung?

Autor: ChrisB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich benutze das Xilinx Spartan 3. Die IO Spannung an der bank beträgt 
3,3 Volt.
Ich habe auch schon einen Ausgang definiert, der sich je nach 
registerinhalt ändert. Diese Richtung funktioniert ohne Probleme. Setze 
ich ein bit im Register auf 0 liegt keine Spannung am Pin an, setze ich 
es auf 1 liegen 3,3Volt am Pin an.

Autor: ChrisB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Muss man den Input Pin als INBUF konfigurieren um das einzeulesen? oder 
ist ein einfacher "in std_logic" auch okay?

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ein einfacher "in std_logic"
reicht üblicherweise aus, irgendwelche handverdrahteten Buffer sind nur 
bei speziellen IOs (LVDS...) sinnvoll.

> An dem Pin habe ich einen Taster...
Welcher Pin in welcher Gehäusebauform ist das?
Hat der evtl. noch andere Funktionen?

Autor: ChrisB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja das FPGA ist nen BGA676. Die Spannung messe ich natürlich nicht 
direkt am Pin, sondern an nem Stecker wo ich drankomme. Es ist momentan 
der Pin AA23 an dem ich den Taster habe.
Ich habe gerade folgendes überlegt: Kann es sein, dass das EDK das 
komplette Signal und auch die Konfiguration des Pins wegoptimiert, wenn 
ich das Signal in meinem IP Core nicht benutze? Momentan ist das Signal 
in meinem IP Core nämlich nicht benutzt.
Ich würde gerne Testen, ob es funktioniert, wenn ich das Signal intern 
benutze, jedoch funktioniert mein externes SDRam nicht, wenn ich das 
Signal in meinem IP Core benutze. Dieses Problem hatte ich in einem 
anderen Thread hier schon beschrieben. Ich verstehe irgendwie nicht, was 
ich falsch mache.

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Kann es sein, dass das EDK das komplette Signal und auch die Konfiguration
> des Pins wegoptimiert, wenn ich das Signal in meinem IP Core nicht benutze?
Sieh dir den Pad-Report von Place&Route an, da steht drin, welche Pins 
mit welcher Konfiguration wohin verdrahtet wurden.
Aber es kann tatsächlich sein, dass das Signal komplett rausfliegt. Ich 
verdrahte solche nicht verwendete Eingangssignale z.B. mit einem OR auf 
ein internes Signal, das ich wieder ausgebe. Dann wird es garantiert 
geroutet.

Autor: ChrisB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, sowas habe ich auch probiert, das Problem bei mir: Sobald ich das 
Eingangssignal in irgendeiner Art und Weise in meinem IP Core benutze 
funktioniert mein externer SDRam nicht mehr. Dieses Phänomen ist mir 
völlig unklar, vor allem, da mein IP Core zwar wie der SDRam Controller 
am PLB Bus hängt, die beiden Cores aber sonst nichts miteinander zu tun 
haben. Mein SPI Interface, was am gleichen Bus hängt funktioniert jedoch 
noch... Ich habe die Vermutung das irgendwas mit den Adressen nicht 
stimmt, obwohl alles gut aussieht, keine Überschneidungen etc.

Autor: ChrisB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mir das ganze System nochmal angeguckt, es ist aber meiner 
Ansicht nach kein Fehler drin. Trotz all dem, sobald ich einen Eingang 
des FPGA's verwende komme ich nicht mehr auf mein externes SDRam, wenn 
irgendwer eine Idee hat, woran das liegen kann wäre ich sehr dankbar 
diese mir mitzuteilen.

Vielen Dank schon einmal.

Christoph

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.