Forum: Mikrocontroller und Digitale Elektronik Kurze Frage: 1-wire Bus Lesen / Schreiben


von Ich (Gast)


Lesenswert?

Hallo

ganz kurze Frage bez. 1-wire-Bus:
Wie weiß der Slave ob ich lesen oder schreiben will?
Ich ziehe DQ auf Low und lasse dann wieder aus,
das kann eine geschriebene 0 sein oder
eine Aufforderung zum Lesen.
Wie kann der Slave das auseinanderhalten?

von Frank K. (fchk)


Lesenswert?

Du schickst ihm ja eine Befehlssequenz, zB Skip Rom, Read Scratchpad, 
und anhand der Befehle ist dann auch die Datenrichtung klar.

fchk

von Ich (Gast)


Lesenswert?

Also zuerst kann ich immer schreiben
und wenn ich einen Lesebefehl gesendet habe
muss ich lesen, wenn ich genug gelesen habe
darf ich wieder schreiben.

von Bernhard B. (schluchti)


Lesenswert?

Eine gute Erklärung zum 1-Wire Bus gibts hier:
Beitrag "1-Wire-Bus-Projekt: DS1820  DS18S20  DS2450  DS2408  unter C und 8051"

von Ich (Gast)


Lesenswert?

An der lese ich grade.

von Klaus D. (kolisson)


Lesenswert?

Hi DU ICH,

ohne jetzt zu wissen, was in dem zuvor verlinkten Beitrag steht,
kann ich Dir auch folgendes Datenblatt empfehlen:

http://www.google.de/url?sa=t&source=web&cd=3&ved=0CCgQFjAC&url=http%3A%2F%2Fdatasheets.maxim-ic.com%2Fen%2Fds%2FDS2502.pdf&rct=j&q=ds2502&ei=mTGNTJbjAYaX4Abs8ajsCg&usg=AFQjCNHGENZ4yvpDhNePFNWbvXlGzrFXKg&cad=rja

falls der link nicht geht -> DS2502

Da steht in Textform etwas über den Ablauf der einzelnen Commands.
(und jeden Absatz mehrfach lesen !)

Mir hat es jedenfalls geholfen.

Gruss Klaus

von Ich (Gast)


Lesenswert?

Danke

ich bastle eigentlich mit dem DS18S20.
Noch eine Frage:
Der "Strong Pullup", den ich während der Temperaturmessung 0,75s lang 
brauche, wird im Datenblatt mit einem Mosfet realisiert. Kann ich dafür 
auch einfach den PortPin des AVR nehmen?

von Ich (Gast)


Lesenswert?

Hallo

im Datenblatt steht, man braucht einen MOSFET für den Strong Pullup 
während der Temperaturmessung. Kann ich die 1,5mA auch mit dem Portpin 
bereitstellen, an dem die Datenleitung hängt?

von Klaus (Gast)


Lesenswert?

Ich schrieb:
> Kann ich die 1,5mA auch mit dem Portpin
>
> bereitstellen, an dem die Datenleitung hängt?

Ääh! Nein!

Warum? Weil dein Portpin in der Regel einen internen Pullup hat und der 
liefert den Strom nicht.

Und wenn Du Open-Drain Portpin verwendest schon gar nicht.


Alles Klar?

von Anon Y. (avion23)


Lesenswert?

Klaus schrieb:
> Ich schrieb:
>> Kann ich die 1,5mA auch mit dem Portpin
>>
>> bereitstellen, an dem die Datenleitung hängt?
>
> Ääh! Nein!

Ich habe mehrere Quellen gefunden, in denen genau das gemacht wird. Ob 
der Mosfet intern oder extern ist macht auch keinen Unterschied.

Und ja, man muss den pin dabei auf Ausgang stellen ;)

von Michael A. (Gast)


Lesenswert?

Klaus schrieb:
> Und wenn Du Open-Drain Portpin verwendest schon gar nicht.

Und was hindert einen dadran, statt eines externen MOSFET den Portpin 
auf active High zu setzen?

von Peter D. (peda)


Lesenswert?

Ich schrieb:
> Kann ich dafür
> auch einfach den PortPin des AVR nehmen?

Ein ganz klares ja.

Ein AVR-Pin kann alle 3 benötigten Zustände (low, tristate, high), also 
wäre es Blödsinn, einen zusätzlichen Transistor zu nehmen. Der bräuchte 
dann sogar noch nen extra IO-Pin.


Peter

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?


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.