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
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.
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
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
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
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 ?
@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ß
@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?
>>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?
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....
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.
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
>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 :)
@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.
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!
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.
> 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....
@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
kann es sein, daß der Kerko Mikrofonieeffekte einfängt und diese auf die leitung führt? Ersetz den mal durch einen MKT Typ. Robert
@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.
> 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".
>>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).
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
@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.
>> 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ß
>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.
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.
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ß
> 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.
Warte doch mit der Schaltung bis Du das Oszi hast. Das wird dann sehr aufschlussreich bei der Fehlersuche sein!
@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
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.
@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.
@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
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 ------------
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.