Vollständige Version anzeigen : Abschirmung
Import-Script
14.01.2002, 20:16
Ich habe mir einen Temperaturmesser mit einem DS1820 aufgebaut. Die Schaltung funktioniert auch. Verlängere ich aber die Datenleitung auf ca. 1m bricht der Datenstrom ab. Ich benötige aber mindestens 2,5m. Reicht es nun die Datenleitung einfach durch eine Abgeschirmte-Mikrofonleitung zuersetzen oder müssen hier weiter Maßnamen getroffen werden(Schmittrigger)?
Import-Script
14.01.2002, 22:29
das wirst du wohl nur herausfinden, wenn du deine eigenen vorschläge ausprobierst, also geschirmtes kabel und/oder schmittrigger
Import-Script
15.01.2002, 08:11
Ich glaube nicht, daß Abschirmung hilft, ist doch digital. <BR>Vielleicht ist Dein Timing so kritisch an der Grenze, daß die paar pF Leitungskapazität sich auswirken. Oder der Arbeitswiderstand ist zu klein. <BR> <BR>Also 10m sind auf alle Fälle drin. <BR>Ich schalte sogar mehrere parallel und benutzte "Parasite Power" und es geht wie toll. <BR> <BR> <BR>Peter
Import-Script
15.01.2002, 18:41
Zum Timing kann ich keine Angaben machen. Ich habe das Prog mit Bascom geschrieben.
Import-Script
15.01.2002, 22:57
Dann ist also der DS1820 für Dich eine Black-Box. <BR>Macht denn sowas Spaß, etwas zu machen, ohne es zu verstehen ? <BR> <BR>Somit dürfte eine Fehlersuche unmöglich sein. <BR> <BR>Oder traust Du Dich das DS1820 Datenblatt runterzuladen und die Funktionen selber in Assembler zu schreiben ? <BR>Es gibt auch einige Assemblerlistings im Web aber fremde Programme zu verstehen ist nicht immer einfach. <BR> <BR>Ich denke mal, die Bascomfunktion ist nur für einen ganz bestimmten Quarz und eine ganz bestimmte CPU geschrieben, sonst stimmt das Timing nicht. <BR> <BR>In meinem Programm muß man die Quarzfrequenz angeben. Außerdem ist es für den Standard 8051 mit Teilerfaktor 1/12. <BR>Z.B. beim DS80C320 mit 1/4 muß man anders rechnen. <BR> <BR> <BR>Peter
Import-Script
16.01.2002, 15:25
ReadTemp: <BR>PUSH psw <BR>MOV A,#cch 'SkipRom <BR>call WriteByte <BR>MOV A,#44h 'ConverTemp <BR>call writeByte <BR>call WaitForDS1820 <BR>call resetandpresence <BR>MOV A,#cch 'skiprom <BR>call writebyte <BR>MOV A,#beh 'ReadRam <BR>call writebyte <BR> <BR>CLR Ea <BR>call ReadByte <BR>MOV TLow,A <BR>call ReadByte <BR>CLR low <BR>JNB a.7,RT_W1 <BR>SETB low <BR> <BR>RT_W1: <BR>SETB ea <BR>PUSH 7 <BR>MOV R7,#7 <BR> <BR>RT_W2: <BR>call ReadByte <BR>DJNZ 7,RT_W2 <BR>POP 7 <BR>POP psw <BR>RET <BR> <BR>ResetAndPresence: <BR>SETB C <BR>SETB sensor <BR>NOP <BR>NOP <BR>CLR Sensor <BR>call wait_700us <BR>setb sensor <BR>call wait_15 <BR>JB Sensor,_RAPFehler <BR>call wait_5 <BR>JB sensor,_RAPFehler <BR>call wait_700us <BR>'call wait_500 <BR>JNB sensor,_RAPFehler <BR>ret <BR>_RAPFehler: <BR>clr c <BR>ret <BR> <BR>WaitForDS1820: <BR>PUSH psw <BR>SETB Sensor <BR>_WFDS_01: <BR>call ReadBit <BR>call wait_300ms <BR>JNC _wfds_01 <BR>POP psw <BR>RET <BR> <BR>ReadByte: <BR>PUSH psw <BR>CLR ea <BR>MOV R6,#8 <BR>CLR A <BR>_RB_1: <BR>call readbit <BR>RRC A <BR>DJNZ R6,_rb_1 <BR>SETB ea <BR>POP psw <BR>RET <BR> <BR> <BR>WriteByte: <BR>PUSH psw <BR>CLR ea <BR> <BR>MOV R6,#8 <BR>_WB_1: <BR>RRC A <BR>call writebit <BR>DJNZ R6,_wb_1 <BR>SETB ea <BR>POP psw <BR>RET <BR> <BR>WriteBit: <BR>NOP <BR>NOP <BR>JC _w_one <BR>CLR sensor <BR>call wait_60 <BR>call wait_5 <BR>SETB sensor <BR>call wait_5 <BR>RET <BR>_w_one: <BR>CLR sensor <BR>call wait_5 <BR>'NOP <BR>SETB sensor <BR>call wait_60 <BR>RET <BR> <BR>ReadBit: <BR>CLR sensor <BR>NOP <BR>NOP <BR>SETB sensor <BR>call wait_10 <BR>MOV C,sensor <BR>call wait_60 <BR>RET <BR> <BR> <BR>Das ist ein kleiner Auszug aus meinem selbstgeschriebenen Assembler Prog. Ich habe mir das Datenblatt sehrwohl zu Gemüte geführt und auch kappiert. Leider hat es aber nicht funktioniert. Irgendwo hab ich dann aber gelesen, dass Bascom einen 1Wire Support bietet. Ich hab mir dann die Demo runtergeladen und 2 Tage später hatte ich ein funktionierendes Thermometer mit 3 Muliplexten 7-Segement Anzeigen. Warum hätte ich mich da noch länger mit Assembler rumschlagen sollen, wenn es schon funktionierte. Jedenfalls bis ich die Leitung verlängerte. <BR>Peter ich schätze deine Beiträge sehr, die du oft hier im Forum schreibst, denn sie sind sachlich und helfen meist dem Betroffenen weiter. Ich weiß nicht ob du gestern schlechte Laune hattest, aber so ein Posting habe ich von dir noch nie erlebt. <BR>Naja ich werd dann mal ein Abgeschiermtes Kabel nehmen. Wenn das nichts hilft, ist wohl wieder Assembler dran. <BR> <BR>Gruß Schneidertobi
Import-Script
16.01.2002, 17:19
Hi, <BR>Da fühlt sich aber einer auf den Schlips getreten. <BR>Ich finde Peter's Posting eigentlich nicht übertrieben, woher sollte er auch wissen das du ASM beherrscht und Timing ist was sehr wichtiges. Du hast noch nicht einmal Angaben zum µC gemacht,und dein ASM geht auch nicht, aber Ok. Ich denke jedenfalls auch das dein Timing sehr kritisch ist. <BR>Irgendwo sind bestimmt ganz kurze Imp. die von der Kap. der längeren Leitung verschluckt werden oder sowas. Wenn es so ist, sollte es mit gesch. Kabel noch schlechter werden. <BR>Also schreibe ordentlich in ASM, "denn klapp's auch mip'm Sensor! Oder waren's Nachbarn? <BR>schön locker bleiben <BR>Uwe
Import-Script
16.01.2002, 21:03
Hallo Schneidertobi, <BR> <BR>also in Deinen Kopf reinsehen kann ich nun wirklich nicht. <BR> <BR>Und es klang alles so als ob Du nur die Bascom-Funktion probiert hast. <BR> <BR>Ich stimme Uwe zu, ein geschirmtes Kabel wird wohl nichts nützen. <BR> <BR>Ich gebe zu, daß die Beispiele auf meiner Webseite nicht gerade sehr ausführlich erklärt sind. <BR> <BR> <BR>Aber auf der Dallas I-Button-Seite habe ich auch was gefunden, zwar nicht so kurz und optimiert, aber ne Menge Erklärungen dabei. <BR> <BR>Ich hab auch irgendwo was in Deutsch gesehen. <BR>Also ruhig mal so im Web rumsuchen. <BR>Alles von Null auf selber zu machen muß ja nicht sein. <BR> <BR> <BR>Peter
vBulletin® v3.6.8, Copyright ©2000-2010, Jelsoft Enterprises Ltd.