Forum: Mikrocontroller und Digitale Elektronik schon wieder PWM - nur die Zeitformel checken bitte


von Mischa (Gast)


Lesenswert?

Hallo Leute,

ich habe zwar im Netz viel gefunden, aber nicht die Formel nach der ich 
suche. Ich brauch die Um Spannungsformel in Abhängigkeit vom Vorteiler, 
Taktfrequenz, Timerwert bis zu dem gezahlt wird, Vergleichswert für den 
Timer.

So habe ich das gemacht (beim Invertierten PWM mit ner 
Dreiecksfunktion):

-----------------------------------------------
ORC1A = Vergleichswert
IRC1 = Timerwert bis zu dem gezahlt wird

Taus = (Vorteiler/(f_cpu*ORC1A))
Tein = (Vorteiler/(f_cpu*(IRC1-ORC1A)))

Um = Umin+(Umax-Umin)*Tein/(Tein+Taus)
-----------------------------------------------

Stimmt es so?

Danke,
Grüsse - Mischa

von Karl H. (kbuchegg)


Lesenswert?

Mischa schrieb:

> Stimmt es so?

Was soll eigentlich Um sein? Egal.

Ansonsten: Ja ich denke, das ist in etwa equivalent mit der banalen 
Prozentrechnung, mit der man ausrechnet, wieviele % der kompletten 
Zykluszeit (die durch ICR1 festgelegt ist) der Output Pin auf ein ist 
(festgelegt durch OCR1A).

Also     ICR1 / OCR1A

und das dann angewendet auf ein Spannungintervall

  deltaU = Umax - Umin
  Um = Umin + deltaU * ICR1 / OCR1A


Wenn ich im Kopf den ganzen überflüssigen Teil in deiner Berechnung 
wegkürze, dann müsste dasselbe rauskommen.

von Mischa (Gast)


Lesenswert?

Hi - danke,

Um ist die mittlere Spannung (also der Matematischer Mittelwert der 
Spannung).
Ich brauche das als eine Zusammenhängende Formel um zu sehen, was ich am 
schnellsten/einfachsten verändere um eine benötigte Spannung 
rauszubekommen.

Was verändert man eigentlich in der Praxis, um die richtige Spannung 
rauszubekommen? Den IRC1, den ORC1A oder der Vorteiler?

Danke,
Grüsse - Mischa

von Klaus (Gast)


Lesenswert?

Hallo,

man ändert ORC1A um eine andere Pulsweite zubekommen, was zu einer 
höheren Spannung führt.

Mit IRC1 veränderst du ja die Periode also die Frequenz deines Signals.

ORC1A  sollte dann auch <=IRC1 sein.

Sollte du nur den Vorteiler des Timers ändern, hast du lediglich eine 
andere Frequenz. Das Verhältnis von ORC1A  und IRC1  beleibt dann ja 
gleich, demnach bleibt theoretisch auch die Spannung die Gleiche. 
Theoretisch deshalb, falls die Frequenz zu langsam wird muss der 
Hardware Tiefpass ggf. auch träger gemacht werden.

Gruß Klaus

von Mischa (Gast)


Lesenswert?

ich habe gerade festgestellt, dass bei mir die Rechnung nicht aufgeht.

Ich habe folgendes: ATmega328P, also:
-------------------------
  f_cpu = 16MHz
  Vout = 5V

  TCCR1A = (1<<COM1A1) | (1<<WGM11);
  TCCR1B = (1<<WGM12) | (1<<WGM13) | (1<<CS10);
/*
   alos nicht invertierende PWM, Der Ausgangspin wird gelöscht
   beim Hochzählen und gesetzt beim Herunterzählen. Und der Mode 14
   ist eingeschaltet - Dreiecksfunktion des Zählers, Vorteiler = 1
*/
  ICR1 = 65535;
  OCR1A = 535;

---------------------

Wenn ich jetzt die Werte in die Formel einsetze:
-----------------------------------------------
Taus =   (Vorteiler/(f_cpu*ORC1A))
Tein = 2*(Vorteiler/(f_cpu*(IRC1-ORC1A)))

Um = Umin+(Umax-Umin)*Tein/(Tein+Taus)
-----------------------------------------------

kommt bei mir Um = 0,08V raus, aber am Ausgang messe ich 0,04V.
So wie es aussieht liegt es daran, dass ich aktuell "Fast PWM" betreibe 
(Mode 14).
Wenn ich aber auf Mode 10 wechsele mit "PWM, Phase Correct" dann ändert 
sich nichts an der Spannung, obwohl die doppelt so hoch sein müsste.

Was mache ich falsch? Ist da doch ein Fehler in der Rechnung?

Danke,
Grüsse - Mischa

von Karl H. (kbuchegg)


Lesenswert?

Mischa schrieb:

> Was mache ich falsch?

Du gehst zu naiv ran.
Deine Rechnung wird nie aufgehen.
Genau deswegen misst man die Spannung und passt die PWM in einer 
Regelschleife an das gemessene Ergebnis an bis man die Spannung hat, die 
man haben will.

Zwischen Theorie und Praxis ist nun mal ein Unterschied. In der Theorie 
sind alle Schaltflanken 100% rechteckig. In der Praxis aber nicht.
In der Theorie haben alle Tiefpässe die Charakteristik, dass sie 
unterhalb ihrer Grenzfrequenz nichts durchlassen und über der 
Grenzfrequenz völlig  transparent und nicht beeinflussend sind. Die 
Praxis ist eine völlig andere.
In der Theorie beeinflussen Messinstrumente das zu messende Signal 
nicht, in der Praxis ....

von Karl H. (kbuchegg)


Lesenswert?

Mischa schrieb:

> Wenn ich aber auf Mode 10 wechsele mit "PWM, Phase Correct" dann ändert
> sich nichts an der Spannung, obwohl die doppelt so hoch sein müsste.

Nochmal:
Die Frequenz, der Vorteiler etc. all das geht nicht in die Spannung ein.
Entscheidend ist: Wieviele % eines PWM Zykluses ist der Pin auf 0 und 
wieviele % (100 minus dem anderen Wert) ist er auf 1.
Nur dieses Verhältnis bestimmt die Spannung (bei natürlich hinreichend 
großer Frequenz, so dass der Tiefpass am Ausgang da nicht auch noch 
stört und reinpfuscht)

von Mischa (Gast)


Lesenswert?

ok, also sollte ich gar nicht den Unteschied zwischen Fast, bzw. 
Phasenkorrekte PWM in der Rechnung berücksichtigen?

von Karl H. (kbuchegg)


Lesenswert?

Alles was dich interessiert ist:
Wie lang ist der Pin auf 1 und wie lang ist er auf 0.
Im Grunde interessiert dich noch nicht einmal wie lange das in 
Zeiteinheiten (Millisekunden) tatsächlich ist, weil das Verhältnis 
dieser beiden Zahlen das Wichtige ist. Und da du das eine durch das 
andere dividierst, kürzt sich mathematisch alles drumherum raus und es 
bleibt das nackte Verhältnis der Compare Werte übrig um daraus eine 
dimensionslose Prozentangabe zu ergeben.
->  der Pin ist im Durchschnitt seiner Zeit 63% auf 1. Also sollte die 
Ausgangsspannung auch auf 63% des Maximalwertes sein. Ob sie das 
tatsächlich ist, ist eine andere Frage.

von Mischa (Gast)


Lesenswert?

hmm..., also war ich in der sache zu theoretisch - wie kommst du 
eigentlich auf 63% ? oder ist es nur ein Beispiel, denn mit deiner 
Formel oben komme ich auf Um = 5V*65535/535 = 612V :)

von Karl H. (kbuchegg)


Lesenswert?

Mischa schrieb:
> hmm..., also war ich in der sache zu theoretisch - wie kommst du
> eigentlich auf 63% ?

Hab ich mir ausgedacht, damit eine Zahl dort steht.

> oder ist es nur ein Beispiel, denn mit deiner
> Formel oben komme ich auf Um = 5V*65535/535 = 612V :)

Pisa lässt grüßen :-)
Prozentrechnen sollte man in meinem Alter schon können.
Natürlich anders rum dividieren :-), das 'Ganze' steht im Bruch unten 
und der Teil oben

  Um = Umin + deltaU * OCR1A / ICR1

von Mischa (Gast)


Lesenswert?

^:) hab ich mir gedacht, sonst hätte man einen geilen Trafo :D

Danke nochmals und frohes Fest

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.