PWM Frequenz

Gast #58406
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.
Gast
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
Gast
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.
Gast
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
Gast
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.
Gast
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

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.