Forum: Mikrocontroller und Digitale Elektronik Frage zum "Phase Correct PWM" Modus


von Micha S. (e-tec)


Lesenswert?

Hallo zusammen,

möchte mit dem Attiny2313 einen Lüfter steuern, kurze Frage zum Phase 
correct modus:
Top ist definiert mit ORC0A wenn WGM2:0 = 5.
was löst mir dann jetzt den output compare match aus? normal macht das 
ja OCR0A...

viele Grüße

von Rakete (Gast)


Lesenswert?

rtfm

von Micha S. (e-tec)


Lesenswert?

rtfm...? ah okay... sorry das manual schweigt sich darüber ein wenig 
aus.

von Micha S. (e-tec)


Lesenswert?

niemand mehr ne idee...?

von Spess53 (Gast)


Lesenswert?

Hi

>niemand mehr ne idee...?

Welche Register bleiben denn noch übrig?

Und wozu braucht man bei einem Lüfter Phase Correct PWM? Da reicht Fast 
PWM.

MfG Spess

von Micha S. (e-tec)


Lesenswert?

OCR0B wäre noch übrig... ja bei nem lüfter reicht das schon aber ich 
glaub ich hab dir letztens schon erzählt wie die gesamte regelung 
aufgebautr werden soll (selbstermittelnder regler usw)

von Spess53 (Gast)


Lesenswert?

Hi

>OCR0B wäre noch übrig...

Bingo.

>glaub ich hab dir letztens schon erzählt wie die gesamte regelung
>aufgebautr werden soll (selbstermittelnder regler usw)

Sollte ich mir das merken?

MfG Spess

von micha (Gast)


Lesenswert?

ne solltest nicht :)
sicher das ocr0b dann richtig ist?
also geht die phase correct pwm nur auf dem ocr0a pin im modus 5?

von spess53 (Gast)


Lesenswert?

Hi

Mode 5: Top             = OCR0A
        Compareregister = OCR0B

Brauchst eigentlich eine variablen Top-Wert? Du engst damit (wenn < $FF) 
auch die Auflösung ein.

MfG Spess

von Karl H. (kbuchegg)


Lesenswert?

micha schrieb:
> ne solltest nicht :)
> sicher das ocr0b dann richtig ist?

Nein.
Bei einer Phase Correct PWM wird das PORTB Register umfunktioniert, so 
dass es in Zusammenhang mit dem ADCSRA Register eine zusätzliche PWM am 
Reset Pin des Tiny erzeugen kann, die man durch FUse freischalten kann.
Das hat Atmel extra für einen gewissen 'micha' eingebaut, weil der sich 
nicht vorstellen kann, dass man auch mit dem OCR0B eine PWM erzeugen 
kann.


Natürlich ist das richtig.
OCR0A und OCR0B unterscheiden sich in nichts. Beide können exakt für 
dasselbe benutzt werden. Wenn also in einem bestimmten Modus OCR0A für 
eine Sonderaufgabe benutzt wird, wie zb den TOP Wert für eine PWM 
festzulegen, dann bleibt immer noch OCR0B übrig um damit die PWM zu 
erzeugen.

> also geht die phase correct pwm nur auf dem ocr0a pin im modus 5?

Was soll der Quatsch.
Gerade waren wir uns noch einig, dass die PWM über OCR0B erzeugt wird, 
weil OCR0A in diesem Modus als TOP Wert fungiert und daher als 
Match-Geber für die PWM ausfällt.

von micha (Gast)


Lesenswert?

das ist klar, aber bei top = 0xff beträgt die auflösung 510 tics, wenn 
ich die frequenz verdopple heißt sind das immerhin noch 205 tics, das 
reicht meiner ansicht nach dicke :)
ja sollte variabel bleiben, das hat den sinn das das ganze dann bald mal 
weitergeführt und soll auf eine eingehende pwm die mit dem icp gemessen 
wird, zum mittelpunkt aufsynchronisiert werden.

von micha (Gast)


Lesenswert?

sorry ghab die register vertauscht ;)
ich meinte es ja so, ocr0a als top und das b register für das 
tastverhältnis.

danke atmel^^

von spess53 (Gast)


Lesenswert?

Hi

>ja sollte variabel bleiben, das hat den sinn das das ganze dann bald mal
>weitergeführt und soll auf eine eingehende pwm die mit dem icp gemessen
>wird, zum mittelpunkt aufsynchronisiert werden.

Dann hoffe ich, das dein Verständnis für Regelungen grösser als das für 
AVRs ist.

MfG Spess

von micha (Gast)


Lesenswert?

danke ja das ist es :)) haben früher immer mit dem 8051 gearbeitet, da 
war grad das thema pwm ein wenig einfacher. aber im endeffekt ist es 
nicht viel anders, man muss nur lernen welches register für was 
zuständig ist in welchem modus, ich finde ich komme gut voran dafür das 
ich ein absoluter avr nub bin :))

von micha (Gast)


Lesenswert?

sehr schön leute, herzlichen dank alles funktioniert so wie es soll :)

von Karl H. (kbuchegg)


Lesenswert?

schön zu hören.

(und verzeih den manchmal etwas rauhen Ton hier)

von micha (Gast)


Lesenswert?

ach das ist okay, bin ja so gesehen selber schuld da ich manchmal mehr 
als nur verplant bin :))

von micha (Gast)


Lesenswert?

@ kbuchegg:

eine frage hätte ich allerdings noch:
wenn ich im modus 5 eine pwm erzeuge geht das nur am oc0a pin oder?
oc0b ist in dem fall inaktiv, richtig? oder kann ich ihn über die beiden 
com0b ebenfalls mit der gleichen pwm füttern?

von spess53 (Gast)


Lesenswert?

Hi

>eine frage hätte ich allerdings noch:
>wenn ich im modus 5 eine pwm erzeuge geht das nur am oc0a pin oder?
>oc0b ist in dem fall inaktiv, richtig? oder kann ich ihn über die beiden
>com0b ebenfalls mit der gleichen pwm füttern?

Beitrag "Re: Frage zum "Phase Correct PWM" Modus"

Ausgang ist OC0B . OCR0A ist als Topwert vergeben!

MfG Spess

von micha (Gast)


Lesenswert?

DAMN
der ist bereits belegt... :(
naja werd es wohl irgendiwe umbauen

von Karl H. (kbuchegg)


Lesenswert?

micha schrieb:

> war grad das thema pwm ein wenig einfacher. aber im endeffekt ist es
> nicht viel anders, man muss nur lernen welches register für was
> zuständig ist in welchem modus,

Ganz genau.
Und weil diese Info wichtig ist, hat sie Atmel im Datenblatt bei jedem 
Timer in einer Tabelle zusammengefasst:
  Waveform Generation Mode Bit Description

Die findet sich bei jedem Timer immer im Datenblatt Abschnitt des 
Timers, Subkapitel "Register Description". Normalerweise ist das immer 
das letzte Subkapitel in der jeweiligen Timerdescription.

Wenn in einem Modus, ein Register die Rolle des TOP Wertes übernimmt, 
dann ist es dort jeweils beim Modus vermerkt.

Alle anderen Register dieses Timers behalten ihre volle Funktion! Warum 
sollen die auch nicht weiter arbeiten wie bisher? Die Elektronik, die 
nach jedem Timerincrement den Inhalt von OCR0B mit dem aktuellen 
Timerwert vergleicht und bei Übereinstimmung eine Aktion auslöst, hängt 
ja nicht davon ab, wer jetzt gerade den TOP Wert des Timers vorgibt. Und 
um mehr geht es ja im Grunde bei einer PWM nicht auf Hardwareebene: 
laufendes vergleichen des Timerwertes mit einem Register und auslösen 
einer Aktion bei Übereinstimmung. Ist die Aktion bei einem Compare-Match 
dieses Compare-Registers zufällig das Umschalten eines Outputpins, dann 
kommt eben an diesem Pin eine Hardware-PWM raus.

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.