mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schnelles PWM mit AVR?


Autor: Radlos > Radab (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich beziehe mich mal auf folgende Angaben: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...

Da steht, wenn ich das richtig verstanden habe, das ein PWM doch einen 
Teiler von 510 bei 8Bit zur CPU-Freq hat, selbst wenn ich über CS10 bis 
12 direkt den Takt ohne Teiler vorgebe, oder?

Das würde doch auch heißen, das ich bei 16MHz Takt doch max 31,372kHz 
(16Mhz/510) erzeugen könnte :(

Bitte sagt mir das ich falsch liege! Ich brauche mind. 125kHz bei 8Bit 
Auflösung. jammer

Autor: PWM (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Tabelle ist 1. nicht für den Fast-PWM Modus und 2. vernachlässigt 
den Prescaler (bzw. nimmt an f_TC1 = f_clk_IO / Prescaler)

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Radlos > Radab schrieb:
> . 125kHz bei 8Bit
> Auflösung

Nimm einen von den schicken neuen AVRs mit PLL. Der Timer wird dann mit 
ca. 64MHz betrieben, dann kommst du auf max. 250kHz PWM-Frequenz.

Autor: Tobi W. (todward)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht ganz!
Wenn ich keinen Denkfehler drin hab, liegt die maximal Frequenz bei
F_CPU / 255 (8bit)
also bei 62,745khz. Mehr ist leider nicht drin.

Grüße
Tobi

PS.: Erzeuge doch das PWM extern über einen Timer ala NE555 oder eben 
vergleichbarem. Der dürfte schnellbenug sein und über den µC stellte das 
dann hat ein.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Radlos > Radab schrieb:
> Bitte sagt mir das ich falsch liege! Ich brauche mind. 125kHz bei 8Bit
> Auflösung. jammer

Nimm einen andern AVR. Die Tiny25/45/85 z.B. können erstmal per PLL auf 
64MHz hoch, um damit dann den Timer für die PWM zu füttern.
Damit ereichst du 250kHz bei 8Bit, oder halt auch 125kHz.

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Radlos > Radab schrieb:
> Das würde doch auch heißen, das ich bei 16MHz Takt doch max 31,372kHz
> (16Mhz/510) erzeugen könnte :(

Mit Fast-PWM würdest du ca. die doppelte Frequenz herausbekommen. Das 
ist aber immer noch zu wenig. Es gibt aber z.B. den ATTiny26, welcher 
intern 64 MHz per PLL erzeugen kann und diese können auf die Timer 
gegeben werden. Damit würdest du im 8-Bit-Modus 250kHz PWM-Frequenz 
erreichen.

Gruß Skriptkiddy

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tobi W. schrieb:
> Wenn ich keinen Denkfehler drin hab, liegt die maximal Frequenz bei
> F_CPU / 255 (8bit)

Den hast du ;)
F_CPU / 256 (8 bit).

Der Sprung von 0xFF zurück auf 0 kostet auch einen Takt ;)

Autor: Vlad Tepesch (vlad_tepesch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Luk4s K. schrieb:
> Nimm einen von den schicken neuen AVRs mit PLL. Der Timer wird dann mit
> ca. 64MHz betrieben, dann kommst du auf max. 250kHz PWM-Frequenz.

welche sind das denn?
das waren doch entweder 8pinner oder Typen die man kaum bekommt.

Autor: Tobi W. (todward)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Εrnst B✶ schrieb:
> Der Sprung von 0xFF zurück auf 0 kostet auch einen Takt ;)

Stimmt... ritzen geh ;)
Würde jez den Braten aber auch net fett machen, da ja fast die hälfte 
fehlt...

Εrnst B✶ schrieb:
> Nimm einen andern AVR. Die Tiny25/45/85 z.B. können erstmal per PLL auf
> 64MHz hoch,

Huch... Da muss ich wohl geschlafen haben als die das erzählt haben xD 
Wusste ich gar nicht!

Gruß
Tobi

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vlad Tepesch schrieb:
> Luk4s K. schrieb:
>> Nimm einen von den schicken neuen AVRs mit PLL. Der Timer wird dann mit
>> ca. 64MHz betrieben, dann kommst du auf max. 250kHz PWM-Frequenz.
>
> welche sind das denn?
> das waren doch entweder 8pinner oder Typen die man kaum bekommt.

Εrnst B✶ schrieb:
> [...] Die Tiny25/45/85 z.B. [...]

Autor: Radlos > Radab (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmpf

wie sieht es eigentlich mit dem Takt aus? Wenn ich einen ATtiny48-20 
nehmen würde, kann ich den durch die interne RC-Schaltung auf die max. 
PWM Freq bringen? Ein Quarz/Oszillator würde ich nicht unbedingt 
spendieren wollen...

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Radlos > Radab schrieb:
> ATtiny48-20

Der Hat keine PLL.
Mit dem 25/45/85 und 8MHz RC-Oszillator kommst du mit der PLL auf die 
64MHz Timer-Frequenz, damit auf 250kHz PWM. Siehe Datenblatt, S.24.

Autor: Radlos > Radab (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
War ein Tippfehler! es ist wirklich ein 45!!!

Super, dann kann ich ja sogar einen ATtiny45-10 oder einen ATtiny45-20 
nehmen :)

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man mehr als 8 Pins braucht; der Tiny461 und 261 (bzw. der alter 
Vorgänger Tiny26) hat auch den Internen PLL und hat 20 Pins.

Bei der Länger der Periode reichen 255 Zyklen um auf 256 verschiedene 
Zustände zu kommen. Das ist aber eher ein minimaler Unterschied.

Autor: Rubelus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Radlos > Radab schrieb:
> ATtiny45-20

Sollte es schon sein ;)

Wer spricht denn hier was von 256Khz?! Der Tiny schafft so sogar 500khz 
im FastModus ;)

Und wenn du den TinyX5 im PLL Modus mit 64Mhz fahren willst kommt er 
automatisch in den Tiny15 Mode - sprich du hast für deinen µC an sich 
nur noch 1,6 Mhz Takt zu Verfügung.

Autor: Rubelus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:


Der Tiny schafft sogar ohne PLL im normalen Timer1 PWM eine 250Khz PWM 
Freq mit 8Bit Auflösung und eine 500Khz Freq mit 7Bit Auflösung im Asnyc 
Modus...

Siehe Datenblatt Seite 91 / Tabelle 12-3

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

ATtiny261/461/861 und ATtiny15L haben ebenfalls eine PLL.

>Der Tiny schafft sogar ohne PLL im normalen Timer1 PWM eine 250Khz PWM
>Freq mit 8Bit Auflösung und eine 500Khz Freq mit 7Bit Auflösung im Asnyc
>Modus...

Bei mir sind 250kHz x 256 oder 500kHz x 128 immer noch 64MHz.

MfG Spess

Autor: Rubelus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Spess53 schrieb:
> Bei mir sind 250kHz x 256 oder 500kHz x 128 immer noch 64MHz.

Oha... jep... in der Zeile verrutscht :D Und ich schreib auch noch Asnyc 
Mode -.-

"To set Timer/Counter1 in asynchronous mode first enable PLL and then 
wait 100 μs for PLL to
stabilize. Next, poll the PLOCK bit until it is set and then set the 
PCKE bit."

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.