Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: LM75 Tempsensor von Conrad funktioniert nicht am i2c Kategorie: I²C-Bus (von Mark - 21.09.2004 0:10)
Als Antwort auf Re: LM75 Tempsensor von Conrad funktioniert nicht am i2c von André H. - 19.09.2004 14:05
Ich nutze:
C164CI-ControllerBoard, OSOPT V3.0
moin

funktioniert mittlerweile, das problem lag an einer fehlenden masseleitung. vielen dank für die infos!

mfg

> 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.
>


    Antwort schreiben


Antworten: