Forum: Mikrocontroller und Digitale Elektronik Attiny 261 stirbt(?)


von Dennis H. (t1w2i3s4t5e6r)


Angehängte Dateien:

Lesenswert?

Hallo!

Ich bastel seit einer Weile an einem Brushless-Regler. Der Attiny 261 
eignet sich ja bestens dafür. Ich habe bis jetzt zwei Varianten 
ausprobiert. Einmal mit einem Treiber-IC IR2101 und das andere mal 
klassisch mit N- und P-Mosfet. Beide Varianten habe ich als Schaltplan 
angehangen.

In beiden Versionen sind mir kleine Schaltungsfehler passiert die ich 
nach ein wenig Fehlersuche beheben konnte. Danach haben beide Versionen 
funktioniert, soll heißen, ein alter Festplattenmotor hat sich gedreht.

Ich programmiere in C und nutze Atmel Studio 6. Als Programmieradapter 
nutze ich den AVR ISP MKII. Nach einigen erneuten aufspielen der .hex 
Datei auf den Attiny bekomme ich bei beiden Versionen den selben 
Error-Code.

[ERROR] Failed to enter programming mode. ispEnterProgMode: Error status 
received: Got 0xc0, expected 0x00, ModuleName: TCF (TCF command: 
Device:startSession failed.)

Klingt für mich danach, das der Attiny gestorben ist. Mich wundert, das 
beide nach relativ kurzer Zeit den selben Fehler bringen. Die erste 
Version mit IR2101 hat zwar etwas länger durchgehalten, trotzdem kann 
ich auch da nicht mehr zugreifen. Deshalb denke ich, das Problem liegt 
vielleicht in meiner Schaltung. Die BEMF-Schaltung ist ja bei den 
meisten open Source Projekten so ausgeführt, nur die Widerstandswerte 
sind unterschiedlich. Ich habe die Werte so ausgewählt, dass der 
Spannungsteiler aus R1 und R6 (Version 2) als komplette Spannung meine 
Betriebsspannung von 12V hat und am Abgriff zum Attiny etwa 4V anliegen, 
damit der Attiny nicht eine zu hohe Spannung verkraften muss. Aber 
vielleicht ist genau da mein Fehler, weil das ist der einzigste Punkt, 
der bei beiden Versionen gleich ist und wo durch einen Motor am Ausgang 
eine zu hohe Spannung erzeugt werden könnte.

Als weiteren Fehler hatte ich meinen MKII schon im Verdacht, aber am 
einfachen Atmega8 funktioniert er wunderbar.

Was bedeutet eigentlich der Fehlercode genau?

Was könnte noch eine Ursache sein, das die Attiny's sterben?

Vielen Dank schonmal für eure Antworten.


MfG Dennis

von Mike J. (emjey)


Lesenswert?

Hast du mal geprüft wie hoch die Versorgungsspannung des AVR wird wenn 
der Motor läuft?

Wenn es einen Zeitpunkt gibt an dem beide MosFETs (oberer und unterer 
MosFET) geschlossen sind kann der Motor Strom über den 10k Ohm 
Widerstand und dann über die Pin-Protection-Diode in die 
Versorgungsspannung hinein fließen.
Da du die Versorgung nur mit 100nF abgeblockt hast steigt die Spannung 
an dem Kondensator dann rasch an.

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Mike J. schrieb:
> Hast du mal geprüft wie hoch die Versorgungsspannung des AVR wird wenn
> der Motor läuft?

Soweit bin ich leider nicht gekommen. Bei Version 1 wusste ich ja noch 
nicht, das es Probleme gibt, und bei Version 2 war der Zeitpunkt, das 
nix mehr ging sehr schnell erreicht. Ich dachte ja auch schon, das ich 
beim löten irgendwelche Pin's ausversehen verbunden habe, die nicht 
zusammen gehören. Aber ich habe zuerst ein Testprogramm geschrieben, in 
dem ich jeweils ein P- und N-Mosfet Pärchen prüfen konnte. Das beide 
gleichzeitig an waren kann fast nicht sein, der Attiny hat dafür extra 
eine einstellbare Totzeit, die ich erstmal auf maximum gestellt habe, um 
auf Nummer sicher zu gehen.

Was mir noch einfällt, ich habe an den Fuses die interne PLL einstellen 
müssen, um den Timer schneller laufen zu lassen. Das hat ansich auch 
super geklappt, der Motor drehte wie eine 1, aber als ich nochmal nach 
den Fuses geschaut habe, kam was ganz anderes raus, als ich eingestellt 
hatte. Am Ende ist nur was an der Datenübertragung schief gelaufen, und 
der Attiny ist einfach verfust, werd ich mal die Tage probieren, wenn 
ich ihm einen externen Takt zuführe, ob er sich dann wieder bewegt.


Mike J. schrieb:
> Da du die Versorgung nur mit 100nF abgeblockt hast steigt die Spannung
> an dem Kondensator dann rasch an.

Wie könnte man das besser lösen? einfach noch nen größeren Kondensator 
parallel? Ich dachte immer, nach dem Linearregler reicht der 100nF, und 
dann eben vor jedem IC.


MfG Dennis

von Mike J. (emjey)


Lesenswert?

Du könntest da einen größeren Elko (z.B. 100µF) anlöten und eine 5.6V 
Z-Diode in die 5V Versorgung hinzufügen.

Es gibt auch Power-Z-Dioden die kann man mit einem Transistor 
realisieren. (Beitrag "Re: Power Z-Diode")

Du brauchst bei MaWins Vorschlag eine 4.4V Z-Diode, die auf die Basis 
des NPN-Transistors geht, der Emitter geht nach Masse, Kollektor zur 
Versorgung.

Wenn du deinen 7805 nicht zerstören willst müsstest du noch einen 
Widerstand (ich nehme 3 bis 16 Ohm, je nach Last) an dessen Ausgang 
hängen, probiere es erst mal mit 16 Ohm oder so, dann fließen nur 31mA 
wenn die Power-Z-Diode auf 4.5V regeln sollte.

Je wärmer diese Dioden oder Z-Dioden werden desto geringer ist der 
Spannungsabfall, da dein Regler bestimmt sehr warm wird kann das die 
Z-Diode beeinflussen, diese regelt dann z.B. nur noch auf 4.5V und dann 
brennt dir nur der 16 Ohm Widerstand durch anstatt der 7805.

von Bestatter (Gast)


Lesenswert?

Dennis H. schrieb:
> Was könnte noch eine Ursache sein, das die Attiny's sterben?

Mein aufrichtiges Beileid für die blumige Ausdrucksweise!

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Hallo!

Also verfust ist er nicht. Ich habe gerade mit einem Atmega einen 
Ausgang getoggelt und das an den PIN XTAL1 vom Attiny angelegt, aber ich 
bekomme immer noch keine Verbindung hin. Mit der ISP Frequenz bin ich 
bis auf 100Hz(wirklich nur Hertz) runtergegangen, da bewegt sich gar 
nix. Dann tausche ich jetzt den Attiny, hab vorher aber noch ne Frage.

Mike J. schrieb:
> Wenn es einen Zeitpunkt gibt an dem beide MosFETs (oberer und unterer
> MosFET) geschlossen sind kann der Motor Strom über den 10k Ohm
> Widerstand und dann über die Pin-Protection-Diode in die
> Versorgungsspannung hinein fließen.
> Da du die Versorgung nur mit 100nF abgeblockt hast steigt die Spannung
> an dem Kondensator dann rasch an.

Den Punkt verstehe ich nicht ganz. Der Motorstrom fließt über den 10kOhm 
Widerstand. Soweit klar. Der Strom fließt auch in den Attiny. Auch klar. 
Aber die Pin-Protection Diode sollte doch den Strom Richtung Masse 
leiten und zum anderen sollte diese doch auch gar nicht in Anspruch 
genommen werden, oder? Als Verbesserungsvorschlag hattest du ja einen 
größeren Kondensator und eine Z-Diode an der Ausgangsseite des 
Linearreglers vorgeschlagen. Das wäre kein Problem, da einfach mal einen 
Kondi ranzulöten, nur habe ich keine passende Z-Diode hier und für so 
einen Cent-Artikel fast 20km bis zum nächsten Conrad fahren ist auch 
nicht gerade ökologisch gedacht.

Also meine Frage, wenn dieser Fall eintritt, den ich oben nicht ganz 
verstanden habe, reicht es zu, einen, sagen wir 22µF Kondi nach dem 
Linearregler einzulöten um den Attiny zu schützen?


MfG Dennis

von Mike J. (emjey)


Lesenswert?

Dieses V+ welches an dem oberen MosFET dran ist, das ist auch an deinem 
7805 dran ist und so ein starker Motor kann dann schon mal ein paar hohe 
Strom-/Spannungspeaks herstellen, die kann der 7805 nicht so schnell 
dämpfen ... die wandern dann quasi durch ihn durch.

Hast du mal an V+ einen Kondensator gehängt?

Im Zusammenhang mit Spulen gab es hier schon etliche merkwürdige 
Verhaltensweisen und bei dir wird sich der Stör-Strom auch seinen Weg 
suchen und ich würde wetten dass man da nur ein paar 
Kondensatoren/Tiefpässe/Z-Dioden ranpacken muss und alles läuft wieder.

Ach ja ... tolles Projekt.

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Achso, jetzt verstehe ich. Dann muss ich dich aber mal auf einen großen 
Kondensator hinweisen, den ich mit eingezeichnet habe, am linken Rand, 
Version 2. In Version 1 habe ich 220µF mit am 7805. Version 2 hat 1000µF 
in der Zuleitung zu den Mosfets, zum einen, weil ein Akku ja meistens 
nicht so plötzlich soviel Strom zur Verfügung stellen kann. Also zum 
puffern der kurzen Zeit, bis der Akku den Strom liefert und zum anderen 
um genau deine beschriebenen Spikes zu eliminieren oder wenigstens 
minimieren. Aber trotzdem kann ich ja auf der 5V Seite noch einen etwas 
größeren Kondensator vorsehen.

Jetzt habe ich erstmal ein anderes Problem, beim Versuch den Attiny von 
meiner Platine abzulöten habe ich ein paar Löt-pads abgerissen. Also ich 
habe den Attiny im SOIC Gehäuse. Also ein Lötpad hätte ich vielleicht 
mit Draht basteln wieder hinbekommen, aber nicht 4-5, zumal der Tiny 
immer noch nicht von der Platine runter ist, es könnten also noch mehr 
werden. Also einmal neue platine. Da kann ich gleich meine 
Schaltungsfehler noch korrigieren :)

Aber was mir noch einfällt, was komisch ist. Beide Versionen sind nicht 
im Betrieb gestorben. Sondern beide haben funktioniert, dann wollte ich 
eine neue Programm-version draufspielen und auf einmal konnte ich nicht 
mehr zugreifen. Also beide sind beim flashen dahin gegangen, deswegen 
meine Idee mit verfust. Aber das vorher aufgespielte Programm ging auch 
nicht mehr.

MfG Dennis

von Mike J. (emjey)


Lesenswert?

Dennis H. schrieb:
> Attiny im SOIC Gehäuse

Ich habe auch nur eine einfach Heißluftpistole, mit der bekomme ich die 
TQFP und MLF Chips an- und wieder abgelöten, die hohe Temperatur macht 
denen nichts aus.

Beim Infrarotlöten mit einem Toaster hatte ich dagegen nur eine unschöne 
teilweise Delaminierung einer Platine erreicht.

zu dem von mir vermuteten Motor-Strompeak:
Der Innenwiderstand des 220µF Elkos kann dafür sorgen dass die Pulse 
trotzdem noch bis zum 7805 durchdrücken, in meinen Schaltungen hänge ich 
vor dem Festspannungsregler einen kleinen Widerstand (3 bis 30 Ohm) und 
danach noch einen Kerko (also: 47µF Elko --- Widerstand --- 4.7µF Kerko 
--- 7805).
Damit filtere ich die HF-Störungen aus der Versorgung und bei einem 
Kurzschluss/Überlast am Ausgang bricht die Spannung ein und/oder der 0.1 
Watt Widerstand geht kaputt.

Man muss dabei beachten dass die Spannung die am Widerstand abfällt plus 
die Drop-Spannung des 7805 (2V) geringer als die Versorgungsspannung 
ist.

von Chris K. (kathe)


Lesenswert?

Kann dein Programmer denn mit der Zusatzbeschaltung am ISP Programmer 
Anschluss umgehen?

Kannst du mal testweise die Zusatzbeschaltung abklemmen und nochmal 
brennen versuchen?

Hatte das Problem auch mit ner SD Karte am ISP Anschluss ohne SD Karte 
gings ohne Probleme.

Gruss Chris

von Mike J. (emjey)


Lesenswert?

Kannst du mal die Versorgung des AVR entweder ordentlich entkoppeln oder 
ihn über ein extra Netzteil (5V Handynetzteil nehme ich gerne ... wenn 
es denn wirklich 5V hat) versorgen und dann noch mal testen?


Wie hoch ist V+ eigentlich?
Rechne dir mal aus wie viel Strom über die 3x 10kOhm Widerstände im 
schlimmsten Fall in die Versorgung über die internen Dioden des AVR 
fließen können und wie viel dein System an Strom aufnimmt.

Es kann auch sein dass an der Stelle schon das Problem liegt und so die 
Spannung des AVR steigt, dann brauchst du einfach nur einen zusätzlichen 
Verbraucher. (ein Widerstand von +5V nach Masse)

@  Christoph K.
Mein Programmer hat auch ein paar Widerstände um die Ein- und Ausgänge 
zu schützen, kann also durchaus sein dass das Spannungslevel nicht hoch 
genug ist.
Wenn es aber beim ersten mal mit der selben Beschaltung geklappt hat 
müsste es doch jetzt auch wieder so funktionieren.

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Mike J. schrieb:
> Ich habe auch nur eine einfach Heißluftpistole,

Damit hätte ich es auch mal versuchen sollen :)

Mike J. schrieb:
> vor dem Festspannungsregler einen kleinen Widerstand (3 bis 30 Ohm) und
> danach noch einen Kerko (also: 47µF Elko --- Widerstand --- 4.7µF Kerko
> --- 7805).

Das kann ich ja einfach mal so machen, muss die Platine eh nochmal neu 
machen.

Christoph K. schrieb:
> Kann dein Programmer denn mit der Zusatzbeschaltung am ISP Programmer
> Anschluss umgehen?
>
> Kannst du mal testweise die Zusatzbeschaltung abklemmen und nochmal
> brennen versuchen?

mit abklemmen ist bisschen schwierig, alles in SMD, beim nächsten 
Projekt werde ich nicht gleich alles auf SMD bauen, man muss eben erst 
auf die Schn**ze fliegen, bis man manches kapiert :)

Ich denke aber, der MKII von Atmel kann damit umgehen, es hängen zwei 
IR7843 und ein einfacher Transistor an den PIN's der SPI-Schnittstelle. 
Wäre die Frage, wie man dem am besten vorbeugt. Aber ich denke nicht, 
das es das Problem ist, es ging ja eine ganze Weile, wenns daran liegen 
würde, wäre es doch sicher von Anfang an nicht gegangen.

Mike J. schrieb:
> Wie hoch ist V+ eigentlich?
> Rechne dir mal aus wie viel Strom über die 3x 10kOhm Widerstände im
> schlimmsten Fall in die Versorgung über die internen Dioden des AVR
> fließen können und wie viel dein System an Strom aufnimmt.

V+ sind 4S Lipo, also 14,8V. über die 10kOhm fallen also ungefähr 10V 
ab, macht einen Strom von 1mA, ich glaube nicht, das es am Strom liegt. 
Vielleicht aber an der Spannung. Es reicht meine Erfahrung nicht, um zu 
sagen, das die Spannung an dem offenen Anschluss des BLDC nicht über V+ 
geht. Also könnte es sein, dass dort Spikes kommen, die mein Attiny 
nicht verkraftet? Weil muss ich schon zugeben, ist bisschen knapp 
berechnet, aber wenn ich mir manche Hobby-BLDC Schaltungen ansehe, die 
funktionieren, die haben da noch kleinere Widerstandswerte. Denn der 
Komparator der AVR's funktioniert doch auch nur mit 5V.

Aber kann es sein, dass der 7805 eine gewisse Last braucht? Also wie du 
schon schreibst, einfach einen Widerstand zwischen 5V und Masse, um das 
der Regler ordentlich arbeiten kann. Ich werde einfach mal einen 
vorsehen, er schadet nicht und kostet so gut wie nix. Kann ich ja 1 kOhm 
nehmen, da fließen 5mA. Wären 25mW Verlustleistung, das werd ich 
verkraften.

MfG Dennis

von Dennis H. (t1w2i3s4t5e6r)


Angehängte Dateien:

Lesenswert?

Hier nochmal die aktuelle Version.

Ich habe jetzt zuerst einen 1000µF Kondi, dann einen 33 Ohm Widerstand, 
den habe ich noch da. Dann 22µF Kondi, hab ich auch noch da. Dann 100nF, 
wie im DAtenblatt vom 7805. Dann der 7805, wieder 100nF, dann nochmal 
22µF und dann noch 1 kOhm Last. Ist noch die Frage, ob die 
BEMF-Schaltung so funktioniert oder ob Spannungsspitzen auch über die 
Versorgungsspannung auftreten können.

MfG dennis

von Mike J. (emjey)


Lesenswert?

Bei deinem 3.7V Akku: 3.0V minimal , 3.7V nominal , 4.2V maximal

(4*4.2V) = 16.8V

Dein Spannungsteiler (4k7 und 10k) drittelt die Spannung ja noch (auf 
ca. 5.6V), also liegt es nicht daran dass der Strom über die Widerstände 
in die Versorgung fließt.

Du machst es ja eigentlich so wie die hier:
http://www.mikrokopter.de/ucwiki/BL-Ctrl_2.0
http://mikrocontroller.com/files/BL_Ctrl_V2_0_Doku.pdf

... bei denen funktioniert es doch so.

Kann höchstens noch sein dass die langen Leitungen zu ihrem 7805 eine 
kleine Schleife bilden und die Versorgungsspannung so etwas ruhiger 
wird.
Du könntest ja eine kleine Spule (ca. 1 bis 10µH) in die Versorgung vor 
dem AVR einbauen, das hätte den selben Effekt.

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Mike J. schrieb:
> Bei deinem 3.7V Akku: 3.0V minimal , 3.7V nominal , 4.2V maximal
>
> (4*4.2V) = 16.8V
>
> Dein Spannungsteiler (4k7 und 10k) drittelt die Spannung ja noch (auf
> ca. 5.6V), also liegt es nicht daran dass der Strom über die Widerstände
> in die Versorgung fließt.

Und genau dort habe ich eben das Problem. Ich denke nicht, das der AVR 
diese 5,6V verträgt. Was mich allerdings wundert, in deinem uns allen 
bekannten Link

Mike J. schrieb:
> http://www.mikrokopter.de/ucwiki/BL-Ctrl_2.0
> http://mikrocontroller.com/files/BL_Ctrl_V2_0_Doku.pdf

Halbieren die die Spannung nur. Und es wird in deren Forum angegeben, 
das der Regler bis 6S Lipo's nutzbar wäre. Ich kann mir aber nicht 
vorstellen, dass der interne Komparator des AVR über 5V verträgt, aber 
ich finde im Datenblatt nix genaues, ich weis nicht so richtig, wo ich 
noch suchen soll.

Mike J. schrieb:
> Du könntest ja eine kleine Spule (ca. 1 bis 10µH) in die Versorgung vor
> dem AVR einbauen, das hätte den selben Effekt.

Das könnte ich natürlich auch noch machen, dann wäre es sogar nach Atmel 
App-Note. So ne kleine Spule macht das Kraut auch nicht fett. Also die 
auch noch, dann kann ich mir sicher sein, das mit der Versorgung alles 
klar geht.

MfG Dennis

von B.A. (Gast)


Lesenswert?

Das mit den 5.6V ist ja auch nicht ganz richtig, der Strom fließt so 
lange nicht durch den Pin wie die Spannung unter der Versorgungsspannung 
von 5V + die Diodendurchbruchspannung von etwa 0.7 bis 1.0V liegt.

Ab diesem Zeitpunkt teilt sich der Strom dann auf, er fließt durch den 
Widerstand der zur Masse führt und auch über die Diode in die 
Versorgungsspannung.
Durch den Widerstand fließen vereinfacht immer 5.7V/4.7k=1.21mA
Wenn der Strom durch den 10k Widerstand 2.21mA überschreitet ist diese 
Diode in Gefahr, das ist aber erst bei 5.7V+10k*2.21mA = 27.8V der Fall, 
man kann also 27.8/4.2 = 6.6 LiIon-Akkus bei deiner Schaltung in Reihe 
schalten.

Du muss dir also keine Sorgen darüber machen, alles okay soweit.

Leider gibt es von dem Mikrokopter BLCD_Ctrl kein Layout dann könnte man 
das mal nachbauen.

Das mit der Temperaturmessung finde ich genial, da ist so ein kleiner 
grauer NTC links von den MosFETs auf dem Bild: 
http://gallery.mikrokopter.de/main.php/v/tech/BL_20_BOT.jpg.html?g2_imageViewsIndex=1

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

B.A. schrieb:
> Das mit der Temperaturmessung finde ich genial, da ist so ein kleiner
> grauer NTC links von den MosFETs auf dem Bild:

Bei Verwendung eines Mega168PA braucht´s den nicht ;-).

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Hallo!

B.A. schrieb:
> Du muss dir also keine Sorgen darüber machen, alles okay soweit.

Danke für deine Rechnung. Soweit habe ich das verstanden, dass der Pin 
auf alle Fälle geschützt ist.

Jedoch stelle ich mir immer noch die Frage, ob der Komparator dann noch 
richtig arbeitet. Also wenn es diese interne Diode des AVR's nicht gebe, 
wäre die Spannung ja etwas höher. Wie kann dann der Komparator diese 
Spannungen noch richtig vergleichen? Ansich gehts nicht, wenn die 
Sternpunktspannung über 5,7V liegt. Da die Phasenspannung, die ich messe 
auch über der Sternpunktspannung liegen kann, löst der Komparator erst 
einen Interrupt aus, wenn die Phasenspannung unter 5,7V liegt. Das wäre 
aber dann zu spät. Andersrum das gleiche, wenn die Phasenspannung 
langsam ansteigt. Dann löst der Komparator ja zu zeitig einen Interrupt 
aus. Und der Attiny 261 kennt leider keine Gain-Verstellung.

B.A. schrieb:
> Leider gibt es von dem Mikrokopter BLCD_Ctrl kein Layout dann könnte man
> das mal nachbauen.

Ich finde es schon krass, dass er überhaupt einen Schaltplan 
veröffentlich, also nicht nur vom BLDC, da er damit ja Geld verdient. 
Aber hast schon Recht, die Sachen vom Holger sind schon echt krass, der 
hats schon drauf.

MfG Dennis

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.