Und mal wieder Hallo zusammen
das nächste Update, v011, für turnigy plush 6a, rctimer18a, hobbyking F 6a, und blueseries 20a, siehe Attachment unten.
Verbesserungen:
(1) da ich in der v009 eine ISR und einen Timer einspaaren konnte, konnte ich nun die high-side Ausschaltverzögerung rein ISR gesteuert lösen, dadurch wird der Jitter beim Einlesen des Rc-Signals nochmals erheblich verbessert
(2) die ISRs wurden konsequent auf asm optimiert, ich denke besser geht es nun kaum noch... auf dem Oszi sieht alles super smooth aus.
(3) das EEprom wird genutzt um Konfigurationswerte zu speichern. Im Moment sind dies nur die Version, Vmax (Amplitude der Sinusschwingung) und BeepStrength (Lautstärke des Beeps beim Initialisieren)
(4) falls das ESC eine Keramik hat, können die Konfigurationsparameter nun auch per serielle Schnittstelle (115200 bps, 8+1, kein P) eingestellt werden. Befehle sind "v": liefert "vok"+Version, "t": liefert "tok" falls die Kommunikation noch steht, "r" liefert alle Werte, also z.B. "rok 120 120" (1. Wert = Vmax, 2.ter Wert = Beep), "w" schreibt alle Werte, also z.B. "w 100 200" liefert "w 100 200ok 100 200", "d" liefert "dok" und setzt die Werte auf die Defaults, "se" liefert "seok" und speichert die Werte im Eprom, "ge" leifert "geok" und liest die Werte aus dem Eeprom, und "go" liefert "gook" und bricht die serielle Kommunikation ab, d.h. started den Motorbetrieb. Jeder Befehl wird beantwortet und mit "\n" abgeschlossen. Die serielle Kommunkation ist 1-wire, d.h. Rx und Tx eines USB-TTL-Adapters müssen verbunden werden, wobei zwischen Rx und Tx ein Widerstand rein muss oder besser eine Schottkydiode (Kathode an Tx); Rx wird dann mit dem Rc-Eingang verbunden.
Weitere Bemerkungen:
Der Hobbyking F6a ist eigentlich super, denn er hat eine 16MHz Keramik, und der Rx-Uart-Pin des Atmega ist mit dem Rc-Eingang verbunden (d.h. hier geht Punkt 4). Allerdings scheint er nicht gerade gut gefertigt zu sein. Ich hatte mir zwei bestellt, bei einem war ein vertrackter Wackelkontakt. Zudem sind die Fets nicht sehr großzügig dimensioniert... meine Beiden sind jetzt jedenfalls futsch LOL
. Er sollte zwar eigentlich 3S vertragen, dass hat er aber nicht wirklich gut. Daher:
Die Hobbyking F6a nur an 2S benutzen!
Die turnigy plush und rctimer haben ja keinen Keramikresonator, die serielle Kommunikation geht bei denen daher nicht. Wer will kann sich aber eine Bootloader drauf spielen der auch Zugriff aufs EEprom bietet, und so die Konfiguration ändern (geht z.B super gut mit Hagen's AVRootloader).
Der BlueSeries hat zwar einen Keramikresonator, damit die serielle Kommunikation jedoch klappt muss zusätzlich der Rc-Eingang mit dem Rx-Eingang am Atmega verbunden werden. Das ist aber fürchterlich einfach (jeder der es schafft den BlueSeries umzuflaschen kann auch das locker): Der Rx Eingang (PD2/Int0) liegt auf Pin 32, und der Rx-Eingang (PD0) auf Pin 30, da Pin 31 nicht benutzt wird, kann man also einfach die Pins 30, 31, und 32 mit einem Lötböberle (kleine Lötbrücke) verbinden, fertig. Die Schaltzeiten sind, wie zu erwarten (da all N-Fet) tatsächlich vernachlässigbar (ich konnte alle Schaltdelays auf das minimal mögliche setzen), und es funktioniert auch alles genau so wie man sich vorstellt (bei mir ist die ESC an 2S und 3S absolut kalt geblieben und der Motor hat sich einwandfrei gedreht). ALLERDINGS: auf dem Oszi ist ein komischer schmaler "Dip" im Signal zu sehen... und ich habe keine Ahnung wo der herkommt oder was das ist... daher:
Die Firmware für den BlueSeries20A ist eine delta Version -> ich übernehme für nichts nichts
Die Kommunikation zum Steuern der Motoren läuft nach wie vor mit dem 1-2ms Servo-Signal. Ich lasse das jetzt auch erstmal so (auch weil ich noch nichts überzeugenders Besseres weis, erst die Praxis wird es zeigen). Meine IMU ist gekommen und ich denke die Reglerfirmware so wie sie ist sollte es schon ganz gut tun... d.h. ich werde mich nun erstmal an die Steuerung machen... (und das Thema Motoren ist auch noch nicht ganz gegessen...)
Cheers
Olli
Anhang anzeigen blgesc_v011.zip