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
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.
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
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
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
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 ....
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)
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.
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 :)
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