Lieber Besucher, herzlich willkommen bei: RCLine Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Dienstag, 28. April 2009, 18:13

PWM -> PPM konverter (BL für 4in1)

Hi,

Ich habe eine ein-kanal PWM -> PPM konverter auf 10f202 basis gebaut.
Dieser ist speziell aud den Walkera 4.1 zugeschnitten, d.h. er verlangt einen 0.5 ms PWM takt.

Gibt es ein beispielprogramm um PWM mit beliebigen rate zu messen, ohne dass da unnötig jitter (zittern) mit einfliesst ?

Gruss :w Cesco

Bile: Walkera 4#1 BL testbench
»Cesco1« hat folgendes Bild angehängt:
  • Clipboard01.jpg
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Cesco1« (28. April 2009, 19:58)


2

Dienstag, 28. April 2009, 22:44

RE: PWM -> PPM konverter (BL für 4in1)

Noch ein photo, diesmal "flugbereit".
Der 10f202 ist auf dem platinchen oben auf der walkera (reely) elektronik. Ein 10f200 würde genauso gehen. Das pwm signal wird 1.5 ms lang gemessen, also 3 pwm zyklen zusammen. Die messung wird bei der pwm low to high flanke gestartet. Ein pin des pic bewirkt ein ppm-max signal beim starten, das verwende ich um den gasweg der esc zu programmieren.
Das heck ist kein BL. Wenn ich das heck auf bl umbaue muss ein doppel-konverter her. Ich glaube der 10f202 würde das schaffen, allerdings verilere ich dann mangels io-pins die timing-kontrollausgabe und die esc-programmiermöglichkeit.

Edit:
Ein erster flugtest hat ergeben dass die leistungsentwicklung ziemlich explosiv ist. Von stillstand bis schebeleistung sind's gerade mal 3 rasten auf der fernsteuerung. Ich denke der motor ist etwas zu stark für den 4#1.
»Cesco1« hat folgendes Bild angehängt:
  • Clipboard02.jpg
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Cesco1« (29. April 2009, 14:54)


3

Mittwoch, 29. April 2009, 15:04

RE: PWM -> PPM konverter (BL für 4in1)

Anbei die source und hex file.
Pin belegung ist:

;GP0 pwm input, 0.5ms rate
;GP1 test output, the pulse here must be a multiple of pwm rate.
;GP2 ppm output
;GP3 calib input, short to gnd at start for bl-esc max-min-ppm calibration

Bei +5V aufpassen, der 10f202 hat ne komische pin-belegung.
»Cesco1« hat folgende Datei angehängt:
  • pwm2ppm.zip (2 kB - 16 mal heruntergeladen - zuletzt: 10. April 2014, 11:47)
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Cesco1« (30. April 2009, 14:37)


4

Donnerstag, 30. April 2009, 14:42

RE: PWM -> PPM konverter (BL für 4in1)

Hier noch die pin-belegung des 200/202

Interessiert das eigentlich jemanden oder kann ich mir die publikation sparen ???
»Cesco1« hat folgendes Bild angehängt:
  • Clipboard02.png
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Cesco1« (30. April 2009, 14:44)


5

Donnerstag, 30. April 2009, 15:42

RE: PWM -> PPM konverter (BL für 4in1)

Hallo Cesco,

ich gehe schon davon aus, daß die Sache für den ein- oder anderen interessant sein dürfte!
Zu einer evtl. Lösung, die mit variabler PWM-Frequenz und genauer Impulslängen-Messung arbeitet, habe ich mir mal nebenbei ein paar Gedanken gemacht. Es wird jedenfalls ein ganzes Stück komplizierter und erfordert einen anderen Controller (z.B. PIC12F629). Da würde ich die Timer1 Gate Control Funktion zur Impulsmessung (d.h. Microsekunden-genaue Messung der Low-Phase) hernehmen und eine Port-Change Interrupt-Routine zur Ermittlung der gesamten PWM-Periodendauer.
Aus diesen beiden Werten muß dann der Duty-Faktor (0..100%) errechnet werden.
Zeit für die Rechenroutinen müßte ja zwischen den PPM-Impulsen genug sein.

Grüße,

Thomas

6

Donnerstag, 30. April 2009, 16:37

RE: PWM -> PPM konverter (BL für 4in1)

Hi Thomas,

Da ich sowohl die low wie auch die high zeit mit dem 202 messen kann liesse sich eine pwm-frequenz unabhängige version mit normierung (wie du sagst duty cycle) machen. Zuerst gesamt = low+high, dann ppm = high / gesamt * ppm_steps.
8 oder 16 bit mult und div sind aber etwas schwierig (kann ich nicht).

Eine absolute präzision scheint nicht notwendig. Das was aus der walkera 4in1 rauskommt zittert schon beim original ziemlich, besonders der gyro-kanal.
Ich frag mich ob da ein lowpass filter (digital natürlich) vorteile bringt. Der dsp-lp braucht aber auch wieder multiplikation :dumm:

rechenzeit ist genug da.

Gruss Cesco
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Cesco1« (30. April 2009, 16:42)


7

Donnerstag, 30. April 2009, 17:23

RE: PWM -> PPM konverter (BL für 4in1)

Hi Cesco,

gut, wenn die Messgenauigkeit der Polling-Routine reicht, geht es vielleicht auch so. Bei mehreren kHz PWM machen ein paar Mikrosekunden Abweichung halt Prozentual schon viel aus.
Fertige Mathe-Routinen gibt es von Microchip (such mal bei den Application Notes).
Ein einfaches Low-Pass Filter kann man auch ganz einfach halten, wenn man die Multiplikationen oder Divisionen bei 2er-Potenzen lässt (z.B. 1/4, 1/8 oder 1/16, oder bei Multiplikationen mit 2 oder 4 oder 8 - dann sind es nur einfache Schiebe-Ops.

Ein Tiefpassfilter gegen Jitter könnte z.B. so gehen:
Neuer Wert = alter Wert + (Messwert - alter Wert)/16

Ein einzelner Ausreißer beim Messwert macht damit also am Ausgangwert nur noch 1/16 aus.
(aber mit 16 Bit Genauigkeit rechnen, um bei kleinen Abweichungen überhaupt auf den Sollwert zu kommen!)
Wenn's durch den Tiefpass zu träge wird, kann man den Tiefpass bei größeren Abweichungen einfach übergehen und Neuer Ausgangswert = Messwert setzen.

Grüße,

Thomas

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Ottili« (30. April 2009, 17:31)


8

Donnerstag, 30. April 2009, 19:01

RE: PWM -> PPM konverter (BL für 4in1)

Hi Thomas,

Filter:
I diesem fall würd ich die letzten 8 oder 16 werte aufsummieren und dann durch 8 oder 16 teilen. Ein FIR mit allen koeffitienten auf 1. Schwierig ist dabei die tabelle mit den alten werten.

Wo ich mich nicht wohlfühle ist die mult/div sache. Da mein BL für der 4#1 (eine piccolo kopie) viel zu stark ist hab ich den ppm wert einfach RRF gemacht, natürlich ohne vorher das carry zu löschen. Schöner absturz deswegen. Rotorkugellager verloren :angry:
In zukunft werd ich software ohne rotoren testen !

Wie simuliert man eigentlich pic's ? Bei den avr geht das mit avrstudio bestens, aber mit mpasm gibts nichts zum debuggen. Muss ich da das ganze mplab installieren ?

Gruss Cesco
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

9

Donnerstag, 30. April 2009, 23:54

RE: PWM -> PPM konverter (BL für 4in1)

Hallo Cesco,

Zitat

Original von Cesco1
Hi Thomas,

Filter:
I diesem fall würd ich die letzten 8 oder 16 werte aufsummieren und dann durch 8 oder 16 teilen. Ein FIR mit allen koeffitienten auf 1. Schwierig ist dabei die tabelle mit den alten werten.

wenn ich jetzt nicht gerade ganz daneben liege, sieht das Ergebnis davon nicht viel anders aus, als bei meiner Methode, d.h. ein "Ausreisser" bei der Messung schlägt mit 1/8 bzw 1/16 auf das Ergebnis durch. Meins ist halt so gesehen ein IIR, oder - elektronisch betrachtet - simuliert es einfach einen simplen RC-Tiefpass. Der Vorteil ist, daß man keine Werte in einer Tabelle ablegen muß, sondern einfach mit dem zuletzt errechneten Wert weiterrechet. Dafür braucht der Ausgangswert mehr als 8 oder 16 Schritte, um den Soll-Wert zu erreichen. Theoretisch erreicht er ihn sogar nie, aber das ist mit der Spannung an einem realen RC-Glied auch nicht anders... ;)

Zitat


Wie simuliert man eigentlich pic's ? Bei den avr geht das mit avrstudio bestens, aber mit mpasm gibts nichts zum debuggen. Muss ich da das ganze mplab installieren ?

Ja, MPLAB solltest Du installieren - damit geht das Simulieren ganz einfach. MPLAB ist doch schnell installiert - was hat Dich bisher davon abgehalten?

Grüße,

Thomas

10

Freitag, 1. Mai 2009, 04:32

RE: PWM -> PPM konverter (BL für 4in1)

Hi Thomas,

Zitat

Original von Ottili
Meins ist halt so gesehen ein IIR,


Richtig. Der FIR mit 1'er koeff hat den vorteil dass es ohne multiplikation geht. Ich hab aber mit erschrecken festgestellt das der 202 pic gerade mal 16 byte ram hat ... eine grosse tabelle hat da nicht platz.

Zitat

Original von Ottili
Ja, MPLAB solltest Du installieren -


Das werd ich beim nächsten problem machen.
Heute hab ich stunden damit vertrödelt rauszufinden warum die gas-anlernung der esc mit dem lowpass nicht läuft. Ich hatte vergessen die filter-tabelle auf null zu initialisieren :wall:
Morgen ist dann wieder testflug.

Gruss Cesco
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

11

Freitag, 1. Mai 2009, 11:33

RE: PWM -> PPM konverter (BL für 4in1)

Hi Cesco,

Zitat

Original von Cesco1
Richtig. Der FIR mit 1'er koeff hat den vorteil dass es ohne multiplikation geht.

Wo ist denn bei meinem Tiefpass eine Multiplikation? Ist doch auch nur Additiion, Subtraktion und eine Division durch 2hochX (also Rechtsschieben) drin...

Grüße.

Thomas

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Ottili« (1. Mai 2009, 11:35)


12

Freitag, 1. Mai 2009, 13:49

RE: PWM -> PPM konverter (BL für 4in1)

Hi Thomas,

Bei
Neuer Wert = alter Wert + (Messwert - alter Wert)/16
seh ich ein problem, und zwar wird Messwert - alter Wert)/16 = 0 für kleine änderungen.

z.b. Messwert = 107, alter Wert = 100 :
Neuer Wert = 100 + (107 - 100)/16 = 100 + 7/16 = 100
weil 7/16 = 0 gerundet wird.

D.h. das muss man in float rechnen, sonst produziert dieser filter einen konstanten offset und ne schöne treppenfunktion.
Oder man rechnet in 16 bit und multipliziert alles mit 256, das hast du glaub ich gemeint. Erst jetzt hab ich das kapiert :dumm:
Jetzt muss ich doch mplab installieren um das zu versuchen ! :ok:
Damit ist version 3 der pwm-ppm konverters fällig.

Gruss Cesco
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Cesco1« (1. Mai 2009, 14:14)


13

Freitag, 1. Mai 2009, 15:17

RE: PWM -> PPM konverter (BL für 4in1)

Genau, deshalb schrieb ich ja schon "aber mit 16 bit rechnen". Für Multiplikation oder Division mit 256 braucht man nicht mal zu schieben, sondern nur die Bytes zu tauschen...

Grüße,

Thomas

14

Freitag, 1. Mai 2009, 18:36

RE: PWM -> PPM konverter (BL für 4in1)

:tongue:

Jetzt fliegt die kiste sogar indoor !
Kann ich nicht lange, muss noch üben, aber immerhin ohne crash auf 2*3m :ok:

Der filter scheint doch was zu bringen. Mit dem original motor ging das nie.

Gruss Cesco.

edit:
War gerade outdoor. So sanft und gut steuerbar war der 4#1 noch nie. Die leistung lässt sich wesentlich besser steuern als mir dem bürsti. Leise it er auch, und erwärmen tut sich nur der akku.
Das nächste wird wohl ein BL-heck mit einem doppel-konverter.
»Cesco1« hat folgendes Bild angehängt:
  • Clipboard01.jpg
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Cesco1« (2. Mai 2009, 18:20)


15

Sonntag, 3. Mai 2009, 17:05

RE: PWM -> PPM konverter (BL für 4in1)

Video vom zweiten indoor flug mit dem 10f202 konverter
http://www.rcmovie.de/video/b32b441c0cc1d87caa76

edit: Anbei die bei diesem flug verwendete source

wenn ich mir allerdings den download zähler anschaue interessiert das überhaupt nicht ...
»Cesco1« hat folgende Datei angehängt:
  • pwm2ppm.zip (1,97 kB - 24 mal heruntergeladen - zuletzt: 10. April 2014, 11:47)
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »Cesco1« (3. Mai 2009, 18:32)


16

Montag, 4. Mai 2009, 22:55

RE: PWM -> PPM konverter (BL für 4in1)

Noch ein langweiliges video:
http://www.rcmovie.de/video/596ce3f642aa…or-1000mah-lipo

Fliegen bis der lipo-saver in der esc kommt.
Gasbeschränkung diesmal 5/8, 1000mah lipo aus nen koax. Ich glaub 6/8 gasbeschränkung würde auc gehen.
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

17

Dienstag, 5. Mai 2009, 17:29

Demo video einer 2-kanal version für koax heli's. Timing ist 1ms pwm.
Kein flug - nur fernsteuerung, konverter und KO-bild.

http://www.rcmovie.de/video/55fc1add054b…-mit-PIC-10f202
HK250 HK450 HK500 HK600
[SIZE=3]Cesco [/SIZE]

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Cesco1« (5. Mai 2009, 17:30)