mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 1-wire Bus mit einem Pin benutzen


Autor: Michael B. (gm8816)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hat jemand eine Schaltung mit der ich auf ein 1-wire Bus zugreifen kann. 
Ich habe mal etwas mit einem Schmitt Trigger gesehen aber ich kann mich 
nicht mehr genau dran erinnern. Diese Schaltung benutzt allerdings 2 
Pins am Mikrocontroller. Ich möchte hingegen nur einen benutzen. Er soll 
dann als Eingang und als Ausgang genutzt werden. Die Datenrichtung 
müsste dann im Mikrocontroller jedesmal geändert werden aber das ist 
kien Problem.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die gängige Implementierung benutzt einen Pin. Setzt aber voraus, dass 
die 1-Wire Devices entweder mit eigener Stromversorgung betrieben 
werden, oder der Pin genug Strom für parasitäre Versorgung liefern kann, 
was beispielsweise ein Original-8051-Pin nicht kann.

Besondere Schaltung gibt's da nicht. Dranhängen, Pullup, fertig. 
Allenfalls Schutzschaltung, wenn der Pin auch mal bischen 
Induktionspannung von längerem Kabel abkönnen soll.

Nachteil: Keine kontrollierte Flankensteilheit, mit entsprechend 
reduzierter Buslänge gegenüber speziellen 1-Wire-Treibern.

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die gängige Implementierung benutzt einen Pin. Setzt aber voraus, dass
>die 1-Wire Devices entweder mit eigener Stromversorgung betrieben
>werden, oder der Pin genug Strom für parasitäre Versorgung liefern kann,
>was beispielsweise ein Original-8051-Pin nicht kann.

Bis jetzt hatte ich 1wire so verstanden, dass die Ausgänge der einzelnen 
Bausteine wie beim I²C-Bus die Leitung nur gegen Masse ziehen.
Die Parasiten-Versorgung würde dann über einen relativ niederohmigen 
Pull-Up-Widerstand passieren.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Parasiten-Versorgung würde dann über einen relativ niederohmigen
> Pull-Up-Widerstand passieren.

Will man nur einen Pin verwenden, dann trennt man das auf. Ein relativ 
schwacher 4,7K Pullup dient der normale Datenphase. Für parasitäre 
Versorgung in der Messphase eines Wandlers, in der ja kein Bustransfer 
stattfindet, zieht der I/O-Pin die Leitung direkt hoch und kann so dem 
Device genug Strom liefern.

Mit einem Widerstand kombiniert geht das nur haarscharf kalkuliert. Das 
Device benötigt min 3V bei 1,5mA, d.h. der Pullup an 5V darf nicht über 
1,3K liegen. Bei diesem Wert zieht der Bus dann allerdings knapp 4mA bei 
Low, was exakt dem Limit vom Device entspricht.

Autor: Michael B. (gm8816)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn jemand einen Schaltplan dazu oder kann mir fertige Bauteile für 
so ein 1-wire Bus vorschlagen. I2C ist in meinem Fall nicht möglich, da 
es nicht mit nur einer Datenleitung funktioniert. Ich will wirklich nur 
die Datenleitung und Masse haben.

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um was für einen µC handelt es sich denn bei dir?
Wir benutzen das ganze an 8051ern. Da ist dann nur noch
ein 1k Pullup an demjenigen Portpin und dann kommen die
1-wire Devices. Fertig. Der Rest ist Firmware.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sach mal, was willst du darauf noch sehen? Bei einem 1-Wire-Bus 
reduziert sich dieser Schaltplan stark auf eine grade Linie ;-).

Ansonsten solltest du dich mal bei Dallas/Maxim umsehen. AppNotes 148 
könnte helfen (sonst noch: AN126, Tech Brief 1).

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Da ist dann nur noch ein 1k Pullup an demjenigen Portpin

Ergibt bei 5V einen Low-Strom von 5mA. Wird üblicherweise funktionieren, 
ist aber ausserhalb der Spezifikation (4mA max).

EDIT: Findet sich so auch in der AN148. Nun ja, die müssen es ja wissen.

Autor: Michael B. (gm8816)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hatte ich wohl vergessen zu erwähnen. Ich benutze einen ATtiny84 und 
möchte nur einen Pin zum Senden und Empfangen benutzen.

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also den 1k-Pullup hatte ich seinerzeit auch aus nem Datenblatt
oder einer Appnote. Den hab ich nicht erfunden ;-)

Läuft jedenfalls stabil und in Serie...

Autor: Michael B. (gm8816)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir jetzt überlegt den 74HC640 als Treiber zu benutzen. Bei dem 
IC muss man zwar die Datenrichtung angeben aber ich denke das lässt sich 
einrichten. Ich frage mich nur ob ich vor den Ausgang noch einen 
Widerstand bauen soll falls die Daten mal in der falschen Richtung 
ankommen.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Langsam frage ich mich, ab die Diskussion noch einen Sinn hat. Oder ob 
du unter einem 1-Write Bus etwas ganz anderes verstehst als alle 
anderen. Dessen Erfinder Dallas/Maxim inklusive. Denn mit dem '640 
gleitet das deutlich ins Absurde ab.

Tip: Irgendwo im Code-Forum, oder wassweissichwo, liegt ein prima Stück 
Code von Peter Dannegger zum Thema 1-Wire mit einer Leitung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.