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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren