-
        

Ergebnis 1 bis 5 von 5

Thema: PWM Frequenz Feineinstellung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.12.2006
    Ort
    Bayern
    Beiträge
    5

    PWM Frequenz Feineinstellung

    Anzeige

    Kann mir jemand sagen, wie ich die PWM Frequenz fein einstellen kann?
    Nach meinem Verständnis ergibt sich die Frequenz bzw. die Impulsdauer durch die folgenden Parameter.

    1. Quarzfrequenz (z.B. 8Mhz)
    2. Prescaler (Teiler)
    3. Timergröße (8/16 Bit)
    4. Compare Wert

    Möchte ich z.B. für einen Servo 50Hz (bzw. 20ms) als PWM Frequenz einstellen und 1,5ms als Pulslänge, dann muss ich doch irgendwie auf die 50 Hz kommen. Mit den obigen Mitteln komme ich auf ca. 16ms statt 20ms oder halt viel mehr.

    Es gibt doch noch einen Preloader, kann man mit dem die Timerauflösung noch bisschen ändern, wobei dieser ja immerwieder automatisch nachgeladen werden muss, oder wie geht das?

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.09.2006
    Ort
    Nähe Mannheim
    Beiträge
    269
    Schau mal im RN Wissen Bereich da steht das unter Timer
    mfg

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Mit den obigen Mitteln komme ich auf ca. 16ms statt 20ms oder halt viel mehr.
    Meine Erfahrung mit "normalen" Modellbau-Servos ist die, dass die eigentliche Frequenz des PWM-Signals ziemlich unkritisch ist. Ob der Impuls 50, 80 oder 30 mal pro Sekunde kommt ist zumindestens meinen Servos immer ziemlich egal gewesen . 16ms sollte daher überhaupt kein Problem sein.

    Die Frequenz kannst Du so ausrechnen:

    fPWM = Clock / (Prescaler * 2^(Bitbreite+1))

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    12.12.2006
    Ort
    Bayern
    Beiträge
    5
    Okay, danke für Eure Hilfe!
    Mir kommt es nicht unbedingt nur auf das Servo Signal an, sondern auch ums Verständnis.

    Um es auf den Punkt zu bringen:
    Ich kann also die PWM Frequenz nur grob über die Software einstellen und muss, wenn ich z.B. eine 50Hz PWM Frequenz mit einstellbarer Pulsweite (über Compare Wert) möchte, den Quarz anpassen.

    Bin schon ein bisschen enttäuscht, dass das nicht anders geht ....

    Hätte mir vorgestellt, dass man auch den max. Timerwert (nicht die Bitbreite, sondern dezimal bzw. binär), an dem er wieder rückwärts zählt, fest einstellen kann. Wenn ich das über das Compare Register mache, dann ich ja die Pulsweite nicht variieren ...

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Na ja, Du kannst etwas tricksen, wenn du noch einen Timer mit 2 Output-Compare-Registern frei hast (wie z.B. Timer 1 beim Mega:

    Du aktivierst beide Output-Compare-Interrupts. In der ISR des ersten Output-Compare (OCR1A) setzt Du einen Port auf 1, und in der ISR des zweiten (höheren!) Output-Compare (OCR1B) setzt Du den Port wieder auf 0 und resettest den Timer, der wieder von 0 anfängt zu zählen.

    Damit kannst Du die Frequenz mit OCR1B puderfein einstellen, und das Tastverhältnis ergibt sich aus (OCR1B-OCR1A)/OCR1B.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •