Re: DS1631: I2C-Bus bei CC2-Station defekt? Kategorie: I²C-Bus (von Georg - 2.04.2006 15:37) | ||
Als Antwort auf Re: DS1631: I2C-Bus bei CC2-Station defekt? von Willi aus Oelde - 31.03.2006 20:42 | ||
| ||
> 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......screib 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 | ||
Antwort schreiben Antworten: Re: DS1631: I2C-Bus bei CC2-Station defekt? (von Willi aus Oelde - 3.04.2006 22:18) 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) |