Hi,
ich habe einen ATTINY44A in einem Motorregler verbaut. Der Komparator
hängt an der Motorspule und sieht Induktionsspikes, 4 Pins treiben die
H-Brücke. Das ganze hat schon ziemlich gut funktioniert, aber jetzt
bekomme ich Aussetzer, die so aussehen als würde sich der atmel nicht
gemäß der Spezifikation verhalten. Sieht aus wie kurze Aussetzer.
Allerdings geht er nicht durch einen Power on Reset, denn dann würde
sich der Motor anders verhalten. Manchmal steigt er auch komplett aus
und muss dann geresettet werden. Kann das wirklich sein, angenommen die
Power Versorgung ist gestört, dass sich ein Controller aufhängt ohne
sich zu resetten?
Vielen Dank
Chris
Chris T schrieb:> ich habe einen ATTINY44A in einem Motorregler verbaut. Der Komparator> hängt an der Motorspule und sieht Induktionsspikes, 4 Pins treiben die> H-Brücke.
Da fände ich den Schaltplan interessant. :-)
Schaltplan gibt's nur in meinem Kopf, aber ein Layout:
http://www.rcgroups.com/forums/showthread.php?t=1397595&page=8
Wie kann ich nun rausfinden, wo die Störung herkommt? Ich meine , auf
dem existierenden Board ist kein Platz, mal schnell noch irgendwo einen
Widerstand reinzuhängen. Beim Redesign werde ich Sense und
Gatewiderstände einplanen, aber wie kann ich jetzt vorgehen um das
Problem einzugrenzen?
Ich werde zunächst die Power filtern. Hab ich zwar schon, aber hab schon
gesehen das dies kritisch ist. Die Brücke hat eine eigene Leitung zur
Batterie, also kann der Atmel gut entkoppelt werden...
Danke für weitere Hilfe ;)
Chris
Klar hab ich caps auf der Unterseite, allerdings nur für den ATMEL und
den Empfängerbaustein, die zusammen an einer Power Domain hängen. 220uF
hängen da dran. Leider ist da noch ein 10 Ohm Widerstand zur Bridge
Power, da ich ursprünglich keine Sternverbindung zur Batterie eingeplant
hatte. Sollte aber nicht wirklich stören mit den 220uF. Allerdings hat
die Länge und die Induktivität auf der extra Power Zuleitung für den
Atmel einen riesen Unterschied gemacht. Ich habe am Ende wieder ca 15cm
.15mm Draht eingefügt. Dann ging es. Als ich das ganze zur Luftspule
gewickelt habe um es zu installieren ging es wieder schlechter. Dann
habe ich die Hälfte des Drahtes anders rum gewickelt, um die
Induktivität gering zu halten. So lief es eine Weile gut.
Ich habe aber beim ersten Versuch schonmal einen Komparator Eingang
geschrottet, der hatte dann einen Kurzen zu GND. Nehme an, das die
Motorspikes ihm nicht gefallen.
Ich könnte noch 100n oder 4.7uF in 0402 direkt vor den Atmel löten, da
ist Platz. Kann das noch was bringen gegen die hohen Störfrequenzen?
Chris
Chris T schrieb:> Ich könnte noch 100n oder 4.7uF in 0402 direkt vor den Atmel löten, da> ist Platz. Kann das noch was bringen gegen die hohen Störfrequenzen?
Du hast wirklich keinen Abblockkondensator?!? Schäm dich! g
Abblockkondensatoren sind absolute Pflicht. Sonst bricht bei jedem
internen Schalten des µCs kurz die Versorungsspannung zusammen (->
Leitungsinduktivität). Also: unbedingt 100nF reinmachen! Und am besten
noch eine 5,5V Zenerdiode dazu.
Gruß
Jonathan
Sorry, aber ich habe doch geschrieben, dass am ATMEL 220uF hängen. An
der H-Brücke hängt keine. Meiner Meinung schadet das aber maximal der
Effizienz, wenn überhaupt. Ich hatte mal 220uF auch an der Brücke, habe
aber keinen Unterschied gesehen. Nochmal. Zwei Power Leitungen gehen zu
dem Board. Eine fette zur Brücke und eine dünne zum ATMEL. Auf dem Board
sind 10 Ohm zwischen den beiden Versorgungen (Altlast).
Chris
Die 220 µF sind aber sicherlich ein Elko. Du brauchst aber noch einen
Abblockkondensator (üblicherweise 100nF) der so nahe wie möglich an den
Stromversorgungspins des AVRs verbaut sein muß.
Chris T schrieb:> Sorry, aber ich habe doch geschrieben, dass am ATMEL 220uF hängen
Nein, das MUSS ein 100nF-KerKo sein, und zwar direkt (max. 5mm entfernt)
am AVR! Kein Wunder, dass das nicht geht!
Gruß
Jonathan
Ok, jetzt verstehe ich dein Argument. Du zählst den 220uF, welcher
übrigens ein Tantal ist nicht als Abblockkondensator. Die 100nF bekomme
ich auf jeden Fall direkt an den Atmel. Ca 1mm entfernt. Sehr gut. Ich
habe allerdings auch 4.7uF Keramik Caps in 0402 (4V). Sind die auch
geeignet oder sogar besser, oder zu langsam?
Vielen Dank!
Chris
Chris T schrieb:> Sind die auch geeignet oder sogar besser, oder zu langsam?
Sturheit hilft bei Menschen, aber nicht bei Maschinen. Die sind
garantiert noch sturer als du.
Besord dir mal ein 100er Pack von den 100nF Dingern. Die machen sich
garantiert in jedem Projekt nützlich, eigentlich immer mehrfach.
Chris T schrieb:> Ich> habe allerdings auch 4.7uF Keramik Caps in 0402 (4V). Sind die auch> geeignet oder sogar besser, oder zu langsam?
Nimm die 100nF-Kerkos, die mit 4,7µF könnten eine zu hohe Induktivität
haben.
Gruß
Jonathan
Muss ein deutsches Phänomen sein, dass hierzulande immer ein negativer
Unterton mitschwingen muss. Ich bin nicht stur, sondern will eure
Argumente hören. Es ging ja nicht nur um die 100nF, sondern auch um den
Typ Keramikkondensator. Hätte gedacht dass die sehr modernen 4.7uF in
dieser kleinen Bauform vielleicht ähnliche Bandbreiten erreichen. Ich
hab auch 100nF Caps und werde so eine einbauen. Wenns nicht hilft meldet
sich der sture Bock wieder. Danke für eure konstruktiven Beiträge!
Gruß
Chris
Jap, is'n typisch deutsches Phänomen. Muss man einfach überhören :)
Zur Frage: Z. B. hier: http://www.avx.com/docs/catalogs/cx7r.pdf (AVX's
Spezifikation für X7R) gibt's eine schöne Abbildung zum
Impedanzverhalten über die Frequenz in Abhängigkeit der Kapazität.
Demnach ist eine höhere Kapazität sogar besser geeignet. Mir würde auch
jetzt nichts einfallen, warum eine höhere Kapazität von der
Abblock-Wirkung her schlechter sein sollte. Preis, höheren Leckstrom
usw. klammere ich jetzt mal aus.
Chris T schrieb:> Hi,>> ich habe einen ATTINY44A in einem Motorregler verbaut. Der Komparator> hängt an der Motorspule und sieht Induktionsspikes,
Wenn die Spikes unter 0V gehen kriegt der µC einen latchup.
Mit Osci nachschauen, dann weiss man das beste Rezept dagegen.
Hatte ich schon.
Lg Rudi.
Patrick, es stimmt schon, dass größere Kapazitäten in der Regel höheren
ESR, also Serienwiderstand und Induktivität haben, welche die Wirkung
der Cap bei hohen Frequenzen zunichte macht. Und darum geht es ja, die
schnellen Transienten vom Umladen der Gates vor allem zu blocken. Dass
Elkos und Tantals langsamer sind wusste ich eigentlich schon, aber habe
mich nie mit den Zahlen beschäftigt. Das habe ich vielleicht falsch
eingeschätzt. Bin ja gespannt, ob's hilft, oder ob es noch mehr Probleme
gibt.
Rudi, Das Latchup kann schon sein, und auf dem Oszi sieht man auch das
Spikes unter 0 gehen. Nur wo auf dem Oszi steht das Rezept dagegen? ;)
Ich hätte hiergegen nun Widerstände in der Größenordnung 5k vorgesehen,
aber dazu brauchts ein Redesign. Maske hab ich schon gemacht. Weiss aber
noch nicht ob das wirklich ein Problem ist aber vermutlich auch. Denn
mir hat's auch schon einen Komparator Eingang zerschossen. Sollter der
Latchup nicht erst eintreten, wenn ca. -0.6V unterschritten wird? Sonst
könnten die ESD Dioden doch gar nicht wirken, bevor es zum Latchup
kommt.
Danke
Chris
Ok Patrick, jetzt weiss ich was du meinst. Du beziehst dich natürlich
auf caps verschiedener Kapazität aus einer Baureihe. Da scheint nach dem
Beispiel die 10n besser zu sein als die 1n, allerdings nicht im Bereich
von ca. 100-300MHz, da ist die kleinere effektiver. Hab ich das richtig
interpretiert? Das liegt wohl an den Resonanzfrequenzen, die die Caps
mit den Parastics haben. Ist das Verhalten Jenseits dieser Resonanz
überhaupt noch kapazitiv? Wieso steigt der Wert denn überhaupt über den
statischen? Wie auch immer, ich werde euren Rat befolgen.
Danke nochmals!
Chris
So, ich bin zurück. 100n installiert, Aussetzer noch da!
Wollen wir nicht darüber streiten ob's die 100n in diesem Fall wirklich
braucht. Ich lass sie drauf. Das Gewicht schadet nicht :)
Es ist ja auch nicht so, dass es gar nicht funktioniert. Der Motor dreht
über 70000 rpm und das auch mal 30 Sekunden am Stück, und dann plötzlich
kommt ein Aussetzer, der Motor verliert heftig Drehzahl und dann gibt er
in Bruchteilen von Sekunden wieder Vollgas. Oft kommen diese Aussetzer
dann ein paar mal hintereinander. Ich glaube immer mehr an eine kalte
Lötstelle.
Werd erst mal messen, dann meld ich mich wieder...
Chris
Also es ist nicht ganz einfach auf das Ausbleiben einer Periodizität zu
triggern. Vielleicht hat ja da einer eine Idee, aber es sieht schon so
aus, dass die Spannung einbricht wenn es passiert und dass die Gate
Signale ausbleiben. Es passiert übrigens mit fetter Batterie nur bei
Vollgas und je kleiner die Batterie ist, desto weniger Gas ist
notwendig, um die Dropouts zu provozieren. Vielleicht geht's hier um
niederfreqzuente Störungen, die fette Elkos benötigen? Solche Regler die
man kaufen kann haben immer genau ein großes Bauteil. Einen Elko. Hier
werden mit über 1kHz mehr als 3 Ampere hin und her geschaltet. Das ist
keine hohe Frequenz aber viel Strom!!!
Chris
Chris T schrieb:> So, ich bin zurück. 100n installiert, Aussetzer noch da!>> Wollen wir nicht darüber streiten ob's die 100n in diesem Fall wirklich> braucht. Ich lass sie drauf. Das Gewicht schadet nicht :)>> Es ist ja auch nicht so, dass es gar nicht funktioniert. Der Motor dreht> über 70000 rpm und das auch mal 30 Sekunden am Stück, und dann plötzlich> kommt ein Aussetzer, der Motor verliert heftig Drehzahl und dann gibt er> in Bruchteilen von Sekunden wieder Vollgas. Oft kommen diese Aussetzer> dann ein paar mal hintereinander. Ich glaube immer mehr an eine kalte> Lötstelle.>> Werd erst mal messen, dann meld ich mich wieder...>>> Chris
Ok, dann lag es wohl nicht am Abblockkondensator. Kann aber nicht
schaden, den dran zu haben ;)
Chris T schrieb:> 1kHz mehr als 3 Ampere
AAARGH! Das ist leicht bis mittel heftig. Hast Du einen fetten Elko und
eine Drossel? Bau das mal auf:
1
Drossel
2
Bat. -----LLLLL--------------- Zur H-Brücke
3
|
4
--- fetter Elko
5
--- z.B. 4700µF, 63V
6
|
7
|
8
--- GND
Zur Drossel: 500µH bis 1mH
Zum Elko: möglichst mehr als 4700µF, auf hohe Spannungsfestigkeit
achten!
Gruß
Jonathan
Das erste Problem ist das:
> Schaltplan gibt's nur in meinem Kopf
Denn ohne genaue Kenntnisse, wie dein Aufbau im Detail ist, bleibt nur
Rätselraten...
1kHz bei 3A ist noch gar nichts.
Wenn du wirklich Hilfe benötigst solltest du einen Schaltplan liefern.
In der Zwischenzeit kannst du dir die Versorgungsspannung anschauen.
Vielleicht triggert dein µC falsch und du speist mit der H-Brücke
zurück. Oder dein Spannungsregler flippt aus.
Die Drossel solltest du nicht vor die H-Brücke bauen sondern vor den
Spannungsregler. Da kannst du dann ~1mH verwenden bei ~50mA.
Es gibt keinen Spannungsregler, nur eine Lipo. Ja wenn ich es schaffe,
dann liefere ich morgen einen Schaltplan. Ist aber kein Trick dahinter.
Eine Lipo Zelle, 4 FETs, Motor mit einer Phase, ein Atmel und die
Caps...
Leute, jetzt nervt mich dieser Ton doch langsam. Natürlich bekommt der
Atmel keinen Spannungsregler. Wie auch. Er treibt die Gates direkt und
muss deshalb auf der gleichen Spannung sein wie die Fets. Schaut euch
die Bilder in dem verlinkten Thread an, hier geht's um die leichteste
und kleinste Elektronik für RC Modelle mit ausschliesslich einer Zelle.
Solche Setups haben nie einen Spannungsregler. Die Servos zB sind
ratiometrisch gebaut. Obwohl die Versorgungspannung und damit die
Hallspannung und der ADC Range variieren, ist der Offset der Servos über
den ganzen Versorhungsbereich konstatnt. Mein Setup hat bisher auch
funktioniert, nur kann ich die hohe Leistung noch nicht richting
managen. Ein Regler fällt aus. LDO geht nicht wegen Drop, ausserdem kein
Platz, zu viel Gewicht. Haltet mich bitte nicht für total blöd. Ich bin
ganz kurz vor dem Ziel. Wie kanns denn eine Fehlkonstruktion sein, wenns
zu 99.9% der Zeit funktioniert. Das ist ein Bug!
Chris
Chris T schrieb:> Natürlich bekommt der> Atmel keinen Spannungsregler.
Oh, oh... Das ist nicht gut. Für sowas sollte doch aber noch genug Platz
sein, oder?
1
Schottky 10 Ohm
2
Akku _____|\|__|-----|___________________________ Zum AVR
3
|/| |-----| | |
4
| ---
5
--- 220µF / \ Zenerdiode
6
--- --- 5V
7
| |
8
| |
9
| |
10
--- GND --- GND
Das sollte die Störungen von deinem AVR fernhalten.
Gruß
Jonathan
Chris T schrieb:> Leute, jetzt nervt mich dieser Ton doch langsam.Chris T schrieb:> Schaut euch> die Bilder in dem verlinkten Thread an, hier geht's um die leichteste> und kleinste Elektronik für RC Modelle mit ausschliesslich einer Zelle.
Du bist nicht bereit einen Schaltplan zu liefern. Noch nicht einmal den
Unterschied zwischen Elektrolyt- und Keramikkondensatoren kennst du,
versuchst andere Leute als dumm hin zu stellen. Du bist unverschämt.
Dir hilft hier keiner mehr, schade ist nur, dass der Blödsinn von
google gefunden wird.
> Wie kanns denn eine Fehlkonstruktion sein, wenns> zu 99.9% der Zeit funktioniert. Das ist ein Bug!
Kann auch ein Designfehler sein. Es funktioniert einfach nicht
zuverlässig.
Was mich interessieren würde, tritt das Problem auch bei geringeren
Drehzahlen auf?
> Ich bin ganz kurz vor dem Ziel.
Gestern noch standen wir direkt vor dem Abgrund.
Heute sind wir schon einen großen Schritt weiter!
Chris T schrieb:> Wie kanns denn eine Fehlkonstruktion sein, wenns> zu 99.9% der Zeit funktioniert. Das ist ein Bug!
99.9% der Geisterfahrer beschweren sich über entgegenkommende
Geisterfahrer.
Ben _ schrieb:>> Wie kanns denn eine Fehlkonstruktion sein, wenns>> zu 99.9% der Zeit funktioniert. Das ist ein Bug!> Kann auch ein Designfehler sein. Es funktioniert einfach nicht> zuverlässig.>> Was mich interessieren würde, tritt das Problem auch bei geringeren> Drehzahlen auf?
Nein, es passiert nur im oberen Drehzahlbereich. Kann schon auch Design
bedingt sein, klar, kann auch am Code liegen.
Warum baust Du nicht mal die Schaltung aus meinem letzten Post auf und
sagst uns, ob es besser geht? Momentan wird dein AVR wahrscheinlich
durch irgendwelchen Rückinduzierungen vom Motor getoastet. Das ist sogar
sehr wahrscheinlich, weil es mit einem kleinerem Akku (der die
Überspannungen nicht komplett eliminieren kann) schlimmer wird. Und
außerdem: Kommen die Pulse denn noch richtig an, wenn Du den Motor
abklemmst?
Gruß
Jonathan
P.S.: Wie Du siehst, versuchen wir, Dir zu helfen. Das allgegenwärtige
Rumgezänke hier im Forum muss man einfach ignorieren. Falls ich mich
irgendwie im Tonfall vergriffen haben sollte: Sorry.
Jonathan Strobl schrieb:> Chris T schrieb:>> Natürlich bekommt der>> Atmel keinen Spannungsregler.>> Oh, oh... Das ist nicht gut. Für sowas sollte doch aber noch genug Platz> sein, oder?> Schottky 10 Ohm> Akku _____|\|__|-----|___________________________ Zum AVR> |/| |-----| | |> | ---> --- 220µF / \ Zenerdiode> --- --- 5V> | |> | |> | |> --- GND --- GND>> Das sollte die Störungen von deinem AVR fernhalten.>>> Gruß> Jonathan
Genau das ohne den Dioden ist schonmal so eingebaut, nur habe ich
zusätzlich eine 20cm Leitung .15mm Draht vom Akku zum AVR, weil das
besser funktioniert hat. Genau da werde ich jetzt mal eingreifen...
Chris
Chris T schrieb:> ohne den Dioden
Die sind aber gerade das, was den AVR schützt - also rein damit.
Eventuell kannst Du auch noch eine Festinduktivität davor machen.
Wenn der AVR die Gates der FETs direkt steuert könnte er bei sehr hoher
Drehzahl auch an seine Grenzen stoßen. Für sowas nimmt man eigentlich
nachgeschaltete Treiberstufen, die den Umladestrom vom AVR fernhalten.
Evtl. schlagen die Störspitzen auch über die Gatekapazitäten am
Endstörglied vorbei direkt in den AVR. Dann könnten Ferritperlen helfen.
Chris T schrieb:> Ohne die extra Leitung steigt der Regler schon gleich bei niedrigen> Drehzahlen aus. Hab ich gerade nochmal ausprobiert.Jonathan Strobl schrieb:> Dann musst Du den Widerstand kleiner machen - z.B. auf 2 Ohm. Oder Du> spendierst den MOSFETs ein paar Treiber, wie Ben schon gesagt hat.
Durch die Drahtlänge spiele ich ja mit dem Widerstand. Da das ganze in
einem Mini Flugzeug installiert ist, komme ich gerade nicht mehr an den
Widerstand ran. Die parallele Leitung ermöglicht mir aber einen
niedrigeren Widerstand. 40cm Leitung geht schon schlechter. Das müsste
immer noch <1Ohm sein. Das geht schon in die richtige Richtung denke
ich. Ich muss aber auch nochmal chekcen, ob nicht der Ausstieg eine
Folge eines falschen Timings ist. Denn bis zum Austieg läuft der Motor
sauber und auch der Empfänger funktioniert durchgängig, auch wenn der
Atmel ausgestiegen ist. Empfänger und Atmel hängen an der gleichen
Power. Servoflattern kann ein Indiz für gestörten Radioempfang sein. Die
Servos zucken aber nicht mal, wenn der Motor aussteigt.
Chris
Chris T schrieb:> Durch die Drahtlänge spiele ich ja mit dem Widerstand.
Nein, mit der Induktivität. Der Widerstand ist immernoch verschwindend
klein. Sobald Du wieder drankommst, teste mal den 2 Ohm Widerling ohne
deinen Draht.
Jonathan Strobl schrieb:> Chris T schrieb:>> Durch die Drahtlänge spiele ich ja mit dem Widerstand.>> Nein, mit der Induktivität. Der Widerstand ist immernoch verschwindend> klein. Sobald Du wieder drankommst, teste mal den 2 Ohm Widerling ohne> deinen Draht.
Gute Idee, ich könnte ja die Leitung kurz machen und mal einen
bedrahteted Widerstand dort probieren.
Ich habe übrigens gerade eine Möglichkeit gefunden, auf die Störung zu
triggern. Denn die Batteriespannung bricht gewaltig ein. Jetzt werde ich
mir gleichzeitig andere Signale anschauen, zB die Gateleitungen. Dann
sehe ich vielleicht, ob das Timing schief geht. Vielleicht finde ich
jetzt warum die Spannung einbricht. Ein Latchup ist immer noch
wahrscheinlich. Wenn der Code richtig ausgeführt wird, dürfte es auch
nie einen Querstrom durch die Brücke geben, weil ich immer erst die Fets
ausschalte. Erst messen, dann weiterschauen...
Ok, der Spannungseinbruch zeigt dass Der Motor vorher schon kein Signal
mehr bekam, und dann plötzlich bei ca. 30000 Umdrehungen mit falschen
Timing angesteuert wird, deswegen bricht die Spannung ein, da die Spule
befeuert wird, wenn der Rotor gerade durch den Totpunkt geht. Dort ist
die Änderung des Magnetfelds 0 und der Strom und die Gegeninduktion
fällt weg. Eigentlich soll hier die Spule aus sein und der Komparator
messen. Jetzt mal schauen was davor passiert, wie die reguläre Sequenz
endet...
Da der Regler scheinbar viel zu spät einen Puls feuert der
offensichtlich bei einer hohen Drehzahl berechnet wurde, könnte es sein,
dass die Berechnung des Timings in Verbindung mit koinzidenten
Interruptaufrufen zu lange dauert und der Timer schon durch die
Anschaltzeit gelaufen ist, in dem Moment, wo er gesetzt wird. Dann läuft
er einmal komplett durch und feuert dann falsch. Das könnte ich schonmal
per Timer Overflow Interrupt abfangen. Ein falsches Timing ist nämlich
nicht gerade der Schongang für die beteiligten Komponenten...
Der Atmel Ausstieg, der ja das eigentliche Thema war, ist evtl. die
Konsequenz des falschen Timings.
Falsches Timing. Hier sieht man was ich vermutet habe. Der Motor läuft
regulär, und plötzlich kommt ein Timerdurchlauf von 2.048ms mehr, bevor
der nächste Puls kommt, und dann geht alles schief. Die Routine
synchronisiert sich sogar in einem falschen Pattern.
Programmierleitungen wieder dran...
Also, Problem gelöst. Ich habe die Timing Berechnung beschleunigt und
resynchronisiere im Falle eines Timer Overflows, wenn's jetzt überhaupt
noch Timing Probleme gibt, dann merkt man sie nicht. Werd mir noch
anschauen, wie man das komplett vermeiden kann, jedenfalls kann ich den
Motor jetzt 3 Minuten am Stück auf 70000 rpm laufen lassen, danach ist
die Batterie leer.
Vielen Dank nochmal an die, die mir hier versucht haben zu helfen. Tut
mir Leid für die, die hier wirklich fachlich diskutieren wollen, dass es
hier so abgeht. Wahrscheinlich liegt es daran, dass hier jeder posten
kann ohne angemeldet zu sein. In diesem Sinne
Auf Wiedersehen ;)
Chris