Probleme mit ATMega und L293D an selber Vcc

H

Hannes Hapke

Guest
Hallo,

ich habe eine kleine simple Schaltung aufgebaut,
bei der ein ATMega16 den Motortreiber L293D steuert.
Es funktiert alles klasse, solange ich fuer die Stromversorgung
des Motors eine seperate Spannungsquelle benutze. Da
das aber spaeter aber nicht moeglich ist
(AVR und Vss fuer Motor werden ueber 4,5V betrieben)
tritt folgendes Problem auf:

Sobald der Motor ueber den L293D ausgeschaltet wird,
laesst scheinbar die Gegeninduktion die Spannung der ganzen
Schaltung abfallen, und somit wird ein Reset am AVR ausgeloest.
Das Programm beginnt wieder von neuem.
Ist diese Annahme richtig?
Wie kann ich die Spannungen "abfangen" um ein Reset oder
Abschalten des Controller zu verhindern? Bei einem Relais ist es ueber eine
antiparallelgeschaltet Diode moeglich. Da der Motor aber in zwei
Richtungen betrieben wird, funktioniert es nicht.

Viele Dank fuer eine Antwort.

Viele Gruesse,
Hannes
 
Hannes Hapke schrieb:
ich habe eine kleine simple Schaltung aufgebaut,
bei der ein ATMega16 den Motortreiber L293D steuert.
...
Sobald der Motor ueber den L293D ausgeschaltet wird,
laesst scheinbar die Gegeninduktion die Spannung der ganzen
Schaltung abfallen, und somit wird ein Reset am AVR ausgeloest.
Ja, entweder wird sie zu klein oder zu hoch - obwohl ich nicht
weiß, ob der AVR dann auch resettet oder eine Schutzschaltung
anspricht.
Einfach die Versorgungsspannung für AVR und Motor entkoppeln.
Da der AVR je nach Portbeschaltung nicht so viel Strom benötigt,
würde ich hier vor Vcc ein RC-Glied schalten.
10 Ohm und 100ľF zum Beispiel, wenn an den Ports bei high-
Pegel kaum Strom gezogen wird kann man den Widerstand auch
größer machen.

Jens
 
Matthias Weingart schrieb:
Besser: eine Diode in Richtung AVR-Vcc, und ein grosser Elko an die Vcc
für den AVR. Damit fängst du kurzzeitige Spannungeinbrüche ab
Ja, bei Spannungseinbrüchen ist eine (schottky) Diode ganz gut.
Mir kam nur der Gedanke, daß beim Ausschalten des Steppers dieser kurz
noch den in ihm hineingesteckten Strom weiter fliessen lässt und die
Spannung dann ansteigen könnte.
Hängt sicherlich davon ab, wie er ausgeschaltet wird - also ob er an
der Versorgungsspannung hängt oder kurzgeschlossen wird.

und
wegen der Diode wird der Elko auch nicht durch den Motor entladen (wie
bei der R Lösung oben).
Naja, das RC Glied muss halt so groß sein, daß der Einbruch am AVR klein
genug wird.

Jens
 
"Jens Dierks" <me@privacy.net> wrote in news:2g6rruF4q764U1@uni-
berlin.de:

Hannes Hapke schrieb:
ich habe eine kleine simple Schaltung aufgebaut,
bei der ein ATMega16 den Motortreiber L293D steuert.
..
Sobald der Motor ueber den L293D ausgeschaltet wird,
laesst scheinbar die Gegeninduktion die Spannung der ganzen
Schaltung abfallen, und somit wird ein Reset am AVR ausgeloest.

Einfach die Versorgungsspannung für AVR und Motor entkoppeln.
Da der AVR je nach Portbeschaltung nicht so viel Strom benötigt,
würde ich hier vor Vcc ein RC-Glied schalten.
10 Ohm und 100ľF zum Beispiel, wenn an den Ports bei high-
Pegel kaum Strom gezogen wird kann man den Widerstand auch
größer machen.
Besser: eine Diode in Richtung AVR-Vcc, und ein grosser Elko an die Vcc
für den AVR. Damit fängst du kurzzeitige Spannungeinbrüche ab und
wegen der Diode wird der Elko auch nicht durch den Motor entladen (wie
bei der R Lösung oben). Wenn Dir der Spannungsabfall durch die Diode zu
hoch ist, kannst du auch einen P-Fet nehmen (Drain an 4.5V, Source an
Vcc, Gate an Masse). Damit hast du auch gleich einen Verpolschutz für
deinen Controller.

M.
--
Bitte auf mwnews2@pentax.boerde.de antworten.
 
Matthias Weingart wrote:

"Jens Dierks" <me@privacy.net> wrote in news:2g6rruF4q764U1@uni-
berlin.de:

Hannes Hapke schrieb:
ich habe eine kleine simple Schaltung aufgebaut,
bei der ein ATMega16 den Motortreiber L293D steuert.
..
Sobald der Motor ueber den L293D ausgeschaltet wird,
laesst scheinbar die Gegeninduktion die Spannung der ganzen
Schaltung abfallen, und somit wird ein Reset am AVR ausgeloest.

Einfach die Versorgungsspannung für AVR und Motor entkoppeln.
Da der AVR je nach Portbeschaltung nicht so viel Strom benötigt,
würde ich hier vor Vcc ein RC-Glied schalten.
10 Ohm und 100ľF zum Beispiel, wenn an den Ports bei high-
Pegel kaum Strom gezogen wird kann man den Widerstand auch
größer machen.

Besser: eine Diode in Richtung AVR-Vcc, und ein grosser Elko an die Vcc
für den AVR. Damit fängst du kurzzeitige Spannungeinbrüche ab und
wegen der Diode wird der Elko auch nicht durch den Motor entladen (wie
bei der R Lösung oben). Wenn Dir der Spannungsabfall durch die Diode zu
hoch ist, kannst du auch einen P-Fet nehmen (Drain an 4.5V, Source an
Vcc, Gate an Masse). Damit hast du auch gleich einen Verpolschutz für
deinen Controller.

M.
Hmm, im Schnellschuss würde ich Drain und Source vertauschen, aber ob das
_zuverlässig_ gegen Spannungseinbrüche hilft?
Hilfreicher ist es wohl, das Problem da zu beseitigen, wo es entsteht.
_Erstmal_ kritisch auf's Layout sehen, dann den Elko am L293 zwecks
ESR-Verringerung vergößern (wenn die SPannungsversorgung mitspielt),
RC-Kombination an den Motorwicklungen (Snubber für Arme :) ) Prozessor- und
L293d-Elko noch was kleines-keramisches spendieren und evtl. Widerstände in
die Datenleitungen vom Prozessor zum L293 einfügen, falls die
Versorgungsspannungspotentiale sittenwiedrig und nicht mehr behebbar beim
Abschalten auseinanderdriften.

Klingt aber (noch) nach der Sorte Problem, das sich schon mit einem sehr
einfachen Oszilloskop erfolgreich finden lässt.

Viel Erfolg
Detlef
--
Man ersetze das _dot_ in der Email gegen einen Punkt..
 
Detlef Voss <detlef_dot_voss@gmx.de> wrote in
news:487m7c.657.ln@192.168.1.5:

Hmm, im Schnellschuss würde ich Drain und Source vertauschen, aber
ob das _zuverlässig_ gegen Spannungseinbrüche hilft?
Hilfreicher ist es wohl, das Problem da zu beseitigen, wo es
entsteht.
Jaja war mal wieder im Tran. 'ne Diodenwirkung hat die Schaltung kaum
(er sperrt, sobald die GS-Spannung unter die Abschnuerschwelle sinkt,
3V?; ziemlich parameterabhängig die Lösung ;-)
Allerdings kannst du an der Schaltung nichts verbessern, wenn die
Versorgungsspannung auf fast Null Volt absinkt (infolge des
Motoranlaufs). Da hilft wirklich nur Diode+Elko.

M.
--
Bitte auf mwnews2@pentax.boerde.de antworten.
 
Matthias Weingart wrote:

Detlef Voss <detlef_dot_voss@gmx.de> wrote in
news:487m7c.657.ln@192.168.1.5:

Hmm, im Schnellschuss würde ich Drain und Source vertauschen, aber
ob das _zuverlässig_ gegen Spannungseinbrüche hilft?
Hilfreicher ist es wohl, das Problem da zu beseitigen, wo es
entsteht.

Jaja war mal wieder im Tran. 'ne Diodenwirkung hat die Schaltung kaum
(er sperrt, sobald die GS-Spannung unter die Abschnuerschwelle sinkt,
3V?; ziemlich parameterabhängig die Lösung ;-)
Allerdings kannst du an der Schaltung nichts verbessern, wenn die
Versorgungsspannung auf fast Null Volt absinkt (infolge des
Motoranlaufs). Da hilft wirklich nur Diode+Elko.
Naja, wenn die Spannung am ľC auf Null sinkt hat man natürlich verloren. Der
Witz ist ja, gerade das zu verhindern. Aber halt nicht mit der Diode, das
ist hässlich. ;)
Wenn die Abstürze wirklich beim Abschalten der Motorwicklung auftreten, wie
er schreibt, ist es doch sehr fragwürdig, dass die Spanung am ľC in
Richtung Null flüchtet.
Da die Strangströme nicht über 0,6A liegen (dürfen) und Induktivitäten am
Ende doch nicht Zaubern sollte sich die Spannung am L293d wohl ohne grossen
Aufwand stabil halten lassen. Schützt auch vor unliebsamen Überraschungen
bezüglich vorschnellen Treibertodes.

Sonst lässt sich zur Not auch die zweite Halbbrücke (die richtige natürlich)
verzögert abschalten, damit die Energie der Wicklung dort bleibt, wo sie
nicht stört. Wenn der Controller dann immernoch resettet liegt's wohl eher
an induktiven Versorgungleitungen im Design.

Gruß Detlef
--
Man ersetze das _dot_ in der Email gegen einen Punkt..
 

Welcome to EDABoard.com

Sponsor

Back
Top