Forum: Mikrocontroller und Digitale Elektronik 3-Phasen PWM mit Atmega324


von C. H. (hedie)


Lesenswert?

Hallo zusammen

Ich möchte mit einem Atmega324 ein 3-Phasen PWM Signal erzeugen.

Leider hat der uC nur 3 Timer wovon zwei jeweils zwei Ausgänge haben und 
der letzte nur einen.

Nun meine Frage, gibt es eine möglichkeit, die Timer0 & 1 miteinander zu 
Synchronisieren? So dass beide gleichzeitig von 0 an hochzählen?

Oder gibt es eine andere Möglichkeit ein Synchroner 3-Phasen PWM zu 
erzeugen?

Das es mittels Software PWM geht, ist mir klar, aber eine Hardwarelösung 
wäre mir lieber...

Danke schonmal

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Claudio Hediger schrieb:
> Nun meine Frage, gibt es eine möglichkeit, die Timer0 & 1 miteinander zu
> Synchronisieren? So dass beide gleichzeitig von 0 an hochzählen?

Ja, das geht. Man kann sie gezielt stoppen, zurücksetzen und starten.

von Alex S. (thor368)


Lesenswert?

Tach Claudio,

wie Markus schon sagte: Yes, you can! Beide timer gleich einstellen und 
dem zweiten Zählerregister einen Startwert etwas größer als 0 geben. Du 
musst nämlich die Zeit mit einrechnen, die du brauchst um den einen 
timer nach dem anderen zu starten.

Du musst halt nur jedes mal, wenn du an der timer Konfiguration was 
veränderst, aufpassen, dass dir die timer nicht asynchron werden.

Thor

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Alex S. schrieb:
> wie Markus schon sagte: Yes, you can! Beide timer gleich einstellen und
> dem zweiten Zählerregister einen Startwert etwas größer als 0 geben. Du
> musst nämlich die Zeit mit einrechnen, die du brauchst um den einen
> timer nach dem anderen zu starten.

Stimmt, sollte gehen, man muss aber gut aufpassen.
Leichter ist es vermutlich per GTCCR, getestet hab ich es selbst aber 
noch nicht. Siehe Datenblatt des ATmega324A, Kapitel "17.11.9 GTCCR – 
General Timer/Counter Control Register".

Ich nehm an, es geht um den ATmega324A und nicht um den ATmega324 – den 
ohne A finde ich nämlich nicht bei Atmel...

von Alex S. (thor368)


Lesenswert?

@Markus
Mhh, netter Trick. Kannte ich noch gar nicht. Der geht offenbar bei 
allen neueren AVRs.

Thor

von Hansdampf (Gast)


Lesenswert?

Nehm liber gleich einen Rechner der das per HW macht und dazu billiger 
ist:

Renesas RL78 (am billigsten)
ST STM8
ST STM32
diverse Microchip

haben alles bessere Peripherie und sind dazu noch billiger als der ATMEL

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Hansdampf schrieb:
> Nehm liber gleich einen Rechner der das per HW macht und dazu billiger
> ist:
>
> Renesas RL78 (am billigsten)
> ST STM8
> ST STM32
> diverse Microchip
>
> haben alles bessere Peripherie und sind dazu noch billiger als der ATMEL

Versteh dich grad nicht. Der genannte AVR macht das doch per Hardware, 
und günstig ist er auch.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

AVR447 beschreibt, wie man 3 Timer im ATMega 48/88/168 synchronisieren 
kann, falls die GTCCR Features nicht vorhanden sind. Die 3-Phasen PWM 
ist dann sehr brauchbar und braucht keinerlei externe Hardware. Habe 
hier gerade einen kleinen (700-1000 Watt) FU programmiert, den ich evtl. 
mal in einem Artikel vorstelle, wenn die GUI fertig ist. Der 
angeschlossene Motor jedenfalls schnurrt schon wie ein Kätzchen :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.