mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 4xPWM (unabhängige) mit ATMEGA32?


Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich brauche für eine Motor(en)-Steuerung 4 unabhängig einstellbare PWM 
Signale. Leider dachte ich, dass der ATMEGA32 mit 4PWM Kanälen diese 
Aufgabe meistern würde. Jedoch habe ich, leider nachdem ich ihn gekauft 
habe, feststellen müssen, dass man zwei 8-Bit Timer (den 16 Bit Timer 
lasse ich außer Acht) mit jeweils nur einem "Output Compare Register" 
hat. Dieses sagt, wann von der Positiven auf die Negative Flanke (auch 
umgekehrt) umgeschaltet wird.
Also mit anderen Worten kann ich hier wohl nur 2 unabhängige 8-Bit PWM 
Kanäle realisieren.
Natürlich könnte ich jetzt noch den 16-Bit Timer benutzen, der zwei 
OCR's hat. Jedoch lässt sich wegen der Mischung aus 8 und 16 Bit Timern 
kein vernünftig untereinander abgestimmtes PWM Singal erzeugen.

Meine Frage ist nun, ob ich falsch liege und vielleicht doch vier 8-Bit 
PWM's mit dem ATMEGA32 erzeugen kann oder ob ich hier 7€ in den Sand 
gesetzt habe.
Von dem ATMEGA168 weiß ich mittlerweile, dass er zwei 8-Bit Timer hat 
plus jeweils zwei OCR'S, was dann vier PWM's macht. Gibt es noch weitere 
AVR µC die die geforderte Aufgabe beherrschen?

Autor: Manos (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Abhängig von der Auflösung und der Frequenz der PWM-Signale kannst Du 
auch 30 PWM-Kanäle realisieren...

Timer - Interrupt - Vergleich - Port setzen - auf nächsten Interrupt 
warten oder weiter im Programm

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

Bewertung
0 lesenswert
nicht lesenswert
Stichwort Soft-PWM. Da kommste allerdings nicht besonders hoch, was die 
Frequenz angeht. Abgesehen davon kann man (wenn man damit sonst nichts 
vorhat) den Timer 1 genau wie die beiden anderen Timer mit einer 
8-Bit-PWM betreiben. Das wären dann noch mal 2 8-Bit-Kanäle. Wo liegt 
das Problem? Auch die Synchronisierung sollte machbar sein (da sehe ich 
eher bei Timer 2 das größere Problem, weil der einen eigenen Prescaler 
hat).

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit welcher Frequenz arbeitet der Timer überhaupt (ohne Vorteilung)? 
Eventuell reicht die Frequenz von ihm aus um ein 4-Kanal Soft-PWM zu 
erzeugen. Wobei die PWM Frequenz nicht mehr im hörbaren Bereich liegen 
sollte.

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Abgesehen davon kann man (wenn man damit sonst nichts
vorhat) den Timer 1 genau wie die beiden anderen Timer mit einer
8-Bit-PWM betreiben. Das wären dann noch mal 2 8-Bit-Kanäle. Wo liegt
das Problem?" (Johannes M.)

Ja, dass ist schon richtig, dass insgesamt 4 unabhängige PWM Signale 
erzeugbar sind. Jedoch muss ich bei dem 16 bit Timer, was die 
Wertübergabe anbelangt, immer umrechnen. Das führt natürlich zu Fehlern, 
die eventuell (das muss ich erst testen) nicht akzeptierbar sind. 
Außerdem ist es nicht wirklich elegant einen Mischmasch aus 8 und 16 Bit 
Timern zu produzieren. Ich persönlich weiß nicht, was die Folgen bzw. 
Probleme davon sind und versuche dem erstmal aus dem Weg zu gehen (falls 
es mit Soft PWM nicht klappen sollte).

Autor: Ralph (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist wieder ein typischer Fall von "vorher nicht genug nachgedacht"

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Franz (Gast)

>Mit welcher Frequenz arbeitet der Timer überhaupt (ohne Vorteilung)?

Oszillatortakt.

>Ja, dass ist schon richtig, dass insgesamt 4 unabhängige PWM Signale
>erzeugbar sind. Jedoch muss ich bei dem 16 bit Timer, was die
>Wertübergabe anbelangt, immer umrechnen. Das führt natürlich zu Fehlern,

???
Was gibt es da gross umzurechnen. Du den 16 Bit Timer auch als 8 Bit PWM 
konfigurieren. Fertig.

>Außerdem ist es nicht wirklich elegant einen Mischmasch aus 8 und 16 Bit
>Timern zu produzieren. Ich persönlich weiß nicht, was die Folgen bzw.

Käse.

MfG
Falk

Autor: Franz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab's gefunden...
In dem 16-Bit Timer Counter Control Register (TCCR1A/B) kann man mit 
Hilfe von WGM12, WGM11 und WGM10 ein 8-Bit PWM einstellen.
Danke für die konstruktiven Vorschläge ;)

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.