mikrocontroller.net

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


Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Holger

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

Gruesse

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Clemens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.