Forum: Mikrocontroller und Digitale Elektronik 0.5V an AVR Ausgang trotz Output auf LOW sowie LM35 ärger


von Andreas J. (anju01)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

vorweg schicke ich, dass ich kein Profi bin und mir alles soweit selbst 
angelesen habe. Der Profi möge mir den laienhaften Schaltplan bitte 
nachsehen.

Zum großen Problem:
Ich habe einen AtMega328p der über einen LM35 ein Heizelement steuern 
soll.
Die Schaltung erfolgt über ein Mosfet IRLZ34n.
Soweit so gut, leider habe ich am Gate des Mosfet immer ca 0.5v 
anliegen, was für das Mosfet schon reicht zum durchschalten.
Ich kann mir nicht erklären wo die 0.5V trotz Schaltung des AVR Ausgangs 
auf LOW herkommen.

Zum kleinen Problem:
Wenn ich die Schaltung an meinen USBasp hänge und darüber mit Saft 
versorge (natürlich ohne Heizung+Lüfter), dann habe ich zwar auch die 
0.5V am Gate des Mosfet anliegen, aber der LM35 zeigt korrekte Werte 
usw.
Wenn ich nun aber ein 12V Netzteil an die Klemme anschließe, dann spinnt 
der LM35 und die Temperatur springt wild herum.


Anbei der Schaltplan.
Gibt es jemanden der die Muße hätte mir auf den richtigen Weg zu helfen? 
Für sonstige Verbesserungsvorschläge bin ich äußerst offen und bedanke 
mich bereits jetzt :)

Grüße
Andreas

von Michael U. (amiga)


Lesenswert?

Hallo,

nur kurz geschaut: Du kannst nur High-Side auf diese Art schalten. Der 
MosFet muß mit Source an GND, das ist Bezugspunkt der Steuerspannung.
Die Last ist dann Drain nach +12V.

Du kannst Dir die Verhältnisse ja selbst vergegenwärtigen:

0V...0,xV (Low-Pegel vom AVR) zwischen Source und Gate -> Fet gesperrt.
3V...xV (High-Pegel vom AVR) zwischen Source und Gate -> Fet leitet.

Die BEreiche für Low und Highpegel des AVR stehen in dessen Datenblatt, 
die nötigen Stuerspannungen im Datenblatt des Fet.

Gruß aus Berlin
Michael

von Stefan F. (Gast)


Lesenswert?

Vref gehört sicher nicht an VCC.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas J. schrieb:
> Ich kann mir nicht erklären wo die 0.5V trotz Schaltung des AVR Ausgangs
> auf LOW herkommen.
Wogegen sind die 0,5V gemessen? Wie ist der Pin initialisiert und 
geschaltet? Hast du die 0,5V auch dann, wenn ein High ausgegeben werden 
soll?

> Soweit so gut, leider habe ich am Gate des Mosfet immer ca 0.5v
> anliegen, was für das Mosfet schon reicht zum durchschalten.
Wie ist da welche Last an den Mosfet angeschlossen? Die 
Thresholdspannung ist mindestens 1V.
D.h. bei 0,5V Ugs (=Spannung zwischen Gate und Source!) kann noch kein 
nennenswerter Strom fließen.

von Andreas J. (anju01)


Angehängte Dateien:

Lesenswert?

> nur kurz geschaut: Du kannst nur High-Side auf diese Art schalten. Der
> MosFet muß mit Source an GND, das ist Bezugspunkt der Steuerspannung.
> Die Last ist dann Drain nach +12V.
>

Hallo Michael,

besten Dank! Ich hatte über diesen Punkt nachgedacht und es dann genau 
falsch rum gemacht :) Habe die Änderungen in den Schaltplan übernommen. 
Siehe anbei.


>>Vref gehört sicher nicht an VCC.

Hallo Stefan,

in allen Grundschaltungen die ich mir angeschaut habe, war AREF an VCC 
geschaltet.
U.a. hier wurde das so gemacht:
https://www.darc.de/uploads/media/ATMEGA_R17.pdf
Wie wäre es denn korrekt?

>>Wogegen sind die 0,5V gemessen? Wie ist der Pin initialisiert und
>>geschaltet? Hast du die 0,5V auch dann, wenn ein High ausgegeben werden
>>soll?
>>Wie ist da welche Last an den Mosfet angeschlossen? Die
>>Thresholdspannung ist mindestens 1V.
>>D.h. bei 0,5V Ugs (=Spannung zwischen Gate und Source!) kann noch kein
>>nennenswerter Strom fließen.

Hallo Lothar,

0.5V gegen GND gemessen.
Der Pin ist initialisiert mit "pinmode output" und auf LOW gesetzt.
Wenn ich "HIGH" setze, dann liegen 5V an, das scheint also korrekt.

Die Last ist an dem Mosfet über zwei klemmen angeschlossen. Mein 12V 
Netzteil hat zwei identische 12V ausgänge (selbes GND), einmal 12V gehen 
zu X3 im Schaltplan, weitere 12V gehen zu X4 im Schaltplan. Die Last ist 
an die Klemmen X2 angeschlossen und soll die 12V von X4 schalten.

Aktuell habe ich als Last nur eine LED mit Vorwiderstand angeschlossen, 
und die hat in meiner (fehlerhaften) Schaltung schon geleuchtet. Ich 
mutmaße, das liegt an der fehlerhaften Beschaltung des Mosfet.

Der aktuelle Schaltplan ist wie gesagt nochmal angefügt.
Wenn ich weiss wie das mit AREF/AVCC richtig gemacht wird, passe ich 
diesen Teil noch an.

Danke an alle Helfenden!

Grüße
Andreas

von Michael U. (amiga)


Lesenswert?

Hallo,

Andreas J. schrieb:
> Wenn ich weiss wie das mit AREF/AVCC richtig gemacht wird, passe ich
> diesen Teil noch an.

so, wie es das Datenblatt des AVR sagt.
ARef ist entweder Eingang für eine externe Referenzspannung oder 
Anschluß für einen Kondensator (100n) wenn eine interne 
Referenzsspannung genutzt wird. Vcc kann intern als Referenz gesetzt 
werden, es gibt also keinen Grund, diese mit Vcc extern zu verbinden.
Was mag passieren, wenn man intern z.B. den ADC auf die interne 
BandGap-Referenz setzt und damit 2,5V oder 1,1V an ARef zu Vcc verbunden 
wird?

AVcc gehört entweder direkt an Vcc oder über eine kleine Drossel, wenn 
man den ADC benutzt und Störungen verringern will.
Steht auch im Datenblatt.

Ansonsten gehören dicht an Vcc/GND und AVcc/GND 100n Kondensatoren um 
kurze Stromspitzen bei den internen Schaltvorgängen des ICs abzufangen.
Jede Leitung hat eine Induktivität und so können manchmal schon wenige 
mm diesen Kondensator wirkungslos machen.

Gruß aus Berlin
Michael

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas J. schrieb:
> wie das mit AREF/AVCC richtig gemacht wird
Das steht im Datenblatt...
An Aref kommt nur ein Pufferkondensator gegen GND.

> in allen Grundschaltungen die ich mir angeschaut habe, war AREF an VCC
> geschaltet.
Du hast wahrscheinlich fehlerhafte Anfängerschaltungen angesehen.

> 0.5V gegen GND gemessen.
Hast du die 0,5V auch, wenn der Pin nirgends angeschlossen ist?

von Joe F. (easylife)


Lesenswert?

Hast du den IRLZ34n evtl. falsch herum angeschlossen (also deinen IO an 
Source, und die Last an Gate...)?
Das könnte dann die 0.5V erklären...

Pinbelegung:
1 = Gate
2 = Drain
3 = Source

http://www.irf.com/package/hexfet/to220ab.pdf

von Andreas J. (anju01)


Angehängte Dateien:

Lesenswert?

> so, wie es das Datenblatt des AVR sagt.
> ARef ist entweder Eingang für eine externe Referenzspannung oder
> Anschluß für einen Kondensator (100n) wenn eine interne
> Referenzsspannung genutzt wird. Vcc kann intern als Referenz gesetzt
> werden, es gibt also keinen Grund, diese mit Vcc extern zu verbinden.
> Was mag passieren, wenn man intern z.B. den ADC auf die interne
> BandGap-Referenz setzt und damit 2,5V oder 1,1V an ARef zu Vcc verbunden
> wird?
>
> AVcc gehört entweder direkt an Vcc oder über eine kleine Drossel, wenn
> man den ADC benutzt und Störungen verringern will.
> Steht auch im Datenblatt.
>
> Ansonsten gehören dicht an Vcc/GND und AVcc/GND 100n Kondensatoren um
> kurze Stromspitzen bei den internen Schaltvorgängen des ICs abzufangen.
> Jede Leitung hat eine Induktivität und so können manchmal schon wenige
> mm diesen Kondensator wirkungslos machen.
>


Hallo Michael,

danke, auf die Idee mit dem Datenblatt hätte ich auch gleich kommen 
können, bevor ich mir (wie Lothar sagte) irgendwelchen Mist "im 
Internet" anschaue. Da habt ihr Recht!


>> 0.5V gegen GND gemessen.
>>Hast du die 0,5V auch, wenn der Pin nirgends angeschlossen ist?

Wenn ich alles abklemme, dann nichts messbares. Vermutlich kamen die 
0.5V von der falschen Mosfet beschaltung.

Ich habe den Schaltplan nochmals angepasst und die Pufferkondensatoren 
eingebaut (sorry für die schiefen Verbindungen, mir ging der Platz aus)

Zum Thema Datenblatt und LM35 Probleme habe ich auf Seite 7 (hier:
http://cdn-reichelt.de/documents/datenblatt/A200/DS_LM_35.pdf )
einige Applikationen gefunden. Frage mich jedoch an dieser Stelle, wenn 
ich probleme mit einer Kapazität durch die Leitung (Flachbandkabel 3 
Adern, ca 50cm) hätte, wieso habe ich die Probleme nicht, wenn ich über 
USBasp mit SPannung versorge?

Nochmals Danke und Grüße
Andreas

von Andreas J. (anju01)


Lesenswert?

Danke an alle, die oben gannnten Probleme scheinen fürs Erste gelöst.

Nach wie vor habe ich zwar 0.48V am Gate des Mosfet, aber es wird nicht 
geschaltet.
Die Störungen des LM35 sind mit 100nf gegen GND und einem 1k Widerstand 
zum AVR beseitigt.
AREF auf INTERNAL zu setzen klappt jetzt mit der vorgenannten 
empfohlenen Beschaltung auch.

Einziges Problem das bleibt/auftauchte, während die Heizung 
eingeschaltet ist, springen die Temperaturwerte noch herum. Das habe ich 
jetzt erstmal so gelöst, dass während einer Heizphase (die immer 15s 
dauert) nichts gemessen wird.
Wenn da noch jemand eine Idee hätte, wäre das toll ;)

Grüße
Andreas

von Stefan F. (Gast)


Lesenswert?

Die 0,5 am Ausgang des AVR sind entweder ein gravierender Messfehler 
oder ein gravierender Schaltungsfehler. Dass muss zuerst behoben werden, 
alles andere halte ich für Zeitverschwendung.

Messe die Spannung direkt am GND Pin des AVR. Wieviel Volt misst du da?

Tenne die Leitung zum Gate des MOSFET, so dass am AVR Pin gar nichts 
mehr hängt. Wieviel Volt misst du dann bei Low und High Pegel?

Wieviel Volt liegen (in getrenntem Zustand) am Gate des MOSFET und am 
Source Anschluss des MOSFET an?

Wieviel Volt misst du an beiden Anschlüssen von R9?

von Andreas J. (anju01)


Lesenswert?

Stefan U. schrieb:
> Die 0,5 am Ausgang des AVR sind entweder ein gravierender Messfehler
> oder ein gravierender Schaltungsfehler. Dass muss zuerst behoben werden,
> alles andere halte ich für Zeitverschwendung.
>
> Messe die Spannung direkt am GND Pin des AVR. Wieviel Volt misst du da?
>
> Tenne die Leitung zum Gate des MOSFET, so dass am AVR Pin gar nichts
> mehr hängt. Wieviel Volt misst du dann bei Low und High Pegel?
>
> Wieviel Volt liegen (in getrenntem Zustand) am Gate des MOSFET und am
> Source Anschluss des MOSFET an?
>
> Wieviel Volt misst du an beiden Anschlüssen von R9?

Guten Morgen,

> Messe die Spannung direkt am GND Pin des AVR. Wieviel Volt misst du da?

0.48V

> Tenne die Leitung zum Gate des MOSFET, so dass am AVR Pin gar nichts
> mehr hängt. Wieviel Volt misst du dann bei Low und High Pegel?

Nach trennen:
0.48V LOW
4.25V HIGH

> Wieviel Volt liegen (in getrenntem Zustand) am Gate des MOSFET und am
> Source Anschluss des MOSFET an?
>

Nach Trennen:
Da messe ich 0V.
edit: zwischen Gate und Source? Oder jeweils zu GND?

> Wieviel Volt misst du an beiden Anschlüssen von R9?

Da messe ich nach Trennen 0V

Grüße
Andreas

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> Messe die Spannung direkt am GND Pin des AVR. Wieviel Volt misst du da?
> 0.48V

Aha, also ist GND nicht GND! Hier liegt der Hase im Pfeffer. Irgendwo 
zwischen dem schwarzen Kabel deines Multimeters und dem GND Anschluss 
vom Mikrocontroller ist was falsch. Da müsste eigentlich eine direkte 
möglichst neiderohmige Verbindung ohne großartige Schnörkel und 
Schleifen bestehen. Wenn das so wäre, hättest du Null Volt gemessen, 
nicht 0,48.

Korrgiere diesen Fehler, und wenn das der Einzige war, lösen sich alle 
deine anderen Probleme in Luft auf.

von Andreas J. (anju01)


Lesenswert?

Stefan U. schrieb:
>> Messe die Spannung direkt am GND Pin des AVR. Wieviel Volt misst du da?
>> 0.48V
>
> Aha, also ist GND nicht GND! Hier liegt der Hase im Pfeffer. Irgendwo
> zwischen dem schwarzen Kabel deines Multimeters und dem GND Anschluss
> vom Mikrocontroller ist was falsch. Da müsste eigentlich eine direkte
> möglichst neiderohmige Verbindung ohne großartige Schnörkel und
> Schleifen bestehen. Wenn das so wäre, hättest du Null Volt gemessen,
> nicht 0,48.
>
> Korrgiere diesen Fehler, und wenn das der Einzige war, lösen sich alle
> deine anderen Probleme in Luft auf.

Das könnte ein Missverständnis bei mir gewesen sein, ich dachte ich 
sollte die Spanung am Gate nicht gegenüber GND am Eingang (vom 12v 
Supply) messen, sondern gegenüber GND am AVR.
Oder war das doch so gemeint?

von Stefan F. (Gast)


Lesenswert?

Kurz gesagt: Du sollst herausfinden, ob alle GND Anschlüsse auf gleichem 
Potential liegen. Zwischen GND vom Netzteil udn GND vom µC darf keine 
messbare Spannugn sein. Ebenso nicht zwischen GND vom Netzteil und GND 
vom MOSFET.

Da dein µC angeblich 0,5V aus gibt obwohl der Ausgang kaum belastet 
wird, gehe ich davon aus, dass der GND Anchluss des µC eben nicht auf 
GND liegt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas J. schrieb:
> nicht gegenüber GND am Eingang (vom 12v Supply) messen, sondern
> gegenüber GND am AVR.
Alles, was GND heißt, ist miteinander verbunden und hat 
gleichspannungsmäßig das selbe Potential. Dein GND ist irgendwo 
aufgetrennt, die 0,5V passen genau zu der Spannung, die an einer 
(Schutz-)Diodenstrecke abfällt...

von Andreas J. (anju01)


Lesenswert?

Lothar M. schrieb:
> Andreas J. schrieb:
>> nicht gegenüber GND am Eingang (vom 12v Supply) messen, sondern
>> gegenüber GND am AVR.
> Alles, was GND heißt, ist miteinander verbunden und hat
> gleichspannungsmäßig das selbe Potential. Dein GND ist irgendwo
> aufgetrennt, die 0,5V passen genau zu der Spannung, die an einer
> (Schutz-)Diodenstrecke abfällt...

Hallo zusammen,

sorry für die späte Rückmeldung, bin diese Woche etwas im Stress.
Ich habe die GND Punkte gegeneinander gemessen. Laut meinem (einfachen) 
Multimeter liegen demzufolge maximal 2-3mV Potentialdifferenz zwischen 
ihnen an. Ich bin also dem Problem mit den 0.48V am Gate des Mosfet 
nicht auf die Spur gekommen.
Durchgansprüfer zeigt mir auch an, dass alle GNDs miteinander verbunden 
zu sein scheinen.

Könnte das Mosfet oder der AVR defekt sein, nach dem ursprünglich 
falschen Schaltplan? Ich habe beides aus der alten Schaltung 
recycelt....

Grüße
Andreas

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Andreas J. schrieb:
>> Messe die Spannung direkt am GND Pin des AVR. Wieviel Volt misst du da?
> 0.48V
Wogegen hast du dann da gemessen?

>> Tenne die Leitung zum Gate des MOSFET, so dass am AVR Pin gar nichts
>> mehr hängt. Wieviel Volt misst du dann bei Low und High Pegel?
> Nach trennen:
> 0.48V LOW
> 4.25V HIGH
Das ist also die Ausgangsspannung am leeren IO-Pin gegen Masse am uC 
gemessen? Was für ein Messgerät verwendest du? Welchen Innenwiderstand 
hat das Ding? Hast du den IO-Pin tatsächlich auf Ausgang geschaltet?

von Andreas J. (anju01)


Lesenswert?

Guten Morgen Lothar,


>>> Messe die Spannung direkt am GND Pin des AVR. Wieviel Volt misst du da?
>> 0.48V
> Wogegen hast du dann da gemessen?

Ich habe die Leitung direkt hinterm Pin getrennt und dann gegen GND am 
AVR und auch GND am 12V Eingang (sind laut Durchgangsprüfer auch 
verbunden) gemessen.



>>> Tenne die Leitung zum Gate des MOSFET, so dass am AVR Pin gar nichts
>>> mehr hängt. Wieviel Volt misst du dann bei Low und High Pegel?
>> Nach trennen:
>> 0.48V LOW
>> 4.25V HIGH
> Das ist also die Ausgangsspannung am leeren IO-Pin gegen Masse am uC
> gemessen?

Exakt!

> Was für ein Messgerät verwendest du?

Ein 08/15 Multimeter von Voltcraft (Model 91). Bisher sind mir da keine 
Unstimmigkeiten aufgefallen...Ich könnte mir aber von einem Bekannten 
ein namhaftes Modell ausleihen!


> Welchen Innenwiderstand hat das Ding?

Da bin ich überfragt :(

> Hast du den IO-Pin tatsächlich auf Ausgang geschaltet?

Eigentlich schon, und zwar mit (ich verwende die Arduino IDE, Digital 
Pin 2 dort ist direkt am µC der Pin 4):
pinMode (2, OUTPUT);
direkt danach:
digitalWrite(2, LOW);


Beste Grüße
Andreas

von Stefan F. (Gast)


Lesenswert?

Sieht so aus, als sei der Mikrocontroller defekt.

von Jobst M. (jobstens-de)


Lesenswert?

> 0.5V am Pin

Schaltet der FET?
Funktioniert alles, was an diesem Pin hängt so, wie es soll?
Welches Spannung hast Du auf der getrennten Leitung, welche eigentlich 
an den Pin angeschlossen werden soll, wenn er getrennt ist?

Sag mal, der 78L05 - wird der warm ... ähhh also sehr warm ... heiß 
...!?

Hat der Temperatursensor auch einen eigenen Blocker?


Gruß

Jobst

von Andreas J. (anju01)


Lesenswert?

Guten Morgen!


>> 0.5V am Pin
>
> Schaltet der FET?

Bei 0.5V noch nicht, erst wenn der AVR den Pin auf HIGH setzt. Dann aber 
ordnungsgemäß wie erwartet.

> Funktioniert alles, was an diesem Pin hängt so, wie es soll?

Bis auf die komischen 0.5V funktioniert sonst alles wie gewünscht.
(Einziges Problem: Durch die ungeschirmte LM35 Leitung, die direkt neben 
der 12V Leitung von der Heizung verlegt ist, springen die LM35 Messwerte 
während einer Heizphase wild herum.)

> Welches Spannung hast Du auf der getrennten Leitung, welche eigentlich
> an den Pin angeschlossen werden soll, wenn er getrennt ist?

Auf Mosfet Seite? Da kann ich mich jetzt ehrlich gesagt nicht genau 
entsinnen, sorry :(


>
> Sag mal, der 78L05 - wird der warm ... ähhh also sehr warm ... heiß
> ...!?
>

Nein, mit der Hand ist nichts feststellbar. Alles scheint "normal".



> Hat der Temperatursensor auch einen eigenen Blocker?

Vout des LM35 ist über einen 1K Widerstand am AVR angeschlossen. 
Außerdem 100nf gegen GND. Oder was meintest Du mit Blocker?

Grüße
Andreas

von Andreas J. (anju01)


Lesenswert?

Für alle interessierten hier die Auflösung:

Platine neu geäzt und bestückt -> 0.5V sind verschwunden.
Offenbar hat es sich also tatsächlich um einen Defekt des AVR bzw. 
Mosfets gehandelt.

Grüße
Andreas

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.