Forum: Mikrocontroller und Digitale Elektronik ATMega 32 stürzt ab


von SebmaxH (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

im moment Programmiere ich eine Motorensteuerung für einen Roboter 
(kommt noch mehr dazu momentan ist aber nur die Motorensteuerung 
wichtig). Hierzu habe ich ein Testprogramm geschrieben (im Anhnang).

Verwendet wird ein ATMega 32 und also Motortreiber ein L293D. 
Spannungsversorgung über den 7805 mit 7V über Konstanter. Die Motoren 
ziehen bei 5V und keiner Strombegrenzung ca. 400 mA aus dem Konstanter.

Nun habe ich aber das Problem, dass sobald ich einen Motor versuche 
laufen zu lassen (Mit der Regelung des ATs) (alle Werte von 1 - 254 
getestet) der AT abstürzt und neu startet.
Einzig bei dem OCR1A Wert von 255 dreht der Motor mit Vollgas los und 
der AT stürzt nicht ab.


Habt ihr vielleicht eine Idee woran das liegen könnte?

(im 2.ten Post werde ich dann noch den Schaltplan als Bild posten)


Grüße
Sebastian

von SebmaxH (Gast)


Angehängte Dateien:

Lesenswert?

Schaltplan der Platine

von Otto (Gast)


Lesenswert?

Er stürzt ab, weil Du recht viel vergessen hast:

1. Motor nicht aus der stabilierten Spannung speisen
2. Elko vor dem Spannungsregler
3. Blockkondensatoren 100nF

Otto

von spess53 (Gast)


Lesenswert?

Hi

>Einzig bei dem OCR1A Wert von 255 dreht der Motor mit Vollgas los und
>der AT stürzt nicht ab.

Bei der Schaltung normal. Deine Entstörmassnahmen sind praktisch Null. 
Sieh dir mal das Datenblatt vom L293 und die entsprechenden AppNotes von 
Atmel an.

MfG Spess

von SebmaxH (Gast)


Lesenswert?

Hallo,

danke für deine schnelle antwort.

zu 1.: Habe ich bereits geändert (ist aber noch nicht im schaltplan... 
hängt jetzt vor dem Spannungsregler)

zu 2.: Bei C1 handelt es sich um einen normalen Elko mit + und - (nicht 
Bipolar). Bei C2 habe ich einen weiteren Elko verwendet. Hier mal die 
Werte der Elkos (vielleicht hilft das weiter)
C1: 25V 1000uF
C2: 33V 10 nF

zu 3.: Wo genau müssten die Blockkondesatoren denn hin?


Grüße
Sebastian

von SebmaxH (Gast)


Lesenswert?

Hab mir gerade nochmal die Datenblätter vom ATMega 32 und vom L293 
angeschaut. Leider kann ich bei keinem von beiden etwas von 
Blockkondensatoren finden.

Bin also voll auf eure Hilfe angewiesen :)

Grüße
Sebastian

von Otto (Gast)


Lesenswert?

Zumindest direkt an jedem Versorgungsanschluss des µC ein 100nF.
Auch dem Reset tut oft ein 100nF gut.

von spess53 (Gast)


Lesenswert?

Hi

AVR042: AVR Hardware Design Considerations

http://www.atmel.com/dyn/resources/prod_documents/doc2521.pdf

MfG Spess

von martin (Gast)


Lesenswert?

Afaik nimmt man normal bei jedem IC einen 100nF Kerko zwischen VCC und 
GND.

von Michael U. (amiga)


Lesenswert?

Hallo,

>C2: 33V 10 nF

Das als Elko gleube ich Dir nicht.

Die 100n gehören dahin, wo es in jdem Beispiel, in jeder Applikation, in 
jeder Beschreibung und in 1000 Forumbeiträgen empfohlen wird:

an jedes IC so dicht als mögliche an die Anschlüsse für Spannung und 
GND.
Wenn es mehrere gibt (beim Mega32 z.B., gehört an jeden Anschluß ein 
100n.

Zum L283D kann ich jetzt nichts weiter sagen, da sollte es aber auch 
hinweise im Datenblatt geben, auch zur Leitungsführung.

PS: man kann in Eagle im Schaltplan auch einfach den Mega16 in Mega32 
umbenennen...

Gruß aus Berlin
Michael

von SebmaxH (Gast)


Lesenswert?

ok danke für die Tipps. Werde ich gleich mal testen und mich dann 
nochmal melden

Die kerkos zwischen V+ und GND am ATMega hab ich noch nie verwendet... 
Hab aber auch noch nie was mit Motoren gebastelt. Hoffe dass das das 
Problem löst.

Grüße
Sebastian

von SebmaxH (Gast)


Lesenswert?

So habe jetzt 2 Kerkos mit 100nF zwischen VCC und GND und zwischen AVCC 
und GND geschalten. Funktioniert leider immer noch nicht.

Gibt es noch weitere vorschläge?

von Otto (Gast)


Lesenswert?

siehe oben:
===========

ausreichenden Elko vor den Regler verwenden (>1000µF)
Motor nicht aus der stabilisierten Spannung versorgen....
100nF von Reset gegen Masse

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Spannungsversorgung über den 7805 mit 7V über Konstanter.
Das ist knapp genug für den 7805. Da kann er kaum regeln  :-o
Unter 8V würde ich da mal nicht gehen...

von SebmaxH (Gast)


Lesenswert?

danke nochmal für deine antwort.
Punkt 2 und 3 hab ich bereits gemacht

Genauso wie die Kerkos zwischen VCC und GND

Punkt 1 werde ich gleich testen (Geht für den >1000uF auch ein genau 
1000 uF zwischen VCC und GND des L293D)?

von SebmaxH (Gast)


Lesenswert?

Super

Thanks at all

Der 1000uF zwischen VCC und GND beim L293D war die Lösung

Jetzt funktioniert es und ich hab was dazu gelernt: Immer die Spannungen 
mit Elkos und Kerkos Puffern ^^


Danke 1000 mal

Grüße
Sebastian

von SebmaxH (Gast)


Lesenswert?

Mist zu früh gefreut...

Es funktioniert leider immer noch nicht. Er stürzt immer noch ab. Jetzt 
hab ich aber alles so gemacht wie von euch beschrieben.

Kann es vielleicht noch am Programmcode liegen?

oder sonst noch irgendwas.

Folgende Änderungen von euch habe ich bereits übernommen:

1. Stromversorgung für L293D direkt (ohne 7805 dazwischen)
2. 100nF Kelkos zwischen VCC und GND sowie AVCC und GND
3. 1000uF Elko zwischen VCC und GND bei dem L293D

Ja das wars... Das habt ihr vorgeschlagen, dass hab ich gemacht.

Hoffe ihr wisst vielleicht noch ein paar Tipps.

Grüße
Sebastian

von Otto (Gast)


Lesenswert?

Das Programm kannst Du gerne anhängen - schadet nie.
Wie hoch ist die Belastbarkeit Deiner Spannungsversorgung ?
Speist Du mittlerweile eine Spannung von mindestens 8V in den 7805 ?

von spess53 (Gast)


Lesenswert?

Hi

Hast du eigentlich die Ausgänge des L293 mit Dioden, wie im Datenblatt, 
beschaltet?

Ansonsten VCC des ATMega mit einer Drossel abblocken.

MfG Spess

von SebmaxH (Gast)


Angehängte Dateien:

Lesenswert?

Also:

Code is im ersten Post... Kann ihn aber auch gerne noch einmal Posten.

Meine Stromversorgung (= Konstanter) geht bis 5A. Sollte also gut 
reichen.
Ja habe mitlerweile auch 8V erhöht. Bringt aber auch nix :(

Die Ausgänge braucht man beim L293D nicht mit Dioden beschalten, da 
dieser bereits die Dioden drin hat (deshalb vermutlich auch das D wie 
Diode)

Grüße
Sebastian

von Otto (Gast)


Lesenswert?

Klemm den Motor ab - wenn das Programm dann nicht abstürzt, liegt es 
nicht an diesem.....

von spess53 (Gast)


Lesenswert?

Hi

>Die Ausgänge braucht man beim L293D nicht mit Dioden beschalten, da
>dieser bereits die Dioden drin hat (deshalb vermutlich auch das D wie
>Diode)

Die Stelle im Datenblatt musst du mir aber zeigen.

MfG Spess

von SebmaxH (Gast)


Lesenswert?

Jo wenn der Motor nicht dran ist (oder zum Beispiel nur ne LED) dann 
stürzt dass Programm nicht ab...

Ist also iwie ein Fehler in der Hardware...


Es funktioniert immer kurz bevor es abstürzt. Aber immer unterschiedlich 
lang :(

von SebmaxH (Gast)


Lesenswert?

@Spess:
In diesem Datenblatt
http://www.datasheetcatalog.org/datasheet/texasinstruments/l293d.pdf

auf Seite 2 ungefähr in der Mitte

von spess53 (Gast)


Lesenswert?

Hi

Ok. Nehme letzten Post zurück. Ich hatte nur das Datenblatt vom B/E.

MfG Spess

von SebmaxH (Gast)


Lesenswert?

Kein Problem :)

Hätte ja auch sein können das ich mich täusche...

Dann wäre wenigstens klar warum es nicht läuft.
Hab jetzt nochmal die Elkos und Kelkos gemessen (Kapazität) ob da 
vielleicht einer dabei ist der kaputt ist. Sind aber alle in Ordnung.

Gibts noch Ideen?

von Otto (Gast)


Lesenswert?

Diode ausreichender Leistung in Sperrrichtung parallel zum Elko des 
L293D

von spess53 (Gast)


Lesenswert?

Hi

Was hast du denn für einen Motor dran. Ist der entstört?

MfG Spess

von SebmaxH (Gast)


Lesenswert?

Okay. Darf ich fragen was die Diode dann bewirkt?

Werde ich dann morgen probieren.


Motoren sind Motoren aus einem alten Modellauto, dass zum Roboter 
umfunktioniert werden soll. Entstört sind sie mit einem Kondensator.

von Otto (Gast)


Lesenswert?

Die Diode bewirkt, dass keine Induktionsspitzen und/oder EMK Deine 
Spannung versauen....

von spess53 (Gast)


Lesenswert?

Hi

>Okay. Darf ich fragen was die Diode dann bewirkt?

Induktivitäten (Motor) neigen beim Abschalten dazu hohe Spannungen zu 
erzeugen.  Durch die Dioden werden die kurzgeschlossen.

>.... Entstört sind sie mit einem Kondensator.

kann bei schlechten Motoren etwas wenig sein.

Das ganze kann natürlich au an deinem Layout liegen.

MfG Spess

von SebmaxH (Gast)


Lesenswert?

Das mit der Diode werde ich morgen testen. Vielleicht hilft das ja. 
Immerhin hat der Elko ja schon etwas geholfen (aber eben noch nicht 
ganz)

von SebmaxH (Gast)


Lesenswert?

Aber...

Sollte die Diode dann nicht bei den Motoren sein? Ich hoffe ich verstehe 
dich richtig, dass die über den Elko soll, der zwischen VCC und GND von 
dem L293D ist ?

von Otto (Gast)


Lesenswert?

Ja, Du verstehst mich richtig - sie kann dann "über" den Motor wenn 
dieser nur in eine Drehrichtung läuft.....

von SebmaxH (Gast)


Lesenswert?

Könnte es vielleicht auch sein, dass die zuleitungen und die 
Leiterbahnen zu klein sind?

von SebmaxH (Gast)


Lesenswert?

achso...

dann geht das mit der Diode eh net...

Der motor soll sich in beide richtungen drehen

von Magnus Müller (Gast)


Lesenswert?

Otto schrieb:
> ausreichenden Elko vor den Regler verwenden (>1000µF)
> Motor nicht aus der stabilisierten Spannung versorgen....
> 100nF von Reset gegen Masse


SebmaxH schrieb:
> Jetzt hab ich aber alles so gemacht wie von euch beschrieben.
(...)
> Folgende Änderungen von euch habe ich bereits übernommen:
>
> 1. Stromversorgung für L293D direkt (ohne 7805 dazwischen)
> 2. 100nF Kelkos zwischen VCC und GND sowie AVCC und GND
> 3. 1000uF Elko zwischen VCC und GND bei dem L293D
>
> Ja das wars... Das habt ihr vorgeschlagen, dass hab ich gemacht.

Und was ist mit dem Kondensator an RESET?

von SebmaxH (Gast)


Lesenswert?

obwohl...

Vollgas geht ja auch. Also kann es eher weniger daran liegen

von SebmaxH (Gast)


Lesenswert?

Ah ok... den hab ich noch nicht

dann werde ich den noch einbauen. Soll ich da auch einen 100nF nehmen?

von SebmaxH (Gast)


Lesenswert?

Sauber ich bedanke mich erstmal für heute...

Den 100nF zwischen V+ beim Reset und GND werde ich morgen einbauen und 
dann schau ma mal.

Danke für eure Geduld und Hilfe.
Hoffe ihr seid vielleicht morgen wieder da, damit ich noch mehr fragen 
stellen kann (fals notwendig)

Wünsche euch ne gute Nacht

von Otto (Gast)


Lesenswert?

Wenn beide Richtungen kommt die Diode "über" den Elko, dann geht es 
doch.....

von Magnus Müller (Gast)


Lesenswert?

SebmaxH schrieb:
> Vollgas geht ja auch. Also kann es eher weniger daran liegen

Der Controller wird wohl immer dann abstürzen, wenn der Motor 
abgeschaltet wird.

> Ah ok... den hab ich noch nicht
>
> dann werde ich den noch einbauen. Soll ich da auch einen 100nF nehmen?

Kannst du machen. Wie groß ist eigentlich der Widerstand (R1) am 
Reset-Pin?

von SebmaxH (Gast)


Lesenswert?

Der Wiederstand am Reset Pin hat 10 Kohm

Das mit dem 100nF werde ich später testen

von gast (Gast)


Lesenswert?

Häng an den reset pin nen 1k nach v+ und einen 470nF nach gnd.
Schau dir mal die v+, den reset pin, motorstrom und motorspannung mit 
dem Oszi an. Ich würde evtl. auch 100nF (sehr nahe am Atmega)an die 
Leitungen zwischen Atmega und Treiberstufe hängen. So wie ichs auf die 
schnelle gesehen hab, sind das keine Kommunikationsleitungen dann gehen 
100nF schon.
Die Leitungsverlegung trennen Motorstrom und Steuerleitungen nicht nahe 
bei sammen.

von SebmaxH (Gast)


Lesenswert?

Also: Neuster Stand:

Ohne belastung Funktioniert es jetzt wunderbar. Unter belastung stürzt 
er immer noch ab.

ABER: Dies scheint wohl an dem L293D zu liegen, da der nur 600 mA pro 
Ausgang verträgt, die Motoren aber mehr als die 600mA unter belastung 
verbrauchen :(

Naja jetzt werde ich mal schaun wie ich es alternativ mache

von Esko (Gast)


Lesenswert?

Es kann gut sein, dass deine Versorgung einbricht wenn du den Motor 
anmachst.
-> Reset

PS: Du heißt nicht zufällig Hänsch mit Nachnamen.

von SebmaxH (Gast)


Lesenswert?

nö

heiße nicht Hänsch mit nachnamen :)

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.