PIC16F627A: 8-Bit-Timer und 10-Bit-PWM, wie macht er das?

Gast #2356264
Lesenswert?

Hallo Leute,

ich arbeite öfter mit dem PIC16F627A, der wie viele Controller ein 
8-Bit-System ist. Seine PWM aber läuft mit 10 Bit. Klar, die 2 Bit extra 
muss er irgendwo auslagern. Aber wo? Aus dem Datenblatt stammt das Bild, 
was ich in den Anhang gepackt habe.

Meine Frage: "2 bits of the prescaler" ist klar, aber was bitte ist der 
"2-bit internal Q clock"? Ist das der ominöse Grund, warum PICs mit 
F_OSC/4 arbeiten?

Wo kann ich mich weiter informieren?

Gruß
Jens
Angehängte Dateien:
Gast #2356452
Lesenswert?

@holger: Ja, stimmt, aber mich interessiert explizit der Timer2 weil ich 
aus dem Kommentar "Note 1" nicht schlau werde.

gaast schrieb:
> Wie bereits am Bild erwähnt werden für die PWM zusätzliche zwei Bit
> hergenommen und bei einem Timerüberlauf hochgezählt, womit der Timer
> effektiv 10 Bit hat.

Neuer Informationsgehalt: 0,0%.

usuru schrieb:
> Lesen bildet: Datenblatt Page 57 bzw. Page 61, Kap 9.3.2, CCP1CON Bit 5
> und 4

Naja, ich habe das DB ja auszugsweise gelesen, daher ja der Screenie ;-)

Aber genauer lesen solltest du vielleicht auch, denn CCP1CON<5:4> haben 
nichts mit dem Zähler zu tun, darin stehen nur die Duty-Cycle LSBs.

Kap 9.3.2 sagt mir so nichts, da steht was vom internen Referenzsignal, 
was zufällig zwei Bit weit ist. Es geht da nur um Komparatoren. Willst 
du mich erleuchten?

Gruß
Jens
Gast #2356471
Lesenswert?

>@holger: Ja, stimmt, aber mich interessiert explizit der Timer2 weil ich
>aus dem Kommentar "Note 1" nicht schlau werde.

Der stellt nur die PWM Frequenz zur Verfügung.
Das Tastverhältnis stellt er nicht ein.
Gast #2356494
Lesenswert?

Ich glaube nicht, dass das stimmt, ehrlich gesagt. Der Timer2 wird ja 
schon benötigt, um festzustellen, ob der Pin RB3 momentan an oder aus 
sein soll, basierend auf dem Duty-Cycle-Wert, der extern eingestellt 
wird in den CCPR1L und CCP1CON<5:4>-Registern.

Irgendwas muss im PIC von 0..1023 zählen können, und es sieht so aus, 
also ob dies de Timer2 tut mit seiner 2Bit-Erweiterung. Aber was ist 
diese Erweiterung?

Gruß
Jens
Gast #2356501
Lesenswert?

>Ich glaube nicht, dass das stimmt, ehrlich gesagt. Der Timer2 wird ja
>schon benötigt, um festzustellen, ob der Pin RB3 momentan an oder aus
>sein soll, basierend auf dem Duty-Cycle-Wert, der extern eingestellt
>wird in den CCPR1L und CCP1CON<5:4>-Registern.

Timer2 is an 8-bit timer with a prescaler and a
postscaler. It can be used as the PWM time-base for
PWM mode of the CCP module.

Timer2 stellt nur die
PWM Frequenz zur Verfügung. Nichts anderes.
Kein Tastverhältnis, keine ominöse Abfrage von RB3 oder
sonst was.
Gast #2356514
Lesenswert?

holger schrieb:
> Kein Tastverhältnis, keine ominöse Abfrage von RB3 oder
> sonst was.

Das meinte ich auch gar nicht.

Eine PWM läuft doch im Prinzip so, dass ein Timer hochläuft bis 1023 in 
unserem Falle hier und einfach jedes Mal geguckt wird, ob der Timer-Wert 
> DC-Wert. Wenn ja, dann schalte RB3 aus, ansonsten, wenn Timer-Wert <= 
DC-Wert, dann schalte RB3 ein.

Der DC-Wert steht, wie ich oben schon schrieb, in den CCPR1L und 
CCP1CON<5:4>-Registern.

Du hast selbst zitiert

holger schrieb:
> It can be used as the PWM time-base for
> PWM mode of the CCP module.

Das beudetet, dass der Timer2 irgendwann mal sagen können muss: 1020 
oder 557 oder 678. Halt alles über 255. Denn die "timebase" ist genau 
der "Timer-Wert" den ich in meinem obigen Beispiel meinte.

Nimmt der PIC dann einfach den Postscaler dafür?

Gruß
Jens
#2356606
Lesenswert?

Q-Clock ist schon richtig.
Intern laufen pro Befehlszyklus 4 einzelne Schritte ab (Opcode fetch, 
instruction decoding und so weiter). Q-Clock ist dann der 
Oszillator-Takt, der 4 mal so hoch ist wie der Befehls-Takt. Ein 
interner Zähler läuft bei PWM dann mit dem echten Oszillator-Takt um 2 
zusätzliche Bits an Auflösung zu erzielen
#2356673
Lesenswert?

Nix Genaues weiß man nicht.
Dieser "Zähler" ist nur für PWM da und kann sonst nicht ausgelesen oder 
sonstwie per Software manipuliert werden.
Wahrscheinlich stecken irgendwo zwei schnelle Flip-Flops im PIC, die den 
Zähler realisieren, aber das weiß nur Microchip.
Ich würde mir da keine großen Gedanken mehr drüber machen. Wenn du die 
Auflösung bei PWM brauchst, nutze es, sonst einfach ignorieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren