Forum: Mikrocontroller und Digitale Elektronik PWM beim Atmega8


von Heiko W. (Gast)


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

von Karl H. (kbuchegg)


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.

von Stefan E. (sternst)


Lesenswert?

Heiko W. schrieb:
> 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.

Beitrag "Re: Problem mit PWM Timer1 - kurze Blitze beim ein-/ausschalten"

von Stratos Petrou (Gast)


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

von spess53 (Gast)


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

von Heiko W. (Gast)


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

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.