Hallo zusammen,
ich bin kurz davor mir den ATMega32-16 zu kaufen. Hab mir die Anleitung
ebenfalls runtergeladen. Ich möchte mit dem µC ein Schaltnetzteil
betreiben, brauche also ne PWM, die der ja auch an Bord hat. Nun blick
ich noch nicht so ganz durch, wie hoch die maximale Frequenz für die PWM
ist. Auf Seite 75 hab ich dann ein Kapitel "Fast PWM" entdeckt, da steht
eine Gleichung dabei(bzw. das ganze gibt's auf Seite 121 nochmal, für
den zweiten Counter, wobei es dort mehr Prescale Factoren gibt):
f_pwm = f_clkio / (N * 256)
wobei f_clkio ja der eingestellten µC Frequenz entspricht(hier also
16MHz)
Bedeutet das, wenn ich den Prescale Factor N auf 1 setze, das ich dann
eine PWM Frequenz von 62,5kHz bei einer Auflösung von 8Bit(die 256)
bekommen kann?
Und ist es dann darüber hinaus möglich, die PWM mit 50kHz zu betreiben?
(ein ja oder nein wäre hierfür schon ok, das wie würd ich dann erstmal
selber versuchen rauszufinden...)
Schonmal vielen Dank im vorraus!
Gruß Daniel
Der Daniel wrote:
> Bedeutet das, wenn ich den Prescale Factor N auf 1 setze, das ich dann> eine PWM Frequenz von 62,5kHz bei einer Auflösung von 8Bit(die 256)> bekommen kann?
Ja.
> Und ist es dann darüber hinaus möglich, die PWM mit 50kHz zu betreiben?> (ein ja oder nein wäre hierfür schon ok, das wie würd ich dann erstmal> selber versuchen rauszufinden...)
Ja, aber nicht mit einem 16-MHz-Takt (f_clkio)... Reicht das? Es kann
halt nur durch ganzzahlige Vielfache von 256 geteilt werden.
Deine 62,5kHz stimmen, und der rest der Rechnung auch ;)
Aber auf 50kHz kommst du so nicht,
um auf 50kHz zu laufen müsstest du den µC mit 12,8MHz takten.
Die Prescaler lassen sich halt nur in 2er potenzen oder noch schlechter
einstellen, deswegen kommst du mit prescaler = 2 nur auf 31,25kHz.
Also musst du am Systemtakt schrauben um auf exakt 50kHz zu kommen.
Aber ich denke 62,5kHz sollte doch nen ganz guter Kompromiss sein oder?
Danke erstmal, ist mir jetzt alles recht klar, bzw. so wie ich's mir
gedacht habe.
Nochmal kurz zu dem Prescaler. Im Datenblatt steht das der mit 1,8,32,64
etc. eingestellt werden kann, von 2 oder z.b. steht da nichts, also
sollte das auch nicht möglich sein, oder?
Die 62,5kHz sind auch ok, die 50kHz sind keine Pflicht... umso kleiner
wird ja mein L wenn f größer wird...
Gruß Daniel
Der Daniel wrote:
> Nochmal kurz zu dem Prescaler. Im Datenblatt steht das der mit 1,8,32,64> etc. eingestellt werden kann, von 2 oder z.b. steht da nichts, also> sollte das auch nicht möglich sein, oder?
Genau. Kannste aber im Prinzip hinbekommen, indem Du anstelle einer
8-Bit-PWM eine 9-Bit-PWM nimmst. Das wäre ein Faktor 2... Geht aber
natürlich nur mit nem 16-Bit-Timer.
Bei dem 16Bit Counter müsste ich dann TOP = 511 setzen, dann bekomme ich
eine Auflösung von 9Bit.
R = log(TOP+1)/log(2) = log(511+1)/log(2) = 9
Daraus kann ich dann die die Frequenz errechnen(im Fast PWM Mode):
f_PWM = f_clkio / (N*(1+TOP)) = 16MHz / (1*(1+511)) = 31,25kHz, richtig?
Der Unterschied zwischen den 3 Modi muss ich mir auch nochmal näher
anschauen, also Fast PWM, Phase Correct und Phase & Frequency Correct
Mode's. Wobei ja schon drin steht, das der FastPWM Mode für
Leistungsregelung, Gleichrichtung etc. geeignet wäre, also wohl auch für
die Ansteuerung meines FET.
Aber ich denke ich werd dann wohl bei den 62,5kHz bleiben...
Phase Correct brauchste eigentlich v.a. dann, wenn Du Schalttotzeiten
erzeugen willst oder ein symmetrisches Signal brauchst. Die haben auch
nur die halbe PWM-Frequenz. Kannst also im Prinzip auch ne Division
durch 2 machen, indem Du anstelle der Fast PWM eine Phase Correct PWM
nimmst...
Ahh ok! Wie gesagt, ich denke ich bleib dann bei den 62,5kHz, hab dafür
jetzt mein L schon berechnet und nen Kern gesucht...
Dann nochmal danke für die schnelle Hilfe. Werd mich dann wohl auch
gleich mal hier registrieren. War bestimmt nicht das letzte mal, das ich
Hilfe bei dem µC brauche g
So long
Nur als Nachtrag: wenn du höhere Frequenzen haben willst, kannst du
dir mal einen ATtinyX5 oder ATtinyX61 ansehen. Bei denen kann man
den Timer1 über eine PLL von 32 oder 64 MHz takten. Sowas dann als
Slave-Prozessor, der ausschließlich die PWM für das Schaltnetzteil
macht, während ein ,,großer'' Prozessor die gesamte Steuerung übernimmt.
Im Prinzip ist das BC100 (battery charger reference design) so ähnlich
aufgebaut.
Hallo Jörg,
danke für die Info, hört sich interessant an mit der Slavetechnik! Bin
aber noch relativ neu was µC angeht, hab nur in der Uni mal Grundlagen
µC Technik gehabt und im Praktikum auf nem 68HC11 rumprogrammiert. Von
daher weiss ich nicht, ob das nicht etwas zu viel wird für nen
Anfänger... muss mich halt erstmal durch die "normalen" Probleme
kämpfen...
Werd mir das mit dem BC100 aber nochmal anschauen...
MfG Daniel
Der Vorteil, wenn du die eigentliche PWM von der restlichen Steuerung
entkoppelst ist, dass du gewissermaßen voll paralleles Multitasking
machen kannst: der ATtiny kann sich dann auf die PWM konzentrieren
(der läuft praktisch ständig in einer Schleife, in der er den Soll-/
Istwert-Vergleich macht), während der größere Prozessor alle
Interaktion mit dem Benutzer erledigt.
Stimmt schon. Hierbei wäre es nur so, dass der "Große" 2 Werte einlesen
muss, eine Berechnung durchführen müsste und dem kleinen dann nur den
Duty Cycle vorgeben würde... Mehr wäre hierbei nicht zu machen... und
dafür dann 2 µC's zu verarbeiten, ich glaube da wird der Aufwand zu
groß... und wie gesagt, ich bin Anfänger und werde noch mit anderen
Problemen zu kämpfen haben. Aber ich behalte das mal im Hinterkopf...
vielleicht gibt's mal ne Erweiterung wo ich das dann verwenden könnte.
Daniel, ich hab einen guten Tipp für dich: vergiss diese Website hier -
sie ist voller Forentrolle und Möchtegerns, die nichtmal ein Datenblatt
lesen können etc.
Das was du da machst ist totaler Overkill, man kann einen PWM mit einer
maximalen Frequenz von Systemtakt / 2 betreiben. Ich werde dir jetzt
leider nicht sagen wie das denn genau geht (ich habe guet Gründe), aber
du wirst die Antwort sehr schnell finden wenn du von solchen Webseiten
fernbleibst und dich stattdessen sehr tief in das Datenblatt
eingräbst, die Lösung ist wahrlich einfach und sogar etwas blöd - wenn
du komplizierte Sachen machst bist du nicht auf dem Lösungsweg.
Viel Spass und ein erfolgreiches Meiden falscher Informationen!
hey du düsentrieb für arme!
solche foren sind dafür gedacht fragen zu stellen un zu beantworten!
und nicht, um dumme kommentare abzuliefern, die dem hilfesuchenden nur
auf en sack gehen! das is das einzig beschissene an solchen foren!
du dummbabbler...!