Hallo,
Ich habe ein ferngesteuertes Auto gebaut, welches zum Lenken einen
Scheibenwischermotor benutzt, welcher über den IRF1404 Mosfet am Atmega
8 liegt.
Das funktioniert auch alles ganz gut, aber nach ungregelmäßiger Zeit
scheint der AVR teilweise abzustürzen. DH. die PWM für den IRF (Hardware
PWM mit Timer1 an OCR1A ist einfach weg und ich kann auch nichts mehr
empfangen (RFM12 Funkmodul über Software SPI), aber die Interrupts und
auch die Hauptschleife laufen noch.
Ich habe nämlich einen Counter eingebaut, der wenn über ein paar
Sekunden kein Funksignal eingeht (was bei diesem Absturz der Fall ist)
Eine Routine aufruft, die das Funkmodul neu initialisiert und auch die
Bits im TimerRegister für die PWM nochmal setzt. Diese Routine wird bei
dem Absturz aufgerufen und der Funk läuft danach wieder. Es ist so als
ob alles wieder funktioniert, nur die PWM bleibt aus. Nach einem
Hardware-Reset läuft wieder alles, also ist eine Überhitzung des FETs
unwahrscheinlich.
Wenn ich den Motor abstecke, dann stürzt er nicht ab.
Ich habe den IRF1404 mit dem Gate direkt am AVR Pin, mit Source auf
Masse und Drain über die Last an 12V+.
Denke mal nicht, dass das die konventionelle Methode ist, aber bis auf
die Abstürze funktionierts.
Kann es sein, dass der PWM Pin überlastet ist und abschaltet?
Muss ich einen Vorwiderstand vor das Gate schalten?
Also der Atmega läuft auf internen 8 Mhz und die PWM hat einen Prescaler
von 64. Aber das dürfte doch nicht zu schnell sein, oder?
Achso: Ich habe auch einen Modellbau Servo an einer PWM hängen (Timer0
Pin OCR) und interessanterweise geht die auch nicht mehr, sobald es zu
so einem Absturz kommt. Aber wie gesagt, alles andere läuft noch, auch
normale IO Pins.Und nach einem Reset ist alles wieder in Ordnung.
Thomas Oster (thommy.oster) wrote:
> Eine Routine aufruft, die das Funkmodul neu initialisiert und auch die> Bits im TimerRegister für die PWM nochmal setzt.
Vielleicht hast du Fehler beim setzen der Bits, wenn du das einfach
weglässt müssts ja trotzdem funktionieren, da es den Timer ja nicht
interessiert wenn der Funk ausfällt.
Vielleicht mal probieren ?
Wie siehts mit Freilaufdiode aus?
mfg
Freilaufdiode habe ich eingebaut => keine Änderung.
Das Problem bestand schon bevor ich die Routine mit dem Bits neu setzen
und Funkmodul neu initialisieren eingebaut hatte.
Mir ist nur aufgefallen, dass der UART weiterhin reagierte (Rx
Interrupt) und hatte deshalb die Idee mit dem FunkTimer.
Und seit dem kann ich nach dem Absturz wenn das Funkmodul neu
initialisiert ist wieder empfangen, aber die PWMs bleiben tot.
Das interessante ist halt: Wenn ich den Motor abklemme, stürzt er nicht
ab. Es muss also irgendwie an der Art des Anklemmens beim IRF1404
liegen.
Übrigens: Hab schon extra eine Eigene Stromversorgung für den Motor
eingebaut weil ich dachte, er belastet die andere vielleicht so, dass
die Spannung absinkt und deshalb der Atmega abstürzt, aber wie gesagt es
sind jetzt zwei Stromkreise mit Common GND. (Zwei Auto Batterien).
Hat niemand einen IRF1404 in seiner Schaltung und kann mir einen tipp
geben, wie man ihn korrekt einbaut?
Oder dürfte es kein Problem geben, ihn direkt an den Atmega-Pin zu
hängen?
Thomas Oster (thommy.oster) wrote:
> Hat niemand einen IRF1404 in seiner Schaltung und kann mir einen tipp> geben, wie man ihn korrekt einbaut?
Ich verbaue den gerne, aber nie direkt an einem AVR Portpin. 160nC
Gateladung sind schon ziemlich viel. Ein Treiber wäre zwischen AVR und
Mosfet wäre schon sinnvoll.
Bin leider noch nicht so erfahren in Sachen Elektronik, deshalb weiss
ich nicht genau, was ein Treiber in Zusammenhang mit einem Mosfet ist.
Welchen Treiber sollte ich einsetzen? Wo bekomme ich den? und wie
funktioniert er?
Denke mal man benutzt als Treiber einen Transistor oder kleiner
dimensionierten Fet, ist das richtig?
Danke für die Hilfe
Achso: Noch eine Idee:
Also wie gesagt, das Problem tritt nicht auf, wenn der Motor abgeklemmt
ist, also wenn Drain des Fets nicht verbunden ist.
Falls es also daran liegt, dass der Fet den AVR-Pin überlastet, müsste
sich die Gate Kapazität nach Belastung des Fets ändern.
Ist das richtig? Braucht der Fet mehr Gateladung, oder ändert sich die
Auf/Entladezeit mit der Belastung des Fets?
@ Thomas Oster (thommy.oster) (Gast)
>ich nicht genau, was ein Treiber in Zusammenhang mit einem Mosfet ist.
Das ist eine Schaltung, welche ein schwaches Logiksignal vom AVR in ein
starkes Steuersignal für einen MOSFET umwandelt. Praktisch ein
(digitaler) Verstärker.
>Welchen Treiber sollte ich einsetzen? Wo bekomme ich den? und wie>funktioniert er?>Denke mal man benutzt als Treiber einen Transistor oder kleiner>dimensionierten Fet, ist das richtig?
Im Prinzip ja.
>Falls es also daran liegt, dass der Fet den AVR-Pin überlastet, müsste>sich die Gate Kapazität nach Belastung des Fets ändern.>Ist das richtig?
Ja. Und das tut sie auch. Nennt sich Miller Charge.
> Braucht der Fet mehr Gateladung, oder ändert sich die>Auf/Entladezeit mit der Belastung des Fets?
Ja.
MFG
Falk
Kann vielleicht jemand eine Schaltung die auf dieses FET passt posten,
also welchen transisor usw man benutzt und wie die angeklemmt werden.
Wahrscheinlich braucht man wohl eher zwei transistoren, einen zum auf
und einen zum entladen, oder? Ein FET entläd sich ja nicht selbst.
Achso und viele Transistoren sind doch relativ langsam. Also müssten sie
auch entsprechend gewählt sein, dass sie auf meine PWM passen.
Welche würdet ihr mir empfehlen und wie muss ich sie verdrahten?
Thx
Danke für den Tipp
Morgen kommen direkt mal 3 Stück davon, dann kann ich sagen, ob das auch
die Fehlerquelle war. Aber gesünder für den Atmega ist es auf jeden
Fall, denke mal so ein Scheibenwischermotor zieht bei Belastung schon
einige Ampere.....
Melde mich dann