Hi! Ich wollte mir eine Schrittmotorsteuerung bauen, mit der ich zwei Motoren mit meinem HP48GX - Taschenrechner steuern kann. Dafür verwende ich wegen des eingebauten UARTs den AT90S2313. Ich benutze die Elektor - Entwicklungsplatine, welche eigendlich für den 1200 gedacht ist. Mein Problem ist jedoch, daß sich die Controller immer nur 1 bis 5 Mal programmieren lassen und dann praktisch gar nichts mehr machen. Das Programm läuft zwar so einigermaßen weiter, incl. serieller Kommunikation, aber der Controller reagiert nicht mehr auf das Flashprogramm. Nicht mal das Auslesen des Controllertyps geht noch! Das ist jetzt schon beim fünften Controller so, und bevor ich jetzt sinnlos weiter die Teile verbrate, wollte ich mal fragen, ob jemand da ne Idee hat... Die Programmierung funktioniert seriell, die Motoren werden über TCA 3727 - Chips versorgt. Die Spannung nach dem Spannungsregler beträgt genau 5 Volt.
Du solltest den Programmierer wechseln. Er hält sich wohl nicht an die Programmiervorschrift in den Datenblättern. Entweder er streßt den 2313 wirklich so, daß der wie 10000 mal programmiert reagiert. Oder die Timings sind so kritisch, daß nur die Kommunikation nicht klappt und Deine 2313 mit einem ordentlichen Programmierer weiterhin programmiert werden können. Prinzipiell habe alle Programierer mit dem Parallelport Probleme auf jedem PC das richtige Timing zu generieren. Deshalb benutzt Atmel z.B. im STK500 auch einen extra µC für die Programmierung. Ich habe noch nie einen Atmel totprogrammieren können obwohl ich immer jeden kleinen Programmschritt sofort ausprobiere. D.h. es können schon mal bis zu 100 Programmierungen pro Tag zusammenkommen. Ich benutze diesen Programmierer: http://www.specs.de/~danni/tools/proflash/index.htm Peter
Hi, Peter! Danke für Deinen Tip! Allerdings arbeitet mein Programmer seriell. Er hat noch einen 74HC14N - Chip drauf, der das ganze wohl irgendwie puffern soll. Außerdem benutze ich extra einen alten 386er Computer zum Flashen... Vielleicht hast Du trotzdem recht. Der Programmer, den Du benutzt, kann man anscheinend nicht fertig oder als kompletten Bausatz erwerben, oder? Sieht ja sehr interessant aus, das Teil! Danke nochmal Johannes
Dein HC14 tut leider nur as an der Signalqualität, leider nicht an deren Timing. Hilft in der Situation also nicht recht. Auch ein 386 sollte problemlos in der Lage sein, dass entsprechende Schnittstellen-Timing für den Programmer auf die Reihe zu bekommen. Scheint mir eher ein Problem der nicht ganz ausgereiften Elektor-Software zu sein. Das STK 500 ist das Standard-Atmel-Entwicklungsboard, dass es mittlerweile an so ziemlich jeder Ecke zu kaufen gibt. Sogar bei Conrad (da ist es allerdings zu teuer). --- Holger
Kann es nicht sein das das fuse und lock Bit gesetzt wurde? Ich kann mir zwar nicht erklären warum aber das könnte doch sein oder? Ich würde mal den Programmer aus dem Tutorial nachbauen und damit testen ob man das fuse und lock Bit wieder löschen kann. Wie das geht steht hier im Forum einige mal man musste die Spannung unter einen wert senken und dann einen erase machen.
Hi! Kilian, so wie es aussieht hast Du Recht gehabt - die Such - Funktion im Forum hatte ich erst gar nicht gesehen. Ich habe die Versorgungsspannung mal auf 4 Volt gesenkt, und nach dem zweiten Versuch meldete sich der AVR wieder. Löschen ging auch, Programmieren dann erst nach mehreren Versuchen mit etwas höherer Spannung. Das Teil scheint ja ganz schön empfindlich zu sein, was das angeht! Seltsamerweise macht das Programm trotzdem noch nicht das, was es sollte, obwohl es vor ein paar Veränderungen noch lief. Der Port B bleibt dauerhaft auf high... Na ja, wenn ich den Fehler finde und das Programm fertig ist, werde ich es hier mal posten... Vielen Dank an alle, die sich Gedanken gemacht haben! Johannes
Ich bin´s nochmal, Die Chips laufen tatsächlich wieder und das Programm in seiner Grundfunktion auch. Seltsamerweise hat er sich während der Fehlersuche nie mehr "totgestellt"... Habe jetzt fast vier Stunden dafür gebraucht um festzustellen, daß ich vergessen hatte, ZH zu initialisieren. Der Simulator verhält sich da offenbar anders als der echte AVR... Hat jemand Interesse an dem Programm zur Schrittmotorsteuerung? Ist eigendlich nix wildes, man kann bis jetzt zwei Motoren mit seriell übertragenen Buchstaben links/rechts bewegen. Dazu kommen sollen noch Features wie direkte Koordinatenangabe mit automatischer Fahrt auf dem kürzesten Weg, Koordinatenspeicher, variable Geschwindigkeit etc. Vielleicht mal automatisch abfahrbare Wege... Ich hatte mal dran gedacht, mit zwei Motoren und Spiegeln nen Laser abzulenken und Muster an die Wand zu projezieren, aber so wie es aussieht, sind die Motoren bei 300 (Voll-)Schritten pro Sekunde schon so ziemlich am Ende... Na, mal sehen, ob das reicht...
versuche mal, die Schrittmotoren zu "beschleunigen", d.h. also nicht sofort mit Full-Speed zu fahren. Die Trägheit der Mechanik läßt sich so ein wenig austricksen. Außerdem sollte der Motor-Treiber die Spannung nachführen, so daß der Strom konstant bleibt - Je schneller ein Schrittmotor dreht, umso kleiner wird der Strom durch die Spulen. Wird die Spannung nachgeführt, kann man wesentlich höhere Taktraten erzielen.
Ist zwar richtig, aber ein bißchen verwirrend. Diese Betriebsart nennt sich Konstantstrombetrieb und ist auf jeden Fall zu empfehlen. Stromabsenkung bei Stillstand nicht vergessen, sonst werden die Motörchen zu warm.
Hi Johannes, ich bin grad an nem sehr ähnlichen Projekt. Ich hab mir ne Platine mit 3 TCA3727, einen 2313 und einem MAX232 für die UART-Kommunikation gebaut. Allerdings hab ich noch ein Paar seltsame Probleme, z.B. funktioniert die ISP-Programmierung auf der Platine nur so halb, der AVR verhält sich ziemlich seltsam usw. Hab aber grad auch nicht so viel Zeit, mich damit zu beschäftigen... Aber schick mir mal bitte dein Programm! Danke Phil
Hi Johannes, ich wundere mich immer wieder über solche Probleme. Ich habe hier schon bestimmt 50 Controller (2313, Mega8 und andere) Programmiert und getestet. Das beschriebene Problem ist aber noch nie aufgetreten. Ich vermute eher, das es mit der Schaltung und/oder dem Programmer und dessen Software zusammenhängt. Gruß Markus
'n Abend... @thkaiser Soweit ich weiß, tun die TCAs genau das, die kanen ne Stromüberwachung. Das mit der Stromabsenkung könnte ich machen, aber das würde pro Motor zwei weitere Pins erfordern. Dann könnte ich auch Halbschritte fahren, aber dann kann ich nur noch zwei Motoren über einen Port betreiben statt vier... @phil: Ich hab das Programm mal angehängt. Die TCAs hängen dabei an PortB, Pins 1/2 bzw. 3/4. Mit der Eingabe von "B" und "P" über den UART kann man den ersten Motor dann links bzw. rechtsdrehen, zu Testzwecken. Viel Erfolg für Dein Projekt! @Markus: Ja, das wird wohl irgendwie mit der Software zusammenhängen. Die ist in Turbo Pascal geschrieben und kalibriert sich noch nichtmal den Timer für die Wartezeiten... Und den fremden Code zu verbessern währe wohl etwas viel Aufwand... Leider funktionieren PonyProg etc. nicht mit der Schaltung und ich hatte noch keine Lust und Zeit, mir das mal genauer anzusehen...
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.