Hallo Leute, ziemlich komisch, mir gehen die ganzen Pullups meines Mega1280 nacheinander flöten... Die Pins liegen direkt an den Clock-Ausgängen von via PWM angesteuerten PC-Lüftern. Stundenlang funktioniert alles bestens (Clock signal wird über interrupt ausgwertet). Zuerst haben dann 2 pullups nichtmehr funktioniert, jetzt sind es schon 4 von 6, die nichtmehr funktionieren. Auch wenn ich die Lüfter wegnehme, der Pin bleibt nurnoch auf 0V, keine Softwareänderungen. Wie kann denn sowas passieren? Euer Tom
Benutzt du keine Freilaufdioden an den Lüftermotoren? http://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern#Freilaufdiode
>ziemlich komisch, mir gehen die ganzen Pullups meines Mega1280 >nacheinander flöten... Die Pullups sinds wahrscheinlich nicht. >Auch wenn ich die Lüfter wegnehme, >der Pin bleibt nurnoch auf 0V, keine Softwareänderungen. >Wie kann denn sowas passieren? Da ist dir die interne Schutzdiode gegen GND wegen massiver negativer Unterschwinger abgeraucht. Ein Widerstand vor dem Eingang könnte da helfen. Evtl. ist es dann besser externe Pullups zu nehmen.
Danke für die Hilfen, Geschaltet wird via P-Fet die 12V Spannung vom Lüfter. im Moment hab ich eine Schottkydiode eingebaut, die so geschaltet ist: diode GND ----- >| ------ +12v Die sollte doch das gewünschte tun? Sollte ich dann nur externe Widerstände als Pullups verwenden oder (mit nem neuen controller) einfach z.b. 1k Ohm in die Leitung schalten und die internen Pullups verwenden? oder sogar beides? Grüße, Tom
Kurzer nachtrag, mit den +12v ist der durch den mosfet geschaltete Pfad gemeint. also nach dem mosfet.
Tu dir und uns den Gefallen und bring ein Schaltbild statt verbaler Beschreibung.
Sorry, du hast natürlich Recht, hier ist das Schaltbild! RLAST sind die Lüfter (sind 4 PC-Lüfter Parallel, insgesamt ca. 1,2A max) C5 ist aktuell mit 10uF keramik bestückt. Danke euch!
Was noch wichtig ist, PWM Frequenz ist 20Hz. Das funktioniert zum regeln bestens. Einzig das Clocksignal kann ich nicht so wirklich gut auswerten damit, da die PWM da "mit drinn ist".
>Was noch wichtig ist, PWM Frequenz ist 20Hz. Das funktioniert zum regeln >bestens. Einzig das Clocksignal kann ich nicht so wirklich gut auswerten >damit, da die PWM da "mit drinn ist". Hat dir noch niemand gesagt das man PC Lüfter mit Tacho Ausgang nicht per PWM regelt?
> Hat dir noch niemand gesagt das man PC Lüfter > mit Tacho Ausgang nicht per PWM regelt? Das war mir schon mehr oder weniger bewusst. Mir gings mehr ums regeln, als ums messen. Im Prinzip will ich nur wissen, ob ein Lüfter kaputt ist und es gibt im Messwert immerhin einen 40%igen Unterschied zwischen langsam drehenden Lüftern und vollbetrieb, auch wenn es nach Gefühl eher 85% Unterschied sein müssten. Evtl. kann man ja den Messwert durch ne art Approximation noch etwas genauer hinkriegen und die PWM statistisch "rausrechnen". Die Eingänge wollt ich allerdings nicht kaputt machen vom Prozi :(
Man kann auch einfach die PWM Highside auf den Lüfter geben. Dann gibt es keine Probleme mit dem Taktsignal. Außer möglicher Einstreuungen eventuell. Aber dafür reicht ja ein kleiner Tiefpass.
Simon, wenn ich dich richtig verstanden habe, dann tu ich bereits das, was du ansprichst. Meine Lüfter haben aber die Eigenheit, dass es nur mit Strom ein Taktsignal gibt. Dreh ich den Lüfter ganz langsam mit der Hand, wird das Signal nie auf low gezogen. Wenn ich ihn aber etwas stärker anstupse, dann seh ich wunderbar die low/high flanken. Evtl. eine Art Lichtschranke und der Lüfter beim stärkeren Anstupsen als Generator? ;-) Sorry, hab noch nicht so viel Ahnung von Elektronik
Sie sehen zwar nicht so aus, aber heutige Lüfter sind elektronische Komponenten, da die Schleifkohlen früherer Gleichstrommotoren durch elektronische Steuerung ersetzt wurden. Wenig erstaunlich ist da, dass ohne Strom kein Tachosignal kommt. Manche solcher Dinger sind PWM-tauglich, andere nicht. Wieder andere haben einen PWM-Eingang (4pol Anschluss). Und die PWM-tauglichen mögen vielleicht nur bei hohen PWM-Frequenzen (Grössenordnung 10KHz) funktionieren, oder bei niedrigen (Grössenordnung 20Hz).
Wie du dir mit dieser Schaltung deinen Mega1280 abschiesst ist mir unklar. Muss was anderes sein als das, was hier sichtbar ist.
Was kommt denn für ein Spannungspegel an den Taktausgängen der Lüfter raus und wie ist dieser Lüftertaktausgang an den Atmega angeschlossen? Wenn da ein 12V-Taktsignal kommt, wäre der Fall unter Umständen klar ;)
Hi, der Clockausgang (sorry, ist da garnet aufgezeichnet) geht direkt auf die Ports vom Atmega. Interner Pullup ist aktiviert. => wunderbare Rechteckssignale zwischen 0 und +4,8V, steile Flanken, eigtl. perfekt. Ich kann auch keine Übermäßigen Spitzen nach oben oder irgendwas erkennen. Aber die Ports sterben nacheinander, alle paar Stunden wird auf einmal einer weniger hochgezogen.. :(
Sind deine vermeintlichen 330-er (R13, Aufdruck 331) möglicherweise 33-er (Aufdruck 330)?
Tom wrote: > Hi, > > der Clockausgang (sorry, ist da garnet aufgezeichnet) geht direkt auf > die Ports vom Atmega. Interner Pullup ist aktiviert. > > => wunderbare Rechteckssignale zwischen 0 und +4,8V, steile Flanken, > eigtl. perfekt. Ist das die Spannung im angeschlossenen Zustand oder auch dann, wenn der Taktausgang nicht am Atmega hängt?
Hallo nochmal. Hängt der Taktausgang nicht am Atmega sinds konstante 4,8V. Ich hab nun mal ein Bild von der Sachlage gemacht. Grün (Channel 4) ist die per PWM gesteuerte 12V Spannung (5v Skala) (20hz) Gelb (Channel 1) ist der Taktausgang des Lüfters Beim ausschalten der PWM gibt es also Einstreuungen in die Clockleitung und dadurch werden (mehrfach) interrupts ausgelöst (sind alles die INT ports). > Sind deine vermeintlichen 330-er (R13, SMD-Aufdruck: 331) möglicherweise > 33-er (SMD Aufdruck: 330)? das sind schon 300 Ohm. Kaputt geht auch nicht der PWM ausgang, sondern die Clock Eingänge, die direkt mit dem Clocksignal verbunden sind. Dass der Messwert falsch wird, ok. Aber kann durch die ersichtliche Einstreuung der Eingang/Pullup kaputtgehen? Danke und viele Grüße, Euer Tom!
Nächste Möglichkeit: Clock-Anschlüsse statt auf Eingang mit Pullup versehentlich auf Ausgang high programmiert und Lüfter erwischt die genug Schmackes haben, die trotzdem runterziehen zu können.
Tom wrote:
> Hängt der Taktausgang nicht am Atmega sinds konstante 4,8V.
Kapier ich jetzt grad nicht. Einen Takt liefert der Tacho nur wenn der
Mega da dranhängt? Könnte ich mir ja noch andersrum vorstellen, also
konstant auf 0 weil Open Collector, aber so?
Skope vorsorglich mal die Ströme. An allen Lüfter-Anschlüssen.
Tom wrote: > Kaputt geht auch nicht der PWM ausgang, sondern > die Clock Eingänge, die direkt mit dem Clocksignal verbunden sind. Sorry den sehe ich in dem Schaltbild nicht. Wie hast du den Clock-Eingang am AVR gegen Überspannungen und Überstrom abgesichert? Ist die Messung in dem Oszibild von der Situation Clock am AVR angeschlossen (noch heile AVR Schutzdioden ggf. aktiv) oder ist das gemessen, wenn die Clockleitung frei bambelt (PWM aber angeschlossen bzw. Lüfter läuft konstant)?
Hallo, das erinnert mich an einen ähnlichen Fall, den ich mal hatte. Ist aber sehr spekulativ: Am Drain deines MOSFETs sehe ich keinen Bypasskondensator gegen Gnd. Der FET schaltet sehr schnell aus, und wenn die Leitungen zum nächsten Kondensator lang sind, gibt es allein wegen den Leitungen einen induktiven Peak. Also Cerco 100n direkt zwischen Drain und Gnd. Peter
Ja, ohne Mega konstant 4.8V und mit Mega & Pullup der Takt. Hier stimmt doch etwas hinten und vorne nicht ...
Die Eingänge also... Die Nadel auf dem Clock kommt sicherlich von dem Kondensator parallel zum Lüfter. Der wird beim Einschalten des FETs schlagartig geladen. Da müsste zumindest noch ein Widerstand in Reihe mit dem Kondensator rein. Zu den konstanten 4.8V fällt mir nichts ein.
@ Peter Hoppe (peterhoppe59) >Also Cerco 100n direkt zwischen Drain und Gnd. AUA! Das ist einfach Bockmist^3! Genau wie die Schaltung des OP. Einen 10 MIKROFarad Kondensator DIREKT mit ner PWM zu behämmern ist einfach behämmert! Der Op sollte sich mal mit dem Konzept es Schaltreglers vertraut machen und sich fragen, warum dort ne Spule drin ist. Solche Lüftermotoren werden wie bereits gesagt mit PWM selten glücklich. Hier braucht man eine klassiche lineare Ansteuerung. Ist auch kein Problem. Die PWM mit RC-Filter glätten und auf einen OPV geben, LM358 tuts. Dahinter ein BC337 als Emitterfolger und fertig. Siehe Anhang. MFG Falk
Falk Brunner wrote: > @ Peter Hoppe (peterhoppe59) > >>Also Cerco 100n direkt zwischen Drain und Gnd. > > AUA! Das ist einfach Bockmist^3! Entschuldigung, ich meinte das Source, also die Seite mit Vcc. Peter
Dass die PWM-Steuerung nicht allzu sinnvoll und noch dazu fragwürdig realisiert ist - klar. Offen ist jedoch, warum der Controller darunter leidet. Wäre irgendwie enttäuschend, die Auflösung nicht mitzukriegen (Lüfter verkehrt angeschlossen, oder was auch immer).
Ich habe in vergleichbarer Rolle sowas mal mit einem LM2575-ADJ realisiert, der eine per PWM steuerbare Gleichspannung produziert. War mir lieber als etliche Watt linear zu verheizen. Ausserdem war es interessanter. Immerhin schreibt er von 1,2A (müssen ja ziemliche Brummer sein). Nicht direkt die Domäne vom BC337.
Hallo, ich nochmal. Die 4,8V ist die Spannung am Atmega Eingangspin, wenn kein Lüfter drann hängt. Also ganz einfach per Pullup hochgezogen. (Solange der noch funktioniert) Das Bild ist von einem Pin mit noch funktionierendem Pullup. Der Lüfter macht ja nix anderes als die Clockleitung auf Masse zu ziehen. Die Leitung zum 10uF keramikkondensator ist 1cm lang und 3cm breit. Diese Einstreuung kommt ja in dem Moment, wenn der Mosfet ausschaltet (Grün --> 0v) Ich frag mich halt nur weshalb da die Pins den Geist aufgeben, mit der Clockleitung hab ich ja eigentlich nix gemacht. die Hängt einfach nur ohne alles vom Lüfter aufm AVR und der zieht sie auf 5V.
@A. K. (prx) >realisiert ist - klar. Offen ist jedoch, warum der Controller darunter >leidet. Möglicherweise reisst das Aufladen des Kondensators die Masse vom Lüfter mit hoch und die Eingänge vom AVR kriegen einen saftigen Stromstoss. Könnte man zumindest dadurch verhindern, indem man 1K Längswiderstände vor die AVR-Pins schaltet. MFG Falk
Hallo, den Kondensator hab ich jetzt mal ausgelötet. Dann werd ich mal sehen ob ich noch pins kaputt krieg. Funktionsunterschied gibts keinen, Lüfter lassen sich bei 20hz bestens und geräuschlos regeln. Grüße!
Da werden wohl doch ein paar hochenergetische Spikes von der Clockleitung kommen, woher auch immer du dir die einkoppelst (z.B. übersprechende Leitungen). Ein kleiner Tiefpass mit z.B. 100 Ohm/47pF am Eingang in der Nähe des Prozessors sollte das abfangen. Dein Design ist allerdings wirklich ungünstig, wie schon beschrieben wurde, weil du durch den 10uF Kondensator dafür sorgst, dass enorme Pulsströme fließen. Damit erzeugst du also hochenergetische Störungen, die du dir dann wieder einkoppelst.
Was nützen die ganzen Freilaufdioden, wenn es keinen Weg zum Freilaufen gibt. Die hohen, kurzzuschließenden Frequenzen müssen auch irgentwie kurzgeschlossen werden. Wenn schon kein Bypasskondensator drinn ist, sollte wenigstens eine der Schottkydioden raus, damit wenigstens teilweise übers Netzteil und über den/die dort befindlichen Elkos (so diese schnell genug sind) die Spikes abfließen können.
Ich würde beide shottkys und C5 rauswerfen. C5 schließt nur im Einschaltmoment die Spannung kurz. Das Tachosignal über 1k an den AVR-pin anschließen. Wie hast du den Pullup aktiviert?
1 | DDRB &= ~(1<<PB7); |
2 | PORTB |= (1<<PB7); |
so ungefähr? Nicht dass du den pin gewaltsam runter oder hoch ziehst ;) Such auch mal im Code, ob du dort etwas vergessen hast. Mir ist es mal passiert, dass ich die input buffer abgeschaltet habe um Strom zu sparen. Für das nächste Projekt habe ich den code übernommen und konnte keinen Taster auslesen :/ Der pullup hat aber weiterhin funktioniert. Miss doch mal nach, welche Spannung tatsächlich an dem pin mit aktiviertem pullup anliegt. Also nicht in software sondern mit multimeter.
Hallo, ich bin grade dabei zu verstehen, dass meine Freilaufdiode net so viel bringt auf Grund der beiden Schottkydioden bei den Spannungseingängen. Die hab ich drinn, um die beiden Netzteile zu entkoppeln (Strom für die Lüfter wird doppelt zugeführt, wenn ein Netzteil kaputt geht sollten die Lüfter noch immer laufen) Reicht es evtl. noch ne zusätzliche Diode antiparallel zu den entkopplungsdioden zu schließen? Mehr als 0,3V Differenz sollten die Netzteile ja nie im Leben haben, also sollte auch nie Strom von einem ins andere fließen (Was ich ja mit den zwei Dioden verhindern will)
Hey dewetron, danke für den Input aber für mich als Elektronikeinsteiger nicht ganz so einfach zu verstehen. Den Transistor sollte ich dann logischerweise invertierend zur PWM schalten, richtig? Also in dem Moment, wo die Versorgungsspannung weg ist gleichzeitig gegen Masse kurzschließen um die induzierte Spannung abzuführen? Wäre es besser den Transistor erst hinter den Mosfet zu machen damit es da nicht immer durch die body diode durchmuss?
Hoppla ich hab Transistor statt Kondensator gelesen, sorry. Was genau ist denn ein schneller Kondensator? Davon hab ich ehrlich gesagt noch nie was gehört. Eher Keramik oder Elko?
Er meint einen Kondensator mit geringer parasitärer Induktivität. Vielschicht-Keramikkondensatoren (SMD) beispielsweise.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.