LM 75 und Schaltausgang

achim S.

Mitglied
16. Jan. 2010
704
13
18
Berlin Biesdorf
Sprachen
  1. ANSI C
Hallo
Bin auf der suche nach dem Pin 3 vom LM75.
Muss wohl genauer werden. Habe den LM75 auf einer kleinen Platine, am Bus angeschlossen und lasse mir die Temperatur ohne Problem am Display anzeigen. Das geht alles sehr gut. Der IC hat doch noch den Pin 3 als Schaltausgang. Dort kann ich z.B. ein Transistor, Relais oder LED anschliessen. Leider such ich schom seit Tagen im Netz nach einer Anregung oder besser ein Stück Code dazu- Nach dem Datenblatt muss ein Register gesetzt werden und die Temp übertragen werden. Könnte mir jemand damit weiterhelfen?
AT1284p, I2C Bus, 16MHz, Programmierung in C
achim
 
Hallo Hemi
dieses Datenblatt kenne ich bereits. Arbeite auch damit. Leider nur für die Ausgabe, Adressen usw. Beim schreiben der Register und festlegung der Temp komme ich nicht klar. Verstehe es nicht, wie es so zu machen ist. Bei einigen anderen ICs z.B. 8574 mache ich es. Bei dem LM75 komme ich so nicht klar. Sorry.
achim
 
Hallo Achim,

schau dir mal auf Seite 8 des Datenblatts die Punkte b und c an. Da kannst du nachvollziehen, wie der Ablauf beim Senden der Konfiguration und der Temperaturen erfolgen muss. Welche Werte du an welches Register schicken musst, kannst du ja aus den Tabellen entnehmen.
 
Was ist denn das Problem? (also wenn Du bereits die beiden Ist-Temperatur-Bytes auslesen kannst)

Über den IIC-Bus hast Du Zugriff auf 4 Register.
Ist-Temperatur (16bit, nur lesen)
obere Temperaturschwelle (16bit)
untere Schwelle (16bit)
Config (8bit)

Intern "zeigt" ein Pointer auf das Register, auf das zugegriffen wird - nach dem Reset ist das das Ist-Temp-Register. Willst Du auf ein anderes zugreifen, mußt Du erst den Pointer umsetzen.
Schreiben:
Start->SLA+W->Pointer->WriteData->[WriteData->]Stop
Lesen:
Start->SLA+W->Pointer->RepeatedStart->SLA+R->ReadData->[ReadData->]Stop
Der Pointer behält den Wert bei, stimmt er bereits, kann gleich gelesen werden (so wie Du das bereits mit der Ist-Temperatur machst (da der Pointer nach dem Reset dorthin initialisiert ist):
Start->SLA+R->ReadData->[ReadData->]Stop

Die interne Zustandsmaschine erkennt das Überschreiten der oberen Schwelle, bzw das unterschreiten der Unteren. Im Komperatormodus (->ConfigByte) werden diese Ereignisse direkt auf den Output-Pin gelegt (ggf invertiert->ConfigByte).
Im Interruptmodus wird stattdessen jedesmal wenn der Komperator kippen würde der Output wirksam (entsprechend eingestellter Polarität im ConfigByte), zurückgesetzt wird durch eine Leseopration (wobei nicht angegeben ist, welches Register dazu gelesen werden muß).

Nach dem Reset ist die obere Schwelle bei 80°C, die Untere bei 75°C. (und der LM im Komperatormodus, OS schaltet also bei überschreiten von 80°C auf Gnd durch, und öffnet bei unterschreiten von 75°C)

Mit den Fault Queue Bits im Configurationsregister scheint sich außerdem sowas wie ein Tiefpaß realisieren zu lassen (also was die Reaktion des Outputsbetrifft)
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)