www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM Frequenz


Autor: Malte Struebert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn ich das Datenblatt richtig verstanden habe, ergibt sich meine
Periodendauer für einen PWM Durchlauf wie folgt:

f = Taktfrequenz / (N*510) wobei N mein Prescaler ist.

Damit lassen sich ja aber doch nur relativ grob die Periodendauern
einstellen oder?!

Jetzt habe ich eine Anwendung in der ich meine PWM Priodendauer in
relativ (möglichst kleinen) kleinen Schritten sagen wir mal von 0.003
Hz bis 350 Hz variiren können muß.

Dazu brauche ich dann noch die Möglichkeit das PWM Verhältniss also ein
Zeit zu Aus Zeit zu variiren.

Gibt es da eine elegante Möglichkeit oder geht sowas nur über einen
Manuell gesteuerten und immer wieder neu gesetzten Timer?

Gruß
Malte.

Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wäre vielleicht günstig zu erwähnen, wovon Du redest. Also welches
Datenblatt z.B. Dann könnte man dir evtl. sogar helfen.

Autor: Eugen Dischke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
na also sofern du nen avr benuzt, könntest du den timer extern tackten
lassen, und abhängig von der frequenz die du von ausen zuführst, ändert
sich halt auch die PWM freauenz, und das verhälniss, der zeiten stellst
du mit dem entsprechendem register ein  ( siehe datenblatt)
MfG
Eugen Dischke

Autor: Malte Struebert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

also was ich habe, ich habe ein Drehzahlsignal von aussen das mit einen
TTL Pegel liefert also immer einen kurzen Pulse pro Umdrehung.

Meine PWM Frequenz muß genau 4 mal der Umdrehungsfrequenz sein so das
ich quasi wärend einer Umdrehung 4 perioden in meinem PWM durchlaufe...
und dann muß ich halt das Taktverhältniss noch einstellen können.

Gruß
Malte.

Autor: Eugen Dischke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also die allererste idee,
die mir jezt durch den kopf für diese anwendung geht, ist ziemlich
aufwendig, verstehe ich dich richtig das du versucht durch das PWM die
drehzahl zu steuern, bzw konstannt zu halten ? ( nur ne annahme)

die die aufwendige idee, die mir durch den kopf ging ist die. du nimmst
nen PLL(z.B. 74HCT4046) und vervielfachst mit dem pll und nem
frequenzteiler deine drehzahl(iss ja auch nur ne frequenz), und
tacktest damit den timer.
ne andere idee, ist du stoppst die zeit zw 2 impulsen, (mit z.b.
timer0) teilst die anzahl der zyklen durch 4 und lädst diese zahl in
das OCR1C register (diese methode erfordert auch den entsprechenden
timer mit einer solchen funktion z.B. Tiny26) das OCR1C register beim
tiny 26 bestimmt im PWM mode bis zu welchem wert der timer zählt ehe er
auf 0 zurückgesezt wird, er ändert dadurch aber auch die genauichkeit
des PWM, so dass du dabei auch immer die werte der verhältnisse
anpassen musst
du solltest dir mal das datenblatt des tiny 26 durchlesen, da kannste
schlauer draus wedern wie das alles geht
MfG
Eugen Dischke

Autor: Malte Struebert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ne deine Annahme ist nicht ganz richtig... ich bekomme ein
Drehzalsignal und da ich pro Umdrehung in gleichen Abständen allerding
mit variablen Pulslängen 4 mal einen Ausgang schalten muß brauche ich
besagtes PWM Signal.

Sollte doch eigentlich nicht so schwer sein, aufgrund einer
vorgegebenen Zeitspanne welche letztendlich die Drehzahl angibt.

Bsp: 500U/Min = 120ms pro Umdrehung -> PWM Periodendauer = 120/4=30ms

Es muß doch irgendwie möglich sein die PWM Periodendauer auf exakt 30ms
einzustellen oder nicht?! der Rest ist ja kein Problem eigentlich...

Gruß
Malte.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Brauchst Du wirklich 0.003Hz -> 350Hz ?
Mit einem 4046 und 0.003Hz bräuchtest Du das ganze Jahr + Schalttag,
damit sich die PLL synchronisiert - wenn's reicht.

Es sollte aber kein Problem sein, die Periode des Eingangssignals genau
zu erfassen. U.U. reicht dazu ein freilaufender Timer0 vom z.B.
90S2313.

Die Erzeugung der PWM hängt von dem benötigten Tastverhältnis ab. Bei
höheren Ausgabefrequenzen kannst Du PWM mit Timer1 verwenden; wenn es
ganz langsam werden soll, kannst Du das PWM-Signal per Software
erzeugen. Damit kannst Du dann 30ms oder auch 100 Sekunden Intervalle
exakt erzeugen, was immer 'exakt' sein mag.

>Sollte doch eigentlich nicht so schwer sein, aufgrund einer
>vorgegebenen Zeitspanne welche letztendlich die Drehzahl angibt.

Ist es auch nicht. Es finden sich einige Beispiele in der Codesammlung.

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.