www.mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik FrequenzspannungWandler


Autor: Mathe Fan (bob37)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jungs,

ich bin anfänger in bereich Microcontroller-Programmierung.
ich möchte ein Frequenz/Spannung Wandler mit dem Microcontroller 
ATmega8535 in AVR Studio mit C programmieren. Am Eingang ist ein 
Rechtecksignal (Frequenz 0.....4kHz) und am Ausgang soll eine Konstante 
Spannung mittel PWM sein (0.....10V).
Die Frequenz am Eingang ändert sich, d.h. die Frequenz ist proportional 
zur Ausgangspannung.

Meine Idee ist: Das ankommende Signal an den Input Capture Pin ICP1 des 
Controllers anschließen. Nun kann entweder ein Signalwechsel von 0 nach 
1 (steigende Flanke) oder von 1 nach 0 (fallende Flanke) erkannt werden 
und der zu diesem Zeitpunkt aktuelle Zählerstand in ein spezielles 
Register abgelegt werden. Gleichzeitig  kann auch ein entsprechendes 
Interrupt ausgelöst werden. Die Periodendauer ist umgekehrt proportional 
zur Ausgangspannung. im Programm muss noch der Zusammenhang zwischen 
Frequenz und Spannung geschrieben werden.

Problem: ich weiß nicht, wie ich die Periode messen muss,
         in welchem Register meinen Periodenwert liegt,
         wieviele Interrupte Brauche ich dafür und wieso?
         wie kann ich PWM verwenden um meine Spannung analog zu 
bekommen.
Danke.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich bin anfänger in bereich Microcontroller-Programmierung.

Das ist nicht schlimm, schlimmer ist dagegen das du auch Anfaenger in 
Sachen Digital und Analogtechnik bist.

> ich möchte ein Frequenz/Spannung Wandler mit dem Microcontroller
> ATmega8535 in AVR Studio mit C programmieren. Am Eingang ist ein
> Rechtecksignal (Frequenz 0.....3,636kHz)

Ueberleg dir mal was passiert wenn du deinen AVR weglaesst, und dein 
Signal an ein Monoflop mit 275us legst....

Und wenn du unbedingt einen Controller verschwenden willst kannst du das 
ja auch so programmieren.



> Problem: ich weiß nicht, wie ich die Periode messen muss,
>         in welchem Register meinen Periodenwert liegt,
>         wieviele Interrupte Brauche ich dafür und wieso?
>         wie kann ich PWM verwenden um meine Spannung analog zu
>         bekommen.

Ich empfehle ein paar allgemeine Buecher ueber Grundlagen und das 
Datenblatt deines Prozessors.

Olaf

Autor: Mathe Fan (bob37)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Und wenn du unbedingt einen Controller verschwenden willst kannst du das
ja auch so programmieren.

danke aber ich muss es mit Controller programmieren, da ich noch eine 
Steurung erstellen muss.

> Ich empfehle ein paar allgemeine Buecher ueber Grundlagen und das
Datenblatt deines Prozessors.

ich habe alles was man dafür braucht gelesen.

kann mir bitte jemanden helfen??????????????????

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Monoflop zu programmieren kann ja nicht so schwer sein, das ist 
wirklich die einfachste Lösung der Aufgabe. Das ergibt allerdings keine 
PWM mit konstanter Frequenz. Die positive Flanke läßt den Ausgang für 
die genannten 275 µs ( sind die wirklich richtig berechnet - habs nicht 
nachgerechnet) auf high gehen, danach ist er für eine variable Zeit low, 
das ist alles. Das nachflgende Tiefassfilter muß allerdings eine 
ziemlich niedrige Grenzfrequenz haben. Eine echte PWM mit hoher 
Schaltfrequenz ist besser.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Eine echte PWM mit hoher Schaltfrequenz ist besser.

Das ist richtig. Betrifft aber nur die Ausgabe.
Er muss aber dann noch die Frequenz messen.

Wie denn? Als Frequenzaehler? Dann braucht man eine Lange Torzeit um die 
niedrigen Frequenzen erfassen zu koennen. Dann hast du die Zeitkonstante 
die du am Filter bemaengelst dort im System.

Oder Periodendauer? Oder beides und umschaltbar wo es guenstig ist. Da 
wird ein Controller natuerlich ueberlegen sein und lohnt auch. Aber fuer 
den OP wohl zu kompliyiert.

Olaf

Autor: phil (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi

wenn du net unbedingt n controller verschwenden willst nimm nen LM2907 
und schon ist das ganze fertig.


mfg phil

Autor: Mathe Fan (bob37)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
danke euch für eure Mühe.

ich muss die ganze Sache mit "CONTROLLER" machen: kein Monoflop oder 
irgendwas.
was ich euch erzählt hab ist nur ein Teil von der Aufgabe, und alles 
muss mit ATmega gesteuert werden.

>ich bin anfänger in bereich Microcontroller-Programmierung.
>ich möchte ein Frequenz/Spannung Wandler mit dem Microcontroller
<ATmega8535 in AVR Studio mit C programmieren. Am Eingang ist ein
>Rechtecksignal (Frequenz 0.....4kHz) und am Ausgang soll eine Konstante
>Spannung mittel PWM sein (0.....10V).
>Die Frequenz am Eingang ändert sich, d.h. die Frequenz ist proportional
>zur Ausgangspannung.

>Meine Idee ist: Das ankommende Signal an den Input Capture Pin ICP1 des
>Controllers anschließen. Nun kann entweder ein Signalwechsel von 0 nach
>1 (steigende Flanke) oder von 1 nach 0 (fallende Flanke) erkannt werden
>und der zu diesem Zeitpunkt aktuelle Zählerstand in ein spezielles
>Register abgelegt werden. Gleichzeitig  kann auch ein entsprechendes
>Interrupt ausgelöst werden. Die Periodendauer ist umgekehrt proportional
>zur Ausgangspannung. im Programm muss noch der Zusammenhang zwischen
>Frequenz und Spannung geschrieben werden.

>Problem: ich weiß nicht, wie ich die Periode messen muss,
>         in welchem Register meinen Periodenwert liegt,
>         wieviele Interrupte Brauche ich dafür und wieso?
>         wie kann ich PWM verwenden um meine Spannung analog zu
>         bekommen.
Danke.

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.