mikrocontroller.net

Forum: FPGA, VHDL & Co. Spartan II + External Bus Controller


Autor: Sebastian Girstl (sepp123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich habe folgendes Problem:
Ich programmiere einen XC2S30 direkt über einen Infineon XC167. In der 
Anwendung kommunizieren die beiden über den External-Bus-Controller des 
XC167. Hierfür habe ich mir 2 VHDL Module geschrieben: Ein Eingangs- und 
ein Ausgangsregister.
Das Ausgangsregister schaltet den Datenbus hochohmig "Z" bis es eine 
gültige Adresse, CS und RD erkennt. Anschließend legt es seine Daten auf 
den Bus bis RD den Zustand wechselt.
Bis hierhin funktioniert alles einwandfrei.
Beim Eingangsregister ist der Datenbus als Input deklariert. Es wartet 
ebenfalls bis es eine gültige Adresse, CS und WR empfängt und übernimmt 
dann die Daten vom Datenbus.

Habe ich in meinem Projekt sowohl ein Eingangs- als auch ein 
Ausgangsregister funktioniert ebenfalls alles tadellos.

Nun zum Problem:
Benutze ich in einem Projekt nur das Eingangsregister funktioniert 
dieses nach erstmaligem Anschalten der Platine noch einwandfrei. Lädt 
man ein neues Programm in den XC167 (woraufhin dieser dann wieder das 
FPGA neu programmiert) stürzt der XC167 ab. Er funktioniert erst wieder, 
wenn man das Netzteil ab- und wieder anschaltet. Meine Vermutung ist, 
dass an einem der Ports zum FPGA ein Kurzschluss vorliegt.
Lösen lässt sich das Problem wie gesagt durch das Hinzufügen eines 
Ausgangsregisters (Pullups).

Ist bei einem FPGA ein Eingang nicht automatisch hochohmig?
Wie kann es sein, dass es bei der erste Inbetriebnahme funktioniert und 
erst dann nicht mehr?

Vielen Dank im Voraus für die Hilfe

Sebastian

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Pins sind floating, wenn nix eingestellt ist. Das Problem beim 1. 
Start ist wahrscheinlich, dass beim Booten des FPGA die Pins nicht 
hochohmig sind, das lässt sich mit dem HSWAP Pin einstellen (zumindest 
bei den aktuellen Xilinx FPGAs)

Autor: Sebastian Girstl (sepp123)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für die schnelle Antwort, Christian :).
Aber wenn sie Floating sind dürfte das doch in meinen Augen dem XC167 
nichts ausmachen und schon garnicht zum Absturz bringen. Das seltsame 
ist auch, dass das Phänomen nur beim Datenbus auftritt. Der Adressbus 
macht auch ohne das Zuschalten von Pullups keine Probleme.

Und wie gesagt beim 1. Start funktioniert noch alles, ab dem 2. Start 
tritt das Problem auf.

Edit: Wie ich auf das mit dem Kurzschluss komme: Der Strom steigt nach 
dem 2. Programmieren enorm an (vorher ca 200mA, nach dem Absturz ca 
400mA)

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.