Forum: Mikrocontroller und Digitale Elektronik DS18S20 mit Infineon Mikrocontroller


von Aaron (Gast)


Lesenswert?

Hat jemand Erfahrungen, ein Temperatursensor DS18S20 von Maxim mit 
Infineon XC163CM Mikrocontroller, zu programmieren? Wäre super,wenn 
jemanden mir helfen könnte.

Gruss
Aaron

von Timmo H. (masterfx)


Lesenswert?

Ich habe das mal mit einem HC12 gemacht.

von Aaron (Gast)


Lesenswert?

Ich habe die source code schon geschrieben aber es funktionert nicht. 
Vielleicht kann jemand meine source code überprüfen?

von Timmo H. (masterfx)


Lesenswert?

Ja, dann poste ihn doch mal, damit wir ihn sehen (am besten als .c-Datei 
hochladen damit wir das auch formatiert sehen)

von Aaron (Gast)


Angehängte Dateien:

Lesenswert?

Die Source Code wurde von mir und einem Kollege teilweise geschrieben. 
Die Funktion DS18_GetTemperature () bin ich nicht sicher, ob ich richtig 
geschrieben habe, weil ich schlecht mit pointer bin (Anfänger im 
programmieren).

von Timmo H. (masterfx)


Lesenswert?

Was genau geht denn nicht? Bekommst du keine Antwort? Kennst du die ID 
oder machst du du das ID unabhängig? Sind die Timings auch richtig 
(siehe http://www.maxim-ic.com/appnotes.cfm/appnote_number/126). Ist 
Clock etc richtig eingestellt?
Irgendwie finde ich den Quellcode sehr verwirrend mir den ganzen 
Unterfunktionen etc. Irgendwie scheinen die Timings nicht zu stimmen. 
Wenn ich mir das bei mir angucke:
um eine 1 zu schreiben setze ich den Pin auf LOW, warte 6µs, dann den 
Pin auf Hochohmig, warte 64µs.
Bei dir ist es so:
warte 2µs, Port auf LOW, warte 5µs, Port auf HIGH, warte 70µs.

Da der 1-Wire Bus einen Pull-Up hat, brauchst du das HIGH gar nicht 
Treiben, denn dann hat ein 1-Wire Baustein ja gar nicht mehr die 
Möglichkeit den Bus auf LOW zu ziehen.
So stehts ja auch in der Application Note:
Drive bus low, delay A, Release bus, delay B

von Aaron (Gast)


Lesenswert?

Clock habe ich auf jeden Fall richtig eingestellt. Ich habe die Delay 
Funktion mit Oszi getestet, indem ich irgend ein Port zusammen mit delay 
funktion toggle.

Warte 2us ist eine Sicherheit, sodass zwichen den Frames eine 
Zeitabstand von mindestens 1us hat.

Ich werde am WE die Code genauer gucken und ohne HIGH probieren. Wenn es 
immer noch nicht funtionert, melde ich mich noch mal.

Danke für den Hinweis.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.