DS1621 I2C Temperatursensor

Gast #352005
Lesenswert?

Hallo,
Ich habe da ein Problem mit dem o.g. Sensor in Verbindung mit einem
80C552.
Eigentlich sollte bis morgen ein kleines Programm laufen, das mir auf
nem 2x16 Zeichen Display die Temperatur ausgibt. Da ich aber erst heute
angefangen habe, hoffe ich, dass mir hier jemand helfen kann.



So wie ich das im Datenblatt verstanden habe muss ich wiefolgt
vorgehen:

Start
Adresse
Kommando eeh
Stop

Start
Adresse
Kommando aah
wiederholter Start
Adresse (mit LSB=1)
nun müssten im S1DAT zumindest schonmal die oberen 8 bit der Temp.
stehen.



Das letzte was ich bekomme ist eine 40h im Status, d.h. der Slave
scheint wohl zu reagieren. Daten schickt er jedoch nicht.


Hier ist mal das grobe Programm. Anstatt einen gewissen Statuswert
abzuwarten gehe ich einfach davon aus, dass nach der jeweils
eingebauten Zeitschleife ein ACK vom Slave kommt, da ich nach jedem
gesendeten Byte mir den Status habe ausgeben lassen.





mov S1CON, #E2h    ;I2C Bus starten
call zeit
;*********************************************************************
mov S1DAT, #10011110b  ;Slave Adresse (wenn alle 3 Kontakte offen sind)
clr STO
clr SI
call zeit


;********************************************************************
mov S1DAT, #eeh    ;Temperaturkonvertierung starten
clr STA
clr STO
clr SI
call zeit
setb STO        ;I2C Bus stoppen

;*******************************************************************
;*******************************************************************
mov S1CON, #E2h    ;I2C Bus starten
call zeit

mov S1DAT, #10011110b  ;Slave Adresse (wenn alle 3 Kontakte offen sind)
clr STO
clr SI
call zeit

;*******************************************************************
mov S1DAT, #aah    ;Kommandobyte Temperatur auslesen
clr STA
clr STO
clr SI
call zeit

mov S1CON, #E2h    ;wiederholte Startbedingung senden
call zeit

;*******************************************************************
mov S1DAT, #10011111b  ;Slave Adresse (wenn alle 3 Kontakte offen sind)
clr STO
clr SI
call zeit


mov p1, S1STA    ;in S1STA steht 40h, d.h. der Slave ist da



M f G
Sebastian

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