Fragen zu PWMs im ATmega128

OP #1086300
Hallo,

ich moechte 8 Kanaele von PWMs mit einem ATmega128 realisieren.
Ganz schnell habe ich das Handbuch vom ATmega128 gelesen, aber trotzdem 
konnte   ich keine Entscheidung treffen.

Frage 1: Koennen alle PWMs mit einem einzigen Quarz realisiert werden? 
Da ich gelesen habe, gibt es noch spezielle Oszillatoren fuer PWMs 
(TOSC) ausser Quarz.

Frage 2: Alle PWMs sollen eine Periode von 20ms (50Hz) haben. Nach der 
Formel
"fPWM = fclk_I/O/(N*256)" muss ein Quarz mit einer komischen 
Taktfrequenz eingesetzt werden, wie z.B. 13,1MHz (N = 1024). Gibt es 
Moeglichkeiten mit 16 MHz?

Gruss
Senmeis
Gast
PWM braucht keinen Quarz, aber der ATMEGA braucht einen.

Die PWM-Frequenz kannst du mit den entsprechenden Registern des ATmega 
einstellen. In deiner Formel steht das N für den entsprechenden Wert, 
den du in das Register schreiben musst.
(Firma: TravelRec.) Persönliche Seite
Bei 50Hz kannst Du soviele PWMs machen, wie Du willst, und zwar in 
Software. In einer Timer-gesteuerten Interrupt-Service-Routine erhöhst 
Du einen Zähler, der die entsprechende Anzahl an Variablen mit sich 
vergleicht und den betreffenden Portpin setzt (wenn kleiner) oder löscht 
(wenn gleich oder größer). Die Variablengröße entscheidet über die 
Auflösung der PWM. Um die gewünschte Frequenz zu erreichen, kann man 
einen Timer mit dem CTC-Mode betreiben und die Vorteiler entspechend 
einstellen. Das geht mit jeder geraden Quazfrequenz. Nur bei sehr 
schnellen Ausgaben bestimmter Frequenzen sind Quarze mit krummen 
Frequenzen vonnöten.
Gast
>Geht es mit 16MHz für alle 8 Kanäle?

Hat der ATmega128 überhaupt 8 PWM-Kanäle?
Wenn dem so wäre, geht es. Ich bezweifle aber, dass er diese Menge an 
PWM-Kanälen hat.
(Firma: TravelRec.) Persönliche Seite
>Sicher kann man mit Software schaffen, aber ich konzentriere mich
>momentan nur auf Hardware-Realisierung. Geht es mit 16MHz für alle 8
>Kanäle?

Damit blockierst Du Dir alle Timer und kannst das ungerade Teilen über 
den CTC-Modus nicht nutzen. Daher brauchst Du in der Tat einen Quarz, 
dessen Frequenz ein binäres Vielfaches von 50 Hz ist. Tu Dir einen 
Gefallen und mach´s in Software. Ist dann auch von der Verdrahtung 
einfacher, weil nicht quer um den Chip verstreut.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 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.