Forum: Mikrocontroller und Digitale Elektronik PWM/Frequenz bei ATMega


von Zaphod (Gast)


Lesenswert?

Hi,

ich grabe mich gerade ein wenig durch die Sourcen von GRBL und bin dabei 
auf ein Set Defines gestoßen, in dem die Frequenz für den PWM-Ausgang in 
4 Stufen vorgegeben werden kann:
1
  #define SPINDLE_TCCRA_INIT_MASK   ((1<<WGM20) | (1<<WGM21))  // Configures fast PWM mode.
2
  // #define SPINDLE_TCCRB_INIT_MASK   (1<<CS20)               // Disable prescaler -> 62.5kHz
3
  // #define SPINDLE_TCCRB_INIT_MASK   (1<<CS21)               // 1/8 prescaler -> 7.8kHz (Used in v0.9)
4
  // #define SPINDLE_TCCRB_INIT_MASK   ((1<<CS21) | (1<<CS20)) // 1/32 prescaler -> 1.96kHz
5
  #define SPINDLE_TCCRB_INIT_MASK      (1<<CS22)               // 1/64 prescaler -> 0.98kHz (J-tech laser)

Verwendet wird dieser Wert dann mit dem Register TCCR2B.

Meine Frage: ist es tatsächlich so, dass man beim ATMega die 
PWM-Ausgänge nur mit einigen wenigen, festen Frequenzen betreiben kann 
oder ist das eine Einschränkung von GRBL und ich kann diese Frequenz 
auch in deutlich kleineren Abstufungen (z.B. auf 1 Hz genau) einstellen?

Danke!

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Zaphod schrieb:
> (z.B. auf 1 Hz genau)

Das wird nicht gehen.
Allerdings unterstützen so gut wie alle AVRs den Fast PWM und Phase 
Correct PWM Modus mit TOP in einem Register (ähnlich wie die CTC 
Funktionalität), so das man die Wiederholfrequenz damit einstellen kann. 
Allerdings verliert man Auflösung. Lässt man den Timer z.B. statt bis 
256 nur bis 128 zählen, verringert sich die Auflösung auf 7 Bit bei 
doppelter PWM Frequenz.

von Zaphod (Gast)


Lesenswert?

OK, Auflösung ist in dem Fall wichtiger - Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.