mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2,4kHz Rechteck - Soft oder Hard-PWM 50% duty-cycle


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mal eine triviale Frage:

Ich möchte einen elektromagnetischen Transducer (bjm05) mit einem 50% 
Rechteck bei 2400 Hz versorgen, aber nach Möglichkeit auch andere 
Frequenzen einstellen können.

Allerdings habe ich da ein Verständnisproblem - da ja alles schön 
digital ist, sind nur Frequenzen möglich, die ein Teiler der 
Taktfrequenz sind.
Somit sind gleichgroße Frequenzschritte nicht möglich.

Und demnach spielt es vom Ergebnis eigentlich keine Rolle, ob der Pin in 
einem Timerinterrupt per software getoggelt wird, oder ob ein Timer das 
direkt macht.

Verstehe ich das richtig?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es ein AVR ist: Nimm den CTC Modus, damit kann man direkt einen Pin 
toggeln lassen.

Autor: Martin (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ja, ist ein tiny25.

Hier wird alle sieben (OCR1C + 1 Prozessortakt) Takte PB1 getoggelt. 
Damit ist der Duty-Cycle 50% und der Wert von OCR1A ist nicht wichtig. 
Könnte aber sein dass es sich an den Grenzen (0 und OCR1C) anders 
verhält.
OCR1A   = 1;
OCR1C   = 6;
TCCR1   = 1<<CTC1 | 1<<COM1A0 | 1<<CS10;

Um meine Frage zu beantworten:

Die resultierende PWM Frequenz ist F_Takt / (N * 2), da für eine Periode 
zwei mal getoggelt wird. Wie im Anhang ersichtlich ist das natürlich 
nicht linear.

Schon stellt sich die Frage, wie man denn ein Signal mit linear 
veränderbarer Frequenz überhaupt erzeugen kann. Geht das nur mit DDS und 
dem damit verbundenen Jitter?

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Hyperbel habe ich übrigens mit http://www.mathe-fa.de erzeugt, 
allerdings prüft das server Programm nicht auf division by zero.

Autor: Sven Johannes (svenj)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, kommt drauf an WIE linear du das haben möchtest. Ich habe jetzt 
nur das Sheet eines 2313 hier liegen, ist aber sicher vergleichbar.

Es gilt so ungefähr:

Also Ausgangsfrequenz in Abhängigkeit vom Comparematch und taktfrequenz. 
Wenn ich da (n=1) mal 20MHz als Takt und 2400Hz als Ziel einsetze läuft 
das auf 4164 im Register raus. Locker in den 16bit, passt.

Für 2300Hz haben wir 4346, für 2500Hz 3998. Immer noch nicht linear, 
aber zumindestens schön gestuft. Die Registerwerte für bestimmte 
Frequenzen müßte man halt on the fly berechnen.

--
 SJ

(alles locker aus der Hose geschossen. Bitte genau nachrechnen bevor da 
Trafos oder sonstige Bauteile sterben... :)

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar, bei hoher Taktfrequenz und großem Teiler werden die Stufen 
kleiner..
Naja, für meinen Zweck reicht mir der Timer mit CTC.

Autor: martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wenn es ein AVR ist: Nimm den CTC Modus, damit kann man direkt einen Pin
toggeln lassen.

Habe ich so gemacht, kommt ganz gut in die Nähe. Wenn man den Prescaler 
zum Ein/Ausschalten nimmt, sollte man beim Ausschalten auf jeden Fall 
den Pin vom OC abkoppeln (und ggf. manuell abschalten).

Sonst hört man zwar auch nichts mehr, aber der Schallwandler bekommt 
ggf. immer noch Strom...

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.