mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Plötzlicher AVR - Tod


Autor: Johannes Raschke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Johannes Raschke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Kilian Nötzold (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mein beileid

Autor: Johannes Raschke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Johannes Raschke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: thkaiser (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Johannes (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
'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...

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]
  • [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.