Forum: Mikrocontroller und Digitale Elektronik ATtiny461 Problem mit PWM Takt


von Andreas K. (homer5785)


Lesenswert?

Hallo Leute!

Ich bin neu hier und hab gleich mal ne Frage:

Ich möchte am ATtiny461 den PWM Output(Counter1) im "Phase and Frequency 
Correct"-Modus benutzen um eine Frequenz zwischen 45kHz bis 100kHz zu 
erzeugen.
Im Datenblatt ist die Formel f_PWM=f_clk/N wobei N der obere Zählerwert 
ist, zu finden.
Daher hab ich die Frequenz per OSCCAL auf 11,5MHz gestellt, sodass für 
eine gute Abstufung gilt: 11,5MHz/2^8=45kHz.

Ich konfiguriere die PWM wie folgt:
1
OCR1A=period/2;//Tastverhaeltnis 0.5
2
OCR1C=period;
3
TCCR1B=0x01;//Prescaler=1
4
TCCR1D=0x01;//Phase and Frequency correct Mode
5
TCCR1A=0xC2;//Compare Match A, PWM auf OCR1A basierend
CKDIV8 ist 0 und CKOUT ist 1.

Nun setze ich period=100 und müsste eigentlich 11,5MHz/100=115kHz PWM 
Frequenz erhalten. Stattdessen erhalte ich aber exakt die Hälfte, 
nämlich 57,5kHz. Messe ich an CKOUT den Takt, so ist der korrekt bei 
11,5MHz.
Was mache ich da falsch? Ich habe keinen weiteren Prescaler gefunden, 
der irgendwie mit Faktor 2 belegt ist.

Für die genauere Abstufung wäre es mir schon wichtig, dass ich mit 
möglichst hohen Werten im OSR1C Register arbeite.

Danke für Eure Hilfe

Andreas

P.S. Diese Register sind ja alle auch 10-Bit beschreibbar. Das würde mir 
aber nur was bringen, wenn ich den schnelleren PLL Takt nehme, da ich 
dann wieder mit 10 Bit besser auflösen kann, ist das soweit richtig? 
Oder irre ich mich da?

von Andreas K. (homer5785)


Lesenswert?

nochmalnachobenbring
Keiner einen Vorschlag?

von senex24 (Gast)


Lesenswert?

Da stimmt wohl die Angabe im Datenblatt nicht; der Faktor 2 ist der 
Preis
für diesen Modus - man bekommt nichts geschenkt. Der Zähler läuft bis 
100
hoch und wieder runter, macht 200.

Zum P.S.: ja, wenn Sie die Geschwindigkeit brauchen.

von senex24 (Gast)


Lesenswert?

"The N variable represents the number of steps in dual-slope operation." 
Im wörtlichen Sinne ist das richtig.
"The value of N equals to the TOP value." Das ist falsch.

Etwas weiter oben steht ja: "The dual-slope operation has lower maximum 
operation frequency than single-slope operation." - Voilà

von Andreas K. (homer5785)


Lesenswert?

Super danke, das wars.
Komisches Datenblatt...

Danke nochmal...

Andi

von senex24 (Gast)


Lesenswert?

Wobei ich mich jetzt, in der Rückschau, frage, ob Ihnen single-slope 
nicht reicht; wenn Sie nur OCR1C ändern und OCR1A immer halb so groß 
machen, sollten Sie doch immer auf ein Tastverhältnis von 50% kommen 
unabhängig vom Modus, oder?

von Andreas K. (Gast)


Lesenswert?

Ja, das Tastverhältnis war ja auch nicht das Problem, lediglich die 
Frequenz.
Habe es jetzt mit einem anderen Modus probiert und funzt einwandfrei.

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.