Hallo Leute Ich habe meinen DS18B20 in ein Aluminiumgehäuse eingegossen und mit einer dreipoligen Steuerleutung verbunden. Wenn ich den DS18B20 an den PIC anschließe funktioniert er einwandfrei. Verlängere ich das Kabel mit einem zweipoligen Kabel + Abschirmung funktioniert er nicht mehr (die zwei Leitungen sind für Plus und Datenleitung, die Abschirmung ist für Minus). An was kann das leigen?? MfG unti
Du hättest vor dem Eingießen noch einen Widerstand von 4,7K zwischen die Datenleitung und +Ub löten sollen. MfG Paul
Stefan Untner schrieb: > > zwei Leitungen sind für Plus und Datenleitung, die Abschirmung ist für > Minus). An was kann das leigen?? Welcher Code? Ich hatte mal eine Längenabhängigkeit. Es stellte sich heraus, dass im Code (von PeDa) an einer Stelle nicht explizit gewartet wurde und die Datenleitung bedingt durch die Leitungskapazität nicht genug Zeit hatte, wieder auf 1 zu kommen.
:
Bearbeitet durch User
Paul Baumann schrieb: > Du hättest vor dem Eingießen noch einen Widerstand von 4,7K zwischen > die Datenleitung und +Ub löten sollen. Der muss nicht am Sensor sitzen, das andere Ende tut es auch. Ausserdem gäbe es dann Probleme bei mehreren Sensoren an einem Bus.
A.K. schrob:
>Der muss nicht am Sensor sitzen, das andere Ende tut es auch.
Ich hätte das nicht geschrieben, wenn ich das Verhalten nicht auch
erlebt hätte.
Zitat Pittiplatsch, der Liebe:
"Kannste glauben!"
MfG Paul
Zeig uns mal den Code... Wird die Datenleitung spätestens 10µs nach Start der Messung niederohmig auf high gesetzt?
:
Bearbeitet durch User
Max H. schrieb: > Wird die Datenleitung spätestens 10µs nach Start der Messung niederohmig > auf high gesetzt? Unnötig, weil 3-adrig verdrahtet, also nicht parasitär versorgt.
Paul Baumann schrieb: > Ich hätte das nicht geschrieben, wenn ich das Verhalten nicht auch > erlebt hätte. Ich habe in einer Installation zig Meter Leitungwildwuchs im Einsatz, teils als Stern, mit Pullup am Controller. Allerdings parasitär. Interessanter fände ich, ob hier Störungen einer ungefilterten Vcc-Leitung auf die Daten durchschlagen. Ein L/C Filter wär da kein Schaden.
:
Bearbeitet durch User
A. K. schrieb: > Unnötig, weil 3-adrig verdrahtet, also nicht parasitär versorgt. Stimmt. Ich hätte den Beitrag zu Ende lesen sollen und nicht bei "einem zweipoligen Kabel" aufhören...
Man kann sich durchaus mal von den Application Notes trennen und weniger als 4,7 kOhm Pull-Up Widerstand benutzen, denn im Datenblatt steht etwas von mind. 4 mA Sink Current, bei 0,4 v Sättigung, d.h. bei 5 V - 0,4 V = 4,6 V / 4 mA = 1,15 kOhm. Bei mir hat ein Widerstand von 1,2 kOhm am ATMega 328 alle Störungen der 6 Sensoren an einem nicht-parasitären Bus von ca. 20 m Länge eliminiert. Mit 4,7 kOhm war nur etwa jeder 20. Meßzyklus erfolgreich.
Danke für die vielen und schnellen Antworten. Der 4,7kOhm Widerstand ist auf der Platine zwischen Plus und Datenleitung angelötet (Verbindung mittels Molexstecker). Hier der Code mit dem die Temp. ausgelesen wird (im Anhang ist der Code für die Unterprogramme/Befehle): output_high(DS1820_DATA); if(!timer_DS1820) { timer_DS1820=TIMER_500msec; if(ds1820_present()) { DS_present=1; if(!conv) { ds1820_present(); ds1820_write_byte(SKIPROM); ds1820_write_byte(CONVERT); conv=1; } else { ds1820_present(); ds1820_write_byte(SKIPROM); ds1820_write_byte(READSCRATCH); conv=0; for(i=0;i<9;i++) { buffer[i] = ds1820_read_byte(); }//end for temp = ((buffer[0]>>4)+ ((buffer[1]&0x07)<<4)); temp_10=(buffer[0]&0x0F)*10/16; temp_ist=((float)temp+(float)temp_10/10); if(buffer[1]&0xF0) { temp_sign='-'; temp_ist=temp_ist*(-1); } else { temp_sign=' '; } }//end if } else { DS_present=0; prg=prg_stoerung; }//end if }//end if(!timer_DS1820) MfG unti
@Stefan Untner Soviel ich noch weiss, müüstest bei ds1820_write_byte(CONVERT); mindestens etwas mehr als 700ms warten. Schau mal ins Datenblatt. Eigendlicht dürfte es keine Probleme machen. D.h. bei der Versorgung +- und Datenleitung. Stefan Untner schrieb: > Ich habe meinen DS18B20 in ein Aluminiumgehäuse eingegossen und mit > einer dreipoligen Steuerleutung verbunden. Wenn ich den DS18B20 an den > PIC anschließe funktioniert er einwandfrei. Ahha! > Verlängere ich das Kabel mit > einem zweipoligen Kabel + Abschirmung funktioniert er nicht mehr Soso! >(die > zwei Leitungen sind für Plus und Datenleitung, die Abschirmung ist für > Minus). An was kann das leigen?? D.h. also, als erstes hast due +- und Datenleitung angeschlossen. zweitens, als du auf zweipoligen Kabel, umgeschwitcht bist, vergessen das sowas im Parasitären betrieb laufen lassen solltest.
Nachtrag! Über einen Schirm als Minus zu benutzen ist ein NOGO! Schirm soll doch EMV Strahlung minimieren bzw. eleminieren. Duck und weg.
1-Wire ist ein Open Drain Bus. Wenn das Device nicht parasitär versorgt wird, dann sollte der Bus nicht aktiv auf 1 gezogen werden. Dafür ist der Widerstand zuständig. Wenn der Controller also nicht ausdrücklich Ports mit Open Drain Eigenschaft implementiert (oder so gut wie, bei den 8051), dann sollte es nur 2 Zustände geben: output low und input nie aber output high Etwas wie output_high(DS1820_DATA); ist also fehl am Platz. Ausnahme: parsitäre Versorgung in der Messphase. Je nach Tempo des Controllers scheint mir das Timing in ds1820_write_byte etwas knackig dimensioniert zu sein. 10µs low plus etwas Code plus lange Leitung mit deutlich rise time ist bei 15µs max auf der knappen Seite. 1µs low reicht, weshalb 10µs?
xxx schrieb: > Duck und weg. Man kann 1-Wire zwar auch mit grossem Bahnhof und CAT7 Kabel betreiben, aber wenn die Umgebung EMV-mässig nicht zu schlimm ist, dann ist der Bus nicht allzu pingelig. Und man kann dann ein geschirmtes Kabel an Stelle einer ungeschirmten 3-polig Steuerleitung betreiben.
:
Bearbeitet durch User
A. K. schrieb: > Und man kann dann ein geschirmtes Kabel an Stelle > einer ungeschirmten 3-polig Steuerleitung betreiben. Als nächtes wird noch behauptet, dass sowas auch für ne Erdung (PE) benutzt werden kann.
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.