Raspberry Pi Pico: Grundlagen zu 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
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.
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.
- Beispiel: Temperatur messen mit dem DS18B20 über One-Wire
- Beispiel: Temperatur messen mit mehreren DS18B20 über One-Wire
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:
- Raspberry Pi Pico: Anschlüsse und Schnittstellen
- Raspberry Pi Pico: Grundlagen zu ADC
- Raspberry Pi Pico: I2C verbinden und testen
Frag Elektronik-Kompendium.de
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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
Online-Workshop: 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.
Für Ihre Fragen zu unseren Online-Workshops mit dem Raspberry Pi Pico besuchen Sie unseren PicoTalk (Online-Meeting). (Headset empfohlen)