Forum: Mikrocontroller und Digitale Elektronik Capture Modul in Kombination mit PWM bei PIC16F876A


von Clemens (Gast)


Lesenswert?

Gutes Forum

Bin gerade an meiner Diplomarbeit dran und ein Teil davon besteht darin 
die Frequenz eines Light-to Frequency Converter (Lichtsensor) mit dem 
Capture Modul des PIC16F876A zu messen. Die Taktfrequenz des PIC 
betraegt 4MHz.

Der Frequenzbereich des Lichtsensors betraegt 1- 100Khz.

Das 16 bittige Ergebnis der Frequenzmessung wird dann an das PWM Modul 
weitergegeben an die Variable PR2, welche das Tastverhaeltnis bestimmt.
Die Werte werden mittels Wertetabelle uebergeben, da PR2 nur 8 Bit 
betraegt.

Das Signal des PWM wird danach ueber einen Tiefpass demoduliert um eine 
Spannung von 0-5V zu bekommen.

Momentan sieht es so aus, dass es mir nur moeglich ist Frequenzen von 
1KHz- 10Khz mit dem Capture Modul zu messen, da die anderen Frequenzen 
so schlecht am PWM ankommen, dass sie nicht demodulierbar ist. Der Timer 
des PWM ist ohne Prescaler eingestellt um eine hohe Ausgangsfrequenz zu 
bekommen, welche momentan bei 3,9 KHz im Maximum liegt.

Habe den schlimmen Verdacht, dass es an der Taktfrequenz liegen koennte 
und deshalb nur niedrigere Frequenzen messen kann.


Wuerde mich freuen, wenn jemand eine Idee haette.


Gruesse Clemens

von holger (Gast)


Lesenswert?

>Habe den schlimmen Verdacht, dass es an der Taktfrequenz liegen koennte
>und deshalb nur niedrigere Frequenzen messen kann.

Das ist gut möglich. Wenn der PIC Takt 4MHz ist,
dann läuft er intern mit nur 1MHz. Deine Messung und Ausgabe
müsste also bei 100kHz in 10 CPU Clocks fertig sein

von Clemens (Gast)


Lesenswert?

Hallo Holger

Danke dir fuer die schnelle Antwort auf meine Frage.Nun glaube ich auch, 
dass es an der Taktfrequenz liegen koennt.

Gruesse

von holger (Gast)


Lesenswert?

>Das 16 bittige Ergebnis der Frequenzmessung wird dann an das PWM Modul
>weitergegeben an die Variable PR2, welche das Tastverhaeltnis bestimmt.

Öhm, Moment mal. PR2 bestimmt die PWM Frequenz und nicht das
Tastverhältnis.

1. Set the PWM period by writing to the PR2
register.
2. Set the PWM duty cycle by writing to the
CCPR1L register and CCP1CON<5:4> bits.

Irgendwie kam mir das gleich so komisch vor.
Das mit der Frequenzmessung und Ausgabe per PWM
sollte eigentlich auch funktionieren. Die PWM
muss ja nicht nach jeder Periode der 100kHz
upgedatet werden.

von Clemens (Gast)


Lesenswert?

Hallo Holger

Ich stelle indirekt das Tastverhaeltnis ueber PR2 ein da:

Tastverhaeltnis = CCPR1L / PR2

Somit kann ich das Tastverhaeltnis durch Aenderung von PR2 beeinflussen.
Werde nun einen Frequenzteiler benutzen um das Problem zu loesen.


Gruesse

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.