Forum: Mikrocontroller und Digitale Elektronik MSP430 Anschluss eines DS18B20 ?


von Wolfgang (Gast)


Lesenswert?

Wenn ich das Datenblatt richtig verstanden habe, dann werden über den
Anschluss DQ des DS18B20 Daten empfangen und gesendet. Auf der MSP430
Seite muss auch ein Anschluss benutzt werden, der Daten empfangen und
senden kann. Kann man UTXD und URXD einfach verbinden oder welchen
Anschluss sollte man nehmen ?
Es gibt ja auch noch I²C und SPI.
MfG
Wolfgang

von KoF (Gast)


Lesenswert?

vermutlich 1-wire ;-)

das must du selber implementieren (über eine i/o leitung)

von Ratber (Gast)


Lesenswert?

Sicher ist das 1Wire

Hat die gleichen Eigenschaften wie der S20 nur das man hier die
Auflösung zwischen 9 und 12 Bit wählen kann.

von Wolfgang (Gast)


Lesenswert?

Da hab ich  vermutlich meine Frage ungeschickt gestellt. Richtig, es ist
1-wire.
Noch einmal das sich mir stellende Problem: Wenn ich Daten zum DS18B20
senden will, würde ich den Ausgang UTXD0 des µC verwenden. Um Daten vom
DS18B20 zu empfangen, würde ich URXD0 des µC verwenden. Da aber beides
über nur eine Leitung läuft, meine Frage, ob man  URXD0 und UTXD0
verbinden kann, ohne etwas zu zerstören.
Oder macht man das völlig anders?
MfG
Wolfgang

von Ratber (Gast)


Lesenswert?

Ach so meinste das.

Nein bei 1W wird nur über eine Leitung komuniziert.

Ist ja sozusagen der Witz an der Geschichte.

Je nachdem womit du Programierst bekommste fertige Routinen/Befehle
oder mußt dir das Protokoll selber zusammenstricken (Is nicht besonders
schwer)

von Wolfgang (Gast)


Lesenswert?

Der Witz ist mir bekannt, dass alles über eine Leitung läuft. Und das
ist für mich aber auch das Problem.
Wo ist diese eine Leitung am µC anzuschließen?
UTXD des µC ist ja vorzugsweise zum Senden und URXD vorzugsweise für
den Empfang von seriellen Daten vorgesehen.
MfG
Wolfgang

von Christian Ege (Gast)


Lesenswert?

Genau da liegt der Hacken. UTXD & URXD sind die PINs Des UARTs.
Für das 1-Wire Protokoll reicht ein einfacher Portpin den kannst Du als
Eingang und als Ausgang schalten. Beim 1-wire Protokoll ist das Timing
das entscheidende. Die Daten kommen zwar seriell rein sind aber in
keinster Weise RS232 konform sprich das was der uart erwartet.

Wenn Du etwas suchst dann dürftest Du hier einiges an Code finden. Ich
bin gerade daran eine 1-wire GPL Implemementierung in C zu schreiben.
Ist im Moment noch etwas AVR lastig das sollte sich aber durch ein paar
Makros ändern lassen. Leider hat das Semester wieder angefangen und ich
habe wieder weniger Zeit für solche Projekte.

Gruß
Christian

von Weinga-Unity (Gast)


Lesenswert?

Hi!

Es würde funktionieren, die UART-Implementierung von 1wire (mit
unterschiedliche Baudraten) zu verwenden. Dazu einfach UTXD und URXD
verbinden die dann DQ bilden. Problem ist halt der Strong-Pull-Up.

Aber am einfachsten würde sein, eine SW-Implementierung durchzuführen.
Und die basic-OW-Instructions zu implementieren (ein Oszi währe dabei
sehr hilfreich). Durch die Three-State I/O's vom MSP430 kann man alles
wunderbar mit einer Leitung machen.

mfg Weichinger Klaus
www.weinga-unity.at.tt

von Peter Dannegger (Gast)


Lesenswert?

Für 1-wire muß man einen opendrain-Pin simulieren.

Hier ist ein AVR-Beispielcode:

http://www.mikrocontroller.net/forum/read-4-84831.html#new


Für ne andere CPU muß man nur die Portpinzugriffe und die
Zeitverzögrungen anpassen.


Peter

von Wolfgang (Gast)


Lesenswert?

Ich denke, dass meine Frage zunächst geklärt ist. danke
Auf UTXD und URXD kam ich, weil im Datenblattbeispiel  Rx und Tx
verbunden abgebildet worden sind. Das war wohl keine so gute Idee.
Also werde ich die DQ Leitung an einen I/O Pin hängen und es mit einem
Programmbeispiel nacharbeiten.
MfG
Wolfgang

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.