Negative Spannungsspitzen abfangen

OP #2571151
Lesenswert?

Es gibt da das RepRap-Projekt, bei dem die Elektroniken sowohl einen 
ATmega betreiben als auch recht hohe Ströme (bis 15 Ampére) für die 
Heizungen über einen MOSFET aus dem gleichen Netzteil schalten. Oft ist 
das ein handelsübliches PC-Netzteil. Welches genau, da hat die 
(weltweite) Community wenig Einfluss drauf. Selber bin ich zwar 
Maschinenbau-Ingenieur, habe also nur begrenzt Ahnung von Elektronik, 
betreue aber auch die Generation 7 Elektronik.

Es gibt immer wieder Meldungen, dass beim einschalten der Heizung der 
Brown-Out-Detector (4.3V) des ATmega (20MHz) auslöst. Das kann ich bei 
meinem eigenen Aufbau nachvollziehen. Offensichtlich zieht eine 
plötzliche Last auf der 12V-Linie auch die 5V-Linie mit runter. Fette 
Elkos (1000 uF) helfen da nicht, denn bei 10A sind die in Nullkommanix 
leer.

Wie das bislang geschaltet ist, sieht man im angehängten Bild. Die 5V 
gehen an den ATmega, auf den 12V sind die Lastwechsel (oft per PWM mit 
wahlweise 70Hz - 70kHz).

Die Frage ist jetzt, wie man den kurzen Spannungsausfall überbrücken und 
die Elektronik gegenüber nicht ganz so tollen Netzteilen robuster machen 
kann. Gehe ich nach 
http://www.sprut.de/electronic/switch/12vsnt/12vsnt.html (Scope-Bilder 
ganz unten), sind das etwa 2 Millisekunden.

Idee 1: Die 5V (max. 300mA) durch eine Schottky-Diode laufen lassen. 
Dann gehen zwar 0,3V verloren, doch das Netzteil kann den Puffer-Elko 
nicht mehr leer saugen. Der Puffer-Elko würde seine Funktion 
beibehalten.

Idee 2: Die 5V aus dem Netzteil weg lassen und den ATmega über einen 
LM7805 aus den 12V betreiben. Ist der LM7805 schnell genug, sollten die 
Spannungseinbrüche auf den 5V ausbleiben.


Klingt das gut? Gibt es noch bessere Lösungen?
Angehängte Dateien:
Gast #2571210
Lesenswert?

Die Sache mit der Schottky-Diode und einem angemessenen Kondensator 
dürfte doch schon mal helfen

Markus H. schrieb:
> Gehe ich nach
> http://www.sprut.de/electronic/switch/12vsnt/12vsnt.html (Scope-Bilder
> ganz unten), sind das etwa 2 Millisekunden.

Ich würde da nicht nach irgendwelchen Bilder aus dem Netz gehen, sondern 
die eigenen Signale auf dem Scope ansehen. Das dürfte deutlich mehr 
Aussagekraft haben.

Markus H. schrieb:
> Es gibt immer wieder Meldungen, dass beim einschalten der Heizung der
> Brown-Out-Detector (4.3V) des ATmega (20MHz) auslöst.

Was nun? Tut oder tut nicht?
Fragt sich natürlich, warum du bei solch einer Versorgungsspannungslage 
den Brown-Out auf 4.3V stehen hast. Oder läuft der Prozessor wirklich 
mit über 50% Auslastung (von Warteschleifen mal abgesehen)?

Wenn man die paar mA aus einem separatem Linearregler holt, der über 
Diode und Lade-C abgekoppelt ist, wäre man allerding auf der sicheren 
Seite. Stromsparen scheint ja nicht das Thema zu sein.
OP #2571242
Lesenswert?

Michael schrieb:
> Die Sache mit der Schottky-Diode und einem angemessenen Kondensator
> dürfte doch schon mal helfen

Dann werde ich das mal ausprobieren.

> Ich würde da nicht nach irgendwelchen Bilder aus dem Netz gehen, sondern
> die eigenen Signale auf dem Scope ansehen. Das dürfte deutlich mehr
> Aussagekraft haben.

Erst mal ein Scope haben :-)

> Markus H. schrieb:
>> Es gibt immer wieder Meldungen, dass beim einschalten der Heizung der
>> Brown-Out-Detector (4.3V) des ATmega (20MHz) auslöst.
>
> Was nun? Tut oder tut nicht?

BOD ausgelöst = Reset = Maschine gestoppt = tut nicht.

> Fragt sich natürlich, warum du bei solch einer Versorgungsspannungslage
> den Brown-Out auf 4.3V stehen hast. Oder läuft der Prozessor wirklich
> mit über 50% Auslastung (von Warteschleifen mal abgesehen)?

Der Prozessor ist bis zum Rand ausgelastet. Je höher der Takt, desto 
schneller kann die Maschine arbeiten. Vier Schrittmotoren synchronisiert 
laufen zu lassen ist eine ziemlich rechenaufwendige Geschichte.

Manche stellen dan BOD tatsächlich auf 2.7V, doch da die Heizungen die 
ganze Zeit temperaturgeregelt laufen bedeutet das ja auch, dass er immer 
wieder ausserhalb der Spezifikation läuft. Da kribbelt's mir in den 
Zehennägeln.

> Wenn man die paar mA aus einem separatem Linearregler holt, der über
> Diode und Lade-C abgekoppelt ist, wäre man allerding auf der sicheren
> Seite. Stromsparen scheint ja nicht das Thema zu sein.
Gast #2571256
Lesenswert?

> Idee 1:

Geht

> Idee 2:

Geht

> Klingt das gut? Gibt es noch bessere Lösungen?

Vermutlich reicht ein Widerstand vor dem Elko,
an dem bei Nennstrom noch kene relevante Spannung abfällt,
da der uC nur Milliampere brauchen wird.

Besser ist das aber nicht.

Auch die Methode der aktiven Diode bringt gegenüber
dem 7805 keinen Vorteil.
#2571279
Lesenswert?

Markus H. schrieb:
> Klaus De lisson schrieb:
>> c.) Brownout abschalten
>
> Das würde ich nicht empfehlen, so war das am Anfang. Schaltet man einen
> ATmega ohne BOD ab hat man gute Chancen, dass danach Programmspeicher
> inklusive Bootloader durch den Wolf ist. Manche haben das fünf Mal am
> Tag geschafft.

Stimmt,... jetzt wo du es sagst fällt mir ein, dass mir das auch
oft passiert ist.
Nun habe ich jedoch den "Fuse Doctor"  .. deshalb hatte ich das 
vergessen.

Gruss k.
OP #2571280
Lesenswert?

Matthias Sch. schrieb:
> Markus H. schrieb:
>> Beim Einschalten (per Software) werden
>> dann die 5VSB mit den normalen 5V zusammen gelegt.
>
> Nö, nicht bei den Netzteilen, die ich bisher zerbastelt habe.

Nicht im Netzteil, aber auf der Gen7 Elektronik ;-)

Wobei der Gedanke gar nicht schlecht ist, alles über 5VSB laufen zu 
lassen. Das sind neben dem ATmega1284P (20mA) noch rund 40mA. Macht 2,6 
kWh/Jahr, damit kann die Stromrechnung leben.
OP #2573044
Lesenswert?

Sodele. Nachdem ich zuerst die Version mit "alle Logik über 5V-Standby", 
dann die Version mit zwei getrennten Netzeilen ausprobiert habe und die 
Sache nicht einmal ein kleines bisschen besser geworden ist, kam mir 
langsam der Verdacht, dass das Problem ganz wo anders liegt.

Also habe ich ein bisschen an den GND-Leiterbahnen herum gefummelt und 
siehe da, ich kann jetzt durch alle 255 Leistungsstufen durchschalten, 
ohne dass der ATmega einen einzigen unerwünschten Mucks macht. Das waren 
keine negativen Spannungsspitzen auf 5V, sondern positive Spitzen auf 
GND, was bekanntlich unter dem Strich, bzw. für den Brown-Out-Detektor, 
ziemlich genau das gleiche ist.

Das Ganze habe ich nebst Reparaturanleitung aufgeschrieben. Ich glaube 
ein nettes Lehrstück, wie man Leiterbahnen nicht verlegen sollte: 
http://reprap.org/wiki/Gen7_Board_1.2#Improving_Heated_Bed_Tolerance

Die neue Version dieser Elektronik soll jetzt drei getrennte Massen 
(Logik, Schrittmotoren, Heizelemente) bekommen, die nur über 1000 Ohm 
miteinander verbunden sind. Dann werden irgendwelche Störungen 
(hoffentlich) immer zu 99% über das Netzteil abgeleitet bevor sie einen 
anderen Beriech erreichen.

Vielen Dank von mir und der RepRap-Community an die 
Mikrocontroller.net-Community für die tolle Hilfe hier und falls sich 
jemand wundert, warum die Leiterplatten bei RepRap teilweise so 
eigenartig aussehen: RepRap-Maschinen können ihre eigenen Platinen 
fräsen: 
http://reprap.org/wiki/Gen7_Stories#Markus_.22Traumflug.22_Hitter_showing_Gen7_replication

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren