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...!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.