www.mikrocontroller.net

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


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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


---

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die TinyX61 haben einen solchen High Speed Timer.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

MfG Spess

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Atmega8 Atmega8 (atmega8) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Stefan
250kHz ist das Maximum bei 8 bit und 64MHz.

Was willst du damit machen?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Atmega8 Atmega8 (atmega8) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Stefan (Gast)
Datum:

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


Vielen Dank noch einmal ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.