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


von Sebastian G. (sepp123)


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

von Christian R. (supachris)


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)

von Sebastian G. (sepp123)


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)

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.