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
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.
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
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.
Dennis H. schrieb: > Was könnte noch eine Ursache sein, das die Attiny's sterben? Mein aufrichtiges Beileid für die blumige Ausdrucksweise!
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
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.
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
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.
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
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.
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
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
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.
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
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
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 ;-).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.