Forum: FPGA, VHDL & Co. Wie überprüfen ob ein XC9536 einen Reset durchführt?


von Stefan (Gast)


Lesenswert?

Hallo,
ich habe Probleme mit einem XC9572. Der PLD ist in einer
Schrittmotorsteuerung. Ab und zu gibt er ausgangszustände aus welche
eigendlich nicht sein dürften. Ich habe jetzt die Vermutung das
Störungen durch Schaltvorgänge auf der Platine es irgendwie bewirken
das der XC9572 einen internen Reset durchführt. Wie kann ich überprüfen
ob er dies tut. Im Webpack habe ich eine Option gesehen an der man
einstellen kann ob alle Flip-Flops zu anfang low oder high sein sollen.
Ist diese Funktion zuverlässig? Das heist sind wirklich alle Flip Flops
auf low nach dem einschalten? Falls ja so könnte ich ja ein Flip flop
nach jedem einschalten durch den anliegenden Taktes meines externen
1MHz oszillators setzen und auf einen Ausgang führen. An diesem müsste
ich ja mit dem Oszi erkennen können ob er mittendrin sobald mein
Schrittmotor einen Fehlschritt macht auf low geht oder?

mfg
Stefan

von FPGA-User (Gast)


Lesenswert?

ist das Design vollsynchron ? gibt es Signale, die asynchron
die Zustände einer Statemachine beeinflussen könnten?
Timing-Probleme schliesse ich bei 1 MHz aus.
Das mit dem Reset der FFs funktioniert sicher, ich vermute
eher, dass durch externe Signale oder Probleme mit der
Versorg.-Spannung undef. Zustände auftreten.
Ist alles gut abgeblockt ?

von Stefan (Gast)


Lesenswert?

Hallo,
das Design ist eigendlich sehr synchron. An allen Eingängen sitzen
D-FFs, welche alle gleichzeitig mit 500khz getaktet werden. Die
Ausgänge sind auf eingänge von ICs geschaltet, D/A-Wandler und
MOSFET-Gate-Treiber ICs. Dennoch erwärmt sich das PLD auf ca 80°C nach
ca 10min betriebszeit. Bei dieser Temperatur blebt es dann auch. Ich
kann mir daher auch gut vorstellen das da irgendwas schwingt. Das mit
dem Ausgang an dem man den Resetimpuls erkennen kann funktioniert. Ich
hab es getestet. Im betreib wird allerdings anscheinend kein Reset
ausgeführt. Der Ausgäng bleibt auf high. Wie blockt man so ein CPLD am
besten gegen Störungen ab, welche Maßnahmen müssen an den Aus-und
Eingängen sowie an der Versorgungsspannung getroffen werden?

mfg
Stefan

von Peter D. (peda)


Lesenswert?

"erwärmt sich das PLD auf ca 80°C"

Ich würde mal sagen, da ist was oberfaul.

Erstmal alles andere abklemmen und die Stromaufnahme messen.


Peter

von Stefan (Gast)


Lesenswert?

Hallo,
ich hab jetzt das Programm für den PLD mal kräftig aufgeräumt. Alles
was für 1/4 Schrittbetrieb nicht benötigt wird habe ich
rausgeschmissen. Jetzt erwärmt sich das PLD nur noch auf ca 45°C. Warum
hat die Programmgröße solche auswirkungen auf die hitze. An der Funktion
des PLDs hat sich durch die aufräumaktion nichts geändert. Auch am
verhalten nicht. Ab und zu kommen schrittfehler zustande deren herkunft
ich nicht lokalisieren kann. Ich habe auch noch zusätzliche 100nF
Kondensatoren an alle Versorgungspins gelötet. Danach habe ich alle
anderen ICs mal aus den Sockeln gezogen. Es ändert sich nichts. Einen
Kurzschluss auf der Platine schließe ich aus, da sich das gleiche
Verhälten auf 2 Platinen zeigt. Ich habe schon mal gelesen das die
Eingänge eines Xilinx CPLDs sehr empfindlich sind und auf alles
reagieren, aber wie soll ich herausfinden an welchem Pin es liegt?

mfg
Stefan

von FPGA-User (Gast)


Lesenswert?

generell sind die 5V-CPLDs von XILINX (9500er) ziemliche
Stromfresser. Ich würde Dir raten, erstmal alle Macro-
zellen im Low-Power-Mode arbeiten zu lassen.
Das lässt sich über Constraints einstellen, z.B. UCF:

NET "*"  PWR_MODE = LOW;

alle Eingänge müssen definierte Pegel bekommen, zur Not
sind Pullups / Pulldowns einzufügen

Die Betriebsspannung muss "fest" genug sein, welchen Strom
misst Du bzw. was kann das Netzteil ?

Wenn das soweit OK ist, würde ich auf ein "schlechtes"
Design tippen, "sehr synchron" gibts eigentlich nicht,
entweder es ist synchron oder nicht. Wieviele Takte gibt
es im Design - werden wirklich alle I/Os über getaktete
FFs eingelesen ?

von FPGA-User (Gast)


Lesenswert?

noch ne Idee:
alle Ausgänge auf SLOW setzen, wenn keine sehr hohen Frequenzen
nötig sind, das kann den Strombedarf und evt. damit verb. Probleme
weiter verringern, Beispiel UCF:

NET "digit<0>"    SLOW;

von Stefan (Gast)


Lesenswert?

Hallo,
danke für den Tip. Ich werds mal ausprobieren ob ich die Stromaufnahme
noch weiter runter bekommen. Ich hab meinen Fehler gefunden. Wie gesagt
ging es bei mir um eine Schrittmotorsteuerung. Da die ganze Schaltung
über ein Schaltnetzteil versorgt wurde kam es zu problmen. Die langen
aber eben nicht am CPLD. Durch die ganzen Störungen hat er wohl
eingänge falsch gelesen. Die pulsierende Stromausnahme bedingt durch
dem Stromchopper kam wohl irgendwie mit der Schaltfrequenz des
Netzteils (eigenbau auf TL494 Basis) in Resonanz. Auf dem Oszi konnte
man es jedoch nicht erkennen. Jetzt habe ich ein normales Netzteil mit
7805 drin, das funktioniert.

PS: Der PLD wird immer noch ca 65° Warm.

mfg
Stefan

von Wiskas(TM)-Jäger (Gast)


Lesenswert?

War mir bei den XC9536 auch aufgefallen, daß die extrem heiß werden.

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.