Hallo ich bin gerade dabei einen BL-Motor-Regler zu planen. (ja, noch einer :-) Dazu verwende ich 3 Halbbrücken aus jeweils einem N- und P-Kanal-MOSFET (wie wohl auf den meisten Schaltungen). Die eigentliche Frage ist jetzt die Anordnung und das Routing auf der Platine. Ich würde gerne diese zusammengehörigen MOSFET-Pärchen auf Unter- und Oberseite verteilen (siehe Screenshot). Die Drains gehören dazu verbunden. Da ich MOSFETs im D2PACK Gehäuse verwenden möchte die großflächig mit Drain auf die Platine gelötet werden (zwecks bessere Wärmeabgabe und natürlich mit kleinen Widerstand) frage ich mich wie und wo ich diese am besten durchkontaktiere. Setzte ich nur ein Via? (das wäre ein bißchen wenig für hohe Ströme bis 9A denk ich). Soll ich einfach mehrere Vias in dem Drain Bereich setzen? Oder doch besser dort wo die Anschluss-Pads für die Motorphasen sind? Was gibt es da für Pro/Contras eurer Meinung nach?
:
Verschoben durch Admin
Direkt alles mit Vias durchlöchern, und die Kupferflächen so groß wie möglich (Wärmeabgabe). Ich denke ja eh nicht, dass du das im Lötofen löten wirst (vor allem wegen beidseitiger Bestückung). Wenn doch mehr Lötpaste vorsehen da die Vias die ganz gerne fressen ;)
Hauke Radtki schrieb: > Direkt alles mit Vias durchlöchern, und die Kupferflächen so groß wie > möglich (Wärmeabgabe). Ich denke ja eh nicht, dass du das im Lötofen > löten wirst (vor allem wegen beidseitiger Bestückung). Wenn doch mehr > Lötpaste vorsehen da die Vias die ganz gerne fressen ;) Also am besten viele kleine Vias, oder? Dann verschwendet man nicht so viel Fläche und hat viele Kontakte. Vias unterhalb der MOSFET sind also kein Problem bei der Hestellung höre ich da raus. Ich war mir da nicht so sicher, ob das irgenwelche neg. Konsequenzen hat. Das mit dem Lötofen hab ich mir auch schon überlegt (Beta Reflowkit). Habe aber keinen und scheue die Investition, da ich das zu selten brauche. Ich denke ich versuchs erst mal mit dem Lötkolben und notfalls lasse ich das bestücken. Mal schauen was das kostet...
Vias mit z.B 1,3mm Innendurchmesser einbauen und anschließend ein Stück Cu-Draht einlöten. Joe
Joe schrieb: > Vias mit z.B 1,3mm Innendurchmesser einbauen und anschließend ein Stück > Cu-Draht einlöten. > > Joe Super Idee, danke.
Hallo, Ich hatte auch schon mal das genau gleiche "Problem" (auch bei einem BL-Regler). Nach 10 verworfenen Layouten hatte ich endlich ein Ergebnis, das mir gefiel. Da habe ich aber alle Mosfets auf der Unterseite der Platine platziert, damit es keine Durchkontaktierungen gab, die hohe Ströme aushalten müssen. So hab ich quasi "Starkstrom" (FETs und Shunt) auf der Unterseite, und der ganze Rest (uC, FET-Treiber usw.) auf der Oberseite. Natürlich ist es auch mit Durchkontaktierungen möglich (sieht man auch bei gekauften Reglern), Da ich aber Angst hatte die DuKos abzufackeln, hab ich sie einfach vermieden ;-)
Urban B. schrieb: > Hallo, > > Ich hatte auch schon mal das genau gleiche "Problem" (auch bei einem > BL-Regler). Nach 10 verworfenen Layouten hatte ich endlich ein Ergebnis, > das mir gefiel. Da habe ich aber alle Mosfets auf der Unterseite der > Platine platziert, damit es keine Durchkontaktierungen gab, die hohe > Ströme aushalten müssen. > > So hab ich quasi "Starkstrom" (FETs und Shunt) auf der Unterseite, und > der ganze Rest (uC, FET-Treiber usw.) auf der Oberseite. > > Natürlich ist es auch mit Durchkontaktierungen möglich (sieht man auch > bei gekauften Reglern), Da ich aber Angst hatte die DuKos abzufackeln, > hab ich sie einfach vermieden ;-) Danke für den Beitrag. Das macht Sinn. Für wieviel Ampere hast du den Regler ausgelegt? Ich werde dennoch erstmal versuchen die FETs auf beide Seiten zu verteilenn wie bei den gekauften, weils einfach kompakter wird. Wenn's nicht klappt bleibt wohl nur deine Strategie. Mich würde auch mal interessieren wir man die Stromfestigkeit berechnen kann. Ich habe bisher keine Tabellen oder so gefunden. Nur Hinweise das auf Grund von Fertigkeitstoleranzen das sehr unterschiedlich sein kann. Das Material wird ja galvanisch aufgebracht. Übrigens würde ich mich gerne mal mit dir bezüglich BEMF austauschen, wenn du da schon Erfahrung hast. Bei meiner ersten Test-Platine (auf Streifenraster) sieht das Signal nicht wirklich so aus wie erwartet. Meine Phasen-Spg sieht zwar ohne Last gut aus, aber mit Motor wird die Phase nicht mehr sauber zwischen GND und VCC hin und her gezogen, sondern tümpelt minimal irgendwo in der Mitte rum. Dass ich nicht auf VCC komme ok, liegt vermutlich an der Strom-begrenzung von meinem Labornetzteil. Ich limitiere das momentan auf 1A. Aber dass der Lowside-FET die Phase nicht auf GND zieht irritiert mich doch. Das kann ja eigentlich nur bedeuten dass der RDSon viel zu hoch ist, also nicht richtig durchschaltet. Deswegen überlege ich gerade ob ich dafür einen Gate-Treiber brauche und das nicht direkt an den µC hänge. Die Aussagen zu der Notwendigkeit eines Gate-Treibers im Forum variieren sehr stark. Die einen sagen, brauchst du nicht, die anderen schon... (Bei dem BLCTRL von Mikrocopter war in V1.0 auch kein Gate-Treiber vorhanden, in folgenden Versionen dann schon. Also ganz sinnlos wird's wohl nicht sein). Was meinst du? Auf jeden Fall kann ich das Drehfeld deswegen momentan nur hart vorgeben, aber der Motor dreht sich (juhu, erstes Erfolgserlebnis). Wäre spitze wenn du mal Oszi-Bilder von den Phasenspannungen und/oder BEMF zum virtuellen Nullpunkt posten könntest, falls du sowas hast. Im Netz findet man leider hauptsächlich idealisierte Verläufe aber keine echten Messungen.
Sheldon Cooper schrieb: > Für wieviel Ampere hast du den Regler ausgelegt? Ich habe nicht direkt den Regler für einen bestimmten Strom ausgelegt, ich habe einfach mal geschaut welche Leiterbahnbreite ich noch ganz gut hinkriege beim Layouten. Bin dann auf 2.54mm gekommen, was laut Leiterbahnbreite etwa 7A aushalten dürfte (bei 35um). Das genügt mir erstmal, später kann man ja auch noch auf 70um wechsln. > Mich würde auch mal interessieren wir man die Stromfestigkeit berechnen > kann. Siehe z.B. Leiterbahnbreite > Übrigens würde ich mich gerne mal mit dir bezüglich BEMF austauschen, Also ich nehme mal an, du hast auch die Schaltung vom Mikrokopter übernommen, mit den 4,7k Widerständen und 100nF Kondis? So hab ichs zumindest gemacht, um schonmal von Anfang an brauchbare Ergebnisse zu bekommen. Um selber daran noch rumzuhantieren, hatte ich bis jetzt keine Zeit und Lust... > Deswegen überlege ich gerade ob ich dafür einen Gate-Treiber brauche und > das nicht direkt an den µC hänge. Habe ich mir auch überlegt. Die Gate-Treiber haben aber 3 grosse Vorteile: 1. die Ausgänge vom uC werden entlastet, bzw. nicht mehr ÜBERlastet :-) 2. "Einfachere" Mosfet-Wahl (kein Logic Level, nur N-Kanal, niederohmiger) 3. Bei geeigneten Treiber wird die Software einfacher, sicherer Ich habe die IR2104S genommen, der hat eine integrierte deadtime --> Egal was für Müll die Software im uC produziert, einen Kurzschluss kriegst du damit nicht hin. Ausserdem kriegt man ohne Software-Aufwand einen aktiven Leerlauf hin, was die Verlustleistung minimiert. Meine Empfehlung: Nimm FET-Treiber! > Wäre spitze wenn du mal Oszi-Bilder von den Phasenspannungen und/oder > BEMF zum virtuellen Nullpunkt posten könntest, falls du sowas hast. Siehe Anhang. Gelb: Eine Phase Blau: Sternpunkt Rot: BEMF, sollte glaube ich von der gleichen Phase wie oben sein Grün: nur zum schauen, wann der Komparator triggert (immer die steigende Flanke) Aber Achtung, solange du noch im starren Drehfeld bist, sieht die BEMF scheusslich aus! Du musst es zuerst irgendwie hinkriegen, dass die Umschaltung auf die elektronische Kommutierung funktioniert. Dazu habe ich auch eine Weile gebraucht, ist nicht ganz einfach... :-) NACHTRAG: fast vergessen: Die FET-Treiber haben aber auch einen Nachteil: Sie benötigen eine Mindestspannung. Beim IR2104 muss man schon mit 4S Lipo einspeisen, sonst wird das nichts. Bei einem gekauften Regler habe ich sogar gesehen, dass der einen Step-Up Wandler drauf hat, nur damit die Treiber auch bei weniger als 4S laufen. Ich wollte aber eh 4S nehmen, also ist mir das mit der Eingangsspannung egal...
Urban B. schrieb: > Sheldon Cooper schrieb: > > Ich habe nicht direkt den Regler für einen bestimmten Strom ausgelegt, > ich habe einfach mal geschaut welche Leiterbahnbreite ich noch ganz gut > hinkriege beim Layouten. Bin dann auf 2.54mm gekommen, was laut > Leiterbahnbreite etwa 7A aushalten dürfte (bei 35um). Das genügt mir > erstmal, später kann man ja auch noch auf 70um wechsln. > > Siehe z.B. Leiterbahnbreite Bei der Leiterbahn ist mir das klar. Dafür gibts Tabellen. Nur bei Durchkontaktierungen habe ich dafür noch nix gefunden. > > Also ich nehme mal an, du hast auch die Schaltung vom Mikrokopter > übernommen, mit den 4,7k Widerständen und 100nF Kondis? So hab ichs > zumindest gemacht, um schonmal von Anfang an brauchbare Ergebnisse zu > bekommen. Um selber daran noch rumzuhantieren, hatte ich bis jetzt keine > Zeit und Lust... Ich habe mir die Schaltung genau angeschaut, aber nicht komplett übernommen. Ich orientiere mich stark an AVR Appnote 444, den Infos von http://rmmx.gmxhome.de/bldchv und auch an Mikrocopter. Ich will schon mein eigenes Ding machen, wobei vieles zwangsläufig ähnlich ausschauen wird, also zumindest die Endstufe und der virtuelle Sternpunkt für die BEMF. > > Habe ich mir auch überlegt. Die Gate-Treiber haben aber 3 grosse > Vorteile: > 1. die Ausgänge vom uC werden entlastet, bzw. nicht mehr ÜBERlastet :-) > 2. "Einfachere" Mosfet-Wahl (kein Logic Level, nur N-Kanal, > niederohmiger) > 3. Bei geeigneten Treiber wird die Software einfacher, sicherer > > Ich habe die IR2104S genommen, der hat eine integrierte deadtime --> > Egal was für Müll die Software im uC produziert, einen Kurzschluss > kriegst du damit nicht hin. Ausserdem kriegt man ohne Software-Aufwand > einen aktiven Leerlauf hin, was die Verlustleistung minimiert. > > Meine Empfehlung: Nimm FET-Treiber! Die kommerziellen Produkte machen das wohl so. Alles N-Kanal FETs mit so einem Treiber-Baustein. Ich will meinen Treiber aber lieber diskret aufbauen. Mir gehts ja vor allem um den Lerneffekt und nicht nur darum schnell was ans Laufen zu bekommen. Ich werde da mal ein paar Sachen ausprobieren. Gegentakt-Treiber und die Variante von Mikrocopter V2.0. Sieht auf den ersten Blick wie ein Darlington-Schaltung aus, ist es aber nicht. K.A. was das genau ist, habe ich noch nicht ganz verstanden. > >> Wäre spitze wenn du mal Oszi-Bilder von den Phasenspannungen und/oder >> BEMF zum virtuellen Nullpunkt posten könntest, falls du sowas hast. > Siehe Anhang. > Gelb: Eine Phase > Blau: Sternpunkt > Rot: BEMF, sollte glaube ich von der gleichen Phase wie oben sein > Grün: nur zum schauen, wann der Komparator triggert (immer die steigende > Flanke) > > Aber Achtung, solange du noch im starren Drehfeld bist, sieht die BEMF > scheusslich aus! Du musst es zuerst irgendwie hinkriegen, dass die > Umschaltung auf die elektronische Kommutierung funktioniert. Dazu habe > ich auch eine Weile gebraucht, ist nicht ganz einfach... :-) Interessant. Dein Oszi Bild schaut auf jeden Fall super aus. Genauso wie es die Theorie lehrt. Ich hoffe das bekomme ich auch noch so hin. > > NACHTRAG: > fast vergessen: Die FET-Treiber haben aber auch einen Nachteil: Sie > benötigen eine Mindestspannung. Beim IR2104 muss man schon mit 4S Lipo > einspeisen, sonst wird das nichts. Bei einem gekauften Regler habe ich > sogar gesehen, dass der einen Step-Up Wandler drauf hat, nur damit die > Treiber auch bei weniger als 4S laufen. Ich wollte aber eh 4S nehmen, > also ist mir das mit der Eingangsspannung egal... Ich habe einen Motor mit 6-12V/9A, deswegen arbeite ich mit 3-Zellen-Lipo. Naja, momentan noch mit Labor-Netzteil ;-) Lipo muss ich mir noch besorgen.
> Nur bei Durchkontaktierungen habe ich dafür noch nix gefunden.
Die sind je nach Herstellungsprozess auch immer etwas anders - die
Kupferdicke variiert da je nachdem wieviel da eben in der Galvanik
draufkommt.
Ansonsten isses einfach eine "aufgerollte" Leiterbahn - also Kreisumfang
berechnen dann haste die Breite.
Cu Dicke - da musste den Hersteller fragen.
http://www.fs-leiterplatten.de/technik/layout-tipps/elektrische-bemessungsrichtlinien/ Da gibts ne Tabelle, die muss natürlich jetzt nicht für jeden fertiger gelten, aber als Richtlinie ist sie denk ich nicht schlecht ;) Da sieht man auch: Vias halten mehr aus als man denkt!!!
Sheldon Cooper schrieb: > Ich habe mir die Schaltung genau angeschaut, aber nicht komplett > übernommen. Ich orientiere mich stark an AVR Appnote 444, den Infos von > http://rmmx.gmxhome.de/bldchv und auch an Mikrocopter. Ja genau diese Sachen habe ich mir auch schon angeschaut. Die BEMF-Schaltung von http://rmmx.gmxhome.de/bldc ist aber irgendwie ziemlich kompliziert ;-) Aber was mich verwundert, in der Appnote 444 scheint die Nulldurchgangserkennung per ADC gemacht worden zu sein? Machst du das auch so? Dafür ist doch der Komparator besser geeignet... So ganz 100% verstehe ich das Prinzip aber immernoch nicht... Bei den käuflichen Reglern kann man doch einige Parameter auf den verwendeten Motor anpassen. Der wichtigste Parameter ist da glaube ich irgend ein Winkel, der den Kommutierungszeitpunkt vorgeben soll?! Nun, meine Software läuft so, dass wenn der Komparator den Interrupt vom Nulldurchgang auslöst, die Kommutierung SOFORT ausgelöst wird. Wenn ich dazwischen noch ein Delay einbaue, beginnt der Motor eher unruhiger zu laufen. Oder müsste ich vielleicht schon kommutieren BEVOR der Interrupt kommt? Also quasi vom letzten Interrupt eine bestimmte Zeit warten? Jedenfalls ist die Maximale Drehzahl vom Motor genau gleich hoch, wie beim gekauften Regler, so schlecht kanns also nicht sein :-D Im Anhang noch ein Bild der drei Phasen bei Vollgas. Beim Gekauften Regler sieht es genau gleich aus, nur die Spitzen beim Ausschalten der FETs treten weniger auf...
Urban B. schrieb: > Sheldon Cooper schrieb: >> Ich habe mir die Schaltung genau angeschaut, aber nicht komplett >> übernommen. Ich orientiere mich stark an AVR Appnote 444, den Infos von >> http://rmmx.gmxhome.de/bldchv und auch an Mikrocopter. > > Ja genau diese Sachen habe ich mir auch schon angeschaut. Die > BEMF-Schaltung von http://rmmx.gmxhome.de/bldc ist aber irgendwie > ziemlich kompliziert ;-) > > Aber was mich verwundert, in der Appnote 444 scheint die > Nulldurchgangserkennung per ADC gemacht worden zu sein? Machst du das > auch so? Dafür ist doch der Komparator besser geeignet... Das wird per ADC gemacht, weil der von der PWM Steuerung getriggert wird. Dadurch kann man genau in der Mitte des hohen Pegels messen und man hat weniger Störung durch die PWM Modulation. Mit dem Comparator sollte das aber auch gut machbar sein. Ich werde da wohl auch mal experimentieren. > > > So ganz 100% verstehe ich das Prinzip aber immernoch nicht... Bei den > käuflichen Reglern kann man doch einige Parameter auf den verwendeten > Motor anpassen. Der wichtigste Parameter ist da glaube ich irgend ein > Winkel, der den Kommutierungszeitpunkt vorgeben soll?! > Nun, meine Software läuft so, dass wenn der Komparator den Interrupt vom > Nulldurchgang auslöst, die Kommutierung SOFORT ausgelöst wird. Wenn ich > dazwischen noch ein Delay einbaue, beginnt der Motor eher unruhiger zu > laufen. > Oder müsste ich vielleicht schon kommutieren BEVOR der Interrupt kommt? > Also quasi vom letzten Interrupt eine bestimmte Zeit warten? Das max. Drehmoment gibt es bei einer Phasendifferenz von 90° zwischen dem Statorfeld und dem Rotorfeld. Da wir bei drei Phasen in Sprüngen von 60° kommutieren, liegt der optimale Startpunkt 30° vor diesen 90°. Durch Filter wie dem Tiefpass in der Appnote444 ergibt sich aber eine leichte Phasenverschiebung, weswegen das nochmals angepasst werden sollte. Ein Konfigurationsparameter schadet also nicht. > > Jedenfalls ist die Maximale Drehzahl vom Motor genau gleich hoch, wie > beim gekauften Regler, so schlecht kanns also nicht sein :-D > > Im Anhang noch ein Bild der drei Phasen bei Vollgas. Beim Gekauften > Regler sieht es genau gleich aus, nur die Spitzen beim Ausschalten der > FETs treten weniger auf... Sieht gut aus. Hohe Spitzen können auftreten wenn der FET zu schnell abgeschaltet wird. Man wills zwar schnell haben, aber de hohen Frequenzen sind eben der Nachteil. Mit einem kleinen Widerstand am Gate lässt sich das regeln. Siehe http://de.wikipedia.org/wiki/Gate-Treiber#Gegentakt-Treiberschaltung So viel zur Theorie. Ich hoffe das hilft dir weiter. Ich muss mich jetzt mal an die Praxis machen ;-)
Hauke Radtki schrieb: > http://www.fs-leiterplatten.de/technik/layout-tipps/elektrische-bemessungsrichtlinien/ > > Da gibts ne Tabelle, die muss natürlich jetzt nicht für jeden fertiger > gelten, aber als Richtlinie ist sie denk ich nicht schlecht ;) Da sieht > man auch: Vias halten mehr aus als man denkt!!! danke für den Link.
Sheldon Cooper schrieb: > Das wird per ADC gemacht, weil der von der PWM Steuerung getriggert > wird. > Dadurch kann man genau in der Mitte des hohen Pegels messen und man hat > weniger Störung durch die PWM Modulation. > Mit dem Comparator sollte das aber auch gut machbar sein. > Ich werde da wohl auch mal experimentieren. Ah okay, wäre vielleicht auch mal einen Versuch wert. Andererseits könnte man mit einem auf die PWM-Frequenz angepassten Filter in der BEMF-Schaltung die BEMF-Spannungen vermutlich schön glätten, dass auch der Komparator nicht mehr durch die PWM beeinflusst wird. > Das max. Drehmoment gibt es bei einer Phasendifferenz von 90° zwischen > dem Statorfeld und dem Rotorfeld. Da wir bei drei Phasen in Sprüngen von > 60° kommutieren, liegt der optimale Startpunkt 30° vor diesen 90°. > Durch Filter wie dem Tiefpass in der Appnote444 ergibt sich aber eine > leichte Phasenverschiebung, weswegen das nochmals angepasst werden > sollte. > Ein Konfigurationsparameter schadet also nicht. OK dann ist das also wirklich um den Kommutierungszeitpunkt noch etwas anzupassen. Muss ich auch noch anschauen wie ich das am besten mache. > Sieht gut aus. Hohe Spitzen können auftreten wenn der FET zu schnell > abgeschaltet wird. Man wills zwar schnell haben, aber de hohen > Frequenzen sind eben der Nachteil. Mit einem kleinen Widerstand am Gate > lässt sich das regeln. Der Gate-Widerstand ist jetzt schon sehr klein, ich glaube ich habe da 15R drin. Aber solange die Spitzen nicht über die Versorgungsspannung hinausgehen sehe ich das nicht so als Problem... Das grössere Problem, das ich im Moment noch habe, ist die rückwirkende Spannung beim sehr schnellen Abbremsen. Ich konnte sogar in der 5V-Versorgung Spitzen bis zu 7V messen während dem extrem schnellen Abbremsen (von 100% auf "Standgas" in vielleich 0,1s oder so). Nach ein paar Messungen hat sich dann auch das erste Bauteil mit Rauch verabschiedet ;-( Ich sehe aber gerade in der BEMF-Schaltung auch ein Problem. Momentan habe ich Spannungsteiler von 1:1 drin, was bei 15V Speisung ganze 7.5V auf den AVR geben dürfte. Die armen Clamping Dioden xD Naja, langweilig wirds bei der Entwicklung eines solchen Reglers bestimmt nicht... :-D Leider habe ich aber momentan nicht so die Zeit dafür (Studium)...
Ich nochmal... Hab grad den gekauften Regler mal etwas genauer angeschaut. Dabei ist mir aufgefallen, dass der vermeindliche Step-Up-Wandler in Wirklichkeit als Step-Down betrieben wird, um die 5V für den Empfänger zu liefern, der ja vom BL-Regler gespiesen wird. Find ich krass dass die dafür extre einen Step-Down-Wandler einbauen, obwohl es den gar nicht bräuchte für den Regler selber... Die BEMF-Schaltung hingegen sieht stinkeinfach aus. Von den drei Phasen jeweils ein Spannungsteiler 47k / 9,1k nach GND. Die Mitte abgegriffen und direkt auf die uC Eingänge gelegt. Kein Kondensator, keine Z-Diode, nichts. Für den Sternpunkt dann noch von diesen drei Mittenanzapfungen jeweils einen 47k Widerstand, zusammengehängt und auf den Komparator gelegt. Fertig. Man findet allgemein keine Z-Dioden, sonstiger Überspannungsschutz oder sowas. Auch der Strom wird nicht gemessen, deshalb wohl eher auch keine Überstromabschaltung. Würde mich mal interessieren ob es da keine Überspannungen bei ruckartigem Abbremsen gibt, aber der Regler ist kaputt, da gibts nicht mehr viel zu messen :-) OK im richtigen Betrieb kann man auch gar nicht so ruckartige Drehzahländerungen machen wenn da ein Propeller dran hängt, aber ohne Propeller sollte er ja auch überleben. Keine Garantie auf Fehlerlosigkeit, es war nicht ganz einfach eine (vermutlich) 4-Lagige Platine zu analysieren... ;-) EDIT: Und der Eingang, da wo das Signal vom Empfänger kommt, wird auf 3 Widerstände gelegt, welche wiederum alle an einem separaten uC-Eingang hängen...Ich versteh die blöde Schaltung nicht :-|
Sheldon Cooper schrieb: > Urban B. schrieb: >> Sheldon Cooper schrieb: >>> Wäre spitze wenn du mal Oszi-Bilder von den Phasenspannungen und/oder >>> BEMF zum virtuellen Nullpunkt posten könntest, falls du sowas hast. >> Siehe Anhang. >> Gelb: Eine Phase >> Blau: Sternpunkt >> Rot: BEMF, sollte glaube ich von der gleichen Phase wie oben sein >> Grün: nur zum schauen, wann der Komparator triggert (immer die steigende >> Flanke) >> >> Aber Achtung, solange du noch im starren Drehfeld bist, sieht die BEMF >> scheusslich aus! Du musst es zuerst irgendwie hinkriegen, dass die >> Umschaltung auf die elektronische Kommutierung funktioniert. Dazu habe >> ich auch eine Weile gebraucht, ist nicht ganz einfach... :-) > Interessant. Dein Oszi Bild schaut auf jeden Fall super aus. Genauso wie > es die Theorie lehrt. Ich hoffe das bekomme ich auch noch so hin. Auch von mir noch mal: Achtung. Wenn du den Motor im starren Drehfeld betreibst, kann es sein, dass du keine gescheiten Oszillogramme bekommst. Das liegt ganz einfach daran, dass der BLDC Motor im "Stepper" Betrieb arbeitet. Das heißt, es kann passieren (es ist sehr wahrscheinlich), dass der Rotor nach der harten Kommutierung beschleunigt wird und am nächsten Pol wieder abgebremst wird, dann ausschwingt und nach einer Weile erst die nächste (harte) Kommutierung erfolgt. Das sieht wirklich ekelhaft aus und hat mich vor einiger Zeit auch viele graue Haare gekostet. Siehe hier: Beitrag "Frage zu Brushless Motor Ansteuerung"
Urban B. schrieb: > Ich nochmal... > > Die BEMF-Schaltung hingegen sieht stinkeinfach aus. Von den drei Phasen > jeweils ein Spannungsteiler 47k / 9,1k nach GND. Die Mitte abgegriffen > und direkt auf die uC Eingänge gelegt. Kein Kondensator, keine Z-Diode, > nichts. Komischer Wert. 9.1k Widerstand hab ich noch nie gesehen. > > Für den Sternpunkt dann noch von diesen drei Mittenanzapfungen jeweils > einen 47k Widerstand, zusammengehängt und auf den Komparator gelegt. > Fertig. > > Man findet allgemein keine Z-Dioden, sonstiger Überspannungsschutz oder > sowas. Auch der Strom wird nicht gemessen, deshalb wohl eher auch keine > Überstromabschaltung. > > Würde mich mal interessieren ob es da keine Überspannungen bei > ruckartigem Abbremsen gibt, aber der Regler ist kaputt, da gibts nicht > mehr viel zu messen :-) OK im richtigen Betrieb kann man auch gar nicht > so ruckartige Drehzahländerungen machen wenn da ein Propeller dran > hängt, aber ohne Propeller sollte er ja auch überleben. Ein FET hat ja eine eingebaute "Freilaufdioden-Funktionalität", nur werden die dann halt ein "bißchen" warm ;-) Deswegen finde ich die Strategie von http://rmmx.gmxhome.de/bldchv sehr gut, immer nur abwechselnd die obere oder untere Seite bei der PWM Modulation zu deaktivieren. So kann der Strom noch ungehindert über die zweiten Transistor laufen und man halbiert quasi die Freilaufverluste. > > Keine Garantie auf Fehlerlosigkeit, es war nicht ganz einfach eine > (vermutlich) 4-Lagige Platine zu analysieren... ;-) Oja, das kann ich mir vorstellen. > > EDIT: Und der Eingang, da wo das Signal vom Empfänger kommt, wird auf 3 > Widerstände gelegt, welche wiederum alle an einem separaten uC-Eingang > hängen...Ich versteh die blöde Schaltung nicht :-| Da meinst das PWM Signal von Empfänger?
Simon K. schrieb: > Auch von mir noch mal: Achtung. Wenn du den Motor im starren Drehfeld > betreibst, kann es sein, dass du keine gescheiten Oszillogramme > bekommst. Das liegt ganz einfach daran, dass der BLDC Motor im "Stepper" > Betrieb arbeitet. Das heißt, es kann passieren (es ist sehr > wahrscheinlich), dass der Rotor nach der harten Kommutierung > beschleunigt wird und am nächsten Pol wieder abgebremst wird, dann > ausschwingt und nach einer Weile erst die nächste (harte) Kommutierung > erfolgt. Das sieht wirklich ekelhaft aus und hat mich vor einiger Zeit > auch viele graue Haare gekostet. > Siehe hier: > Beitrag "Frage zu Brushless Motor Ansteuerung" Danke für die Erklärung. Das dürfte aber nicht mein Problem sein. Mit dem starren Drehfeld komme ich immerhin schon über 1000rpm ohne Last. Bei mir haperts noch an der Endstufe. Ich habe aber gestern angefangen eine neue zu bauen. Diesmal nur die FETs auf Streifenraster, den Rest noch auf Steckbrett. Das macht die Sache einfacher zum Spielen. Hät ich auch gleich so machen können, anstatt alles auf ein Streifenraster zu quetschen...
Sheldon Cooper schrieb: > Komischer Wert. 9.1k Widerstand hab ich noch nie gesehen. Ja ich weiss, aber auf dem SMD-Widerstand steht "912", das müsste ja 91 + 2 Nullen sein, also 9100 Ohm. Schaut man es verkehrt herum an, sind es "216", also 21MOhm was noch unwahrscheinlicher ist ;-) > Ein FET hat ja eine eingebaute "Freilaufdioden-Funktionalität", nur > werden die dann halt ein "bißchen" warm ;-) Ja schon, aber so kann die induzierte Spannung ja die Betriebsspannung anheben (und quasi kurzzeitig den LiPo laden). Naja aber wie gesagt, mit Propeller kann das eh nicht wirklich vorkommen weil man keine so ruckartige Drehzahländerungen hinkriegt. > Deswegen finde ich die Strategie von http://rmmx.gmxhome.de/bldchv sehr > gut, immer nur abwechselnd die obere oder untere Seite bei der PWM > Modulation zu deaktivieren. So kann der Strom noch ungehindert über die > zweiten Transistor laufen und man halbiert quasi die Freilaufverluste. Genau das habe ich dir ja bereits geschrieben, dass diese Funktion "automatisch" aktiviert ist, wenn man einen FET-Treiber mit nur einem Signaleingang nimmt. Low am Eingang -> unterer Mosfet schaltet durch, High am Eingang -> oberer Mosfet schaltet durch. Ganz deaktivieren kann man die FETs mit dem Enable-Eingang des Teribers. So kriegt man diesen sogenannten aktiven Freilauf ganz einfach hin. Ohne komplizierte Software (man bräuchte 6 PWM-Ausgänge). > Da meinst das PWM Signal von Empfänger? Genau den meine ich. Habs mit dem Durchgangsprüfer durchgepiepst, der PWM Eingang geht auf 3 Widerstände (je 1k) und dann getrennt auf 3 Eingänge vom uC. Ausserdem hängt direkt am PWM Signal noch ein 47k Pulldown wie ich gerade sehe.
Urban B. schrieb: > >> Deswegen finde ich die Strategie von http://rmmx.gmxhome.de/bldchv sehr >> gut, immer nur abwechselnd die obere oder untere Seite bei der PWM >> Modulation zu deaktivieren. So kann der Strom noch ungehindert über die >> zweiten Transistor laufen und man halbiert quasi die Freilaufverluste. > Genau das habe ich dir ja bereits geschrieben, dass diese Funktion > "automatisch" aktiviert ist, wenn man einen FET-Treiber mit nur einem > Signaleingang nimmt. Low am Eingang -> unterer Mosfet schaltet durch, > High am Eingang -> oberer Mosfet schaltet durch. Ganz deaktivieren kann > man die FETs mit dem Enable-Eingang des Teribers. > > So kriegt man diesen sogenannten aktiven Freilauf ganz einfach hin. Ohne > komplizierte Software (man bräuchte 6 PWM-Ausgänge). Ich habe mir zwei Dinge dazu überlegt. 1.) 6 PWM nutzen, die der Atmega auch hat. Ich glaube aber, dafür braucht man beide Timer. Muss dazu nochmal das Datenblatt bemühen... 2.) Nur 2 PWM nutzen, die man getrennt aktiviert/deaktiviert und die per Wired-AND mit den Transistor-Steuersignalen verbinden. (Und-Gatter wären natürlich auch möglich). > >> Da meinst das PWM Signal von Empfänger? > Genau den meine ich. Habs mit dem Durchgangsprüfer durchgepiepst, der > PWM Eingang geht auf 3 Widerstände (je 1k) und dann getrennt auf 3 > Eingänge vom uC. Ausserdem hängt direkt am PWM Signal noch ein 47k > Pulldown wie ich gerade sehe. Kann ich mir auch keinen Reim drauf machen. Ich kenne zwei Varianten: Entweder digital samplen und die Zeiten zwischen den Flanken messen was naheliegend ist. Oder das Signal über ein RC-Glied integrieren und über AD-Wandler einlesen. Irgendwie beknackt ein digitales Signal zuerst nach analog zu wandeln um es gleich wieder zu digitalisieren, aber ich hab so Schaltungen schon gesehen :-)
Sheldon Cooper schrieb: > Ich habe mir zwei Dinge dazu überlegt. > 1.) 6 PWM nutzen, die der Atmega auch hat. Ich glaube aber, dafür > braucht man beide Timer. Muss dazu nochmal das Datenblatt bemühen... > 2.) Nur 2 PWM nutzen, die man getrennt aktiviert/deaktiviert und die per > Wired-AND mit den Transistor-Steuersignalen verbinden. (Und-Gatter wären > natürlich auch möglich). Jo, geht alles. Aber hast du schonmal diesbezüglich den Schaltplan der BL-Ctrl_2.0 angeschaut? Meiner Meinung nach eine völlig geniale Lösung, total einfach (Hard- und Software) aber trotzdem funktioniert es einwandfrei. Schaltplan: http://mikrocontroller.com/files/BL_Ctrl_V2_0_Doku.pdf Man aktiviert einfach ein Hardware-PWM und lässt es die ganze Zeit laufen (auch wenn der Motor nicht läuft, das PWM kann einfach weiterrattern). Das Prinzip bei dem von mir genannten Treiber IR2104 o.ä.: (uC Ausgang 1 geht auf Treiber Eingang, uC Ausgang 2 geht auf Treiber Enable) Phase auf GND legen --> uC Ausgang 1 auf low schalten Phase "in die Luft hängen" --> uC Ausgang 2 auf low schalten Phase auf PWM legen --> uC Ausgang 1 auf Eingang umschalten (DDR) Man braucht zwar immernoch 2 uC Ausgänge pro Phase, allerdings kann die Ansteuerlogik nicht einfacher sein :-) > Kann ich mir auch keinen Reim drauf machen. > Ich kenne zwei Varianten: Entweder digital samplen und die Zeiten > zwischen den Flanken messen was naheliegend ist. > Oder das Signal über ein RC-Glied integrieren und über AD-Wandler > einlesen. Irgendwie beknackt ein digitales Signal zuerst nach analog zu > wandeln um es gleich wieder zu digitalisieren, aber ich hab so > Schaltungen schon gesehen :-) Ja, ich verstehe es auch nicht. Es handelt sich um die Eingänge PD0, PD1 und PD2 beim Mega88, also RXD, TXD und INT0, nix analog ;-)
Urban B. schrieb: > Sheldon Cooper schrieb: > Jo, geht alles. Aber hast du schonmal diesbezüglich den Schaltplan der > BL-Ctrl_2.0 angeschaut? Meiner Meinung nach eine völlig geniale Lösung, > total einfach (Hard- und Software) aber trotzdem funktioniert es > einwandfrei. > Schaltplan: http://mikrocontroller.com/files/BL_Ctrl_V2_0_Doku.pdf > natürlich, daher auch die Idee mit der Wired-AND Schaltung. > Man aktiviert einfach ein Hardware-PWM und lässt es die ganze Zeit > laufen (auch wenn der Motor nicht läuft, das PWM kann einfach > weiterrattern). Ich möchte das nur modifiziern mit zwei PWMs, damit ich einmal die untere und einmal die obere Häfte mit dem PWM Signal verknüpfen kann. Bei dem BL-Ctrl_2.0 wird nur die High-Side mit dem Signal verknödelt. Die Ansteuerung der High-Side FETs ist mir übrigenes noch nicht ganz klar bei dieser V2.0. Bei älteren Versionen war das nur ein Tranistor und mir ist nicht klar warum das jetzt zwei sind.
Sheldon Cooper schrieb: > Ich möchte das nur modifiziern mit zwei PWMs, damit ich einmal die > untere und einmal die obere Häfte mit dem PWM Signal verknüpfen kann. > Bei dem BL-Ctrl_2.0 wird nur die High-Side mit dem Signal verknödelt. Ach soo, ok dann ist alles klar. Da gibt es ja viele Theorien dass die Motoren besser / schlechter laufen sollen wenn das PWM die unteren/oberen FETS ansteuert oder so :-) Ich habe keine Ahnung was es damit auf sich hat. Find ich vorerst auch nicht so wichtig, hauptsache die Motoren laufen richtig :D Ausserdem will ich mich eben auch an gekauften Reglern orientieren, wenn ich die selbe Leistung erziele bin ich zufrieden. > Die Ansteuerung der High-Side FETs ist mir übrigenes noch nicht ganz > klar bei dieser V2.0. Bei älteren Versionen war das nur ein Tranistor > und mir ist nicht klar warum das jetzt zwei sind. Ich meine mal gelesen zu haben, dass es bei älteren Versionen Probleme mit diesem Transistor in Verbindung mit Feuchtigkeit gab. Aber was jetzt genau der Sinn an ZWEI Transistoren ist, das weiss ich auch nicht. Habe gerade gesehen dass es einen Artikel zu diesem Thema gibt: BLDC Demo Board Allerdings ist da noch nicht viel drin. Wäre vielleicht gut wenn man auch mal das genaue Prinzip eines BLDC und verschiedene Hardware-Ansätze noch erwähnen sollte. Mal schauen, vielleicht kann ich das nach den Semesterprüfungen mal in Angriff nehmen. Wie du ja auch schon festgestellt hast, findet man im Internet viele Seiten, die das Prinzip total vereinfacht beschreiben aber zu wenig ins Detail gehen...
Wenn du noch eine Meinung hören willst: Ich habe damals einen 4 Fach Brushless Controller mit dem dicken ATxmega (hat genug Timer und 4 Komparatoren) realisiert. Die Ansteuerung der MOSFETs habe ich über IR2104 gemacht. Tu dir einen gefallen: Benutze aktiven Freilauf, nicht so wie der BL Ctrl. Ich habe kleine SO8 MOSFETs benutzt und 4 Stück 100W Motoren damit angetrieben, die wurden vielleicht mal handwarm. Wenn du dich beim BL-Ctrl umschaust, siehst du, dass die wesentlich wärmer werden.
Hallo Urban, ich habe gestern einen Test mit der neuen Schaltung gemacht. Der Motor dreht sich zwar aber die Messung verstehe ich nicht. Gemessen habe ich an dem Spannungsteiler für den virtuellen Sternpunkt wie in BL-Ctrl_2.0 (von MITTEL nach NULL_A und NULL_B). In MAP002.PNG sieht man die Messung ohne Motor, was mehr oder weniger der Phasenspannung runter geteilt entspricht. Hier seht man schön, dass die zwei Phasen schön zeitversetzt kommen. (In der Lücke wäre die dritte Phase, habe aber nur zwei Kanäle) In BEMF.PNG sieht man nun die Messung mit Motor. Hier sieht man nun die zwei Phasen synchron laufen, was ich nicht verstehe. Da muss ich doch noch einen Fehler in der Schaltung haben. Eine Idee? Und ich glaube trotzdem einen Sinus-verlauf in dem Floating-Phase zu erkennen. Was meinst du?
Sheldon Cooper schrieb: > Der Motor dreht sich zwar aber die Messung verstehe ich nicht. Ich auch nicht :-) > Gemessen habe ich an dem Spannungsteiler für den virtuellen Sternpunkt > wie in BL-Ctrl_2.0 (von MITTEL nach NULL_A und NULL_B). Ich würde nicht gegen den Sternpunkt messen, sondern gegen GND. So wie bei meinem Oszibild. Dann muss man nicht viel überlegen beim Anschauen des Bildes. Und miss auch mal die Phasen direkt, um zu schauen ob diese so aussehen wie sie müssen (alle 3, halt nacheinander). Stimmt da was nicht, stimmt auch die BEMF nicht. Hatte auch schon mal das Problem dass die BEMF nicht stimmte, da war es ein Kurzschluss in der BEMF-Schaltung. Und pass auf dass dir der Motor nicht abfackelt wenn du ihn mit 100% PWM betreibst im Stepperbetrieb (das tust du doch jetzt?)... Schalte lieber PWM auf ca. 20% Duty Cycle, damit konnte ich immer gut arbeiten.
Urban B. schrieb: > Und miss auch mal die Phasen direkt, um zu schauen ob diese so aussehen > wie sie müssen (alle 3, halt nacheinander). Stimmt da was nicht, stimmt > auch die BEMF nicht. ok, das werde ich heute abend nochmal machen. > > > Und pass auf dass dir der Motor nicht abfackelt wenn du ihn mit 100% PWM > betreibst im Stepperbetrieb (das tust du doch jetzt?)... Schalte lieber > PWM auf ca. 20% Duty Cycle, damit konnte ich immer gut arbeiten. Ja, da hast du recht. Da ich ohne LiPo teste habe ich bisher einfach den Strom auf 1A limitiert im Labornetzteil.
Und, gibts schon Neuigkeiten? :-) Ich habe nun angefangen die nächste Version von meinem Regler zu Layouten. Jetzt überlege ich mir ob ich überhaupt noch eine Strommessung reinbauen soll. Ein Leistungswiderstand ist teuer, ein Leiterbahn-Shunt mühsam zum Layouten. Beim Mikrokopter scheinen sie ja jedesmal einen Shunt drinzuhaben. Aber ich kann mir nicht so richtig vorstellen, dass die Überstromabschaltung wirklich mal zum Zuge kommt. Der Regler soll schlussendlich ja z.B. ein Quadrokopter in die Luft befördern. Solange er noch ab Boden ist, kann ich die Motoren auch von Hand ausschalten wenn was blockiert oder so. Und in der Luft führt ein Motorenproblem sowieso zum Absturz, ob der Fehler detektiert wird oder nicht :D Ganz grobe Kurzschlüsse beseitigt der LiPo von alleine, da muss man sich wohl kaum drum kümmern :-D Ausserdem messe ich per Software immer die Drehzahl. Liegt die plötzlich ausserhalb eines bestimmten Bereiches, schaltet er ab. Das erkennt ein Blockieren zwar nicht soooo zuverlässig (er zittert vor sich hin und registriert das als Umdrehungen) aber meistens merkt er es innerhalb von ca. 6 Sekunden. Würde mich mal interessieren, wie du das siehst? Baust du eine Strommessung ein?
Urban B. schrieb: > Und, gibts schon Neuigkeiten? :-) > Noch nicht viel. Hatte gestern keine Zeit, da ich beim Sport war. Muss ja auch mal sein :-) > Ich habe nun angefangen die nächste Version von meinem Regler zu > Layouten. Jetzt überlege ich mir ob ich überhaupt noch eine Strommessung > reinbauen soll. Ein Leistungswiderstand ist teuer, ein Leiterbahn-Shunt > mühsam zum Layouten. Einen Leiterbahnshunt habe ich auch noch nicht gemacht, aber schwierig kann das ja nicht sein, oder? Sofern man weiß wie lang und breit, kann man das in Eagle doch einfach manuell zeichnen. Oder siehst du da ein Problem? > Beim Mikrokopter scheinen sie ja jedesmal einen Shunt drinzuhaben. Aber > ich kann mir nicht so richtig vorstellen, dass die Überstromabschaltung > wirklich mal zum Zuge kommt. Doch, das geht ganz gut bei Mikrocopter, nachdem was ich so gelesen habe. (http://www.fc00.de/quadrokopter_6_kw.htm suche "Begrenzungen") Leiterbahn-Shunts werden hier zwar oft kritisiert, weil Kupfer ungenau ist durch den Temp-Koeff. Aber wir wollen ja kein Ampermeter bauen, sondern nur einen max. Strom verhindern. Ein kleine Toleranz kann man da schon verkraften. > Der Regler soll schlussendlich ja z.B. ein > Quadrokopter in die Luft befördern. Solange er noch ab Boden ist, kann > ich die Motoren auch von Hand ausschalten wenn was blockiert oder so. > Und in der Luft führt ein Motorenproblem sowieso zum Absturz, ob der > Fehler detektiert wird oder nicht :D > Soweit ich weiß schaltet der Mikrocopter auch nicht gleich aus, sonst fällt das Ding ja wie ein Stein vom Himmel. Aber man kann die max. Leistung dann begrenzen, sodass noch ein halbwegs kontrollierter Sinkflug möglich ist. > Ganz grobe Kurzschlüsse beseitigt der LiPo von alleine, da muss man sich > wohl kaum drum kümmern :-D > > Ausserdem messe ich per Software immer die Drehzahl. Liegt die plötzlich > ausserhalb eines bestimmten Bereiches, schaltet er ab. Das erkennt ein > Blockieren zwar nicht soooo zuverlässig (er zittert vor sich hin und > registriert das als Umdrehungen) aber meistens merkt er es innerhalb von > ca. 6 Sekunden. Ein Stall-Detection wie sie auch in AVR444 beschrieben ist, sollte auf jeden Fall auch drin sein, ja. Ein Stall wird erkannt wenn es für eine gewisse konfigurierbare Zeit keine Zero-Cross detection mehr gibt. Ein leichtes Zittern sollte keine Null-Durchgänge erzeugen, oder? Aber hier ist eher das Problem wann wird vom starren Drehfeld in geregelten Betrieb geschaltet und wann wieder zurück. Hier hätte man mit dem ADC auf jeden Fall Vorteile gegebenüber dem Komperator, weil man die Amplitude der Schwingungen messen könnte. So kann man erst ab einer gewissen Amplitude sinnvoll Null-Durchgänge erkennen. > > Würde mich mal interessieren, wie du das siehst? Baust du eine > Strommessung ein? Habe ich vor.
Sheldon Cooper schrieb: > Einen Leiterbahnshunt habe ich auch noch nicht gemacht, aber schwierig > kann das ja nicht sein, oder? Sofern man weiß wie lang und breit, > kann man das in Eagle doch einfach manuell zeichnen. Oder siehst du da > ein Problem? Klar geht es. Aber erstens braucht es wieder unnötig Platz, und zweitens ist es bestimmt nicht einfach, diese Leiterbahn so auszulegen, dass Sie nicht zu früh abfackelt, aber trotzdem einen möglichst grossen Widerstand hat. Beim Mikrokopter liest man ja auch immer wieder von verbrannten Shunts, aber ob das jedesmal wirklich eine Fehlfunktion des Motores war? Oder doch ein zu sensibler Shunt, der sich zu früh verabschiedet hat? Ich weiss es nicht... >> Beim Mikrokopter scheinen sie ja jedesmal einen Shunt drinzuhaben. Aber >> ich kann mir nicht so richtig vorstellen, dass die Überstromabschaltung >> wirklich mal zum Zuge kommt. > Doch, das geht ganz gut bei Mikrocopter, nachdem was ich so gelesen > habe. > (http://www.fc00.de/quadrokopter_6_kw.htm suche "Begrenzungen") Diese Seite kannte ich noch gar nicht, aber hübsche Regler bauen die da :-D Aber was ich meine: Ein Motor kann ja eigentlich nur durch Überlast zerstört werden, wenn da viiiiel zu viel Last dran hängt. Aber wie soll das bei einem richtig dimensionierten Probeller vorkommen? Und vorallem, wie soll sowas bei einem richtig dimensionierten Propeller in der Luft vorkommen? Kann ich mir irgendwie nicht vorstellen. > Leiterbahn-Shunts werden hier zwar oft kritisiert, weil Kupfer ungenau > ist durch den Temp-Koeff. Aber wir wollen ja kein Ampermeter bauen, > sondern nur einen max. Strom verhindern. Ein kleine Toleranz kann man da > schon verkraften. Ja das sehe ich natürlich auch so. > Soweit ich weiß schaltet der Mikrocopter auch nicht gleich aus, sonst > fällt das Ding ja wie ein Stein vom Himmel. > Aber man kann die max. Leistung dann begrenzen, sodass noch ein halbwegs > kontrollierter Sinkflug möglich ist. Ok stimmt, das macht Sinn. Aber wie oben schon erwähnt, sehe ich nicht wie so ein Überstrom während dem Flug zustande kommen soll. > Ein Stall-Detection wie sie auch in AVR444 beschrieben ist, sollte auf > jeden Fall auch drin sein, ja. > Ein Stall wird erkannt wenn es für eine gewisse konfigurierbare Zeit > keine Zero-Cross detection mehr gibt. Ein leichtes Zittern sollte keine > Null-Durchgänge erzeugen, oder? Doch, genau das tut es bei mir.Der zittert ständig was hin und her und erzeugt Komparator-Interrupts. Aber die Drehzahlüberwachung könnte man natürlich noch perfektionieren. Und zwar könnte man sie abhänging machen, vom PWM Duty Cycle. Also man berechnet quasi immer eine Solldrehzahl. Weicht dann die Ist-Drehzahl zu stark vom Soll ab, muss der Motor ja überlastet sein. Das muss natürlich auf den Motor und den Propeller abgestimmt sein, aber einmal angepasst sollte das ziemlich gut funktionieren denke ich. Dann erkennt man eine Überlast ohne Probleme, auch ohne Strommessung. > Aber hier ist eher das Problem wann wird vom starren Drehfeld in > geregelten Betrieb geschaltet und wann wieder zurück. Hier hätte man mit > dem ADC auf jeden Fall Vorteile gegebenüber dem Komperator, weil man die > Amplitude der Schwingungen messen könnte. So kann man erst ab einer > gewissen Amplitude sinnvoll Null-Durchgänge erkennen. Wieder zurück? Zurück ins starre Drehfeld muss man ja gar nie, beim Ausschalten werden ja einfach die FETs deaktiviert. Und für die Umschaltung in den geregelten Betrieb geht man einfach bis zu einer fest definierten Drehzahl, bei der man weiss dass die BEMF stark genug ist. >> Würde mich mal interessieren, wie du das siehst? Baust du eine >> Strommessung ein? > Habe ich vor. OK. Aber wie schon erwähnt, mein gekaufter Regler hat auch kein Shunt, und ich vermute mal die haben sich schon was überlegt dabei :-D Ich glaube einfach, eine allfällige Fehlfunktion (falls die jemals eintritt) kann auch per Drehzahlüberwachung detektiert werden. Vielleicht mach ichs weiterhin mit einem Leistungswiderstand, den ich aber auch einfach durch eine Drahtbrücke ersetzen kann...
Hallo Urban, BEMF geht zwar immer noch nicht brauchbar bei mir, aber ich habe neue Erkentnisse. Das Signal ist so verrauscht mit Spannungs-Spitzen und -Einbrüchen, dass der Comparator zuschlägt wie ein Zufallsgenerator. Ich dachte ursprünglich, dass liegt an der PWM, aber die bekomme ich ziemlich gut gefiltert mit meinem Spannungsteiler/Tiefpass (R-R-C). Der eigentliche Grund ist aber 1.) Dass ich mit Netzteil arbeite und das ständig in die Strombegrenzung läuft, wobei dann die Spannung einbricht. 2.) Dass ich keine Elkos zum Stabilisieren verwendet habe, außer für die 5V am µC. Ich habe als erste Maßnahme mal die Motor-Spannung am Netzteil auf 5V reduziert um damit die notwendigen Ströme zu reduzieren. Dann habe ich noch einen 100µF Elko dazugesteckt (größer hab ich's momentan nicht.) Damit schaut die Sache schon viel besser aus, aber nocht nicht gut genug. Lange Rede kurzer Sinn. Ich habe mir jetzt einen 3-Zellen LiPo + Ladegerät bestellt und besorge mir noch ein paar größere Elkos. Dann bin ich guter Hoffnung, dass ich nächste Woche eine gscheite BEMF zustande bekomme. Schönes WE, Sheldon
Okay, das erklärt einen Teil der Spannungsspitzen, aber nach diesen Änderungen wirst du sie immernoch nicht ganz los sein. Ich hatte das auch, dass der Komparator viiiiel zu häufig ausgelöst hätte, trotz Elkos, Kerkos und Lipo. Das liegt schlicht und einfach am starren Drehfehld. Das ist ganz normal, dass die BEMF ziemlich besch*** aussieht. Aber trotz so schlechter BEMF schaltet der Motor problemlos in den geregelten Betrieb, sofern alle Parameter stimmen und die Software so funktioniert wie sie soll. Ich habe es am Anfang so gemacht, dass ich den Motor im starren Drehfeld auf eine möglichst hohe Drehzahl gebracht habe. Sobald die erreicht wurde, wurden alle 3 Phasen abgeschaltet, ein paar Millisekunden gewartet, und erst dann wurde der Komparator aktiviert. Während der Motor ohne Spannung noch am drehen ist entsteht nämlich eine ziemlich schöne BEMF. Mit dieser BEMF funktioniert dann auch der Komparator so wie er soll. Und im Komparator-Interrupt werden dann alle Phasen nacheinander wieder eingeschaltet, danach läuft der Motor vollständig im geregelten Betrieb. Das Schwierige dabei ist, dass man fast nicht kontrollieren kann ob die Software richtig funktioniert (Timing). Man muss es halt beim Übergang vom Leerlauf in den geregelten Betrieb so gut es geht am Oszi beobachten und versuchen herauszufinden, was die Software falsch macht. Der Anlauf selbst und der Übergang in den geregelten Betrieb hat es echt in sich. Ich musste ständig von Hand etwas nachhelfen oder den Motor etwas belasten. Du kannst auch versuchen die Zwangskommutierung komplett wegzulassen und direkt aus dem Stillstand im geregelten Betrieb anfahren. Dann einfach von Hand einen starken Drall verpassen, und der Motor müsste laufen. Funktioniert bei mir ziemlich gut. Ich wünsche dir viel Glück beim Probieren :-D mfg
So, ich hab mal am neuen Layout gearbeitet. Ist glaub ich ganz gut geworden :-) Die Platine ist 26x40mm klein. Du siehst also, auch inkl. Mosfet-Treiber und sogar mit Optokoppler fürs PPM bringt man den Regler ganz kompakt hin. Die stromführenden Leiterbahnen habe ich noch etwas verbreitern können. Die schmalsten Stellen (unter den unteren Mosfets, weil das Gate-Beinchen im Weg ist) sind zwar immernoch nur ca. 2,6mm, ansonsten sind die Bahnen aber immer ca. 5mm breit. Mit 70um Kupfer dürfte schon ein etwas grösserer Motor damit betrieben werden denk ich mal. Ansonsten muss man halt mit Kupferschienen noch nachstärken... Übrigens habe ich bei einem gekauften Regler noch gesehen, warum da ein ruckartiges Abbremsen nicht zu Überspannung führt: Der Regler scheint wohl eine Art Rampe einprogrammiert zu haben, so kann man gar nicht ruckartig die Drehzahl ändern... :-) Den Shunt für die Strommessung hab ich wieder eingebaut, den kann man ja dann ganz einfach mit einem Stück Draht überbrücken wenn man den nicht braucht. Wenn du noch Fehler entdeckst auf der Platine, bitte melden :-) mfg EDIT: Sorry für die doch noch relativ grossen Bilder. Ich hab sie auf unter 800x600 gestutzt, sind im PNG-Format und trotzdem noch so gross? ich versteh nicht was ich falsch mache...:-(
Urban B. schrieb: > So, ich hab mal am neuen Layout gearbeitet. Ist glaub ich ganz gut > geworden :-) > sieht auf jeden Fall gut aus. Eagle3D und POVRay? > Die Platine ist 26x40mm klein. Du siehst also, auch inkl. Mosfet-Treiber > und sogar mit Optokoppler fürs PPM bringt man den Regler ganz kompakt > hin. habe ich nie bezweifelt. Wie gesagt zählt für mich mehr der Lerneffekt als das Ergebnis, weswegen ich lieber diskrete Treiber baue. > Die stromführenden Leiterbahnen habe ich noch etwas verbreitern können. > Die schmalsten Stellen (unter den unteren Mosfets, weil das > Gate-Beinchen im Weg ist) sind zwar immernoch nur ca. 2,6mm, ansonsten > sind die Bahnen aber immer ca. 5mm breit. Mit 70um Kupfer dürfte schon > ein etwas grösserer Motor damit betrieben werden denk ich mal. Ansonsten > muss man halt mit Kupferschienen noch nachstärken... > > Übrigens habe ich bei einem gekauften Regler noch gesehen, warum da ein > ruckartiges Abbremsen nicht zu Überspannung führt: Der Regler scheint > wohl eine Art Rampe einprogrammiert zu haben, so kann man gar nicht > ruckartig die Drehzahl ändern... :-) Interessant. Hast du die Rampe mit dem Oszi gesehen? > > Wenn du noch Fehler entdeckst auf der Platine, bitte melden :-) > Ne, das würde man wohl eher auf dem Schaltplan sehen, als in der 3D-Grafik. Ich warte immer noch auf meinen Akku. Ich habe gestern nochmal einen kleinen Test mit größerem Elko gemacht, das bringt aber nix. Die Spannung knickt unter Last so ein, dass die Phasen-Spg. gar nicht über den Zero-Cross Schwellwert kommt, außer mit den Störungs-Peeks. So hat das momentan keinen Sinn. Der LiPo kommt aber noch die Woche. Ich melde mich dann wieder. > mfg > > EDIT: Sorry für die doch noch relativ grossen Bilder. Ich hab sie auf > unter 800x600 gestutzt, sind im PNG-Format und trotzdem noch so gross? > ich versteh nicht was ich falsch mache...:-( Mit GIMP werden die Bilder bei mir auch nur 2K kleiner. Das liegt an den vielen unterschiedlichen Farben und Farbverläufen im Rendering. So hat das Bild ähnliche Eigenschaften wie ein Foto. PNG komprimiert gut einfarbige Flächen. Bei dem Bild bist du mit JPG besser dran. Natürlich ist JPG verlustbehaftet im Gegensatz zu PNG.
Sheldon Cooper schrieb: > sieht auf jeden Fall gut aus. Eagle3D und POVRay? Jup, Eagle3D und POVRay. Hat zwar viel Arbeit gegeben (bin noch nicht so vertraut mit dem Zeug), aber es hat sich gelohnt wie ich finde. Sieht einfach geil aus :-) > habe ich nie bezweifelt. Wie gesagt zählt für mich mehr der Lerneffekt > als das Ergebnis, weswegen ich lieber diskrete Treiber baue. Ja das kann ich verstehen. > Interessant. Hast du die Rampe mit dem Oszi gesehen? Nein, ich habe ein Servotester an den Regler angeschlossen und das Poti so schnell es ging, gedreht. Dabei ist mir einfach aufgefallen, dass der Motor ein bisschen träge reagiert, aber dennoch sehr zügig die Drehzahl ändert. Wobei, da fällt mir ein: Theoretisch könnte die Verzögerung auch vom Servotester (Marke Eigenbau) stammen. Muss da mal nachschauen ob der ADC die Potistellung eventuell mit einer ziemlich niedrigen Frequenz abtastet. Kann ich mir aber irgendwie nicht vorstellen... > Ich warte immer noch auf meinen Akku. > Ich habe gestern nochmal einen kleinen Test mit größerem Elko gemacht, > das bringt aber nix. Die Spannung knickt unter Last so ein, dass die > Phasen-Spg. gar nicht über den Zero-Cross Schwellwert kommt, außer mit > den Störungs-Peeks. So hat das momentan keinen Sinn. > Der LiPo kommt aber noch die Woche. Ich melde mich dann wieder. Okay, aber du hast meinen letzten Beitrag schon gesehen oder? Vorallem der Hinweis, nach der Zwangskommutierung die Phasen komplett auszuschalten. Du musst ja eh mit PWM arbeiten, dazu reichte mein 3A Netzgerät vollkommen aus (2A reichen auch). Spätestens wenn du den LiPo anschliesst, wirds ohne PWM ziemlich ungemütlich ;-) Ich würd mich bei den ersten "Gehversuchen" gar nicht getrauen einen LiPo anzuschliessen, das könnte bei einem Softwarefehler böse enden (z.B. wenn mal die PWM ausschalt im High Zustand). > Mit GIMP werden die Bilder bei mir auch nur 2K kleiner. > Das liegt an den vielen unterschiedlichen Farben und Farbverläufen im > Rendering. So hat das Bild ähnliche Eigenschaften wie ein Foto. PNG > komprimiert gut einfarbige Flächen. Bei dem Bild bist du mit JPG besser > dran. Natürlich ist JPG verlustbehaftet im Gegensatz zu PNG. OK dann bin ich doch nicht so blöd, dass ich die PNGs nicht kleiner kriege. Hab jetzt mal JPG probiert, sind dann noch etwa halb so gross. Aber jetzt sind die Bilder schon hochgeladen... ;-)
Urban B. schrieb: >> Ich warte immer noch auf meinen Akku. >> Ich habe gestern nochmal einen kleinen Test mit größerem Elko gemacht, >> das bringt aber nix. Die Spannung knickt unter Last so ein, dass die >> Phasen-Spg. gar nicht über den Zero-Cross Schwellwert kommt, außer mit >> den Störungs-Peeks. So hat das momentan keinen Sinn. >> Der LiPo kommt aber noch die Woche. Ich melde mich dann wieder. > Okay, aber du hast meinen letzten Beitrag schon gesehen oder? Vorallem > der Hinweis, nach der Zwangskommutierung die Phasen komplett > auszuschalten. Du musst ja eh mit PWM arbeiten, dazu reichte mein 3A > Netzgerät vollkommen aus (2A reichen auch). Spätestens wenn du den LiPo > anschliesst, wirds ohne PWM ziemlich ungemütlich ;-) > Ich würd mich bei den ersten "Gehversuchen" gar nicht getrauen einen > LiPo anzuschliessen, das könnte bei einem Softwarefehler böse enden > (z.B. wenn mal die PWM ausschalt im High Zustand). > Ja, habe ich schon gesehen. Ich habe aber, wie du mal empfohlen hast, mittlerweile auf den Sternpunkt verzichtet und versuche das Zero-Crossing direkt an der Phase zu messen. D.h. mit einem Spannungsteiler natürlich. So ist das übrigens auch im AVR444 gelöst. Da die Phase aber nicht mal über VCC/2 drüber kommt unter Last, geht das nicht. Die reine BEMF wenn die Phasen aus sind, bewegt sich nur im mV Bereich, also weiß ich nicht wie ich das als Referenz nutzen soll. Da ich gerade kein echte Messung da habe, habe ich das Problem mal mit GIMP skizziert. Vielleicht habe ich ja noch einen Denkfehler, also bitte erleuchte mich.
Hier noch eine kleine Prinzip-Schaltung wie ich den Comparator beschalte.
Sheldon Cooper schrieb: > Ja, habe ich schon gesehen. Ich habe aber, wie du mal empfohlen hast, > mittlerweile auf den Sternpunkt verzichtet und versuche das > Zero-Crossing direkt an der Phase zu messen. D.h. mit einem > Spannungsteiler natürlich. So ist das übrigens auch im AVR444 gelöst. Uups, da haben wir aneinander vorbeigeredet. In diesem Beitrag Beitrag "Re: Wie Drain durchkontaktieren für MOSFET Halbbrücke" hast du ja geschrieben > Gemessen habe ich an dem Spannungsteiler für den virtuellen Sternpunkt Ich habe das wohl falsch verstanden. Ich dachte, die Messung mit dem Oszilloskop ist auf den Sternpunkt bezogen...jetzt im Nachhinein denke ich mal, ich habe das falsch verstanden?! ;-) Die BEMF-Schaltung habe ich auch exakt so aufgebaut wie in der BLCtrl-2.0. > Da die Phase aber nicht mal über VCC/2 drüber kommt unter Last, geht das > nicht. Die BEMF muss auch nicht über VCC/2 kommen, nicht mal annähernd. Auf meinem geposteten Oszi-Bild sieht man, dass sich die Sternpunktspannung immer im Bereich ca. 1,2V bis 2V befindet. Und die 3 BEMF-Signale liegen im Bereich 0,5V bis 3V. Die Speisespannung war ca. 15V! Dein Prinzip-Schema macht irgendwie ja nicht viel Sinn, da wird ja die Sternpunktspannung gar nicht berücksichtigt. Aber ist jetzt natürlich schade dass ich ich damals falsch verstanden habe, das hätte nicht sein müssen... Sorry :-) Aber welche Variante der Nulldurchgangs-Detektion willst du nun zuerst ausprobieren? Analog Komparator + Multiplexer + Interrupt oder nur mit dem ADC? Meine nächsten Schritte wären sicher mal diese: - BEMF-Schaltung exakt gleich aufbauen, wie bei der BLCtrl-2.0 - PWM auf ca. 20 - 30% fest einstellen - Mindestens 10V Versorgungsspannung (keine Strombegrenzung, so dass die Spannung zusammenbricht!) - Mit Zwangskommutierung auf eine möglichst hohe Drehzahl beschleunigen - Ev. PWM Duty Cycle noch leicht anpassen und ev. von Hand nachhelfen beim Startvorgang - Alle Phasen auf einen Schlag abschalten, und gleichzeitig das Oszi triggern um den Übergang in den Leerlauf beobachten zu können. Wie schon erwähnt: Ganz wichtig! Die BEMF lässt sich während der Zwangskommutierung nicht gescheit interpretieren! Dazu muss der Motor entweder im Leerlauf, oder im geregelten Betrieb drehen.
Hallo, guten Nachrichten: Der Motor läuft nun im geregelten Betrieb. Yipee! Habe wie du gesagt hast nochmal den Sternpunkt wie bei BLCTRL2.0 aufgebaut und meinen Comparator Code daran angepasst. Einmal den Motor testweise mit der Hand angedreht, und plötzlich lief das Ding. Voll der Hammer. Es geht sogar sehr einfach anzuwerfen, muss man gar besonders schnell machen. Und das obwohl die Spannung immer noch auf 6V einknickt. Hätte nicht gedacht, dass der Code auf Anhieb funktioniert. Also das ganze läuft noch nicht ganz rund, weil es noch Fehlkommutierung wegen Störungen gibt, aber jetzt bin ich auf dem richtigen Weg. Danke nochmal für deine Tipps!
> guten Nachrichten: Der Motor läuft nun im geregelten Betrieb. Yipee! Aahh wunderbar, das ist doch mal eine gute Nachricht :-) Als es bei mir so weit war, war ich auch ganz erstaunt dass die Software überhaupt funktioniert xD > Also das ganze läuft noch nicht ganz rund, weil es noch Fehlkommutierung > wegen Störungen gibt, aber jetzt bin ich auf dem richtigen Weg. Das kann übrigens daran liegen, dass das Timing etwas falsch ist. Hatte ich anfangs auch, ein _delay_us(20) im Komparator-Interrupt (vor der Kommutierung) hat das Problem vorübergehend gelöst. Das ist aber nur vorübergehend drin, später soll der Kommutierungszeitpunkt ja berechnet werden und auch anpassbar sein. > Danke nochmal für deine Tipps! Kein Problem, macht man doch gerne :-) mfg P.S. Wenn du einen Anlaufalgorithmus findest, der so gut ist wie bei den gekauften Reglern wäre ich sehr interessiert daran =) Da muss ich auf jeden Fall noch viel Zeit investieren und die gekauften Regler untersuchen, wie die das genau machen...
Urban B. schrieb: > Mal schauen, vielleicht kann ich das nach den > Semesterprüfungen mal in Angriff nehmen. So, habe nun mal einen Artikel geschrieben: Brushless-Controller für Modellbaumotoren Ist noch ganz frisch, ist noch viel Verbesserungspotential da. Vielleicht kannst du ja auch noch deine Erfahrung da mit einbringen :-) mfg Urban
Hast du schön gemacht. Ich werde den Artikel bei Gelegenheit mal ergänzen um meine Erfahrungen. Ich habe bei mir ein Problem mit den ADC Eingängen festgestellt, ging eigentlich nur noch einer richtig. Da habe ich wohl mal was zerstört. Der µC ist auch schon etwas älter und hat schon viele Experimente mitgemacht. Ich habe jetzt neue bestellt. In der Zwischenzeit habe ich aber ein anständiges und doch einfaches Binärprotokoll für die Kommunikation entwickelt. (Hatte das Ding voher mit ein paar Text Kommandos mittels minicom gesteuert) Damit kann ich jetzt Parameter lesen/schreiben und Events aus dem Ctrl senden. Mittels ADC bin so in der Lage, alle 3 Phasen wie mit einem DSO zu messsen und zu visualisieren. Hat den Vorteil, das ich wirklich das sehe was auch der µC sieht. In dem Screenshot siehst du noch einen Prototyp mit Fake-Daten aber so ähnlich wird mal mein Config-Tool ausschauen.
Wow, coole Idee wenn das funktioniert! Kriegt ein AVR mit 16MHz das locker hin? Wie viele Samples erwartest du pro Zustand (1 Zustand = Zeitdauer, die eine Phase in der Luft hängt um die BEMF zu messen)? Und die Mittelpunktspannung legst du nun auch auf einen ADC-Eingang, und nicht auf den Komparator oder? Ich habe mittlerweile die Platinen für meine neuen Regler beim Platinensammler bestellt. Dauert halt noch ein Weilchen bis die kommen. Hmm aber da ist dann die Mittelpunktspannung nur auf den Komparator verdrahtet, schade, dann kann ich die ADC-Version nicht testen damit....Muss ich mal probieren ob ich bei den alten Reglerplatinen die Leiterbahnen "umverdrahten" kann :-) Ach ja, mit was programmierst du deine Software vom Screenshot?
Urban B. schrieb: > Wow, coole Idee wenn das funktioniert! > > Kriegt ein AVR mit 16MHz das locker hin? Wie viele Samples erwartest du > pro Zustand (1 Zustand = Zeitdauer, die eine Phase in der Luft hängt um > die BEMF zu messen)? Mit einem Kanal ging das sehr gut, und ich habe auch schon schön die Schwingung gesehen, wenn ich den Motor mit der Hand drehe. Hab den ADC im Free Running mode betrieben. Dann kam leider das Problem mit dem µC. > > Und die Mittelpunktspannung legst du nun auch auf einen ADC-Eingang, und > nicht auf den Komparator oder? Wenn ich die Phasen-Spg schnell genug messen kann, könnte ich das in Software berechnen und benötige gar keinen Mittelpunkt. Ich bin mir aber noch nicht sicher ob das Multiplexen von drei Channels anständig funktioniert. Ich teste gerade mit einem Atmega8 (vorher hatte ich Atmega168). Bei dem Atmega8 stimmt momentan aber der UART Takt nicht, ich weiß noch nicht warum. Eigentlich sollte der gleich funktionieren, nur die Register heißen ein bißchen anders. Ich habe ein UBRR von 51 eingestellt für 9600 Baud bei 8MHz Takt. Beim 168er ging das. Der UART Takt liegt aber nicht nur ein bißchen daneben, sondern ca. Faktor 30. Verstehe ich gerade nicht. > > Ich habe mittlerweile die Platinen für meine neuen Regler beim > Platinensammler bestellt. Dauert halt noch ein Weilchen bis die kommen. > Hmm aber da ist dann die Mittelpunktspannung nur auf den Komparator > verdrahtet, schade, dann kann ich die ADC-Version nicht testen > damit....Muss ich mal probieren ob ich bei den alten Reglerplatinen die > Leiterbahnen "umverdrahten" kann :-) > > Ach ja, mit was programmierst du deine Software vom Screenshot? Mit C++/Qt. Qt ist einfach nur genial. Da fange ich bistimmt nicht mit JAVA oder .Net an. Außerdem arbeite ich auf Linux, da fällt letzters sowieso weg. Als IDE verwende ich KDevelop4, QtCreator und vim, je nach Lust und Laune. Das schöne an dem Protokoll - ich nenne es SimpleProt - ist, dass der µC selber eine Liste seiner Parameter mit Namen und Datentyp liefert. Die GUI zeigt diese dann einfach im Parameter Window an und man kann diese lesen und schreiben. Fügt man neue Parameter im µC hinzu passt sich GUI also autom. an. Das Protokoll bietet momentan folgende Services: GetStatus: Liefert Device-Status und Protokoll Version Browse: Parameter-Liste auslesen ReadParamByte: selbsterklärend denke ich WriteParamByte: dito ReadParamWord: dito WriteParamWrite: dito BLDCStop: mein Not-Halt sozusagen, schaltet die Endstude und die Timer aus BLDCStart: Startet den geregelten Betrieb DSOStart: Startet die DSO Aufzeichnung DSOStop: Stoppt die DSO Auzeichnung ResetEvent: Sended die µC nach dem Reset NewSamplesEvent: Sendet neue DSO Daten Natürlich kann man weitere Services hinzufügen, aber für neue Parameter muss am Protokoll nix geändert werden. Es ändert sich nur der Adressraum der Parameter. Zu Parameterierung braucht man als Client nur Browse, ReadParam* und WriteParam*. Ich werde das mal auf Guthub pushen wenn's fertig ist.
>> Und die Mittelpunktspannung legst du nun auch auf einen ADC-Eingang, und >> nicht auf den Komparator oder? > Wenn ich die Phasen-Spg schnell genug messen kann, könnte ich das in > Software berechnen und benötige gar keinen Mittelpunkt. > Ich bin mir aber noch nicht sicher ob das Multiplexen von drei Channels > anständig funktioniert. Ja OK macht Sinn. Allerdings hast du dann halt nur noch ein Drittel der Samplingrate (auf einen Kanal bezogen). Aber wenn das immernoch genügt ist das ja kein Problem. Der uC sollte aber halt schon nicht gerade voll ausgelastet sein weil es sonst ev. Engpässe geben könnte wenn plötzlich noch mit dem uC kommuniziert wird über eine Schnittstelle. Also dass die Abtastfrequenz plötzlich ins Stocken gerät, das wär nicht so schön. Man müsste vielleicht mal schauen welche maximalen Drehzahlen diese Motoren so erreichen können, dann kann man ausrechnen wie hoch die Samplerate etwa sein sollte. Weisst du wie das mit den Polpaarzahlen aussieht bei den BL-Motoren? Ich glaube die ist ja normalerweise nicht angegeben wenn man einen Motor kauft. Sind da vielleicht immer etwa gleichviele drin? Wenn ich 6 Polpaare habe, entspricht dann eine mechanische Umdrehung ja 6 elektrischen Umdrehungen, also 6*6=36 Kommutierungen wenn ich das richtig verstanden habe (?). > Ich teste gerade mit einem Atmega8 (vorher hatte ich Atmega168). Bei dem > Atmega8 stimmt momentan aber der UART Takt nicht, ich weiß noch nicht > warum. Eigentlich sollte der gleich funktionieren, nur die Register > heißen ein bißchen anders. Ich habe ein UBRR von 51 eingestellt für 9600 > Baud bei 8MHz Takt. Beim 168er ging das. > Der UART Takt liegt aber nicht nur ein bißchen daneben, sondern ca. > Faktor 30. Verstehe ich gerade nicht. Hmm aber ansonsten läuft der uC mit der richtigen Geschwindigkeit? Also wenn du eine LED blinken lässt mit 500 ms Pause, blinkt die dann auch auch mit dieser Frequenz? >> Ach ja, mit was programmierst du deine Software vom Screenshot? > Mit C++/Qt. Qt ist einfach nur genial. Da fange ich bistimmt nicht mit > JAVA oder .Net an. Außerdem arbeite ich auf Linux, da fällt letzters > sowieso weg. > Als IDE verwende ich KDevelop4, QtCreator und vim, je nach Lust und > Laune. Ich arbeite auch mit Linux, vielleicht werde ich mir diese IDE mal anschauen. Schade nur, dass sie wohl für KDE gedacht ist, ich arbeite mit Gnome. Aber mittlerweile ist das ja auch kein grosses Problem mehr... > Das schöne an dem Protokoll - ich nenne es SimpleProt - ist, dass der µC > selber eine Liste seiner Parameter mit Namen und Datentyp liefert. Die > GUI zeigt diese dann einfach im Parameter Window an und man kann diese > lesen und schreiben. Fügt man neue Parameter im µC hinzu passt sich GUI > also autom. an. Das ist eine gute Idee, darauf bin ich noch gar nicht gekommen :-) Finde es auch mühsam das Protokoll immer an zwei Stellen anzupassen.
Urban B. schrieb: > Hmm aber ansonsten läuft der uC mit der richtigen Geschwindigkeit? Also > wenn du eine LED blinken lässt mit 500 ms Pause, blinkt die dann auch > auch mit dieser Frequenz? Ich habe mal ein Pin getoggelt, das ging zwar nicht mit 8MHz aber das kann man auch nicht erwarten. Sind ja doch ein paar Instructions. Wir aber die richtige Größenordnung im µs Bereich. Der 168er hatte ein CLKOUT Pin, wo man das bequem messen kann, der 8er leider nicht. Das mit dem delay ist eine gute Idee. Werde ich heute abend mal testen. > > > Ich arbeite auch mit Linux, vielleicht werde ich mir diese IDE mal > anschauen. Schade nur, dass sie wohl für KDE gedacht ist, ich arbeite > mit Gnome. Aber mittlerweile ist das ja auch kein grosses Problem > mehr... Ja, das sollte gehen. Für QtCreator brauchst du nur Qt. Für KDevelop ziehst du dir natürlich einige KDE-Libs rein die du vielleicht nicht haben willst.
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.