ATtiny 261 - PWM-Modes

Gast #743227
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


---
#743230
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.
#743238
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.
Gast #743242
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 ?
Gast #743243
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
Gast #743255
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...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.