Raspberry Pi Pico: Grundlagen zu One-Wire (1-Wire)

One-Wire / 1-Wire

One-Wire bzw. 1-Wire ist ein serieller Bus der Firma Maxim (ehemals Dallas Semiconductor). Es handelt sich um einen Eindraht-Bus, der mit nur einer Datenader als gemeinsame Sende- und Empfangsleitung auskommt. Dabei ist der Name One-Wire irreführend, weil zusätzlich zur Datenader eine Masseverbindung (GND) und eine Leitung für die positive Betriebsspannung gebraucht wird.
Nur wenn ein One-Wire-Gerät über eine eigene Stromversorgung verfügt, reicht eine Ader zur Datenübertragung aus.

Vorteile und Besonderheiten

  • Vergleichsweise günstige digitale Sensoren und Komponenten.
  • Inbetriebnahme erfolgt ohne Kalibrierung und Konfiguration.
  • Erlaubt äußerst kleine Bauformen.

Nachteile und Schwächen

  • Das Kommunikationsprotokoll muss implementiert werden.
  • Die Sensoren arbeiten in der Regel passiv. Ein Busmaster muss den Lesebefehl auslösen.
  • Im Bus-Betrieb mit mehreren Sensoren ist eine eigene Verkabelung notwendig.

Topologie und Verkabelung

Für kleine One-Wire-Netze bis 100 Meter lässt sich neben der Bus-Verkabelung auch eine baumförmige oder sternförmige Verkabelung verwenden. Mit speziellen Hubs baut man ein größeres sternförmiges Netz. Für die Verdrahtung größerer Netze sind TP-Kabel ab CAT-5 am besten geeignet. Für kleinere Netze reicht auch verseilter Klingeldraht.

Energieversorgung durch den Bus

Viele One-Wire-Geräte haben eine Betriebsspannung zwischen 2,8 V und 5,5 V. Einige Geräte erlauben aber nur 3,0 V bis 3,7 V. Das heißt, manche Geräte funktionieren sowohl mit +3,3V- und TTL-kompatiblen Gegenstellen. Andere funktionieren nur mit +3,3V-Systemen. Deshalb muss unbedingt das Datenblatt des eingesetzten Geräts beachtet werden.
Je nach Baustein liegt die Stromaufnahme eines One-Wire-Geräts zwischen 2 Mikroampere (µA) und wenigen Milliampere (mA).

Interessant ist One-Wire besonders für Sensoren, die über keine eigene Stromversorgung verfügen. Ein Sensor wird typischerweise mit zwei Leitungen (VCC + GND) mit Strom versorgt, was die bevorzugte Betriebsweise sein sollte. Eine Leitung (1-Wire) dient als Datenleitung.
Es gibt auch noch den parasitären Betrieb, bei der die Stromversorgung über die Datenleitung erfolgen kann („parasite power“), wodurch in der Praxis zur zwei Adern notwendig sind.
Die parasitäre Betrieb funktioniert aber nicht besonders gut bei vielen Sensoren, weil der gesamte Strom über den Bus fließen muss.

Pullup-Widerstand

Pullup-Widerstand bei One-Wire / 1-Wire

Jedes Gerät am One-Wire-Bus braucht einen Pullup-Widerstand, der den Pegel der Datenleitung auf High-Pegel zieht, um die Störanfälligkeit des One-Wire-Busses zu reduzieren. Dazu wird ein Widerstand zwischen der Datenleitung und VCC geschaltet. Der Wert dieses Widerstands lässt sich leicht ausrechnen.

Berechnung des Pullup-Widerstands

Es sollte ein Strom von mindestens 1 mA durch diesen Widerstand fließen. Bei einer Betriebsspannung von 5 Volt muss der Widerstand einen Wert von 4,7 kOhm haben. Bei einer Betriebsspannung von 3,3 Volt muss der Widerstand kleiner sein.
Diese einfache Rechnung gilt aber nur für eine kurze Leitung zwischen Mikrocontroller und Gerät. Relevant ist nicht die Spannung an der versorgenden Komponente, zum Beispiel am Mikrocontroller oder Board, sondern was am jeweiligen DS18B20 ankommt.
Bei längeren Leitungen, die wie ein Widerstand wirken, fällt am Ende mehr Spannung ab, weshalb die Spannung an den angeschlossenen Geräten mit zunehmender Leitungslänge geringer wird. Die Größe des Widerstands ist auch noch abhängig von der Anzahl der Geräte. Im Prinzip müsste die Spannung im laufenden Betrieb an jedem Gerät nachgemessen werden, um für die Berechnung des Widerstands die richtige Spannung zu verwenden.

One-Wire mit Raspberry Pi Pico und MicroPython

Die One-Wire-Unterstützung ist direkt in MicroPython implementiert und funktioniert mit allen GPIO-Pins.

Beispiele für One-Wire-Sensoren

  • DS18B20 - Temperatursensor
  • DS2417 - RTC (Real Time Clock / Echtzeituhr)
  • DS2423 - Speicher und Zähler
  • DS2450 - 4-fach 16-Bit Analog-Digital-Wandler

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren