Re: LM75 Tempsensor von Conrad funktioniert nicht am i2c Kategorie: I²C-Bus (von André H. - 19.09.2004 14:05) | ||
Als Antwort auf LM75 Tempsensor von Conrad funktioniert nicht am i2c von Mark - 17.09.2004 21:42 | ||
| ||
Hallo Mark, > wollte heute eigentlich nur ne ganz simple sache versuchen. den lm75 tempsensorchip von conrad > mit i2c schnittstelle an mein ccontrol2 anschlie�en! > > http://www.produktinfo.conrad.com/datenblaetter/150000-174999/165883-da-01-en-lm_75.pdf > > um zu gucken an welcher addresse mein lm75 ist hab ich ne einfache schleife programmiert, die > für jeden addresse überprüft was das i2c.start zurückliefert: > > for i=0 ... <255 > { > i2c.init(); > result = i2c.start(i); > string s; > str.clear(s); > str.putint(s,i); > str.putstring(s,": RESULT = "); > str.putint(s,result); > str.putstring(s,"nr"); > sendString(s); // über serielle schnittstelle ausgeben > } > > leider bekomme ich überall den wert 0 zurück. > jetzt weiss ich nicht ob ich das ding überhaupt richtig angeschlossen habe. stromversorgung > addressierung ist soweit klar. was ist mit scl und sda ? werden die direkt 1 zu 1 auf den lm75 > gesteckt? so hab ich das jedenfalls gemacht... > > was mach ich falsch? Du machst grundlegende Dinge falsch: 1. Warum führst Du i2c.init() bei jedem Schleifendurchlauf aus ? Man benötigt i2c.init() nur, wenn man die Ports vom I²C-Bus anderweitig "mi�braucht" hat. I.d.R wird er I²C-Bus bei jedem Start des Programms systemseitig initialisiert. 2. Wenn man i2c.start() ausführt mu� auch irgendwann einmal ein i2c.stop folgen. Sonst wird das nichts. 3. Um den I²C-Bus zu scannen, sollten nur die geraden Adressen verwendet werden ! Die Addressen 0 und 1 sollten auch nicht verwendet werden, da dies Generall-Call Adressen sind ! Aber, warum schlägst Du nicht einfach im Datenblatt des LM75 nach, um die Adresse zu erfahren. Dort steht ganz deutlich drin, da� Der Baustein die Basisadresse 0b10010000 hat. (=0x90 bzw. 144) Und, wenn Du dennoch scannen willst, dann benutze bitte eine Routine nach diesem Schema: for i=2 ... 254 step 2 { hwcom.print("Addr: "); hwcom.num(i); hwcom.tab(); hwcom.print("Ack.: "); hwcom.num(i2c.start(i)); i2c.stop(); hwcom.ret(); } MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: Re: LM75 Tempsensor von Conrad funktioniert nicht am i2c (von Mark - 21.09.2004 0:10) |