www.mikrocontroller.net

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


Autor: ulli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ulli (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

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.