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 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
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT_V2, OSOPT V3.0
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)