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?
Du schickst ihm ja eine Befehlssequenz, zB Skip Rom, Read Scratchpad, und anhand der Befehle ist dann auch die Datenrichtung klar. fchk
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.
Eine gute Erklärung zum 1-Wire Bus gibts hier: Beitrag "1-Wire-Bus-Projekt: DS1820 DS18S20 DS2450 DS2408 unter C und 8051"
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
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?
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?
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?
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 ;)
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?
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
Atmel hat auch noch was http://www.atmel.com/Images/doc2579.pdf mit Sourcecode http://www.atmel.com/Images/AVR318.zip
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.