nur mal so zum überlegen.
wenn doch jetzt am Code gearbeitet wird, wäre es nicht sinnvoll auf einen Prozessor zu wechseln mit 3,3V Versorgung, dann wäre auch eine Zelle ausreichend und die ganze Levelshifter Geschichte fällt weg.
Druckbare Version
nur mal so zum überlegen.
wenn doch jetzt am Code gearbeitet wird, wäre es nicht sinnvoll auf einen Prozessor zu wechseln mit 3,3V Versorgung, dann wäre auch eine Zelle ausreichend und die ganze Levelshifter Geschichte fällt weg.
Gute Idee. Welcher Prozessor käme denn in Frage?
Natürlich ein Atmel, das Rad soll ja nicht komplett neu erfunden werden.
Ein Mega kommt bei 3,3 V nicht sicher über 8 MHz raus (bitte nicht wieder die Diskussion anfangen, dass schon vereinzelt Atmels gesehen wurden, die bei 3,3 V mit 16 MHz liefen... den Gegenbeweis habe ich mit meinem Shorty angetreten. Er lief, bis irgendwas Unvorhergesehenes passierte, dann hat er sich aufgehängt. Nach Umbau auf 5 V keine derartigen Probleme mehr).
Also ein XMega?
Die kommen mit minimal 44 Hufen daher, wenn ich nicht irre, sind damit dann im TQFP Gehäuse 10x10 mm groß (gegenüber unserem jetzigen 328p, der mit 32 Pins 7x7 mm groß ist).
Es gibt einen XMega mit 44 Hufen im QFN Gehäuse (das ist das Gleiche wie beim MPU-60x0), das ist dann wieder nur 7x7 mm groß und die Beinchen außenrum fallen weg -> Platzgewinn. Das wäre der ATxmega32A4U, 32k Flash, 4k RAM, also das Pendant zum 328p. Willas Code läuft darin sicher, viel Platz für Erweiterungen ist allerdings nicht.
Die nächste Stufe bei den XMegas ist dann schon ein 64pinner, der im QFN Gehäuse 9x9 mm groß ist.
Allen gemeinsam ist der MAximale Takt von 32 MHz bei 1,8 .. 3,6 V Betriebsspannung.
Apropos 32 MHz Clock... der wird intern erzeugt. Extern kann maximal ein 16 MHz Quarz angeflanscht werden.
Mhmm, das klingt ja alles viel zu gut um wahr zu sein...
Hi William, was meinst du? Lust auf Experimente? :-)
Hallo,
zunächst einmal muss ich sagen, dass ich die Idee mit dem MPU 6050 auf dem Bolt sehr gut finde. :D Ich selbst hatte schonmal überlegt, aber es dann doch beiseite gelegt, weils ja so auch funktioniert. Nur wegen 2Fets und 4 Widerständen den µC tauschen halte ich für eine etwas oversizede Aktion. Ich glaube, der Mehraufwand, Willas Programm von einem ATmega auf einen ATxmega zu portieren, lohnt nicht. Ich habe zwar noch nie mit einem xmega gearbeitet, aber es gibt sicherlich ein paar Hürden... Grundsätzlich wäre ich bereit, sofern erwünscht, einen Beitrag zu diesem Projekt beizutragen. Bspw. könnte ich die ersten Platinen ätzen, um nicht Gefahr zu laufen, eine fehlerbehaftete Platine professionell fertigen zu lassen.
Gruß
Chris
Hi Chris,
ich habe inzwischen einige Erfahrung im Design von MPU-60x0-behafteten Platinen, weswegen ich mir ein Urteil über die zweckmäßigkeit solch einer Änderung zutraue ;-)
Wenn du dir mal die Platinen der sNQs daraufhin anschaust, wirst du sehen, dass "nur diese 4 Rs und 2 FETs" einen ziemlichen Platz verbrauchen, zumindest, wenn man einseitig entflechtet.
Nimmt man dann noch die Einsparung des StepUp-Reglers dazu (mit dem XMega wird nur noch der 3,3 V Regler benötigt) und den entfallenden Quarz mit seinen beiden Kondensatoren, dann kommt einiges an Platzersparnis zustande.
Ob große Änderungen am Programm notwendig sind, kann ich jetzt noch nicht abschätzen, aber die Hardware wird dann SEHR übersichtlich.
Nur noch die CPU und der MPU, der 3,3 V Regeler, ein paar Kondensatoren und Widerstände... :) und Stecker, Stecker, Stecker.
Ich kann mir vorstellen (ohne es jetzt schon belegen zu können), dass der XMega genügend Power hat, um störungsfrei im Chip die PPM-Impulse für alle Motoren zu erzeugen. Ausreichend PWM-Ausgänge mit einstellbarer Totzeit hat er jedenfalls. Damit entfallen am Bolt sechs Konverter - vielleicht auch ein Argument.
Also ich würde einen Versuch in dieser Richtung starten, wenn Willa mitmacht. Nochmal in Vorlage treten und ein Design aus dem Hut zaubern, das keiner haben will, reizt mich nicht so arg ;-)
Für den nächsten sNQ kann ich mir das übrigens ebenfalls gut vorstellen :)
Und dein Angebot der Prototypenfertigung würde ich natürlich mit Handkuss annehmen, wenn es um die rechteckige Version für den Bolt (oder jeden anderen Copter) geht. Nicht so sehr wegen "fehlerbehaftet", da habe ich eigentlich keine Ängste und der bisherige Erfolg gibt mir Recht ;-) aber ich denke, das geht zumindest preiswerter und ggf. sogar schneller als über MME.
Die nächste Generation sNQ wird aber wohl besser wieder professionell gefertigt werden, oder trete ich dir da zu nahe?
Wenn du eine CNC-Fräse dein Eigen nennst, könnte auch das klappen...
Hallo,
ich wollte dich damit auch nicht in irgendeiner Form kritisieren o.ä. Ich wollte lediglich ausdrücken, dass man den Software-Aufwand, den diese Änderung mitsich bringen würde, nicht unterschätzen sollte (aber vielleicht überschätze ich ihn auch nur...). Soweit ich das bis jetzt in diversen Diskussionen mitbekommen habe, sollen doch einige Unterschiede zwischen den Mega und den XMega Chips vorhanden sein. Konkret belegen kann ich das aber nicht, dafür fehlt mir auch die praktische Erfahrung mit den XMegas.
Sieh bitte meine Antwort nicht als Kritik, sondern nur als Hinweis, damit nichts übersehen wird.
Dass der XMega die PWM selbst erzeugen kann, daran zweifle ich kein bisschen! Als ich meinen ersten Quadrocopter gebaut habe, erzeugte der darauf befindliche Mega328P (@16MHz) die PWM auch selbst. Alle 4 Kanäle wurden von 2 Hardware PWM Kanälen erzeugt und er flog (für meine damaligen Flug & Programmierkünste) erstaunlich gut.
Gruß
Chris
Hallo Chris,
nö, keine Bange, das habe ich nicht als Kritik aufgefasst. Bisher habe ich erst ein einziges Mal hier im Forum geglaubt, mich "wehren" zu müssen, und da habe ich dann alle Smileys weg gelassen :-).
Wenn ich also ein Posting von mir gebe, in dem keine Smileys zu sehen sind, dann müsst ihr euch ducken, vorher nicht.
Und was den Code bzw. seine Änderung angeht, bin ich sehr zuversichtlich. Die Mathe zur Regelung wird sich nicht unterscheiden, und die möglicherweise unterschiedliche Ansteuerung von Ports oder der Timer haben wir für den sNQ auch schon mal hinter uns gebracht.
Die Software von Willa ist in dieser Hinsicht (äußere Beschaltung des Chip) sehr übersichtlich und änderungsfreundlich, der Rest ist modular aufgebaut. Also ich denke, das ist machbar.
Bascom unterstützt doch die XMegas ... ja, macht er :-)
Ok, das klingt gut :D
Wenn du so zuversichtlich bist, dann kann ja dem Ganzen nichts mehr im Wege stehen. Ich hoffe, du / ihr kommt schnell zu einem brauchbaren Ergebnis. Dann aber bitte mit Feedback ;)
Mit welchem Programmer werden den die XMegas vorwiegend programmiert? Mit dem mkII?
Gruß
Chris
Hi,
zunächst einmal wollte ich dich fragen, ob du noch einen MPU über hast? Wenn ja, hätte ich Interesse. :)
Meine Platinen werden geätzt, min. Breite der Bahnen ist 0.05mm (lieber wäre mir aber > 0.1mm). Doppelseitig kann ich leider nicht bieten, und eine CNC habe ich auch nicht, dafür hat bei mir bis jetzt noch jede Platine funktioniert.
Stopplack habe ich auch nicht, aber ich entferne nach dem Ätzen nur an den Stellen den UV-positiv Lack, an denen später gelötet werden soll. Somit wird ein passivieren der Platine verhindert ;)
Als Professionell würde ich das auch nicht bezeichnen, aber auf jeden Fall schnell, günstig und funktionell ;)
Wenn du mein Angebot annimmst, könnte ich dir die Platine innerhalb 1-2 Werktagen fertigstellen und versenden.
Gruß
Chris
Hi Chris,
ich habe zum Progammieren bisher einen mySmartUSB light verwendet. Ich hoffe, der spricht auch über den ISP-Port mit dem XMega... Pufff!! Zerplatzt :( ... der XMega wird lt. technischer Unterlagen auf der Hersteller HP leider nicht unterstützt...
Mhmm... und die mitgelieferte Software? Was kann die? AHAA! Zumindest das ProgTool, das beim meinem "light" dabei ist, bietet den XMega64 als Hardwareauswahl an. Denken wir also mal penetrant positiv und nehmen an, dass das doch geht.
So, jetzt dein Ätzangebot...
WOW! MME bietet "gerade mal" 0,2 mm als Abstand und Leiterbreite an und dünner gehe ich traditionell auch nicht.
Ist der Lack nach dem Ätzen auch hitzeresistent und stößt Lötzinn ab?
Das ist meiner Meinung nach für das Handlöten von QFN-Gehäusen mit 0,5 mm Pitch unabdingbar.
Für einen sNQ würde ich, wie gesagt, dann wohl doch lieber wieder zu MME gehen, aber die rechteckigen Platinen für Bolt und Co... gerne :)
Was den MPU angeht würde ich dich bitten mir mal eine PM (Adr. siehe meine HP) zu schicken, ich möchte das Thema hier nicht breit treten. Nur soviel: Der Preis wird sehr fair sein.
Und dann sollte sich Willa mal äußern. Den hätte ich gerne im Boot, wenn ich das mal so sagen darf :-)
Hallo,
ja, das ist leider ein sehr großer Nachteil der XMega, dass diese nicht mit jedem Programmer beschreibbar sind... Da ich selbst auch nur einen USB-ISP Bascom Programmer besitze, werde ich mir jetzt einen neuen kaufen. Ich pendele mich zwischen zwei verschiedenen ein:
Diamex All-AVR (27€) oder AVRISP mk2 (39€)
Mal sehen, welchen ich nehme. Mit deinem Post hast du mich dazu inspiriert, einmal etwas mit einem XMega zu machen. Die Daten sprechen einfach für sie ;)
Zum Lack:
Also solange man nicht ewig darauf herumbrutzelt, bleibt er auch einigermaßen auf der Platine. Ab und zu passiert es mir, dass ein kleiner Tropfen Lötzinn auf die Platine fällt. Das ist, wie wenn Lötzinn auf meinen Basteltisch kommt -- einmal kurz seitlich drangestoßen und es fliegt weg -- ergo: eine gewisse "Lötzinnabstoßung" ist vorhanden, allerdings nicht vergleichbar mit einem richtigen Lötstopplack.
Zum Löten:
Da ich noch nie QFN gelötet habe, ist das hier nur eine waghalsige Vermutung, aber: Beim TQFP Löten bringe ich auf alle Beinchen viel Lötzinn auf, anschließend entferne ich es wieder mit Entlötlitze. Ergebnis: PERFEKTE Kontakte!
Ich könnte mir vorstellen, dass das beim QFN Löten nicht sehr viel anders ist.
Solltest du Interesse haben, ich würde dir die Platine(n) gegen den reinen Materialwert schicken. Da ich dir eine PN sende bzgl. dem MPU könnten wir das dann ja dort klären?!
Gruß
Chris
Ich denke wir kommen ins "Geschäft" :-)
Wie ein QFN-Gehäuse aussieht weißt du?
Da gibt es keine Beinchen, die man mit Entlötlitze wieder von überflüssigem Lot befreien könnte. Der eigentliche Pin sitzt unterhalb des Gehäuses und schaut zum Glück noch einen halben Millimeter um die Ecke.. Unterseite und Seite sind eben, d.H. der Pin steht nicht über. Man kann dann von der Seite den Pin mit Lot benetzen und hoffen, dass das Lot per Kapillareffekt unter das Gehäuse gezogen wird und gut kontaktiert.
Soweit die Lötkolben-Methode, die ich beim MPU-60x0 jetzt dreimal mit positivem Ergebnis angewandt habe.
Ich denke, ohne eine vorherige gute Verzinnung der Leiterbahnen ist dieses Unterfangen aussichtslos...
Gut, ich habe dir soeben eine Mail geschrieben ;)
Ja, weiß ich. Ich dachte, da die Pins ja an der Seite des Gehäuses sichtbar sind, sollte man hier auch ansetzen können und somit zwar nicht direkt unter, aber "neben" dem Chip löten können. Dadurch wird sicherlich auch etwas Lötzinn unter das Gehäuse fließen. Notfalls könnte man ja einfach auch alle Pins verzinnen und anschließend den MPU mithilfe des Heißluftföns "einlöten". Ich habe schon sehr oft versch. Megas im TQFP Gehäuse mithilfe des Heißluftföns ent- und verlötet... Auch den gleichen Chip teilweise mehrmals, ohne Probleme.
Gruß
Chris
meine methode um den MPU zu verlöten sieht wie folgt aus...
ich geben aber die einzelnen lötstellen auf der platine lötzin auf. legen dann den MPU auf seine position und richte diesen aus. die platine habe ich vorher auf eine ca 1,5mm dicken metalplatte gelegt die ich nun von unten mit einem heißluftfön erhitze. nach einer zeit sieht man wie das lötzin flüssig wird und sich mit dem MPU verbindet. als indukator für genug hitze kann man auch an einem nebenstehenden freien lötpad noch ein bisl lötzin aufgeben.
wenn das gemacht wurde heißluftfön aus und abkühlen lassen. noch auf kurzschlüsse prüfen und fertig ists. so kann man den MPU auch schön wieder entlöten.
Moin,
evtl. ist dies für den einen oder anderen auch interessant.
Das neue FreeIMU Board 4.0 ist fertig und hat die folgenden Sensoren verbaut.
Weitere Infos hier.Zitat:
MPU6050 accelerometer andgyroscope,
the HMC5883L magnetometer
and the MS5611 high resolution barometer
http://www.varesano.net/projects/hardware/FreeIMU#v0.4
Soll ab 2.März in den folgenden Shops zu bekommen sein.
Jussi's ViaCopter: http://viacopter.eu/
Stefano's SDModel: http://www.sdmodel.it/
Paul's Flyduino: http://flyduino.net/
Gruß Ingo
Hallo,
@Bammel,
darf ich fragen, welches Material du für die Metallplatte verwendest? Würde Aluminium funktionieren? Warum machst du das? Ich vermute, damit die Platine nicht schwarz wird und stinkt!? (Ist mir heute passiert)...
Wie warm wird dein Heißluftfön? Meiner geht bis 560, aber das wird zuviel sein!?
Mein MPU ist heute außerdem "davongeflogen", konnte es wohl nicht mehr erwarten xD
Ich denke, ich werde deine Methode die Tage mal mit einer alten Herdplatte probieren... Dann bleibt er wenigstens an Ort und Stelle :D Sollte ich dann auch eine Metallplatte dazwischen legen?
Gruß
Chris
Ich habe mal etwas von der Methode mit der Bratpfanne bzw Topf gehört.
Dort wurde feiner Sand gefüllt und die Platine dann Darauf gelegt.
Das soll für eine gleichmäßige Temperaturverteilung sorgen.
Gruß Ingo
PS hab den Link gefunden...
http://www.heise.de/hardware-hacks/a...e-1276166.html
Hi Chris,
ich löte den MPU mit einer feinen SMD-Lötspitze mit dem Lötkolben an.
Erst einen Pin anheften, dann den diagonal gegenüber.
Anschließend die Pins und die Pads mit (mäßig) SMD-Lötzinn einsudeln, das fließt dann schön zwischen die Pins und Pads, der Lötstopplack verhindert Lötbrücken zwischen den Pins/Pads.
"Einsudeln" heißt, mit der Lötspitze am IC entlang in der Kante zwischen IC und Platine hin- und herfahren und die gerade bediente Seite gleichmäßig erhitzen.
Das hat bis jetzt dreimal (an 3 MPUs ;-)) prima funktioniert.
Die heißes-Blech-Methode empfielt sich in meinen Augen eher um den MPU wieder auszubauen...
Der Herdplattentrick wird auch immer wieder gerne genommen. Ich denke, wenn die Platine flach auf der Herdplatte aufliegt, brauchst du kein Blech mehr dazwischen. Das diente bei Sven nur dazu, die heiße Luft nicht direkt an die Platine kommen zu lassen und die Hitze gleichmäßig zu verteilen (was wichtig ist, wie du ja schon selbst gerochen hast :cool:). Kommt dann auch langsamer und lässt sich eventuell besser dosieren.
Habe ich aber noch nicht selbst ausprobiert.
Hallo,
leider musste ich heute feststellen, keiner meiner beiden MPUs funktioniert... Habe alles laut DB aufgebaut, lediglich der C an Pin 20 ist bei mir 10n (50V). Harald, wäre es möglich, dass du mir den Source-Code für I2C schickst? Möchte ihn mir nur ansehen, um alle Fehler ausschließen zu können.
Den CS Pin soll man im I2C Modus ja auf 3V3 legen, oder?
Ist die Adresse &B11101000 oder &B01101000 ?
Vielen Dank & Gruß
Chris
EDIT:
Hab gerade das hier gefunden: http://www.instructables.com/id/Picopter/
Sieht ähnlich wie der SnQ aus :D
Hi Chris!
Kein Panik, die Chips sind nicht das Problem. Schauen wir mal...
Jetzt forderst du mich aber... CS-Pin? ;)
Ah, du hast ja den MPU-6000, d.h. mein Schaltbild sagt Pin 8 = Vlogic, das ist beim 6000er der CS.
Ja, der muss auf 3V3, damit I²C eingeschaltet ist.
Der zu große Kondensator an Pin 20 ist ok, das läuft so auf meinem Stretcho ohne Probleme.
Und schon wieder eine Herausforderung... wenn ich deine Binärwürste richtig interpretiere, dann fragst du mich, ob die Adresse 0xE8 oder 0x68 sein muss... In meinem Schaltbild steht 0x59, weil die Basisadresse des MPU die 0x58 ist und der AD0-Pin ebenfalls auf 3V3 liegt.
... was natürlich leider vollkommener Käse ist, denn die Basisadresse des Chips ist 0x68 und das AD0-Bit macht daraus 0x69.
Im Code ist es richtig, denn den hat Sven geschrieben... Danke Sven! :)
Und jetzt musst du auf die Basisadresse nach I²C-Norm noch das Unterste Bit draufrechnen, mit dem zwischen Lesen und Schreiben unterschieden wird.
[edit]
Vielleicht kurz "draufrechnen" erklären:
Die Bits der 0x69 als 7 Bit-Zahl hinschreiben, dann eine Stelle nach links schieben und das R/W-Bit auf die dadurch frei gewordene Stelle als neues LSB (niederwertigstes Bit) einfügen. Das Ergebnis wird dann neu als jetzt 8stelliger Bin-Wert interpretiert.
Konkret musst du also im Code
diese beiden Adressen verwenden.Code:Const Mpuaddr = &HD3 ' Device adr. = 69H (as 7bit adr), Read adr = D3 (LSB = 1)
Const Mpuaddw = &HD2 ' Device adr. = 69H (as 7bit adr), write adr = D2 (LSB = 0)
Richtig schön ausführlich ist das in meinem Auswuchtprogramm gezeigt, das du hier runterladen kannst:
http://www.harald-sattler.de/html/sh...e_nq_v2_bl.htm
Dort ziemlich weit unten... eigentlich ganz unten.
Tjaaa, den Picopter kenne ich schon. Der ist aber fast doppelt so groß wie der sNQ ;-)
Hat aber einige gute Ideen beschrieben und das Ganze wirklich schön abgerundet. Nur das Flugvideo fehlt bisher :cool:
Erstmal danke für die tolle und ausführliche Erklärung :D
Hab mir den Code gerade angesehen, aber leider funktionierts damit immer noch nicht...
Hast du zufällig mal die Spannung am Pin20 (Ladungspumpe) gemessen? Anfangs (als der Chip noch frisch auf der Platine war), war die Spannung bei ca. 25V (oder warens 50V, sowas in der Größenordnung), jetzt ist sie bei ca. 600mV... Ich glaube, ich habe beide Chips durch meine Brutzelei kaputt gemacht -.-
Gruß
Chris
P.S: Geld ist überwiesen ;) Danke nochmal
Gerne, dafür ist das Forum doch da :)
Och nö! Beide Chips verbrutzelt? Wie denn das?
Was hast du denn alles noch gemacht, in der Zeit wo ich meine Antwort geschrieben habe??
Sind alle Pins richtig angeschlossen? (Lupe, ich nehme dafür auch immer gerne mal ein USB-Mikroskop)
Ja, die Spannung habe ich mal gemessen, waren 25 V.
Hi,
ich weiß nicht, ob sie kaputt sind, aber mir kommt es so vor... Hab den einen mit der Hand und Lötkolben gelötet, den anderen mithilfe der Herdplatte.... Ich werd beide nochmal ablöten und nochmal neu machen, evtl. funktionierts ja dann...
Ja, 25V warens bei mir auch mal kurzzeitig, dann ist aber die Spannung dauerhaft auf ca. 600mV gesunken.
Pins habe ich auch kontrolliert, sollte passen. Es könnte höchstens sein, dass unter dem Chip sich einige Brücken gebildet haben. Habe aber Flußmittel verwendet.
Gruß
Chris
Hi Chris,
ich erinnere mich, dass du deine Platinen selbst erstellst, richtig?
Der MPU hat eine metallene Bodenplatte (die aber NICHT angelötet werden soll!).
Die Platte kann natürlich Leitungen, die unter dem Chip durchlaufen und ohne Lötstopplack sind, kurzschließen.
Ja, die Platinen sind selbst gemacht.
Ich dachte, diese sollte auf GND gelegt werden.... Das könnte einiges erklären -.- Ich werds mal ausprobieren, danke für den Tipp :D
Es laufen zwar keine Leitungen durch, aber ich habe eine große GND Fläche eingefügt.
Gruß
Chris
Tja, immer wenn ich denke, ich hätte mal ein bisschen Zeit fürs Hobby, kommt was dazwischen... Also die Idee mit dem Xmega finde ich gut. Es macht mir wahrscheinlich auch deutlich mehr Spaß einen ganz neuen Controller zu implementieren, als nur die IMU zu wechseln. Und ich kann immer noch nicht glauben, dass die MPU IMUs genauso gut sind wie die ADXRS. Aber das werden wir ja im Vergleich sehen können. Was noch zu klären wäre: Unterstützt BASCOM den
XMega32A4 bei allen uns wichtigen Features? Bisher kann man noch nicht so extrem viel über xmegas in Zusammenarbeit mit Bascom lesen.
Das Datenblatt klingt ja fast zu schön um wahr zu sein... Und QFN wollte ich schon immer mal löten :-)
Hier habe ich mir ein paar Infos angeguckt:
http://avrhelp.mcselec.com/atxmega.htmZitat:
What you need to get started with ATXMEGA and BASCOM-AVR
1. The latest Bascom-AVR FULL Version (The Demo Version of Bascom-AVR do not support ATXMEGA).
2. An evaluation board like the Atmel AVR XMEGA® Xplained evaluation kit or any other ATXMEGA evaluation board with PDI (Program and Debug Interface) header.
3. A Programmer like AVRISP MKII or any other PDI or JTAG programmer which support ATXMEGA.
4. Latest AVR-Studio 4.X or 5.X only for setting fuse bits and to flash Bootloader to ATXMEGA.
5. Programming the ATXMEGA can be done direct from BASCOM-IDE. See also LIBUSB for further information.
Klingt alles ganz gut und ich hätte Lust das zu probieren. Es wäre natürlich auch schön wenn man ein paar der zenhtausend timer im XMega gleich für saubere PWMs nutzen könnte...
Das kannst du, der MPU fliegt sehr gut.
http://vimeo.com/38034959
Gruß
Matthias
Aber das Thema mit der Zeit, das kenne ich auch zu gut.
Hallo,
ich habe mir erst kürzlich ein Breakout Board für den ATXMega64A3 gemacht, der Unterschied zum ATXMega32A4 sollte nicht allzu groß sein.
Bis jetzt habe ich folgendes in BASCOM ausprobiert:
- Event System
- DMA
- PWM
- PWM einlesen ohne CPU
- TWI
- UART
- ADC
- DAC
Funktioniert alles bestens, wenn man erst mal ein bisschen drin ist ;)
Allerdings muss man ersteinmal die ganzen Optionen zum Einstellen verstanden haben (bsp: DMA), um hier etwas sinnvolles zu entlocken.
Programmiert habe ich mit einem ATAVRISP mk2, das einbinden in BASCOM war ganz einfach, aber dazu gibts auch in der HELP Datei einige Hinweise.
Gruß
Chris
Das klingt doch alles sehr vielversprechend... @Matthias: Du hast doch den direkten Vergleich zwischen adxrs und mpu. Merkst du keine Unterschiede? Beim Gain irgendwelche unterschieldichen einstellungen?
@Chris: Dann können wir ja evtl. auf deine Xmega Erfahrungen zurückgreifen... :-D
Vom Gefühl her würde ich sagen rauscht der MPU mehr. Wirkte anfänglich unruhig. Die PID Werte musste ich auf über die Hälfte reduzieren.
Hi Chris!
Kann man dein Breakout-Board schon als GUIDE missbrauchen?
Dann würde ich mir das Enflechten sparen können. Ich habe zwar schon angefangen, das Schaltbild ist soweit fertig, aber da müsst ihr nochmal drüber schauen.
Das klingt wirklich super. Ich war nur von den technischen Daten her, ohne was getestet zu haben, der Meinung, dass dieser Chip ideal für eine GUIDE geeignet ist.
- Die Erzeugung der 6 PPM-Signale (ja, PWM... aber zur Unterscheidung gegenüber den echten PWM-Signalen, die wir für die Bürstenmotoren benötigt haben) sollte problemfrei möglich sein, so dass Willa seine I²C-PWM-Umsetzer in den wohlverdienten Ruhestand setzen kann.
- UARTs hat das Teil ebenfalls zur Genüge, so dass auch jede Menge Sensoren zusätzlich zu dem Satellit-Empfänger angeschlossen werden können.
- Mehrere Hardware-I²C-Ports, einer für den/die Sensor/en, einer für die Motorsteuerung, falls Willa daran festhalten will.
- 32 MHz Oszillator intern -> Dampf genug, außerdem den externen Oszi eingespart
- läuft mit 3,3 V -> keine Probleme mit der I²C-Komm zum Sensor.
Aber Achtung wegen der Kopplung zur GUI -> Spannungsbegrenzer und Längswiderstände (z.B. blaue LEDs) vorsehen.
Nochmal Achtung: Verstehen die normalen ESCs (die mit mehr als einer LiPo-Zelle arbeiten) die 3,3 V-Signale?
Die Programmierung über PDI erfordert einen anderen Programmer (als ich bisher verwendet habe), den gibt es aber an allen Ecken für 30 €uronen von DIAMEX (DIAMEX ALL AVR).
Das kann ich über Messwerte belegen! :-(
Ich kann zwar noch keine Absolutwerte liefern (dazu bräuchte ich eine GUI, die ich selbst programmieren kann, also in Basic und ohne OO), aber qualitative Signale kann ich euch zeigen:
Anhang 21806
Ich habe hier das niederwertige Byte des Y-ACC-Sensors nach Excel verfrachtet. Der Sensor liefert 16bit-Werte.
Die Werte lese ich so schnell aus, wie das Programm auf dem Atmel das hergibt. Dehalb kommen immer 4mal die gleichen Werte (was man in dieser Darstellung nicht sieht). Das Bild zeigt 2000 Werte und nahezu der volle Wertebereich des unteren Bytes der Sensorwerte wird ausgenutzt. Wohl gemerkt bei ruhig auf dem Tisch liegenden Copter.
Die gleichen Signale kommen auch aus dem auf dem sNQ Shorty verbauten MPU-6050 raus, Willas Software kann damit aber anscheinend umgehen, zumindest der Stretcho (identischer Hardwareaufbau, identische Software) flog damit ja prima.
Also meine "Erfahrung" würde ich gerne mit euch teilen :D Würde mir riesig Spaß machen, da mal etwas mitzuarbeiten.
Also rein theoretisch könnte man mein Board schon als IMUGuide verwenden, allerdings ist es ziemlich groß und jeder einzelne Pin ist extra herausgeführt. Aber testen sollte man damit die komplette Hardware können ;)
Was man aber noch testen müsste:
- vertragen die ESCs die 3V3 vom AVR
- laufen die ESCs auch noch mit 500Hz (PWM), ansonsten würde man nur auf 250Hz kommen, was doch etwas wenig ist...
Gruß
Chris
Es freut mich sehr, dass meine Anregung zu einem anderen Prozessor zu wechseln eine solche Resonanz ausgelöst hat.
Mir ging es dabei aber darum, den Kopter möglichst klein zu bauen, also mit einer Lipo-Zelle. Damit erübrigt sich meiner Meinung nach die Frage, ob die 3V3 ausreichend sind für die ESCs, da die kleinen für eine Zelle ausgelegt sind.
Dass es ESCs gibt, die mit 500Hz zurecht kommen, beweisen andere Konzepte ja zur Genüge. Wenn man Wert darauf legt, das Ganze mit mehr als einer Zelle zu betreiben, sollte es möglich sein, mit Opencollectorausgängen, die dann von den grösseren ESCs stammenden 5V zu verwenden.
Ich stehe auch jederzeit zur Verfügung, wenn es um mechanische und elektronische Aufbauten und Tests geht, nur Bascom und programmieren kann ich nicht.
Ich habe schon einige Kopter zum Fliegen gebracht, überwiegend Wiikopter, aber auch mit MPU6050.
zum testen, habe ich gerade gesehen: http://flyduino.net/MPU6050-Break-Out-onboard-33V-reg
Gruß Bernd
....habe eben endlich entdeckt, wo Eure Reise mit den Quadrocoptern hingeht :
http://www.youtube.com/watch?v=eA4U-6GmkUw
:-)
Jungs, lasst euch nicht ablenken!! DeLorian... wo kommen wir denn hin?? ;-)
Ich habe mal auf die Schnelle die notwendigen Bauteile auf eine Platinenfläche geschüttet und zwei Rahmen drumherum gezeichnet:
Anhang 21814
Schaut mal drüber und gebt mir durch, was noch fehlt (Stecker oder sowas z.B.).
Das Schaltbild ist leider etwas zu groß (ich habe ein A3-Blatt verwendet) als dass man in einem JPG Wesentliches erkennen könnte.
Die Sortierung der Signale an die Pins des µC ist vorläufig. Kann sein, dass eine andere Anordnung der Stecker ein optimaleres Layout ergibt.
Wahrscheinlich habe ich auch noch den einen oder anderen Anschluss vergessen...
Links oben ist der Akku-Anschluss.
Der große 6pinner ist für IR- oder Deltang-Empfänger, kann für Willa wegfallen.
Links unten sitzt der Comm-Anschluss für die GUI.
Rechts unten Comm zum Satellit-Empfänger.
Ah, eben gemerkt. Der I²C-Stecker für die I²C-PPM-Konverter fehlt noch, alternativ (und vorzugsweise) die 6 Stecker für die ESCs, wenn die PWM direkt im µC erzeugt wird.
Den µC habe ich erst mal als TQFP Version genommen, den gibt es bei Reichelt. Die (kleinere) QFN Version lässt selbst die kleinere Platine verschwenderisch groß erscheinen :-).
Falls einer von euch einen Großhändler kennt, der die QFN Version im Sortiment führt... ich würde drei Stück XMega32A4 oder auch XMega64A4 abnehmen, falls eine Sammelbestellung zusammen kommt.
Schau mal bei digikey.com habe dort sehr gute Erfahrungen gemacht. Ich meine die haben die xmega in allen Varianten um die 5 Euro das Stück.
Sehr wichtig für ein gutes Flugverhalten finde ich, dass der MPU6050 in die Mitte der Platine kommt, wenn später die Platine mittig im Kopter befestigt wird.
Dann würde ich auf den Resettaster verzichten, habe ich bei Arduino noch nie gebraucht.
Warum noch über den Umweg I²C-PPM Konverter nachdenken, lieber die ESCs gleich mit PWM ansteuern.
Der Akku braucht auch nur 2 PINs.
Warum braucht der Empfänger mehr als 3 Anschlüsse?
Wo werden die ESCs angeschlossen?
Ich kann nur R und Cs sehen, braucht der XMega keinen Quarz?
So viel von mir. Bernd