Wer fliegt einen Spidex mit MultiWii

warthox

Erfahrener Benutzer
#21
das hab ich etwas anders interpretiert (und lass mich gern eines besseren belehren):
man geht von einer fixen periodendauer von 20ms aus, am anfang der periode ist das signal dann "high" und fällt dann irgendwann auf "low" zurück.
die "high"-dauer ist
-min 1ms (servoausschlag -100%)
-max 2ms (servoauschlag +100%)
-und in der mittelstallung 1,5ms (servostellung mitte)

von 20ms werden 1ms (=1000microsek) effektiv zur positionsbestimmung genutzt.
also nur 1/10 der auflösung
--> 8bit timer = 256schritte auf 20ms ~ 13schritte auf 1ms (das hat mich auch erschreckt)
--> 10bittimer=1024schritte auf 20ms ~ 51schritte auf 1ms
die periodendauer von 20ms entspricht 50hz. der normalfall bei rx -> esc oder servo verbindung.
beim mwc sind es mein ich 488hz [fc -> esc], also eine periodendauer von 2050µs.


hatte nicht berücksichtigt dass es beim esc-signal feste "low/high"-dauern gibt und nur 1/20 der periodendauer genutzt wird.
diese 'feste' high/low dauer ist das gleiche wie die min 1ms welche du ja oben auch genannt hast. die sind immer da. erst danach kommt dann das für den servo/reglerweg entscheidende. also die zusätzlich 0-1000µs.


stimmt, ich beschäftige mich seit 2 monaten mit schrittmotoransteuerung, wo bei pwm wirklich die gesamte auflösug genutzt wird, daher entspricht die timerauflösung der auflösung der spannungsschritte (des mittelwertes).
bei der "klassischen" pwm kommt es idR auf den mittelwert der ausgehenden spannung an
- 50%high und 50%low ergeben zb U/2
-->diese spannung steuert dann zb über einen FET die spulenspannung eines motors

beim esc wird technisch wirklich die zeit gemessen.
das pwm für die motoransteuerung [esc -> motor] ist wieder ne ganz andere geschichte.

interessieren würde mich aber immer noch warum bei dem atmel2560 (mega) immer von 1024 schritten ausgegangen wird wobei er nur 8bit timer hat.
hat da jemand mehr info dazu.
der 2560 hat 2x 8bit und 4x 16bit timer. es geht ja nicht um die auflösung des pegels sondern um die der zeit.



ich denke jemand wie felix [ronco] könnte da genaueres dazu sagen...
 

gfunk

Erfahrener Benutzer
#22
die periodendauer von 20ms entspricht 50hz. der normalfall bei rx -> esc oder servo verbindung.
beim mwc sind es mein ich 488hz [fc -> esc], also eine periodendauer von 2050µs.
endlich was ergoogelt:
http://vimeo.com/9984119#


diese 'feste' high/low dauer ist das gleiche wie die min 1ms welche du ja oben auch genannt hast. die sind immer da. erst danach kommt dann das für den servo/reglerweg entscheidende. also die zusätzlich 0-1000µs.
jein... 1ms high ist immer
-bei 50hz: sind die letzten 18ms dann immer "low" und von 1-2ms wird das signal ausgegeben
-bei 488hz: sind dann die letzten 0,05ms low und von 1-2ms wird wieder das signal ausgegeben

würde man 0-1000µs addieren würde sich die perioden dauer bzw frequenz ändern.

der 2560 hat 2x 8bit und 4x 16bit timer
scheinbar ging google gestern bei mir nicht.
http://www.atmel.com/devices/atmega2560.aspx?tab=documents
im datasheet auf s7
--> hat sogar 12 16bit

es geht ja nicht um die auflösung des pegels sondern um die der zeit.
der timer bzw dessen "bit" geben ja die auflösung der zeit an, welche über die frequenz ja wieder mit dem pegel zusammen hängt.



aber danke für die infos!
wieder einiges gelernt



hier auch noch ein sehr informativer link (für alle dies wie ich nicht wussten ;) )
http://wiki.openpilot.org/display/Doc/TurboPWM
 
Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten