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
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 ?
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
"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
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
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 ?
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;
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.