www.mikrocontroller.net

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


Autor: Michael H. (overthere)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Volker Schulz (volkerschulz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Michael H. (overthere)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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...

...

Autor: avr (Gast)
Datum:

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

avr

Autor: Volker Schulz (volkerschulz)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.