Forum: Mikrocontroller und Digitale Elektronik ATtiny 261 - PWM-Modes


von Stefan (Gast)


Lesenswert?

Hallo...

ich versuche mich jetzt schon eine Weile in die PWM-Erzeugung mittels 
ATtiny261 einzulesen und bin schier erschlagen. Ich sehe mittlerweile 
den Wald vor lauter Bäumen nicht mehr und suche daher jemanden, der mich 
mal kurz an die Hand nimmt ;)

Ist es möglich, mit dem Timer(1) eine Frequenz zwischen 400KHz und 
500KHz, bei einem möglichst frei einstellbarem Puls-Pausenverhältnis 
(20%-80%)zu erzeugen, ohne (!) zwischen jeder Flanke ein 
Output-Compare-Register umzuschreiben - also vollständig freilaufend ?!
Der Tiny sollte nach Möglichkeit mit seinem internen RC-Oszillator 
laufen - gern die vollen 8MHz.

Ich wünschte, ich hätte mich damals mit AVR/PWM befasst, als die 
Angelegenheit noch überschaubar und nicht so komplex war :-\


Gruß, Stefan


---

von Johannes M. (johnny-m)


Lesenswert?

8 MHz / 500 kHz = 16. Du hättest also maximal 16 Schritte bei der 
höheren Frequenz über den gesamten Bereich von 0-100% zur Verfügung. Ich 
sehe zwar nicht, warum Du meinst, ständig irgendein Compare-Register 
ändern zu müssen (außer natürich, wenn Frequenz und/oder Tastverhältnis 
geändert werden müssen, aber das sollte eigentlich klar sein), aber mit 
ner gescheiten Auflösung wird das bei den Frequenzen nichts. Ich 
erinnere mich zwar, dass es zumindest mal AVRs mit sog. High Speed PWM 
gab, der Tiny261 hat das aber afaik nicht.

von Andreas K. (a-k)


Lesenswert?

Die TinyX61 haben einen solchen High Speed Timer.

von Johannes M. (johnny-m)


Lesenswert?

Andreas Kaiser wrote:
> Die TinyX61 haben einen solchen High Speed Timer.
Ah, ja, hab grad nachgeschaut. Damit könnte es gehen.

Aber nach wie vor muss man selbstverständlich bei einer Änderung von 
Tastverhältnis und Frequenz die entsprechenden Register ändern. Anders 
gehts nunmal nicht. Einmal eingestellt sollte das ganze aber 
"freilaufend" arbeiten.

von Stefan (Gast)


Lesenswert?

Der Tiny261 unterstützt Fast PWM mit 64 oder 32 MHZ.

Also leider habe ich eben erst an das AVR-Tutorial gedacht -Schande über 
mich- und das war sogar recht hilfreich.

Ich war irritiert, weil im Datenblatt etwas steht, nachdem OC1A beim 
hochzählenden Compare gesetzt und beim runterzählenden Compare gelöscht 
wird...

Also, wenn ich das richtig verstanden habe, müsste ich für die 
Einstellung der absoluten Frequenz, den oberen Überlauf und für die 
Einstellung des Puls-Pausenverhältnisses den Comparewert vorgeben können 
!?

Ist aber wohl nicht möglich, oder ?

von spess53 (Gast)


Lesenswert?

Hi

Du kannst den Timer mit der internen PLL mit 64 oder 32 MHz laufen 
lassen.
Bei einem 8-Bit Timer und einem Top-Value von 128 kannst du eine 500KHz 
PWM mit 128 Stufen erzeugen.

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

Ich muss mich korregieren: Der Top Wert muss $7F(127) sein.

MfG Spess

von Stefan (Gast)


Lesenswert?

Jetzt wird's langsam klarer - Den Wert für Top, also den oberen Überlauf 
kann ich in OCR1C vorgeben und definiere damit die Frequenz. Durch die 
Definition des PWM-Wertes, das Puls-Pausenverhältnis - Ich stochere dann 
mal ein wenig in den Registern, wenn die Platine kommt ;)

Vielen Dank erst mal...

von Atmega8 A. (atmega8) Benutzerseite


Lesenswert?

@ Stefan
250kHz ist das Maximum bei 8 bit und 64MHz.

Was willst du damit machen?

von Johannes M. (johnny-m)


Lesenswert?

Atmega8 Atmega8 wrote:
> @ Stefan
> 250kHz ist das Maximum bei 8 bit und 64MHz.
Wer sagt denn, dass er die 8 Bit nehmen muss? Spess hat doch schon den 
Ansatz geliefert. Wenn er in OCR1C 0x7F reinschreibt, dann hat er 500 
kHz.

von Atmega8 A. (atmega8) Benutzerseite


Lesenswert?

@ Johannes M.
Das stimmt ja, aber für mich sind 8 bit eine akzeptable Auflösung.
Es kommt jetzt drauf an was er damit vor hat.(würde das gern mal wissen)

von Stefan (Gast)


Lesenswert?

IR-Dioden ansteuern - da reicht es mir völlig, ein Puls- 
Pausenverhältnis von ~20% grob einzustellen...


Vielen Dank noch einmal ;)

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.