Hallo zusammen, ich möchte einen Step-Up mit einem AVR bauen. (Ja es gibt Regler, aber ich habe meine Gründe...) Dabei würde ich eine möglichst schnelle PWM Frequenz erreichen (bei möglichst geringer CPU-Taktrate), aber ich möchte den Duty-Cicle auch verändern können. Toll wäre es, wenn ich einen Timer nutzen könnte für den Duty-Cicle einzustellen, das parallele Register OCR0B im CTC Mode. Klar, kann ich das Timerregister mit einer ISR immer Nullen, aber bei nur 4 oder 5 Bit Auflösung verbraucht mir das zu viel CPU-Zeit. Hat da einer von euch eine praktikable Idee? Vielen Dank schon mal für eure Hilfe Michael
Hallo, für die Anwendung als SMPS Controller gibt es geeignetere AVRs. Der Tiny 25/45/85 z.B. bietet einen 64 MHz Timer, Deadtimegenerator und eine einstellbare Aulösung (TOP Wert nicht fest auf 255 sondern variabel) so dass du ohne Probleme Frequenzen mit 500 kHz erzeugen kannst und dank des Deadtimegenerators sogar ohne Zusatzbeschaltung einen Synchronwandler bauen kannst. Das wäre jedenfalls das einfachste und teuer sind die Teile ja nicht ;). Gibt dann auch noch die AT90PWM* Modelle, aber die kosten dann etwas mehr. Grüße
Michael H. schrieb: > [...] > Dabei würde ich eine möglichst schnelle PWM Frequenz erreichen (bei > möglichst geringer CPU-Taktrate), aber ich möchte den Duty-Cicle auch > verändern können. > Toll wäre es, wenn ich einen Timer nutzen könnte für den Duty-Cicle > einzustellen, das parallele Register OCR0B im CTC Mode. > > Klar, kann ich das Timerregister mit einer ISR immer Nullen, aber bei > nur 4 oder 5 Bit Auflösung verbraucht mir das zu viel CPU-Zeit. Hat da > einer von euch eine praktikable Idee? > [...] Und warum nimmst Du dann nicht einfach den Timer0 im Mode 7 (Fast-PWM mit TOP=OCR0A)? Volker
Wie wirklich sich TOP=OCR0A aus? Wenn der Timer immer dann zurückgesetzt wird wenn der Schwellwert zur PWM Erzeugung erreicht ist, wie sieht dann das Ausgangssignal aus? Andere Idee: 16 bit Timer z.B. in Modus 14 als Fast-PWM mit TOP=ICR1 nutzen.
Hallo, der Tiny25 klingt gut, aber ich brauch leider noch ein paar Anschlüsse mehr, am Besten so ~10 wie der Tiny24. Die WGM-Modes sind mir irgendwie nie aufgefallen. Der 8-Bit Timer im Mode 7 gefällt mir gut. Dann nehme ich einfach OC0B als Ausgabe-Port, außer ihr wisst noch ein "Workaround". Den 16 Bit Timer lasse ich lieber noch mal frei, man weiß ja nie ob man den noch braucht. Aber definitiv auch keine schlechte Idee! Danke an alle schon mal für eure konstruktiven Antworten! Was mich noch stutzig macht: Update of OCR0x at: Bottom. Wie darf ich das verstehen? Heißt das, das Ding nur bei 0 aktualisiert wird? Dann hätte ich doch nur einen CTC Mode unter einem anderen Namen. Oder sehe ich das falsch? Grüße Michael
> der Tiny25 klingt gut, aber ich brauch leider noch ein paar Anschlüsse > mehr, am Besten so ~10 wie der Tiny24. Dann nimm den Tiny26 oder seine Nachfolger... ...
Dann den Tiny26 bzw. dessen Nachfolger Tiny261/461. Die haben auch die PLL-PWM und mehr Pins. avr
Michael H. schrieb: > Was mich noch stutzig macht: Update of OCR0x at: Bottom. Wie darf ich > das verstehen? Heißt das, das Ding nur bei 0 aktualisiert wird? Dann > hätte ich doch nur einen CTC Mode unter einem anderen Namen. Oder sehe > ich das falsch? Bei Mode 7 zaehlt der Timer immer von BOTTOM bis MAX. "At Bottom" wird der Pin entweder auf high oder low gesetzt (je nach Einstellung) und beim Compare-Match invertiert. That's it. Volker
Hi
>That's it.
Das heisst, das der OCR-Wert, der zu irgendeiner Zeit an das OCR-Reister
übergeben wurde, erst beim nächsten BUTTOM-Zustand in das Register
übernommen wird.
MfG Spess
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.