Willkommen Gast. Bitte einloggen oder registrieren.
Mai 2, 2024, 01:50:28
Übersicht Ungelesene Beiträge auflisten Hilfe Suche Spiele Mitgliederkarte Kalender Login Registrieren

Schnellsuche
+  MODDING-FAQ FORUM
|-+  Alles rund ums Modden
| |-+  Elektronik, Elektrik (Moderator: TzA)
| | |-+  Atmel und 4 PWMs
  « vorheriges nächstes »
0 Mitglieder und 1 Gast betrachten dieses Thema.
Seiten: [1] 2 3 4 nach unten Drucken
Autor Thema: Atmel und 4 PWMs  (Gelesen 23306 mal)
philipp.ni
Dremelfreund

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 100


Ich liebe dieses Forum!


Profil anzeigen WWW
Atmel und 4 PWMs
« am: Februar 7, 2005, 11:26:10 »

hoi.
ich will mir ne lĂŒftersteuerung basierend auf nem atmega16 bauen. dabei sollen 4 kanĂ€le per PWM angesteuert werden. der chip hat diese 4 PWMs, aber ich werd aus den DatenblĂ€ttern net schlau (google gibt garnichts her), wie ich die richtig einstell. ich verwende assembler, darum bringen mir die topics hier auch nix, da die alle in basic gemacht sind. Hat da jemand ne ahnung wie ich die ansteuer, oder ist es besser das irgentwie extern zu realisieren?!

cu philipp
Gespeichert
Spunky
Case-Konstrukteur

*

Karma: +9/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 715



Profil anzeigen
Re: Atmel und 4 PWMs
« Antwort #1 am: Februar 7, 2005, 15:27:49 »

Die PWM aus dem AVR kannst du schlecht fĂŒr LĂŒftersteuerungen verwenden. Sie liefern zu hohe Frequenzen. Eine PWM fĂŒr LĂŒfter sollte etwa 50 bis 100Hz haben.
Du wirst also die PWM selber per Programm und Timer bauen mĂŒssen.
Gespeichert

„Liebe Nachwelt! Wenn Ihr nicht gerechter, friedlicher und ĂŒberhaupt vernĂŒnftiger sein werdet als wir gewesen sind, dann soll Euch der Teufel holen. Diesen frommen Wunsch mit aller Hochachtung geĂ€ußert habend bin ich Euer ehemaliger, gezeichnet: Albert Einstein.“
--->>> AFAIK? IMHO? HTH? Guckst du hier -> Chat-Akronyme / -AbkĂŒrzungen <<<---
philipp.ni
Dremelfreund

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 100


Ich liebe dieses Forum!


Profil anzeigen WWW
Re: Atmel und 4 PWMs
« Antwort #2 am: Februar 7, 2005, 17:47:33 »

ok, thx. aber wie stell ich die timer ein? du hast das doch schonmal gemacht, oder? haste nen beispiel-code fĂŒr mich? Roll Eyes ich find einfach nix dazu Sad
die sekĂŒndliche abfrage der temperatursensoren werde ich wohl mit nem 555er und normalem interrupt machen Wink

edit: auserdem hat der mega16 - wie ich gerade bemerkt habe nur 3 timer (2x8bit 1x16bit). der einzige der 4 timer hĂ€tte wĂ€re der 162er und der ist a) 2€ teurer und b) hat er keine ad-wandler die ich ja zur temperaturbestimmung brauche...
« Letzte Änderung: Februar 7, 2005, 18:01:18 von philipp.ni » Gespeichert
OlafSt
Global Moderator

*

Karma: +13/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 2138


Master of STLCD and LISA III


Profil anzeigen
Re: Atmel und 4 PWMs
« Antwort #3 am: Februar 7, 2005, 18:47:37 »

FĂŒr eine PWM in Software braucht man nur einen Timer.

Nur als Beispiel, wie ich ein inzwischen fast abgeschlossenes Projekt aufgebaut habe:

1 Timer, 8 Bit. Mehr nicht.

In diesem Timer wird:
- Ein 1/100-Sekunden-Clocktick generiert
- Ein 1-Sekunden-Tick generiert
- 5 PWM-KanÀle erzeugt (200 Steps maximal)

Das ganze lÀuft auf nem Mega128 @ 14.7456MHz. Und ich hab nebenbei noch Zeit, um
- 3 Taster abzufragen
- 11 LED anzusteuern
- Fernsteuerung und Near-Realtime-Debugging per Serielle

zu realisieren. Zeit fĂŒr ne LCD-Ausgabe wĂ€re sicherlich auch noch Massenhaft vorhanden.

Du siehst: Alles eine Frage des Konzepts.
Gespeichert

Erstens: Lies was da steht. Zweitens: Denk drĂŒber nach. Drittens: Dann erst fragen
philipp.ni
Dremelfreund

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 100


Ich liebe dieses Forum!


Profil anzeigen WWW
Re: Atmel und 4 PWMs
« Antwort #4 am: Februar 7, 2005, 19:50:35 »

damit wir uns richtig verstehen:
also muss ich den timer so einstellen, dass er alle 1/100 sek. jumpt und dann dort vllt. anhand eines runterzÀhlenden registers die pwms setzt?! und dann nochmal die frage, WIE setze ich den timer?
Gespeichert
OlafSt
Global Moderator

*

Karma: +13/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 2138


Master of STLCD and LISA III


Profil anzeigen
Re: Atmel und 4 PWMs
« Antwort #5 am: Februar 8, 2005, 07:55:40 »

So einfach ist es nun auch wieder nicht  Grin

Mein Timer lÀuft mit 20kHz, damit ich eine halbwegs brauchbare PWM erzeugen kann. Warum das so ist, erkennt man nach den ersten Versuchen selbst.

Zum Thema Timer einstellen rate ich zu einem Blick in das Datenblatt, es wird wÀhrend des Projektes ohnehin dein bester Freund werden.
Gespeichert

Erstens: Lies was da steht. Zweitens: Denk drĂŒber nach. Drittens: Dann erst fragen
Freak5
Dremelfreund

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 139



Profil anzeigen WWW
Re: Atmel und 4 PWMs
« Antwort #6 am: Februar 8, 2005, 19:17:56 »

Kann man die Spannung aus dem PWM nicht mit einer Spule soweit glĂ€tten, dass immer eine Grundspannung vorhanden ist, mit der der LĂŒfter auch seine Elektronik laufen lassen kann? Huh
Gespeichert

b0nze
Gast


E-Mail
Re: Atmel und 4 PWMs
« Antwort #7 am: Februar 8, 2005, 19:36:02 »

Du könntest einfach nen Kondi hinten ran hauen, wobei du dann aber ne normale Spannung hÀttest.

Kommt ganz drauf an, warum du die PWM ĂŒberhaupt einsetzt (Keine Verluste/ Niedrige Drehzahlen).

Zur PWM-Frequenz (bei Software):
CPU-Takt / (TimerTakt*Auflösung)

b0nze
Gespeichert
philipp.ni
Dremelfreund

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 100


Ich liebe dieses Forum!


Profil anzeigen WWW
Re: Atmel und 4 PWMs
« Antwort #8 am: Februar 8, 2005, 22:07:17 »

die pwm setze ich ein um die lĂŒfter zu steuern Wink wobei mir das steuern wichtiger ist als die verluste... also 5-10% wĂ€ren mir am ende au egal. ich sollte wohl noch sagen, dass das mein erstes projekt mit mikrocontrolern ist, und ich daher auch noch recht unbeholfen mit den datenblĂ€ttern bin - mein englisch ist auch nicht das beste (9. Klasse gymnasium eben).
das mit dem kondi bringt mich auf eine idee - ich könnte (um eine digitale frequenz zu kriegen) einfach nen 555er auf nen interrupt legen - dann hab ich meine frequenz und das problem mit den timern hab ich auch nicht mehr. wie ich das aus den datenblĂ€ttern braucht man ja eh nen externen zeitgeber... die sache mit dem register runterzĂ€hlen gefĂ€llt mir von mal zu mal besser - bei 50% Fan hab ich dann bei 20khz frequenz 100steps an und danach 100steps aus.  damit ist auch ganz einfach rechenbar (ich hab das einstellen in 10%-schritten geplant) Smiley

wenn ihr nen guten grund dagegen wisst bin ich natĂŒrlich immer offen Cheesy

thx und cu philipp
Gespeichert
b0nze
Gast


E-Mail
Re: Atmel und 4 PWMs
« Antwort #9 am: Februar 9, 2005, 08:10:07 »

wie ich das aus den datenblÀttern braucht man ja eh nen externen zeitgeber...

Zeitgeber ist nen schlechtes Wort Smiley Du brauchst ne Taktquelle, mit der der Mikrocontroller arbeitet, einen Quarz mit xMhz. Das braucht man aber immer mit nem MC, höchstens du hast einen der AVR-Mega-Typen oder Tiny, die haben einen eingebauten RC-Oszillator.
Der Timer selbst ist einfach nen Ding, dass dir alle xxxTakte nen Interrupt auslöst.

FĂŒr ne SoftwarePWM hast du einen ZĂ€hler. Der ZĂ€hler wird in jedem Interrupt heruntergezĂ€hlt. Dann hast du deine Werte der KanĂ€le.
Ich machs so:
Pins auf 0 und den ZÀhler auf das Max laden (PWM-Auflösung)
Bei jeder ISR (Interrupt Service Routine) den ZÀhler eins runterzÀhlen und schauen, ob einer der Werte gleich ist wie der ZÀhler, wenn ja, dann setze den Pin.
... gleiche gleiche gleiche gleiche
bis du bei ZĂ€hler=0 bist, dann wieder oben anfangen.

Alternativ könnteste nen DA Wandler nehmen... TDA8444 (8 KanÀle).

Um die LĂŒfter ansteuern zu können brauchste aber noch ne Endstufe. Entweder machste ne analoge Spannung aus der PWM und modifizierst etwas ne NoDrop oder direkt an nen MosFet (gut sind High-Side-Switches, dazu kann Olaf berichten)

b0nze
Gespeichert
philipp.ni
Dremelfreund

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 100


Ich liebe dieses Forum!


Profil anzeigen WWW
Re: Atmel und 4 PWMs
« Antwort #10 am: Februar 9, 2005, 10:24:16 »

ich verwende nen mega16, werde aber trotzdem n externes Quarz verwenden.

Ich hab jetzt was sehr gutes ĂŒber timer timer gefunden. ich nehm nen takt von 16MHz und dann erstmal nen prescaler von 8 (TCCR0 auf 0x02) dann mĂŒssen es genau 100 schritte bis zum interrupt sein. nur, wie sag ich dem timer wann der counter overflowed ist? Einfach TCNT0 auf 0x64 (dez.: 100) setzen? zu der Endstufe: vertragen die lĂŒfter keine PWM oder wie? ich dachte da einfach an nen transistor, der die 5V vom ”C in die 12V fĂŒr den lĂŒfter umwandelt.
« Letzte Änderung: Februar 9, 2005, 10:27:54 von philipp.ni » Gespeichert
b0nze
Gast


E-Mail
Re: Atmel und 4 PWMs
« Antwort #11 am: Februar 9, 2005, 11:27:14 »

Such dir erstmal ne Frequenz aus, mit der der Timer anspringen soll. Besser noch Takte.
Du musst ja zwischendrin noch Taster etc. abfragen. Da kommt natĂŒrlich die Frage auf, ob du mit Assembler oder C programmierst. Olaf und ich haben in Assembler programmiert und das ist um Massen schneller als C in solchen Sachen. Die ISR muss möglichst kurz sein und das andre sollte natĂŒrlich auch nicht lange dauern.

Der Timer hat einmal die Überlauf (Overflow) und einmal die Compare Match Funktion. FĂŒr das wĂŒrde ich der Einfachheitshalber einfach den Compare Match nehmen (CTC = Clear Timer on Compare Match).
Da schreibste nen Wert ins OC-Register (OCR0, OCR1AH:L etc.) und dann den richtigen Modus in den Control-Registern einstelllen und dann zÀhlt der Timer mit dem Prescaler immer bis zu dem Wert hoch und löst den IRQ aus und resettet sich.
Mit Overflow mĂŒsstest du halt immer in jeder ISR einen Preload machen, und zwar bei den 8bittern 256-[gewĂŒnschter Wert], damit er nur noch x-Schritte hochzĂ€hlen muss.

wenn du ne 10%-Auflösung hast, dann sind das ja 10 Schritte. Ich denke 20 wÀren OK.
16Mhz / 8 = 2Mhz,
2Mhz / 100Hz = 20kHz,
20kHz / 20 Schritte = 1000;

FĂŒr nen 8-Bit-Timer brauchste also nen höheren Prescaler.

FĂŒr die Ansteuerung kannste auch ne PWM nehmen. Da sind solche HighSideSwitches (teure MosFets) sehr gut.
Olaf beim Werkeln

b0nze
Gespeichert
philipp.ni
Dremelfreund

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 100


Ich liebe dieses Forum!


Profil anzeigen WWW
Re: Atmel und 4 PWMs
« Antwort #12 am: Februar 9, 2005, 11:58:34 »

ich programmier wie oben schon erwÀhnt in assembler.

was sind die 1000?
ich dachte das so:
16Mhz / 8 = 2Mhz,
2Mhz / 100 = 20khz,
20khz / 200 Schritte = 100

d.h. ich nehm die gespeicherte %-zahl mal 2 dann hab ich die possition ab der der port auf 1 geschalten werden muss. dann zÀhl ich bei jedem interrupt den software-counter runter ("dec fancount") und wenn fancount == fanswitch schalt ich auf 1.
damit hab ich theoretisch ne auflĂ¶ĂŸung von 0.5% aber die frage ist ja immer wie ichs dem user prĂ€sentier. wenn ich bei jedem erhöhen +10 und bei jedem erniedrigen -10 rechne sinds wieder 5% schritte. ich denke, das ist die einfachste möglichkeit.
wenn ich nen prescaler von 256 nehm darf ich bei 10% Fan bei 25.6 umschalten Wink
Gespeichert
b0nze
Gast


E-Mail
Re: Atmel und 4 PWMs
« Antwort #13 am: Februar 9, 2005, 12:05:51 »

Warum willst du unbedingt auf 0,5%? (5 ProMille Grin)
Olaf hat halt sein LĂ€mpchen und da hatter halt 200 genommen. Aber nen LĂŒfter da denke ich sind 25-30 Maximal drin...

Wenn man dann mit 20 statt 200 rechnet, ist der Wert, der in das OC-Register geschrieben wird nĂ€mlich zu groß fĂŒr nen 8-bit.

Aber is nur ne Kleinigkeit.

b0nze
Gespeichert
philipp.ni
Dremelfreund

*

Karma: +0/-0
Offline Offline
Geschlecht: Männlich
Beiträge: 100


Ich liebe dieses Forum!


Profil anzeigen WWW
Re: Atmel und 4 PWMs
« Antwort #14 am: Februar 9, 2005, 12:30:52 »

wie gesagt ist es mit nem prescaler von 8 spĂ€ter leichter zu rechnen als mit 256 oder 1024 o.Ă€.  was spricht denn gegen 200?

noch was: sind die 5V vom pc-netzteil stabiel genug, oder soll ich 12V und nen 7805er nehmen?
Gespeichert
Seiten: [1] 2 3 4 nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Einloggen mit Benutzername, Passwort und Sitzungslänge      

Powered by MySQL Powered by PHP
eXTReMe Tracker
Seite erstellt in 0.062 Sekunden mit 19 Zugriffen.
© 2001-2022 MODDING-FAQ FORUM | SMF
Alle Rechte vorbehalten.
Prüfe XHTML 1.0! Prüfe CSS!