Forum: Mikrocontroller und Digitale Elektronik LM75 spielt im Ätzbad verrückt.


von Matze (Gast)


Lesenswert?

Hallo zusammen!

Ich habe gerade ein kleines Problem mit einem LM75, der einfach nicht 
stabil laufen möchte.
Folgendes zum Aufbau:
Ich habe mir eine kleine Steuerung mit einem atmega8 gebastelt, die über 
Funksteckdosen meinen Belichter (Gesichtsbräuner :-]) sowie meine 
Heizung und den Luftsprudler im Ätzbad regeln soll. (Ätzbad=Ätzgerät I 
von Reichelt mit Natriumpersulflat)
Die Temperatur im Ätzbad wird sowohl auf einem LCD-Display in ° als auch 
per rgb-LED ausgegeben (blau=kalt, grün=bereit, rot=heiß) und über die 
Schaltsteckdosen geregelt.
Die Temperaturmessung mache ich über einen LM75, der mit einem 100nF 
Kerko auf einer Platine in einem mit Quarzsand aufgefüllten Reagenzglas 
(abgedichtet mit Gummistopfen und Silikon) untergebracht ist.
Die Verbindung zum LM75 geschieht über ein ~1m langes einfach 
geschirmtes Kabel.

Der LM75 wird alle 5 Sekunden abgefragt.

Um fehlerhafte Messungen aufzufangen (für mich Temperatur >100 oder 
<10°) habe ich einen Fehlerzähler eingebaut, der zunächst 12 
Fehlversuche ignoriert und die letzte korrekte Temperatur 
wiederherstellt und danach, wenn auch der 13. Versuch fehlschlägt, die 
Heizung aus- und den Alarm anzuschalten, bis wieder ein gültiges Signal 
empfangen wurde.

Das Problem:
Bevor ich die Schaltung fest in ihr Gehäuse eingebaut habe und den 
Sensor "vergossen" habe lief der Test erwartungsgemäß. Auch der Test 
außerhalb der Ätzanlage im fertigen Zustand funktionierte.

Der Fehlerzähler wurde, auch nach dem zusammenbau, nicht benötigt.

Nun steckt das Reagenzglas, gehalten von einem Styropor-Halter, im 
Ätzbad - und läuft nicht mehr zuverlässig. Die Fehlerschaltung ist fast 
durchgängig am greifen. Es gehen im Schnitt immer 2-4 Versuche gut, und 
dann 4-6 schief. Bei einem Testlauf von 19° Raumtemperatur bis zur 
Ätztemperatur 46° waren zudem 3 Alarme zugegen; also 3x war länger als 
eine Minute kein Signal passen.

Die Schaltung macht, wenn wieder ein Signal kommt, zwar normal weiter - 
aber irgendie nervt das total...

Ziehe ich den Sensor aus dem Ätzbad funktioniert er wieder normal. Mein 
erster Verdacht, dass die Heizung / der Sprudler ein so ungünstiges 
elektromagnetisches Feld erzeugen könnte, hat sich nicht wirklich 
bestätigt. Der Fehler tritt auch auf, wenn beide Geräte aus sind.

Hat jemand eine Idee, woran das liegen kann? Was kann in dem Ätzbad den 
Sensor so aus dem Tritt bringen? Das Ätzmittel ist nicht frisch, und hat 
~ 10 Euro-Platinen hinter sich. Kann das gelößte Kupfer den Sensor 
beeinflussen?

Vielen Dank
Matze

von whatever (Gast)


Lesenswert?

Wackelkontakt? Miss mal auf den Leitungen die Signale durch. Dann weißt 
Du was schief geht. So kann man nur raten. Vielleicht hat es was mit der 
kapazitiven Einkopplung von 50 Hz Brummen zu tun, die über das Wasser 
sicher sehr gut geht.

von doc (Gast)


Lesenswert?

Hmm. der ist doch i2c.. warum hast du da überhaupt Fehlmessungen ?

I2C-Takt zu hoch ? - Mach ihn mal ganz langsam.
Widerstände am Bus zu groß ? - Versuch mal kleinere

von Christian -. (kakuijin)


Lesenswert?

Kann viele gründe haben:

Wackelkontakt ausgeschlossen?
MCU geht unkontrolliert in den Reset?
Kabelbruch?
ADC Probleme?
Feuchtigkeitseinschluss?
Signal Probleme?
uvm..


> Das Ätzmittel ist nicht frisch, und hat
> ~ 10 Euro-Platinen hinter sich. Kann das gelößte Kupfer den Sensor
> beeinflussen?

Solange der Sensor kein Kontakt mit der Flüssigkeit hat stört das 
Salzbad nicht.


Mein Tipp: Wenn du ein Oszi hast o.ä. schau dir mal die seriellen 
Signale vom LM75 an. Auch mal Versorgungsspannung prüfen..

lg

von Matze (Gast)


Lesenswert?

Einen Wackelkontakt kann ich ausschließen. Die Lötpunkte habe ich vor 
dem "versanden" extra 2x geprüft. Zum erneuten messen müsste ich den 
kram auseinanderbröseln... Gar nicht gut :-(
Davon abgesehen, wenn ich am "sichtbaren" Ende des Kabels wackle, dann 
wird es nie untem am Sensor wackenl. Immerhin liegen da 12cm Sand, ~1cm 
Silikon sowie ein 5mm Gumistopfen vor. Außerhalb des Bades kann ich den 
Sensor auf jeden Fall schütteln und bewegen wie ich will; da passiert 
nichts.

Deine andere Idee ist für mich sehr spanisch, bin gerade noch in der 
Lern-Phase. Aber: Ich denke mit dem 50Hz Brummen ist Netzbrummen gemeint 
(?), und das kann doch eigentlich nicht auftreten, wenn ich den Stecker 
gezogen habe...


Gruß
Matze

von doc (Gast)


Lesenswert?

50 Herz Brumm fliegt überall durch den Äther, wenn Deine Kabel lang 
sind, kann das schon eine Antenne abgeben.

Hast du die Vorschläge von oben schon alle probiert ?

von Matze (Gast)


Lesenswert?

@doc:
>Hmm. der ist doch i2c.. warum hast du da überhaupt Fehlmessungen ?

Hatte ich ja vorher auch nicht, ich habe das eigentlich nur als "letzte 
Sicherheit" eingebaut.

>I2C-Takt zu hoch ? - Mach ihn mal ganz langsam.
ganz klein werd. Benutze Bascom und hab keinen Plan, wie ich ihn 
langsamer treiben soll. Hab den I2cdelay schon auf 255.

>Widerstände am Bus zu groß ? - Versuch mal kleinere
Hab 1k3 genommen, noch kleiner?

@Christian
>Kann viele gründe haben:
und ich glaube, keiner davon ist einfach

>Wackelkontakt ausgeschlossen?
ja
>MCU geht unkontrolliert in den Reset?
nein, der läuft weiter - ich bekomme als Wert vom LM75 nur halt blöde 
Werte. Hab gerade mal nachgeschaut. Ich verzichte auf die 0,5°-Schritte 
und runde stattdessen auf. Also wenn das 2. Byte > 128 dann +1°. Als 
Antwort bekomme ich im Fehlerfall abwechselnd 145 und 146° angezeigt. 
Wenn der Sensor nicht angeschlossen ist sind es statisch 145° :-). 
Allerdings sagt mir die 146 doch eigentlich, dass das 2. Byte 
anscheinend klapt.
>Kabelbruch?
Wie den Wackelkontakt, in der Hand funzt er...
>ADC Probleme?
ADC=Analog-Digital-Converter? Der LM gibt mir doch digital, denn müsste 
der kaputt sein...
>Feuchtigkeitseinschluss?
Nein, hab den ohnehin schon trockenen Quarzsand 1 Stunde bei 250° 
gebacken, und danach 12 Stunden abkühlen lassen.
>Signal Probleme?
Ja, das kännte sein, aber wie bekomme ich das raus.
uvm..

>> Das Ätzmittel ist nicht frisch, und hat
>> ~ 10 Euro-Platinen hinter sich. Kann das gelößte Kupfer den Sensor
>> beeinflussen?

>Solange der Sensor kein Kontakt mit der Flüssigkeit hat stört das
>Salzbad nicht.

Nein, Kontakt hat der definitiv nicht...

>Mein Tipp: Wenn du ein Oszi hast o.ä. schau dir mal die seriellen
>Signale vom LM75 an. Auch mal Versorgungsspannung prüfen..
Da muss ich passen, ein Oszi habe ich nicht.

Gruß

von Matze (Gast)


Lesenswert?

@doc:

>50 Herz Brumm fliegt überall durch den Äther, wenn Deine Kabel lang
>sind, kann das schon eine Antenne abgeben.

Naja, ist ein guter Meter. Was mich einfach nur so wundert ist, dass das 
Problem eigentlich nur im Ätzbad auftritt. Könnte das Salzwasser den 
Effekt verstärken und (trotz der gläsernen Trennung) dem LM den Rest 
geben?

von Christian -. (kakuijin)


Lesenswert?

>>Widerstände am Bus zu groß ? - Versuch mal kleinere
>Hab 1k3 genommen, noch kleiner?

Bei 1m hat man schon eine kleine Kapazität..
Du könntest mal 500 Ohm versuchen..
Falls du zerstörungs sicher Arbeiten willst empfehle ich dazu  eine 5V 
Zener und ne fixxe Diode als schutzmaßnahme.

>>Signal Probleme?
>Ja, das kännte sein, aber wie bekomme ich das raus.
uvm..
Ohne Oszi.. schwer bis unmöglich..
aber du nutzt doch einen MCU... den ADC anklemmen und sampeln? ;)

>>Kabelbruch?
>Wie den Wackelkontakt, in der Hand funzt er...
Nicht unbedingt, da sich ja die Position verändert...

Ich würde die Software und das I2C Modul genauer unter die Lupe nehmen.
Und wenn dann wirklich alle Fehler ausgeschlossen sind das Teil übern 
Eimer zerhaun und nochmal neu aufbauen und Prüfen.

lg

Nachtrag:

>>50 Herz Brumm fliegt überall durch den Äther, wenn Deine Kabel lang
>>sind, kann das schon eine Antenne abgeben.
>
>Naja, ist ein guter Meter. Was mich einfach nur so wundert ist, dass das
>Problem eigentlich nur im Ätzbad auftritt. Könnte das Salzwasser den
>Effekt verstärken und (trotz der gläsernen Trennung) dem LM den Rest
geben?

Ist doch geschirmt oder?

von Uwe .. (uwegw)


Lesenswert?

Wie hast du die Abschirmung des Kabels denn angeschlossen?

Tritt das Problem auch auf, wenn du den Sensor in ein anderes 
Wassergefäß hälst? Wird die Heizung wirklich zweipolig abgeschaltet, 
oder hängt je nach Steckerlage trotzdem noch die Phase bis ins Becken?

Vielleicht mal den Beckeninhalt an der Heizung erden? Das sollte 
eingekoppelte 50Hz definitv beseitigen...

Wirklich sinnvoll ist jetzt der Test mit nem Oszi. Bei den niedrigen 
I2C-Frequenzen könntest du es aber mal mit nem Soundkarten-Oszi-Programm 
versuchen....

von Anja (Gast)


Lesenswert?

Hallo,
was hängt denn auf der anderen Seite des ATMega noch dran.
(Schaltnetzteil, PC, oder nur eine Batterie?)

Tritt der Fehler auch bei folgenden Bedingungen auf?
- Halten des Sensors in der Hand (wohl eher nicht da beim Schütteln 
nichts aufgetreten ist)
- DTO beim gleichzeitigen Anfassen einer (geerdeten) Wasserleitung?
- Legen des Sensors auf ein (geerdetes) Backblech

Mögliche Ursache ist daß über ein Schaltnetzteil/PC Störungen auf die 
Sensorleitung gelangen, die dann durch geänderte Erdkapazitäten 
verstärkt werden und dadurch das Signal stören.

von R. F. (rfr)


Lesenswert?

Wie gross ist der Störeinfluss  des Belichters? Tritt der Fehler auch 
auf, wenn der aus ist?
(Du hattest nur heizung oder Sprudler erwähnt)

Gruss

Robert

von Christian -. (kakuijin)


Lesenswert?

>Wirklich sinnvoll ist jetzt der Test mit nem Oszi. Bei den niedrigen
>I2C-Frequenzen könntest du es aber mal mit nem Soundkarten-Oszi-Programm
>versuchen....

Ein Oszi ist sinvoll, aber ein Soundkarten Oszi ist alles andere als 
sinvoll um Spannungen/Störungen in Signalen zu Messen. Man hat keine 
wirkliche VREF und kann nur schätzen wenn das Signal über 10 bis 20Khz 
ist. Über 20Khz ist Es aber so gut wie nicht mehr zu gebrauchen.

Es wäre Sinvoller kurz und knapp auf ner Steckplatine ein MCU aufzubauen 
mit ADC der auf 1MSPS Sampelt. Das ADC Signal vom MCU kann man dann u.a 
fixx in Exel oder dsPIC Works Auswerten und ggf. Aufbereiten. Dabei kann 
man auch einen PIN als Trigger verwenden.
Das schlägt jedes Soundkarten-Oszi um längen :)

von Matze (Gast)


Lesenswert?

@uwe:
>Wie hast du die Abschirmung des Kabels denn angeschlossen?
An Masse

>Tritt das Problem auch auf, wenn du den Sensor in ein anderes
>Wassergefäß hälst?
Nein, in klarem Wasser funzt es. Damit habe ich auch getestet. Ich habe 
sogar ein Wasserglas direkt neben das Ätzbad gestellt - also vom Kabel 
her fast positionsgleich.

>Wird die Heizung wirklich zweipolig abgeschaltet,
>oder hängt je nach Steckerlage trotzdem noch die Phase bis ins Becken?
Guter Tipp, das prüfe ich morgen. Ist nur eine Funksteckdose. Die trennt 
evtl. nur einpolig.

>Vielleicht mal den Beckeninhalt an der Heizung erden? Das sollte
>eingekoppelte 50Hz definitv beseitigen...
Wie? Mit einem Edelstahldraht einfach von der Erde in´s Becken?

>Wirklich sinnvoll ist jetzt der Test mit nem Oszi. Bei den niedrigen
>I2C-Frequenzen könntest du es aber mal mit nem Soundkarten-Oszi-Programm
>versuchen....
Auch noch nie was mit gemacht...

@Anja:
>was hängt denn auf der anderen Seite des ATMega noch dran.
>(Schaltnetzteil, PC, oder nur eine Batterie?)
Ein altes Netzteil von einer externen Festplatte.

>Tritt der Fehler auch bei folgenden Bedingungen auf?
>- Halten des Sensors in der Hand (wohl eher nicht da beim Schütteln
>nichts aufgetreten ist)
Nein
>- DTO beim gleichzeitigen Anfassen einer (geerdeten) Wasserleitung?
Teste ich
>- Legen des Sensors auf ein (geerdetes) Backblech
Teste ich auch

>Mögliche Ursache ist daß über ein Schaltnetzteil/PC Störungen auf die
>Sensorleitung gelangen, die dann durch geänderte Erdkapazitäten
>verstärkt werden und dadurch das Signal stören.
Und wie würde ich die Störungen minimieren. Habe am atmega nur einen 
100nF Kerko und einen 100µF Elko.

@Robert:
>Wie gross ist der Störeinfluss  des Belichters? Tritt der Fehler auch
>auf, wenn der aus ist?
>(Du hattest nur heizung oder Sprudler erwähnt)
Kein Unterschied. Obwohl der Belichter nur ~10cm von meiner 
Reglerplatine entfernt steht ist dabei kein unterschied.

@Christian :
>Ein Oszi ist sinvoll, aber ein Soundkarten Oszi ist alles andere als
>sinvoll um Spannungen/Störungen in Signalen zu Messen. Man hat keine
>wirkliche VREF und kann nur schätzen wenn das Signal über 10 bis 20Khz
>ist. Über 20Khz ist Es aber so gut wie nicht mehr zu gebrauchen.
Ok.

>Es wäre Sinvoller kurz und knapp auf ner Steckplatine ein MCU aufzubauen
>mit ADC der auf 1MSPS Sampelt. Das ADC Signal vom MCU kann man dann u.a
>fixx in Exel oder dsPIC Works Auswerten und ggf. Aufbereiten. Dabei kann
>man auch einen PIN als Trigger verwenden.
>Das schlägt jedes Soundkarten-Oszi um längen :)
Äh, ja - ich glaube, ich prüfe morgen erst einmal die zweipolige 
Trennung der Heizung vom Netz. Stecker raus bekomme ich definitiv 
leichter hin.

Vielen Dank erstmal.

von whatever (Gast)


Lesenswert?

Kauf Dir ein Oszi, brauchst Du eh. Wenn Du Glück hast findest Du das 
Problem auch so, ist aber wirklich ein Vabanquespiel.

Poste mal die Schaltpläne!

von Kurt (Gast)


Lesenswert?

Bau mal 10k Pullups direkt an den Sensor, für die SCL und SDA Leitung. 
Ich hatte das gleiche Problem mit dem LM175 und etwa 4m Kabel. Die 
Signale sehen ohne Pullup am Sensor ganz schön bescheiden aus, bei 20KHz 
I2C-Speed lief das überhaupt nicht stabil.

von Bensch (Gast)


Lesenswert?

> Als Antwort bekomme ich im Fehlerfall abwechselnd 145 und 146° angezeigt.

Das soll dein Fehler sein? Dann liegt das Problem nicht an deiner 
Elekronik, sondern irgendwo hinter deinen Augen....

von Matze (Gast)


Angehängte Dateien:

Lesenswert?

@whatever:
>Kauf Dir ein Oszi...
Ist eine der nächsten Anschaffungen...

@Kurt:
>Bau mal 10k Pullups direkt an den Sensor, für die SCL und SDA Leitung.
>Ich hatte das gleiche Problem mit dem LM175 und etwa 4m Kabel. Die
>Signale sehen ohne Pullup am Sensor ganz schön bescheiden aus, bei 20KHz
>I2C-Speed lief das überhaupt nicht stabil.
Ok, dafür muss ich den Kram natürlich auch wieder auseinanderzupfen. 
Wäre aber eine Möglichkeit. Aber macht das bei einem Meter schon einen 
Unterschied, wo der Pull-Up hängt?

@Bensch:
>> Als Antwort bekomme ich im Fehlerfall abwechselnd 145 und 146° >>angezeigt.

>Das soll dein Fehler sein? Dann liegt das Problem nicht an deiner
>Elekronik, sondern irgendwo hinter deinen Augen....
Ist das jetzt konstruktiv? Wenn ich einen Denkfehler mache, dann bitte - 
aber welchen. Wo die 145 herkommt verstehe ich ja auch nicht. Den 
Wechsel 145,146,145,146 interpretiere ich so, dass das 2. Byte (also 
eigentlich die +0,5 die ich als +1 nutze) ankommt.

@whatever:
>Poste mal die Schaltpläne!
Hänge ich mal an, aber viel ist da wohl nicht zu erkennen :-)
Zur Info: Der 100nF Kerko und der 100µF Elko sind nicht in der Regelung 
zu sehen. Die habe ich direkt an die Pins vom atemga angelötet.

Gruß
Matze

von R. F. (rfr)


Lesenswert?

kann es sein, daß der Kerko Mikrofonieeffekte einfängt und diese auf die 
leitung führt? Ersetz den mal durch einen MKT Typ.
Robert

von Matze (Gast)


Lesenswert?

@Robert:
>kann es sein, daß der Kerko Mikrofonieeffekte einfängt und diese auf die
>leitung führt? Ersetz den mal durch einen MKT Typ.
Habe ich nicht da, werde mir mal ein paar bestellen.

von Bensch (Gast)


Lesenswert?

> Ist das jetzt konstruktiv? Wenn ich einen Denkfehler mache, dann bitte -
aber welchen. Wo die 145 herkommt verstehe ich ja auch nicht. Den
Wechsel 145,146,145,146 interpretiere ich so, dass das 2. Byte (also
eigentlich die +0,5 die ich als +1 nutze) ankommt.

Denke schon...
Wenn du so schöne Werte kriegst, liegt der Fehler vermutlich nicht an 
der Übertragung zum uC, das Schwanken ist systembedingt- aber das weisst 
du ja sicher....
Also würd ich mal ins Programm schauen.
Im übrigen heisst es nicht "das 2. Byte", sondern vermutlich "das 2. 
Bit".

von Anja (Gast)


Lesenswert?

>>was hängt denn auf der anderen Seite des ATMega noch dran.
>>(Schaltnetzteil, PC, oder nur eine Batterie?)
>Ein altes Netzteil von einer externen Festplatte.
Also vermutlich ein Schaltnetzteil

>>Mögliche Ursache ist daß über ein Schaltnetzteil/PC Störungen auf die
>>Sensorleitung gelangen, die dann durch geänderte Erdkapazitäten
>>verstärkt werden und dadurch das Signal stören.
>Und wie würde ich die Störungen minimieren. Habe am atmega nur einen
>100nF Kerko und einen 100µF Elko.

Das hilft leider nicht gegen Gleichtaktstörungen.
Da helfen nur (Y-)Kondensatoren gegen ein Metall-Gehäuse
(das sowohl ATMega als auch den Sensor umschließt),
oder Gleichtaktdrosseln in der Stromzuführung.

Versuche mal ein lineares Netzteil ob das Problem dann weg ist.
Falls ja kannst Du ja mal versuchen ob die Störungen sich beseitigen 
lassen wenn an beiden Enden der Sensorleitung kleine Filterkondensatoren 
zwischen Signal bzw. Takt und Masse gelegt werden.

Ich weiß leider nicht was der I2C-Bus als maximale Kapazität verträgt.
Das Dilemma ist: um die Störung wegzukriegen muß die Kapazität größer 
sein als die Leitungskapazität (ca 50-100pF bei 1m Kabel). Die Kapazität 
darf aber nicht so groß sein daß das Signal weggefiltert wird. Auf jeden 
Fall hilft ein möglichst niederohmiger Pull-up-Widerstand. (Was halt 
deine Bausteine so laut Datenblatt vertragen).
Ich würde so mit 470pF bis 1nF als Filterkapazitäten starten.
Bei 2 Signalleitungen brauchst du dann 4 Stück. (2 am Sensor und 2 am 
ATMega).

von Helmut L. (helmi1)


Lesenswert?

Bei deiner LM75 beschaltung ist es dem Zufall ueberlassen welchen Pegel 
A0..2 einnehmen. Lege die mal auf ein festes Potential (VCC oder GND je 
nach deiner I2C Addresse). Sieht so aus als ob du dir da Stoerungen 
einfaengst.

Gruss Helmi

von Anja (Gast)


Lesenswert?

@Robert:
>kann es sein, daß der Kerko Mikrofonieeffekte einfängt und diese auf die
>leitung führt? Ersetz den mal durch einen MKT Typ.

Hallo Robert,
ich habe noch nicht erlebt daß durch Mikrofonieeffekte ein Digitalpegel 
gekippt wäre. Bei einem empfindlichen Analogsensor mit Auflösungen unter 
1 mV würde ich mir da Sorgen machen nicht jedoch bei einer Digitalen 
Schnittstelle.

von Matze (Gast)


Lesenswert?

>> Ist das jetzt konstruktiv? Wenn ich einen Denkfehler mache, dann bitte -
>>aber welchen. Wo die 145 herkommt verstehe ich ja auch nicht. Den
>>Wechsel 145,146,145,146 interpretiere ich so, dass das 2. Byte (also
>>eigentlich die +0,5 die ich als +1 nutze) ankommt.

>Denke schon...
>Wenn du so schöne Werte kriegst, liegt der Fehler vermutlich nicht an
>der Übertragung zum uC, das Schwanken ist systembedingt- aber das weisst
>du ja sicher....
>Also würd ich mal ins Programm schauen.
>Im übrigen heisst es nicht "das 2. Byte", sondern vermutlich "das 2.
>Bit".
Am Programm ist hier nicht viel zu finden
1
I2creceive &H91 , X
2
Waitms 20
3
I2creceive &H91 , Y
4
If Y > 128 Then Y = 0 Else X = X + 1
Ok, ob es wirklich das 2. Byte ist vermute ich tatsächlich nur. Wenn 
ich den Sensor nicht angeschlossen habe bekomme ich durchgängig 145, was 
in hex 91, also die Adresse, ist.

@Anja:
>>Und wie würde ich die Störungen minimieren. Habe am atmega nur einen
>>100nF Kerko und einen 100µF Elko.
>Das hilft leider nicht gegen Gleichtaktstörungen.
Ok.

>Da helfen nur (Y-)Kondensatoren gegen ein Metall-Gehäuse
>(das sowohl ATMega als auch den Sensor umschließt),
Das geht vom Aufbau her ja nicht.

>oder Gleichtaktdrosseln in der Stromzuführung.
Ok, das hötz sich einfacher an :-)

>Versuche mal ein lineares Netzteil ob das Problem dann weg ist.
Ja.

>Falls ja kannst Du ja mal versuchen ob die Störungen sich beseitigen
>lassen wenn an beiden Enden der Sensorleitung kleine Filterkondensatoren
>zwischen Signal bzw. Takt und Masse gelegt werden.

>Ich weiß leider nicht was der I2C-Bus als maximale Kapazität verträgt.
>Das Dilemma ist: um die Störung wegzukriegen muß die Kapazität größer
>sein als die Leitungskapazität (ca 50-100pF bei 1m Kabel). Die Kapazität
>darf aber nicht so groß sein daß das Signal weggefiltert wird. Auf jeden
>Fall hilft ein möglichst niederohmiger Pull-up-Widerstand. (Was halt
>deine Bausteine so laut Datenblatt vertragen).
>Ich würde so mit 470pF bis 1nF als Filterkapazitäten starten.
>Bei 2 Signalleitungen brauchst du dann 4 Stück. (2 am Sensor und 2 am
>ATMega).
Wenn ich nicht ganz verkehrt liege ist die max. Buskapazität 400pF...

@helmi:
>Bei deiner LM75 beschaltung ist es dem Zufall ueberlassen welchen Pegel
>A0..2 einnehmen. Lege die mal auf ein festes Potential (VCC oder GND je
>nach deiner I2C Addresse). Sieht so aus als ob du dir da Stoerungen
>einfaengst.
Ok, denn zerfletter ich den Sensor jetzt wirklich nochmal.

Gruß

von Anja (Gast)


Lesenswert?

>Bei deiner LM75 beschaltung ist es dem Zufall ueberlassen welchen Pegel
>A0..2 einnehmen. Lege die mal auf ein festes Potential (VCC oder GND je
>nach deiner I2C Addresse). Sieht so aus als ob du dir da Stoerungen
>einfaengst.

Erscheint mir auch als wahrscheinlichste Fehlerursache.
(da sieht man mal wieder wie wichtig Schaltpläne sind).

Falls das nichts helfen sollte kannst Du ja immer noch filtern.
Ggf. am ATMega Datensignal anfangen. Allerdings hast Du bei 400 pF
Gesamtkapazität nur wenig Spielraum. Das Kabel und die 3 übrigen ICs 
haben ja auch schon bis zu 120pF Gesamtkapazität.
Da geht maximal so 270pF noch als Filter.

von Experte (Gast)


Lesenswert?

Ausserdem solltest Du bei 1m Kabel die I2C-Leitungen an beiden Enden per 
Pull-Up terminieren, also einmal im Steuergerät und einmal beim LM75.

Dazu beim LM75 noch ein kleiner Elko parallel zu den 100nF, vielleicht 
so ab 10uF aufwärts. Evtl. beim LM75 vor den Kondensatoren noch einen 
Serienwiderstand in VCC einbauen, vielleicht so etwa 10 bis 22 Ohm.

von Matze (Gast)


Angehängte Dateien:

Lesenswert?

Ok, ich habe jetzt einen Elko und 2 Pull-Up´s mit eingeplant. Außerdem 
sind nun die Adressleitungen auf 0.
Elko in 10µF habe ich da. Wie groß sollte ich die Pull-Up´s 
dimensionieren? Wie auf der Steuerungsseite 1k3 oder eher größere?

Anbei der neue Schaltplan und das Board, falls da noch jemand einwände 
zu hat ehe ich es ätze :-)

Gruß

von JojoS (Gast)


Lesenswert?

na da würden sich doch SMD Teile anbieten.

von Matze (Gast)


Lesenswert?

Hab in SMD nur ein paar Widerstände...

von Plan (Gast)


Lesenswert?

Plan mal 5-10K ein.

von Plan (Gast)


Lesenswert?

> Dazu beim LM75 noch ein kleiner Elko parallel zu den 100nF, vielleicht
> so ab 10uF aufwärts.
Die sind ganz gut mit 100nF bedient. Wenn dann max. einen 1uF extra. Es 
sei denn, deine VCC ist eher ein Sinus mit großer Amplitude.

Geh mit dem Adressground nicht über das PAD. geh direkt vom Kondensator 
ab.

Es wäre besser die VCC Leitung vom Kondensator so kurz wie möglich zu 
machen. Also dreh den Chip mal etwas, damit das eine kurze Leitung wird.

von whatever (Gast)


Lesenswert?

Warte doch mit der Schaltung bis Du das Oszi hast. Das wird dann sehr 
aufschlussreich bei der Fehlersuche sein!

von Matze (Gast)


Angehängte Dateien:

Lesenswert?

@whatever:
>Warte doch mit der Schaltung bis Du das Oszi hast. Das wird dann sehr
>aufschlussreich bei der Fehlersuche sein!
So bald werde ich noch keines haben :-(

@Plan:
>Die sind ganz gut mit 100nF bedient. Wenn dann max. einen 1uF extra. Es
>sei denn, deine VCC ist eher ein Sinus mit großer Amplitude.
Maximal 1µF - ich hab noch 0,47µF da.

>Geh mit dem Adressground nicht über das PAD. geh direkt vom Kondensator
>ab.
>Es wäre besser die VCC Leitung vom Kondensator so kurz wie möglich zu
>machen. Also dreh den Chip mal etwas, damit das eine kurze Leitung wird.
Ok, hab ihn mal etwas gedreht.

Ich hab die Masse auch noch unter dem LM und an der Datenleitung 
vorbeigeführt. Sinnvoll oder sinnlos?

Gruß
Matze

von Jürgen W. (juergen_w) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,


Da ich im Moment selbst mit dem LM75 arbeite und trotz fliegendem Aufbau 
auf Lochraster (siehe Foto) keine Probleme habe glaube ich  nicht 
unbedingt das es am Layout liegt.
Mein Aufbau:
2*4,7k Pullup (nicht direkt am LM75)
a0..2 an +5V (Layout technisch einfacher), dadurch ändert sich die 
Basisadresse des LM75 auf $FE.
Das alles ist mit mehreren losen Litzen (mit Zwischenverbindungen)am STK 
500 angeschlossen.
den LM lese ich ca. alle <1Sek. aus und die Anzeige steht absolut still.

Ich programmiere zwar ASM, trotzdem ein Auszug aus meinem Code.
1
tempe:  rcall  i2c_start    ;LM75 Adresse und Adresszeiger auf 0 (Temperaturregister)
2
    ldi    temp,LM75    ;LM75 schreiben
3
    rcall  i2c_wByte
4
    brts  err1
5
    clr    temp      ;Adresspointer auf Temperaturregister (Adr.0)
6
    rcall  i2c_wByte
7
    brts  err1
8
    rcall  i2c_start    ;Gleich noch ein Start hinterher
9
    ldi    temp,LM75+1    ;LM75 lesen
10
    rcall  i2c_wByte
11
    brts  err1
12
    rcall  i2c_rByte_ACK  ;Temperatur lesen (High)
13
    push  temp      ;erst noch LOW holen
14
    rcall  i2c_rByte_NACK  ;(LOW)
15
    rcall  i2c_stop    ;I2C-Bus freigeben
16
;----------------------------------------------------------------
17
;Das Temperaturregister des LM75. Die 9 Bits liegen linksbündig in einem 16-Bit Register.
18
;Vorzeichen (DB8) beachten! DB0 = 1/2 Grad (.0 oder .5)
19
;-----------------------------------------------------------------
20
; <---------   High   ---------->|<------------ Low ------------>
21
;|DB8|DB7|DB6|DB5|DB4|DB3|DB2|DB1|DB0| X | X | X | X | X | X | X |
22
; <---------  temp1  ----------->|<------------ temp ----------->
23
;-----------------------------------------------------------------
24
    pop    temp1      ;High-Byte nach temp1, Low-Byte ist in temp
25
    lsl    temp      ;Kommastelle (DB0) ins Carry
26
    rol    temp1      ;Vorzeichen (DB8) ins Carry, Kommastelle -> Temp1
27
    clr    temp      ;Die X im Lowbyte löschen
28
    rol    temp      ;DB8 -> Temp
29
;-------------------------------------------------------------------
30
;Jetzt sieht das ganze so aus, 
31
; <----------   Low    ----------->|<------------ High ------------>
32
;|DB7|DB6|DB5|DB4|DB3|DB2|DB1| DB0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |DB8|
33
; <-----------  temp1  ----------->|<------------ temp ------------>
34
;-------------------------------------------------------------------
35
err1:  ret

Gruss Jürgen

edit: einen (SMD0805) 100 nF habe ich nah am LM75, ist von den Litzen 
verdeckt.

von Helmut L. (helmi1)


Lesenswert?

@Matze (Gast)

Das Layout ist so Ok. So kritisch ist der LM75 nicht. Ich habe den schon 
mal mit 10m Kabel betrieben , kein Problem.
Dein Problem war die nicht beschalteten Addressleitungen.

von Matze (Gast)


Lesenswert?

@Jürgen:
Ok, also schließe ich das Layout grundsätzlich aus. Am Code kann es fast 
gar nicht liegen - da ist ja nichts, was falsch gemacht werden kann...

@Helmut Lenzen:
>Dein Problem war die nicht beschalteten Addressleitungen.
Ich habe das jetzt mal geändert. Das ist die plausibelste Quelle für den 
Fehler. Muss nur noch warten, bis das Silikon trocken ist...

Ich denke aber, dass das sein könnte. Wie ich schrieb steckt das 
Reagenzglas in einem Styropor-Halter (also einfach ein Block der 
Schlitze für die Küvette und ein passendes Loch für das Reagenzglas 
hat).
Vielleicht ist gerade dieses Styropor (und die damit verbundene 
elektrostatische Aufladung) das Problem.

Sobald ich es erneut testen kann gebe ich bescheid.

@Uwe:
>Wird die Heizung wirklich zweipolig abgeschaltet,
>oder hängt je nach Steckerlage trotzdem noch die Phase bis ins Becken?
Jepp, trennt nur einseitig. Hab aber zufällig die richtige Seite 
getroffen :-)

Gruß
Matze

von Matze (Gast)


Lesenswert?

So, ich konnte es nicht mehr abwarten.
Danke an alle, besonders @Helmi für den Adress-Hinweis. Das war es.
Den Fehler mache ich nie wieder. Bisher habe ich die Adress-Pins nur 
nach 1 geschaltet (wenn erforderlich) und die 0 schlicht ignoriert. Das 
passiert mir nicht noch einmal...

Nochmal, vielen Dank!

Gruß
Matze


------------  Problem gelößt, Thread kann zu ------------

von dr_seltsam (Gast)


Lesenswert?

Hea,
ich denke 145° ist auch ausserhalb der Specs beim LM75
Hängt ein Adresspin an Masse = 0, an Vcc = 1, offen = something wicked 
happens...

Grüße
dr_seltsam

von Jodo Schauno (Gast)


Lesenswert?

Dieser Beitrag wird zur Prämierung vorgeschlagen für:

Bester Beitragstitel im Jahr 2011.

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.