watterott ;title =
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Ansteuern von PWM-Lüfter (4-Pin Molex)

  1. #1
    Kabelträger
    Registriert seit
    08.12.2016
    Beiträge
    24

    Ansteuern von PWM-Lüfter (4-Pin Molex)

    Frohes neues euch allen!

    Vor 2-3 Jahren stolperte ich mal über entsprechende Infos im Netz, dummer weise hab ich aber keine Bookmarks gespeichert.
    Nun finde ich nix mehr zu diesen Thema:

    Geht um einen Kühlkörper wo mehrere 70W PowerLED's (COB) drauf sitzen.
    Die maximale Temperatur des Kühlkörpers soll auf zwei Wegen im erlaubten Rahmen (maximal 65-85°C) gehalten werden:

    1.: Durch absenkung des LED-Stromes, falls Lüfter mit 100% nicht reicht.
    2.: Ein 120'er Miefquirl "so leise wie möglich" Luft durch die Kühlrippen bläst.

    Normale Päpste kann man mittels Spannungs- und Stromregelung eingeschränkt in Ihrer Drehzahl regulieren, allerdings soll es diesmal ein PWM-Lüfter werden...so einer hier:

    Noiseblocker XL-P

    Laut der Spezifikation zu PWM-Lüftern soll die Drehzahl im Bereich von mindestens 30-100% mittels PWM bei 25kHz PWM-Frequenz geregelt werden können.

    Was PWM ist und wie es technisch funktioniert ist mir klar, allerdings habe ich sowas noch nie selber programmieren müssen.
    So fängt es bei mir schon bei der Frage an, wie ich nen kleinen Atmel (ATtiny oder maximal ATmega8) auf exakt 25kHz PWM-Frequenz zwinge.

    Hat da jemand nen Tip, oder Beispiel-Codeschnipsel wie sowas bei verschiedenen Taktfrequenzen aussehen sollte?
    Der Prescaler im Config Timer alleine scheint mir da nicht wirklich zu reichen für, oder täusche ich mich da?

    Grüße aus Dortmund

    Jürgen Hüser

  2. #2
    Administrator Avatar von DON
    Registriert seit
    19.11.2016
    Ort
    Herford
    Beiträge
    368
    Die Frequenz weiß ich leider nicht mehr.
    http://altesforum.bascom-forum.de/sh...ghlight=pwm%2A
    Pwm.bas
    Geändert von DON (01.01.2017 um 17:01 Uhr)
    Ein Mensch mag noch so herausragende Fähigkeiten haben – wenn er arrogant und selbstsüchtig ist, sind sie nichts wert.
    Konfuzius


  3. #3
    Spaghetti-Coder
    Registriert seit
    10.11.2016
    Beiträge
    65
    Hallo Jürgen,
    wenn du den Controller (z.B. Tiny25) auf 12MHz laufen lässt, dann kannst du z.B. mit Timer0 und normalem PWM bei Prescale 1 eine PWM mit der Frequenz 23,5KHz (12.000.000 / 1 / 510) erzeugen. Falls das nicht nahe genug an 25KHz ist und du auch keine beliebigen Quarze (hier wären 12,75MHz notwendig) besorgen kannst, musst du auf einen Mode gehen, bei dem du die Frequenz mittels OCRnA verstellen kannst. Dies geht dann aber nicht mehr mit Bascom Bordmitteln sondern nur noch über Timer Register direkt setzen.
    Im Moment ist deine Anfrage noch etwas zu vage, um dir konkreter zu helfen.

  4. #4
    Kabelträger
    Registriert seit
    08.12.2016
    Beiträge
    24
    Hallo!

    @DON:
    Das sieht mir nicht nach einem PWM-Lüfter aus, sondern nach einem normalen DC-Lüfter. Genau das will ich meiden.

    @ Basti:
    Konkreter ist im Augenblick schlichtweg nicht möglich, da dieses Projekt erst im groben Abstecken der Problemfelder ist.
    Daher ist bereits die Frage "welcher Atmel" noch in weiter ferne.
    Bislang habe ich:
    Drei Schieberegister zur Regelung der LED-Ströme, braucht also schon mal ein paar Portpins für Data, Clock, Enable usw.
    Einen PWM der mit maximal 8Bit Auflösung den Lüfter ansteuert, einmal 1wire für ein DS18S20...und obendrauf eine RTC.
    Letztere ist wichtig (Schaltuhrfunktion), aber noch nicht klar ob via 32kHz-Quarz direkt an nem Atmel, oder doch eher extern via I²C.

  5. #5
    Administrator Avatar von DON
    Registriert seit
    19.11.2016
    Ort
    Herford
    Beiträge
    368
    Klicken Sie auf die Grafik für eine größere Ansicht 

Name:	15031112.gif 
Hits:	10 
Größe:	3,3 KB 
ID:	362
    Ich sehe gerade den Unterschied wie es schein wird noch nicht einmal ein Transistor benötigt.
    http://www.elektronik-kompendium.de/...om/1503111.htm
    Ein Mensch mag noch so herausragende Fähigkeiten haben – wenn er arrogant und selbstsüchtig ist, sind sie nichts wert.
    Konfuzius


  6. #6
    Spaghetti-Coder
    Registriert seit
    10.11.2016
    Beiträge
    65
    Zitat Zitat von DG7GJ Beitrag anzeigen
    Letztere ist wichtig (Schaltuhrfunktion), aber noch nicht klar ob via 32kHz-Quarz direkt an nem Atmel, oder doch eher extern via I²C.
    Extern kannst du natürlich ein wenig an Genauigkeit dazubekommen. Selbst ein guter 32KHz Quarz macht immer noch mehr als eine Sekunde Abweichung pro Tag.
    Also brauchst du mindestens 8 freie GPIOs, somit fallen die ganz kleinen Tinys weg. Mit dem 32KHz direkt am Controller verabschiedest du dich wahrscheinlich komplett von den Tinys.
    Wenn ich so etwas bastele, nehme ich meistens ein fertiges 328 Modul. Dann brauche ich mich nicht mit dem ganzen Kleinkram rumzuschlagen. Und mit 3€/Stk. sind die Kosten vertretbar (z.B. dies hier). Dann hast du gleich auch noch etwas Reserve.
    Geändert von Basti (02.01.2017 um 15:26 Uhr)

  7. #7
    Kabelträger
    Registriert seit
    08.12.2016
    Beiträge
    24
    Hallo DON!


    Zitat Zitat von DON Beitrag anzeigen
    Ich sehe gerade den Unterschied wie es schein wird noch nicht einmal ein Transistor benötigt.
    http://www.elektronik-kompendium.de/...om/1503111.htm
    Jawoll, genau darum geht es...:-)
    Einen N-FET in SOT89 oder so kommt da auf jeden Fall noch ran, um den Lüfter masseseitig komplett abschalten zu können.
    Denn diese Dinger haben alle eine Mindestdrehzahl auch wenn das PWM-Signal auf 0% liegt.
    Der Standard den ich im ersten Post verlinkt habe schreibt als Minnimaldrehzahl bzw. "Einschaltdrehzahl" maximal 30% der Nenndrehzahl vor.

    Da die Gesamtschaltung permanent mit Spannung versorgt wird, die Lasten (Power-LED's) aber nur stundenweise eingeschaltet werden, muss man den Lüfter eben komplett von den 12V trennen wenn er garnicht gebraucht wird (LED's aus, Kühlkörper = Umgebungstemperatur).

    Das Problem ist zweigleisig:

    1.: Die Auswahl an besonders leisen und zugleich durchsatzstarken Lüftern wird immer überschaubarer und lückenhafter wenn man Modelle mit PWM ignoriert. Scheinbar werden große Modelle nur noch mit 4-Pin/PWM gebaut.

    Beispiel anhand des gewünschten Modells Noiseblock XL:

    Noiseblock XL-1 mit 3-Pin ohne PWM kommt auf maximal 1000rpm entsprechend 69m³/h Durchsatz.
    Noiseblock XL-P mit 4-Pin und PWM kommt bis auf 2000rpm entsprechend 128m³/h Durchsatz.

    Größe, Bauart und Design absolut identisch, aber die Drehzahl und damit die Luftdurchsatz ist beim PWM-Modell bei 100% doppelt so hoch, als beim 3-Pin ohne PWM direkt an 12V.
    Warum das so ist frage ich mich auch. Das ist aber bei anderen Modellen und Herstellern scheinbar überall so. Gibt es leise 120'er Lüfter die über 100m³/h kommen, haben die meißt PWM-Ansteuerung. Findet man zufällig ein baugleiches Modell ohne PWM mit simplen 3-Pin Stecker, liegt der angegebene Durchsatz nur bei knapp der Hälfte. *Grumel*

    2.: Dieser dämliche INTEL-Standard schreibt eine frequenzselektive PWM vor die mit 25kHz angegeben ist.
    Versucht man solche Lüfter mit irgendeiner PWM-Frequenz zu füttern, reagieren diese Lüfter eigenwillig. Eine sinnvolle Drehzahlsteuerung ist nur mit festen 25kHz möglich.

    Jedenfalls lese ich mich gerade in den Config Timer ~ PWM Themen ein was es da alles neben dem Prescaler gibt.

  8. #8
    Kabelträger
    Registriert seit
    08.12.2016
    Beiträge
    24
    Hi Basti!

    Zitat Zitat von Basti Beitrag anzeigen
    Extern kannst du natürlich ein wenig an Genauigkeit dazubekommen. Selbst ein guter 32KHz Quarz macht immer noch mehr als eine Sekunde Abweichung pro Tag.
    Tja...die RTC bringt auch noch Bauchschmerzen, die ich erstmal nach hinten gerückt hab.
    Bisherige projekte mit 32kHz-Quarzen hatten Abweichungen zwischen 0,3 - 12sek./Tag.
    Etwas genauer, um nicht zu sagen "möglichst genau" sollte es schon sein, da eben eine Schaltuhrfunktion realisiert werden soll wodurch die Power-LED's möglichst genau (maximale Abweicheng <1 Minute innerhalb eines Jahres) geschaltet werden sollen.
    DCF77 fällt weg aufgrund fettem Schaltnetzteil mit 65-85kHz Schaltbereich, und GPS weil das Teil in Innenräumen montiert werden soll.
    Also wird es wohl oder übel auf eine externe RTC hinauslaufen müssen, wenn sich eine findet die hinreichend genau ist.

    Ein 32kHz-Quarz würde schon reichen, wenn man da was kalibrieren könnte. Aber ein 32kHz-Uhrenquarz an den RTC-Pins ziehen stelle ich mir heikel vor.
    Ein 1pps-Referenzsignal hätte ich hier von einem GPS-Projekt. Phasenregelschleife dazu und ein Abgleich wäre machbar.
    Aber irgend eine Art von Kapazitätstrimmer da an soeinem 32kHz Quarz ist Humbug. Solche Trimmer haben eine viel größere Temperaturschwankung als solche Uhrenquarze..:-(

    Zitat Zitat von Basti Beitrag anzeigen
    Also brauchst du mindestens 8 freie GPIOs, somit fallen die ganz kleinen Tinys weg. Mit dem 32KHz direkt am Controller verabschiedest du dich wahrscheinlich komplett von den Tinys.
    Nunja...meine ersten Vorstellungen sind noch nicht spruchreif.
    Was die Mechanik angeht:
    Die LED's brauchen einen fetten Kühlkörper mit mindestens 250mm Länge.
    Die Breite wird durch das Netzteil bestimmt welches direkt oben drauf kommen soll: 215x120mm
    Kühlköper könnte nach ersten Recherchen ein Fischer SK466 in Sonderlänge werden:
    http://www.fischerelektronik.de/web_...6_/index.xhtml

    Zwei Stück davon in ca. 2cm Abstand übereinander...Rippen auf Rippen.
    Seiten abdichten, auf einer Seite den Lüfter ziehen lassen = Selfmade-Kühlagregat.
    Der untere Kühlkörper wird durch die LED's beheizt (max. 120W Abwärme), der obere durch die Stromregler (bis zu 90W Verlustleistung)

    Bei Länge 250mm hätte die Platine mit µC + Stromregler für die LED's lediglich 35x138mm Fläche...arg knapp.
    Lasse ich mir die SK466 in 300mm Länge schneiden hätte ich für die Platine noch 85x138mm Grundfläche.
    Im letzteren Fall paradisisch viel platz.
    Muss mal gucken...die Anfrage wieviel meine Wunschlänge x 2 bei Fischer kosten würde ist noch unbeantwortet.


    Zitat Zitat von Basti Beitrag anzeigen
    Wenn ich so etwas bastele, nehme ich meistens ein fertiges 328 Modul. Dann brauche ich mich nicht mit dem ganzen Kleinkram rumzuschlagen. Und mit 3€/Stk. sind die Kosten vertretbar (z.B. dies hier). Dann hast du gleich auch noch etwas Reserve.
    Hmm, mit diesen Modulen habe ich bisher nie was gemacht.
    Abgesehen davon das ich bisher nue USB brauchte, und schonmal absolut keinen CH340...gibt es zu diesen Teilen eine Doku?
    Hab mich z.B. schon öfters gefragt ob die 6pin-Header gegenüber der USB-Buchse eine vollwerte ISP nach Atmel-Norm ist, oder irgendwas anderes.

  9. #9
    Spaghetti-Coder
    Registriert seit
    10.11.2016
    Beiträge
    65
    Zitat Zitat von DG7GJ Beitrag anzeigen
    Hmm, mit diesen Modulen habe ich bisher nie was gemacht.
    Abgesehen davon das ich bisher nue USB brauchte, und schonmal absolut keinen CH340...gibt es zu diesen Teilen eine Doku?
    Ich auch nicht, aber wenn's drauf ist ...
    Ich schicke dir eine PN mit der Doku, die ich zu meinen Modulen bekommen habe. Nicht viel, aber soweit ausreichend.

    Zitat Zitat von DG7GJ Beitrag anzeigen
    Hab mich z.B. schon öfters gefragt ob die 6pin-Header gegenüber der USB-Buchse eine vollwerte ISP nach Atmel-Norm ist, oder irgendwas anderes.
    Auf dem 10-poligen hast du halt mehrere GND drauf, bei den 6-poligen nur einen. Ansonsten VCC, MISO,MOSI,SCK und RESET, also alles was benötigt wird. Mein Diamex hat beide buchsen drauf.

    Bzgl. Timer geht es so:
    Du wählst entweder einen Fast-PWM oder einen phasenkorrekten PWM mit ICR1 oder OCR1A als Top Wert aus. das gibt es bei fast allen Controllern mit dem 16-bit Timer1.
    Bleiben wir bei den M328P, so wäre da ein 16MHz Quarz verbaut. Bei 25KHz PWM Frequenz bleiben dir dann
    16.000.000 / 25.000 = 640 verschiedene Werte der PWM (bei Prescale 1).
    Andere Quarzwerte entsprechend umrechnen.
    Diese 640 ist dann dein Top Wert, also der Wert, bis zu dem der Timer zählt bevor er wieder auf 0 springt und von vorne loslegt.
    Wenn wir Timer1 mit Mode 14 (Fast-PWM mit ICR1 als Top Wert) nehmen dann bedeutet das etwa diese Konfiguration:

    Config Timer1 = Pwm , Prescale = 1 , Compare_a_pwm = Clear_up ' oder = Clear_down
    Tccr1b.wgm13 = 1
    Tccr1b.wgm12 = 1
    Tccr1a.wgm11 = 1
    Tccr1a.wgm10 = 0

    ICR1 = 639 (1 weniger, weil bei 0 begonnen wird)
    OCR1A = 159 (dein Duty-Cycle (hier 25%), den du im Programm nach deinen Wünschen änderst)

    Dann kommt am Pin OC1A eine PWM mit exakt 25KHz raus.

  10. #10
    Spaghetti-Coder
    Registriert seit
    10.11.2016
    Beiträge
    65
    Hallo DON,
    ich wollte DG7GJ eine PN schicken, sehe aber nirgendwo eine Möglichkeit dazu.
    Ist die Funktion abgeschaltet?

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •