PWM beim Atmega8

Gast #2324486
Lesenswert?
• ▲
▼
Hi Leute,

mit Hilfe einer PWM möchte ich einen Mosfet ansteuern.
Bin hierbei wie im AVR-GCC Tutorial vorgegangen.
Mit einem Taster starte und stoppe ich den Timer.
Beim Stoppen des Timers möchte ich am Ausgang ein LOW-Signal generieren.
In der Praxis ist das Ausgangssignal manchmal HIGH oder LOW.
Es behält demnach seinen Zustand aus der PWM bei.

Meine erste Idee war den Tastgrad der PWM auf 0x00 zu setzen und dabei 
den Timer weiter laufen zu lassen.
Jedoch tritt nach jeder Schaltperiode (62us) jeweils ein Impuls (0,5us) 
auf. Hat dieser Einfluss auf das Betriebsverhalten oder kann ein so 
kurzer Impuls vernachlässigt werden?

Vielen Dank für eure Hilfe

Gruß Heiko
#2324499
Lesenswert?
• ▲
▼
Heiko W. schrieb:

> auf. Hat dieser Einfluss auf das Betriebsverhalten oder kann ein so
> kurzer Impuls vernachlässigt werden?

Das kannst nur du wissen, was das hinter der PWM liegende mit so einem 
Puls macht.


Du kannst natürlich auch nach dem Timer Stoppen, den Pin vom Timer 
wieder entkoppeln und gezielt händisch den Pin auf 0 setzen.
Und beim Starten des Timers dann alles umgekehrt: Pin wieder an den 
Timer koppeln, Count Register auf 0 setzen und Vorteiler freigeben.
Gast #2325450
Lesenswert?
• ▲
▼
Hi Heiko,

ich bin gerade bei meinem Masterthesis und brauche Hilfe.

> mit Hilfe einer PWM möchte ich einen Mosfet ansteuern.

Ich versuche auch einen Mosfet anzusteuern aber ich bekomme nicht die 
erwünschte Frequenz 50kHz.
Ob es möglich ist,kannst du mir ein paar Tipps geben?

Ich habe den STK600 Developtment Board und den AVR ATMEGA2560 als 
Mikrokontroller. Der mega2560 hat einen Takt von 8MHz.

Die Taktfrequenz der MOSFETs ist 50 kHz und das Tastverhältnis ist von 
10% bis 90%.

1) Wie kann ich die Timer-Frequenz von 50 kHz schaffen, und
2) Wie kann ich es danach das Tastverhältnis einstellen?

Vielen Dank!

Stratos
Gast #2325465
Lesenswert?
• ▲
▼
Hi

>1) Wie kann ich die Timer-Frequenz von 50 kHz schaffen, und

Rechnen. Fast-PWM mit 50kHz bekommst du mit einem Top-Wert von 0x9F. 
Also kannst du einen 8-Bit-Timer im Mode 7 oder ein 16-Bit-Timer im Mode 
14 oder 15 benutzen.

>2) Wie kann ich es danach das Tastverhältnis einstellen?

Indem du dein OC-Register mit den passenden Wert lädst.

MfG Spess
Gast #2325617
Lesenswert?
• ▲
▼
Hi,

falls es jemanden noch interessiert:
Ich habe das Problem durch Umstellung von "Fast PWM" auf "Phase and 
frequency correct PWM" beheben können. Das Ausgangssignal ist beim 
Compare-Wert 0x00 ständig auf low.

Danke für die Hinweise!

Hi Stratos,
Im Datenblatt des Atmega sind alle PWM Arten und die dazu gehörigen 
Register genau beschrieben. Lohnt sich auf jeden Fall da reinzuschauen.

Gruß Heiko

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.