Forum: Mikrocontroller und Digitale Elektronik AVR ATmega1280 hat wirklich 16 PWM-Kanäle


von ulli (Gast)


Lesenswert?

Hallo,
bin leider Anfänger bei AVR Prozessoren. Habe bisher nur 8051er 
programmiert.
Jetzt brauche ich 12 unabhängige PWM-Kanäle mit einer Auflösung von 
12Bit und dies gibt es nicht für 8051er. Der 8051 ist auch zu langsam 
und hat nicht genug Speicher für meine Applikation.

Verstehe ich es richtig, dass der ATMega1280 maximal 16PWM Kanäle hat? 
Hat jemand eine ähnliche Aufgabenstellung schon mal gelöst und hat ein 
Stück Quellcode für mich? Software PWM scheidet aus weil ich sehr 
schnell reagieren muss und auch noch einiges anderes mit dem Controller 
machen muss. PWM geht also nur im Hintergrund ohne den Prozessor zu 
belasten.

Bin für jede Antwort dankbar.
 Ulli

von Peter D. (peda)


Lesenswert?

ulli wrote:

> Jetzt brauche ich 12 unabhängige PWM-Kanäle mit einer Auflösung von
> 12Bit und dies gibt es nicht für 8051er.

Dann machs einfach in Software mit einem Timerinterrupt.

> Der 8051 ist auch zu langsam
> und hat nicht genug Speicher für meine Applikation.

Hä???

Silabs C8051F120:

100MIPS
128kB Flash
8kB SRAM

Wo ist da was zuwenig?

Ich denke allerdings, daß Dir ein wesentlich kleinerer 8051 reichen 
sollte.
Wenn Du mal genauer beschreibst, was Du brauchst.


Peter

von ulli (Gast)


Lesenswert?

Ok nehme alles zurück wg. zu langsam. War wohl ein bischen zu sehr auf 
die 8051 von Atmel fixiert. Realisierung mit Timer geht leider nicht 
weil zu viel Rechenpower weggeht. Periodendauer bei der PWM sollte bei 
256mikro Sekunden liegen.
Die Applikation ist recht komplex. Auf jeden Fall muss ich auf jeden 
Takt von einem Drehimpulsgeber reagieren (max. Frequenz ca. 15kHz) und 
dann noch einiges Anderes machen.

Danke für den Hinweis mit dem schnellen 8051.

von Peter D. (peda)


Lesenswert?

ulli wrote:

> Realisierung mit Timer geht leider nicht
> weil zu viel Rechenpower weggeht.

Wie hast Du das festgestellt?


> Periodendauer bei der PWM sollte bei
> 256mikro Sekunden liegen.

Ja, das geht nur mit HW-PWM, bei 12Bit sind das ja 16MHz Taktfrequenz.
Warum so hoch?


> Die Applikation ist recht komplex.

Das tut nichts zur Sache, hat nur Einfluß auf die Programmgröße (Flash).
Die CPU-Last hängt davon ab, wieviel Peak-Power im Worst Case benötigt 
wird (nicht, wieviel man durch nicht eilige Prozesse vergeudet).


> Auf jeden Fall muss ich auf jeden
> Takt von einem Drehimpulsgeber reagieren (max. Frequenz ca. 15kHz) und
> dann noch einiges Anderes machen.

Dann sind die Interruptprioritäten des 8051 von großem Vorteil. Man kann 
sie den Prozessen ganz bequem nach Wichtigkeit zuweisen und schon 
behindern sie sich nicht mehr gegenseitig.


Peter

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.