Forum: Mikrocontroller und Digitale Elektronik Temperaturmessung DS18S20 mit MAX232 über Serielle Schnittstelle


von Markus P. (papi70)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe eine Studienarbeit ausgeschrieben und möchte es vermeiden, dass 
der Student per Copy & Paste weiter zu seinem Ziel kommt. Daher entwarf 
ich folgende Schaltung und der Student soll ein Programm mit Visual 
Basic unter XP schreiben, um die Temperatur mit einem DS18S20 
auszulesen.

Ziel: Der Student soll die Temperatur mit Visual Basic einlesen

Ablauf: Temperatur => DS18S20 => MAX232 => RS232 => PC => Visual Basic 
=> Excel auf Windows XP

Ich habe mich in den hier im Forum bereits bestehenden Beiträge 
eingelesen und würde sagen, dass dies machbar sein könnte. Bevor ich den 
Studenten aber köpfe, möchte ich dies gerne verifiziert haben, da ich im 
programmieren nicht so fit bin.

Beitrag "DS18S20 mit Visual Basic ohne µC auslesen"
http://www.maxim-ic.com/app-notes/index.mvp/id/214

Annahme: wenn genügend Nullen auf TxD gesendet werden, sollte der Reset 
möglich sein. Im Anschluss kann über TxD die Ansteuerung des DS18S20 
starten und mit RxD ausgelesen werden. Die Stromversorgung der Schaltung 
erfolgt über einen freien USB-Port

Frage: ist eine Temperaturerfassung mit der vorhanden Schaltung möglich, 
ja oder nein?

Ich möchte bitte keine Lösung haben, der Student könnte sich ja auch 
hierher verirren...

Vielen herzlichen Dank

Markus

: Verschoben durch Admin
von (prx) A. K. (prx)


Lesenswert?

Markus P. aus w. schrieb:

> Ich möchte bitte keine Lösung haben, der Student könnte sich ja auch
> hierher verirren...

Könnte durchaus sein, dass der Student trotzdem auf eine mindestens 
teilweise vorgekaute Lösung stossen wird, denn ich meine, sowas schon 
mal gesehen zu haben.

Wobei sich die Frage stellt, ob ihm mit einem FT232 (USB/Serial) an 
Stelle des MAX232 zuviel zugemutet wird? Erspart die serielle 
Schnittstelle, weil USB ja sowieso schon im Boot ist. Da hier kein 
Bitbanging verwendet wird, sollte das genauso funktionieren.

von Olaf (Gast)


Lesenswert?

> Frage: ist eine Temperaturerfassung mit der vorhanden Schaltung
> möglich, ja oder nein?

Ich denke nicht das dies moeglich ist. Der 1Wire bus hat relativ genaue 
Timinganforderungen. Ich denke mal die wird Windows nicht einhalten
koennen. Vielleicht schafft man es aber es mit viel Muehe dazu zu 
bringen das es auf manchen Rechnern manchmal, oder gar haeufig 
funktioniert.
Aber zuverlaessig ist anders!

Olaf

von (prx) A. K. (prx)


Lesenswert?

Olaf schrieb:

> Ich denke nicht das dies moeglich ist. Der 1Wire bus hat relativ genaue
> Timinganforderungen. Ich denke mal die wird Windows nicht einhalten
> koennen.

Nope, Timing-Probleme entstehen seitens Windows fast keine, jedenfalls 
keine knappen, weil sich das bei adäquater Einstellung der Baudrate über 
ganz normale Datentransfers bei zum 1-Wire Timing einigermassen 
passender Baudrate abwickeln lässt. Lediglich die Pausen dazwischen 
müssen abgewartet werden, was das bei USB/Serial deutlich interessanter 
gestaltet als bei einer echten RS232-Schnittstelle - aber irgendwas 
sollte der Studi ja selber denken (hint!), denn mit echter RS232 braucht 
er es m.E. nur irgendwo abschreiben und in Basic umcodieren.

von Markus P. (papi70)


Lesenswert?

der Rechner hat eine "echte" RS232 Schnittstelle und der USB dient nur, 
um die 5 Volt für den MAX232 zu haben...

Ich folgere einmal, dass diese Aufgabe umsetzbar wäre und danke für die 
sehr guten Beiträge.

Ich finde es immer wieder schön, wie einem hier geholfen wird. Schade 
das in Unternehmen die arbeitende Bevölkerung so mit Arbeit zugeschüttet 
wird, dass es kaum möglich ist, dort noch Menschen zu fragen.

Gruß & ein schönes, erholsames Wochenende

Markus

von Noralem (Gast)


Lesenswert?

Das Timing sehe ich auch nicht als kritisch an.
Die Schwierigkeit liegt in den Read Slots verborgen. Und ich befürchte 
dazu reicht die obige Schaltung noch nicht ganz aus. Wie soll denn der 
Dallas sein Startbit senden? Nicht ohne Grund wird in eischlägigen 
Seiten im Internet das DTR Bit mitbenutzt.

Allerdings sollte der Student sich ja auch soweit reindenken, dass er 
wenigstens das RS232 und 1-Wire Protokoll kennt und sagen kann was evtl. 
noch fehlt.

Eine weitere Lösung wäre einen µC zu spendieren der die 
Protokollübersetzung übernehmen kann. Das ist noch immer anpsruchsvoll 
genug und der Student müsste nicht in die Thematik mit sämtlichen Tricks 
einsteigen sondern könnte sich langsam vorantasten. 1) µC 2) 
Kommunikation PC, µC 3) Kommunikation µC, 1-wire 4) Protokollübersetzung

Ein weitere Vorteil dieser Lösung ist, dass wenn die Übersetzung 
universell gehalten wird auch andere 1-wire Geräte damit angesteuert 
werden könnten und man somit ein auch für andere nützliches Programm 
hätte.

von Peter D. (peda)


Lesenswert?

Markus P. schrieb:
> Annahme: wenn genügend Nullen auf TxD gesendet werden, sollte der Reset
> möglich sein.

Nö, man stellt eine Baudrate ein, die etwa 960µs auf 10 Bit entspricht 
und sendet 0xF0.

Dann stellt man eine Baudrate ein, die etwa 60µs auf 9 Bit entspricht 
und sendet 0xFF oder 0x00.

Den Rest sollte man selber rausfinden.


Peter

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.