Schnelles PWM mit AVR?

Gast #2005095
Lesenswert?

Hallo Leute,

ich beziehe mich mal auf folgende Angaben: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#PWM_.28Pulsweitenmodulation.29

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
#2005155
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.
#2005161
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
#2005169
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
Gast #2005221
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...
Gast #2005304
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.
Gast #2005384
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.
Gast #2005393
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
Gast #2005430
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
Gast #2005438
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren