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.
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.
>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.
> 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.
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.
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.
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).
> 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.
Das hatte ich wohl vergessen zu erwähnen. Ich benutze einen ATtiny84 und möchte nur einen Pin zum Senden und Empfangen benutzen.
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...
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.
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.
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.