Forum: Mikrocontroller und Digitale Elektronik TIny24: PWM Auflösung verändern (möglichst ohne Software)


von Michael H. (overthere)


Lesenswert?

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

von guest (Gast)


Lesenswert?

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

von Volker S. (volkerschulz)


Lesenswert?

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

von guest (Gast)


Lesenswert?

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.

von Michael H. (overthere)


Lesenswert?

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

von Hannes L. (hannes)


Lesenswert?

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

...

von avr (Gast)


Lesenswert?

Dann den Tiny26 bzw. dessen Nachfolger Tiny261/461.
Die haben auch die PLL-PWM und mehr Pins.

avr

von Volker S. (volkerschulz)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.