LM73 über I2C mit ATmega8 ansprechen

OP #1002633
Lesenswert?

So, dann muss ihc mich mal wieder an euch wenden...

Was ich will- den Baustein LM73 über I2C mit meinem ATmega ansprechen. 
Die Adresse auslesen und dann aufm Display ausgeben...
Mein Problem- ich habe keine Ahnung, wo und wie ich anfangen soll...

Ich bin dabei, das Forum und auch das Internet ansich (Google dein 
Freund und Helfer) zu durchsuchen- aber irgendwie fehlt mir der 
entscheidende Gedanke, zu verstehen was ich wie mache bzw wie ich 
eigentlich anfange... daher- hat wer ne Idee wo ich was finde, wie ich 
mich dem ganzen nähern kann?


Danke =)

LG
OP #1002993
Lesenswert?

Danke... war ich einfach zu blind zu...


So.. wenn ich das wichtig verstehe... muss ich nur genau das machen, was 
in der functional Description steht, oder?

Ich will das "Identification Register" abfragen. Halt um zu schaun ob 
unter derundder Adresse das IC erreichbar ist.
So, im Datenblatt steht dass das 15 Bit lang ist (S.16). Also schau ich 
auf Seite 11 nach, "(b) typical pointer set followed by immediate read 
of a 2-byte register". Und mach dass dann genauso wies da steht... denke 
ich mal.

Daher habe ich folgendes hier nun stehen:

#define   F_CPU 2000000
#define   SCL_CLOCK    100000L
#include  <avr\io.h>
#include  <util\delay.h>
#include   <stdlib.h>
#include    "twimaster.c"
[...]
//Adresse abfragen
//---------------------------------------------------------------------- 
-----
// Verfahren: datasheet, 1.0 b
//---------------------------------------------------------------------- 
-----

void adress()
{
  i2c_int();
  i2c_start (0b10010000+I2C_WRITE);
  i2c_readAck ();
  i2c_write (0x07)
//datasheet, 2.7, pointer auf ident. register
  i2c_readAck ();
  i2c_stop ();
  i2c_start (0b10010001);
  i2c_readAck ();
  read
  i2c_writeAck ();
  read
        i2c_writeNak ();
  i2c_stop ();

}
[...]

--> vom Prinzip her richtig?
--> mit welchem Befehl kann ich vom Slave lesen? Ich find irgendwie nur 
write-Befehle...


LG
Persönliche Seite #1003127
Lesenswert?

A. Wilhelm wrote:

> --> mit welchem Befehl kann ich vom Slave lesen? Ich find irgendwie nur
> write-Befehle...

Das Lesen ist im LM73-Datenblatt auf Seite 10 und 11 beschrieben.

Die dazu passende TWI-Library (Funktion) solltest du dort finden, wo du 
den Rest des obigen Programms gefunden hast.

Wenn dort wider Erwarten nichts zu finden ist, gibt es Beispielcode für 
i2c_read() im Forum 
(http://www.mikrocontroller.net/search?query=i2c_read&forums%5B%5D=1&forums%5B%5D=19&forums%5B%5D=9&forums%5B%5D=10&forums%5B%5D=2&forums%5B%5D=4&forums%5B%5D=3&forums%5B%5D=6&forums%5B%5D=17&forums%5B%5D=11&forums%5B%5D=8&forums%5B%5D=14&forums%5B%5D=12&forums%5B%5D=7&forums%5B%5D=5&forums%5B%5D=18&forums%5B%5D=15&forums%5B%5D=13&forums%5B%5D=16&max_age=-&sort_by_date=0)
Gast #1023479
Lesenswert?

ich hab das gleiche vor, allerdings finde ich nirgends einen Versand, wo 
ich den LM73 kaufen könnte.
Ich bin so ziemlich die ganze Versanadressliste hier im Forum 
durchgegangen.
Aber ausser bei Digikey mit 18EUR Versand hab ich dieses Teil nirgends 
finden
können.

Kann mir bitte wer helfen, wo es den LM73 gibt?

Wenn ich dann bei der Programmierung (Assembler) weitergekommen bin,
kann ich gerne den Code reinstellen...
Der LM75 funktioniert bei mir mittlerweile, ist aber zu ungenau.


Noch eine Frage: Beim LM75 wird eine Genauigkeit von +/- 2 Grad 
angegeben.
Wie sich das beim LM73 verhält, hab ich jetzt nicht im Kopf. Aber 
generell:
Die Ungenauigkeit gilt doch für alle Temperaturen, oder ?
D.h. er misst immer z.B. 1,5 Grad zu hoch ?
Oder kann jede einzelne Messung um +/- 2Grad unterschiedlich sein?


Grüsse
Jurek

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren