Re: DS1631: I2C-Bus bei CC2-Station defekt? Kategorie: I²C-Bus (von Willi aus Oelde - 3.04.2006 22:18) | ||
Als Antwort auf Re: DS1631: I2C-Bus bei CC2-Station defekt? von Georg - 2.04.2006 15:37 | ||
| ||
> > Hallo Georg, > > > > also ich verstehe es jetzt auch nicht mehr! > > > > 1) Ich würde selbstredend erst einmal nur einen Sensor an den Bus klemmen. > > > > 2) Ich nehme an das du die Pull-Up's an 5 Volt gelegt hast. Wer ein Ozi hat, sollte das wohl wissen. > > Die beiden Signale sollten meiner Meinung nach auf 5 Volt gehen. (Jedenfalls in etwa.) > > > > Wenn man sie mit 5-10 K nach Masse zieht, sollte auch das gehen denke ich. > > (Ein Slave am Bus macht auf der SDA Leitung auch nichts anderes.) > > > > 3) Da der Bus 5 Volt hat, sollte die Station beim Versuch zu adressieren, die SDA und SCL > > Leitungen im Takt auf Low ziehen. (Zumindest wenn alles am Bus ab ist!) > > > > 4) Hast du die Ports wegen eines Lötfehlers evtl. mal über die 5mA belastet? > > > > 5) Kannst Du den Sensor nicht mal an 2 Ports testen oder gehen die auch nicht? > > (Programm kannst Du von mir bekommen, ich bin aber kein Station Spezi!) > > > > 6) Hast Du mal den Strom aller Leitungen gemessen. Evtl. doch Lötfehler > > ( Chip verdreht ? / Ich frage ja nur mal ganz vorsichtig.......) > > > > 7) Hast Du jemanden der den Sensor testen kann ? Bei der Verdrahtung > > mal bis zum Bein des Chips messen und auch auf Kurzschluss prüfen. > > > > Gibt es irgendwelche Bugs im System der Station? Soweit ich wei� muss man > > für die Station irgend was laden ?? (Bin ich aber total überfragt....) > > Hast Du anderes "am Laufen" oder ist das dein erster C2 Versuch ....? > > Ich nutze bei meiner Unit den Bus nur für ein EEprom und eine Uhr, der Rest > > geht über Ports. > > > > Weiter machen, nicht aufgeben......schreib weiter was geht, was nicht. > > Machmal hilft nur, die Sachen ein paar Tage liegen zu lassen und wieder > > frisch anzufangen. > > Evtl. gibt hier ja noch erfolgreiche Station User, die den Bus am laufen haben? > > > > Mfg, > > Willi aus Oelde > > > > Hallo Willi, > > danke für Deine Ausdauer. Folgendes habe ich seit gestern durchrprobiert: > zu 1.): Ich habe nacheinander alle 5 Sensoren individuell dran gehabt, ohne Erfolg > zu 2.): die Pull-ups liegen jeweils zwischen SDA bzw. SCL und 5V > zu 3.): ich habe die folgende Programmvariante laufen lassen: > > function temperatur_einlesen (int i) > { > ds1631.init(i); > sleep 1000; > lcdext.line(1); > lcdext.print("Sensor: "); > lcdext.zahl2(i); > lcdext.line(2); > lcdext.zahl4n2(100*ds1631.readi2(i)); > lcdext.put(223); > lcdext.put('C'); > //sleep 1000; > } > > function sensor_suchen (int i) > { > lcdext.init(); > //if i2c.start(0b10010001) > if i2c.start(i) > { > lcdext.print("Sensor gefunden: "); > lcdext.zahl2(i); > } > else > { > lcdext.print("Sensor "); > lcdext.zahl3(i); > lcdext.line(2); > lcdext.print("reagiert nicht !!"); > } > i2c.stop(); > // quit 1; > } > > thread main > { > byte i; > stports.init(); > lcdext.init(); > i2c.init(); > sleep 1000; > ds1631.init(8); > sleep 1000; > loop > { > for i = 0 ... 255 > { > //temperatur_einlesen(i); > sensor_suchen(i); > sleep 20; > } > } > } > dabei läuft "sensor_suchen" mit 20ms Pause in einer Endlosschleife von 0 bis 255. Der Pegel an SCL > wird dabei nach Start innerhalb eines Intervalls von 180µs mehrfach von 5V auf Masse gezogen (quasi > "hochgezählt", wenn man das auf dem Oszi anschaut), während die Datenleitung SDA mit Start von > 5V auf Masse geht, innerhalb von ca. 230µs mehrfach für etwa 10µs auf 5V geht und nach ca. 4ms > durch das "i2c.stop()" wieder auf 5V wechselt (bleibt ohne stop auf Masse). Nach etwa 30ms kommt > dann der nächte Wert von i. > Damit sollte der Bus soweit ok sein, denn er verhält sich so, wie André es auch in dem Buch "MSR mit > CC2" beschreibt. > > zu 4.): an den Ports habe ich bislang nur die Sensoren von André gehabt. > > zu 5.): ich kenne bislang nur den einen Port an der Station. Kann man eventuell einen Port emulieren? > > zu 6.): der Gesamtstrom (gemessen in der Plusleitung) liegt bei 67 µA (durch die Pull-up-Widerstände, > 75µA nur mit SDA-Pull-up, -8µA nur mit SCL-Pull-up). Wenn ich alle 5 Sensoren mit anschlie�e, messe ich > keinen Unterschied. Ist das so korrekt? Weniger Stromaufnahme als 1µA???? > Die Chiporientierung passt bei allen: der Punkt ist am SDA-Bein. > > zu 7.): Ich habe alle 5 Sensoren komplett durchgemessen und keinen Fehler gefunden. Auch die Adressen > passen. Ich hätte mir das Löten mit SMD nicht zugetraut (deswegen fertig konfektioniert gekauft), aber > zumindest ist das Ergebnis beruhigend. > > Ich habe gestern noch einmal "von Adam und Eva" an das Betriebssystem geladen. Da es mein erstes > Projekt mit CC ist: was habe ich eventuell falsch gemacht? Verwendet habe > ich das Shareware Download-Tool "CC2NetCC2Download.exe" in der aktuell freien Version. > - osopt_v3-0.hex (soll die aktuellen Stationstreiber, Capture, und sys0001.hex enthalten) > - sys0002.hex geladen, vorher Segment 3 gelöscht. > Ist dabei eventuell etwas anderes auf der Strecke geblieben? Habe ich zu wenig geladen? > > Leider wei� ich nicht, wer die Sensoren für mich testen könnte. Zur Zeit sieht es so aus, als ob der Bus > etwas tut, aber die Sensoren (ohne Stromaufnahme?) nicht antworten. Wegen der langen Leitungen > (Spannungsabfall ) würde ich in meinem Gewächshaus gerne bei Bussensoren bleiben, sonst wären > auch alle AD-Ports belegt. Au�erdem gibt es für den DS1631 Informationen, wie man des Sensor > wasserdicht bekommt. > > Mit weiterhin ratlosen Grü�en, > Georg Hallo Georg, langsam muss man es echt "sportlich" sehen und die Sache wird interessant. Also ich denke langsam, das die ganze Station evtl. spinnt (also der I2C-Bus!). Da aber das Display geht, also ...? Der Standby Stromverbrauch ist um 800 nA (nano!), also im Standby. Ich kenne die DS1631 Routine von Andre nicht, du solltest mal die Module 1621 probieren, um das Konfigurations- register zu setzen. Die Routinen sind älter und evtl. besser getestet. Ich bin allerdings sicher, da� Andre die Sensoren getestet hat und kein Verdrahtungsfehler vorliegt. (Ich habe vorher deine Mail nur überflogen......) Bist du sicher, da� Du nach dem Initialisieren das "Start conversion" $51 (1631) oder $ee (1621) sendest?. Was mich völlig irre macht, ist das alte Testprogramm aus dem Forum welches sicher mal funktioniert hat. Wenn der erste Sensor ($90/dez 144) adressiert wird, sollte dies bestätigt werden. (der 9. Clock Implus sollte den DS1631 überreden, SDA low zu halten!) Ob das alles mit der Version 3 des Betriebssystwems der Station geht, weiss ich nicht. Wichtig ist das ALLE Module auf dem Stand sind! Also DS1631 V1.2 ! Teste doch mal die DS1621 Routinen. Allerdings habe ich gesehen, das dort erst das Konfigurationsregister und dann das Startkommando gesendet wird, bevor man eine Temperatur auslesen kann. (2 getrennte Kommandos!) Hast Du noch einen alten Rechner mit WIN 98, um den Sensor am Druckerport zu testen? Ein altes Basicprogramm habe ich noch. Bei neueren Rechnern hatte ich allerdings auch schon Schwierigkeiten den Druckerport zu benutzen. (Unter XP etc. ist es eh nicht so einfach Systemresorcen zu benutzen) Lass mich wissen, wenn du Interesse hast. Gibt es denn hier keinen der eine Station hat !!!???? Da Du ein Oszi hast, ist es beruhigend, wenigstens die SCL und SDA Pulse zu sehen. Sind die Pegel sauber und nach Datenblatt? Evtl. ist die Frequenz des Busses bei deiner Verkabelung zu hoch? Die ist klar, da� mit dem internen i2C Bus meterlange Kabel nicht zuverlässig sind, ohne zusätzliche Hardware. Also Du probierst schon mit kurzen Leitungen? Ich nehme also 2 Digitalports, um die Sensoren anzuschlie�en. Wenn Du eine E-mail Adresse hast, kann ich dich mit Code zumüllen. Es ist sicher irgend etwas ganz Bescheuertes.................... :-) Es kann nicht sein, da� man ein I2C Device nicht ansprechen kannst. Hast Du keinen PCF 8574(A) oder ähnliches, um nur zu schreiben? Bezüglich des Vergiessens: Ich habe UHU Endfest 300 genommen, um die Sensoren in einen Strohhalm eingegossen. (Ohne Platine, direkt an dem Kabel) So gab es sehr kleine Sensoren. Von ca. 30 Sensoren sind irgendwann ein oder zwei wegen der Lötstellen unzuverlassig geworden. Das liegt aber mehr am direkten Anlöten und nicht am Kleber. Wenn du viel braucht, wahrschein- lich etwas teuer. Ich habe hier auch schon was von Silikon gelesen, ich habe aber immer etwas Angst vor (Essig) Säure. Aber es gibt aber sicher offizielle Vergussmassen...... Bis bald und fröhliches Basteln !?#*grrr§ :-), Willi aus Oelde | ||
Antwort schreiben Antworten: Re: DS1631: I2C-Bus bei CC2-Station defekt? (von Georg - 6.04.2006 22:35) Re: DS1631: I2C-Bus bei CC2-Station defekt? (von Georg - 7.06.2006 12:57) |