Capture Modul in Kombination mit PWM bei PIC16F876A

Gast #1374747
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
Gast #1374754
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
Gast #1374807
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.
Gast #1374850
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

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