Forum: Mikrocontroller und Digitale Elektronik Unterschied zwischen Hardware PWM und Software PWM


von avr user (Gast)


Lesenswert?

Hallo,

was ist den der Unterschied zwischen Hardware PWM und Software PWM ? 
Bzw. braucht man beim Hardware PWM keinen Timer mehr?
Wenn ich in BASCOM die Funktion SERVO verwende, verwende ich dann 
Hardware PWM oder Software PWM???
Wie viele Hardware PWMs hat der ATMEGA 8 bzw. 32 ?

Ich wäre für eine Antwort sehr dankbar!
lg

von Thomas B. (Firma: Druckerei Beste) (virtupic)


Lesenswert?

Hardware PWM ist anders implementiert als Software PWM. Bei HW 
konfigurierst du einfach die Frequenz und gibst den Duty Cycle an. Bei 
SW musst du dich um das gesamte Timing selbst kümmern.

HW benutzt einen eigenen oder reservierten Timer. Sorry, mit ATMEGA 
kenne ich mich nicht aus.

virtuPIC
/ggadgets for tools & toys

von Olaf S. (olaf2001)


Lesenswert?

Viel einfacher.

Bei Software-PWM läuft ein Programm, das den entsprechenden I/O-Port zur 
rechten Zeit auf den richtigen Pegel zieht. Timing ist Sache der 
Software.

Bei Hardware-PWM wird einem internen PWM-Schaltkreis nur noch der nötige 
Satz Parameter eingegeben, den Rest macht der Schaltkreis.

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Olaf Stieleke wrote:

> Bei Software-PWM läuft ein Programm, das den entsprechenden I/O-Port zur
> rechten Zeit auf den richtigen Pegel zieht. Timing ist Sache der
> Software.

Damit verbunden sicher auch ein gewisser Jitter, vor allem wenn noch 
irgendwelche Interrupts im Spiel sind.

von avr user (Gast)


Lesenswert?

aber beim HW PWM hab ich keine software timer der im bestimmten 
intervall in eine routine springt oder?
kann das der atmega32?

von Johannes M. (johnny-m)


Lesenswert?

avr user wrote:
> Hallo,
>
> was ist den der Unterschied zwischen Hardware PWM und Software PWM ?
> Bzw. braucht man beim Hardware PWM keinen Timer mehr?
Doch, gerade da braucht man den Timer, aber eben sonst nichts. 
Hardware-PWM bedeutet, dass ein Timer, der die dafür nötige 
Zusatzhardware besitzt (eine Compare-Einheit) das PWM-Signal komplett 
autark erzeugt, ohne dass die Software eingreifen muss. Die Software 
muss nur den Timer initialisieren und die Parameter gegebenenfalls 
aktualisieren, den Rest macht die Hardware (daher der Name)...

> Wenn ich in BASCOM die Funktion SERVO verwende, verwende ich dann
> Hardware PWM oder Software PWM???
Das muss die BASCOM-Dokumentation hergeben.

> Wie viele Hardware PWMs hat der ATMEGA 8 bzw. 32 ?
Steht im Datenblatt...

@ Thomas Bremer (Firma Druckerei Beste) (virtupic):
Würdest Du vielleicht endlich mal dieses bekloppte
> Airspace V - international hangar flying!
> http://www.airspace-v.com/ggadgets for tools & toys
unterlassen? Das ist hier im Forum bekanntermaßen nicht erwünscht und es 
nervt gewaltig!

von Johannes M. (johnny-m)


Lesenswert?

avr user wrote:
> aber beim HW PWM hab ich keine software timer der im bestimmten
> intervall in eine routine springt oder?
> kann das der atmega32?
Was bitteschön ist ein Software-Timer ? Timer sind Hardware ...

Normalerweise wird eine Soft-PWM dann eingesetzt, wenn die 
Hardware-PWM-Ausgänge des µC nicht ausreichen. Dann wird eben nicht 
direkt vom Timer (ohne Beteiligung der Software) ein Pin umgeschaltet, 
sondern es wird zum entsprechenden Zeitpunkt (z.B. per Interrupt) das 
Umschalten der Pins im Programm erledigt. Der verwendete Timer ist 
i.d.R. in beiden Fällen der selbe. Nur wird eben in einem Fall alles 
per Hardware gemacht (inklusive Setzen bzw. Löschen der Portpins) und im 
anderen Fall muss eben die Software eingreifen.

von Karl H. (kbuchegg)


Lesenswert?

avr user wrote:
> aber beim HW PWM hab ich keine software timer der im bestimmten
> intervall in eine routine springt oder?

Das widerspricht sich.
Eine Hardware PWM wird nun mal mit einem Hardware Timer erzeugt.
Und der ist, wie der Name schon sagt, nun mal kein Software Timer.

Allerdings kannst du dich selbstverständlich mit Interrupt Handlern
an den Hardware Timer anhängen. Da gibt es keinen Unterschied.
Timer ist Timer. PWM bedeutet ja in diesem Zusammenhang nur, dass
der Timer neben seiner üblichen Zählerei auch noch einen
Hardware-Ausgang bedient.

> kann das der atmega32?

Ich formuliere es mal freundlich:
Wie wäre es, wenn du dir bei Atmel mal das Datenblatt besorgst.
Da gibt es einen grossen Abschnitt darüber, was der Timer kann
und wie man das ganze konfiguriert.

Auch wenn dir BASCOM eine Menge Arbeit abnehmen kann, ist das
Studium des Datenblattes noch immer eine wichtige Wissensquelle.

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.