www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 16Bit PWM Frequenz?


Autor: Chrislight (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen...
Ich habe folgende Initialisationsroutine für meinen 16Bit PWM erstellt 
ich will zwei verschiedene Kanäle mit der gleichen PWM_Einstellung 
benutzen...
Nun habe ich bei meinem ATMega64 einen externen 8Mhz Quarz angebracht zu 
meiner ersten Frage wieso erhalte ich bei einem Prescaler von 1 nur eine 
Frequenz von 8kHz und nicht die 8Mhz des Quarzes
ICR1 = 0xFFFF;                    //Maximaler PWM-Zählerwert
TCCR1A  = (1<<WGM11)|(0<<WGM10);   //PWM, Phase Correct, 16Bit 
TCCR1B  = (1<<WGM13)|(0<<WGM12);

TCCR1A |= (1<<COM1A1)|(1<<COM1B1);   //PWM Waveform  
TCCR1B = (1<<CS10)|(0<<CS11)|(0<<CS12); //Prescaler 1
Wenn ich das ganze richtig verstehte so kann ich doch nun die OCR1A und 
OCR1B register mit einem Wert zwischen 0 und 65535 füllen und somit das 
Impuls/Pausen Verhältnis ändern. Wenn ich jedoch meinen PWM Ausgang mit 
einem Oszilloskop betrachte, so habe ich bereits bei etwa 510 das 
maximum von konstant 5V am Ausgang erreicht wieso das? Das maximum 
sollte doch erst bei 65535 erreicht werden...
Besten Dank für eure Anregungen Chrislight

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine zweite Zuweisung auf TCCR1B löscht das WGM13-Bit wieder.  Damit
landest du im Mode 2, und das ist ein 9-Bit-PWM.

Tu dir einen Gefallen, und schreib die komplette Initialisierung
aller Bits eines Registers jeweils in eine Zuweisung.

Autor: Chrislight (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besten Dank für deinen Tipp nun Funktioniert der PWM bestens nur die 
Frequenz stimmt noch nicht was mache ich noch falsch? Hängt das 
irgendwie mit dem ICR Register zusammen? beim 10Bit hatte ich noch 7kHz 
jetzt mit der Korrektur habe ich nur noch c.a. 60Hz.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chrislight wrote:
> Besten Dank für deinen Tipp nun Funktioniert der PWM bestens nur die
> Frequenz stimmt noch nicht was mache ich noch falsch? Hängt das
> irgendwie mit dem ICR Register zusammen? beim 10Bit hatte ich noch 7kHz
> jetzt mit der Korrektur habe ich nur noch c.a. 60Hz.

Was erwartest du?
Der Timer muss ja auch noch zählen.

Mit Prescaler 1 zählt dein Timer mit 8Mhz.
Bei einer 10 Bit PWM muss der Timer jedesmal bis 1024 (10-Bit)
zählen, ehe ein PWM Zyklus zu Ende ist.

8000000 / 1024 = 7812.5 Hz

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das passt doch ganz gut.  Die Formel im Datenblatt sagt:

Wenn man einsetzt

dann komme ich auf

Autor: Chrislight (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okey besten Dank jetzt verstehe ich auch wieso 1Mhz PWM's nicht möglich 
sind... Super erklärung besten Dank!!

Autor: Axel R. (axelr) Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, probier' mal nen Tiny861 oä. Die haben die Mglkt. den Timer mit 
64Mhz über die interne PLL laufen zu lassen.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chrislight wrote:

> Okey besten Dank jetzt verstehe ich auch wieso 1Mhz PWM's nicht möglich
> sind...

Möglich schon, aber du hast (bei 8 MHz CPU-Frequenz) nur noch 8
Abstufungen. ;-)

(Natürlich mal nicht die Tinys mit PLL eingerechnet.)

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.