www.mikrocontroller.net

Forum: Compiler & IDEs LM73 über I2C mit ATmega8 ansprechen


Autor: A. Wilhelm (lordhelmchen)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: A. Wilhelm (lordhelmchen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hehe, danke...

aber... in dem Datenblatt steht bei "1.0 Functional Description (b)" was 
von einem 'Serial Bus Adress Type'... was isn das?
Weil ich such und such in dem Datenblatt, finde aber nichts was A0, A1 
und A2 sein soll... :(

Autor: GAST (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau auf der Seite 9, links unten in der LM73 datasheet.

Autor: A. Wilhelm (lordhelmchen)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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_re...)

Autor: A. Wilhelm (lordhelmchen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So... das scheint hier ja alles zu klappen!

Lesen der Werte und Ausgabe auf dem Display... danke =)

Nun muss ich nur noch zusehen dass ich die Werte als Dezimalzahlen 
ausgebe... binär lässt sich dass immer so schwer lesen...

LG

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  A. Wilhelm (lordhelmchen)

>Nun muss ich nur noch zusehen dass ich die Werte als Dezimalzahlen
>ausgebe...

Mit Festkommaarithmetik.

MFG
Falk

Autor: Jurek (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.