Das 1-Wire-Praxisbuch
Von Miroslav Cina
Kapitel 1: Die OneWire-Welt
Kapitel 2: OneWire Theorie
2.1. OneWire Netzwerktopologie
2.1.1. Lineare Topologie
2.1.2. Variationen der Linearen Topologie
2.1.3. Geschaltete Netzwerke
2.2. Protokoll-Konventionen
2.2.1. ROM-Code
2.2.2. Technische Ebene
2.2.3. Kommunikationsschritte
2.2.4. Nicht zu vergessen - CRC
2.2.5. ROM-Befehle
2.2.5.1. Read ROM [33h]
2.2.5.2. Match ROM [55h]
2.2.5.3. Search ROM [F0h]
2.2.5.4. Skip ROM [CCh]
2.3. Typische Einsatzgebiete
Kapitel 3: Die Brücke
3.1. DS2482-100
3.2. DS2482-800
3.3. DS2484
Kapitel 4: OneWire Praxis
4.1. ROM-ID Chips
4.1.1. Überblick
4.1.2. DS2401 (Familienkode: 01h)
4.1.2. DS2411 (Familienkode: 01h)
4.1.3. DS1990A (Familienkode: 01h)
4.2. Thermometer Chips
4.2.1. Überblick
4.2.2. Temperaturkodierung und der 2-er-Komplement
4.2.3. DS18S20 (Familienkode: 10h)
4.2.3.1. Funktionalität
4.2.3.2. Temperaturkodierung und Umrechnung
4.2.3.3. Konfiguration
4.2.3.4. Temperatur messen
4.2.3.5. Alarmfunktion
4.2.4. DS18B20 (Familienkode: 28h)
4.2.4.1. Funktionalität
4.2.4.2. Temperaturkodierung und Umrechnung
4.2.4.3. Konfiguration
4.2.4.4. Temperatur messen
4.2.4.5. Alarmfunktion
4.3. GPIO
4.3.1. Überblick
4.3.2. DS2406 (Familienkode: 12h)
4.3.2.1. Funktionalität
4.3.2.2. PIO Lesen
4.3.2.3. PIO Ansteuern
4.3.3. DS2413 (Familienkode: 3Ah)
4.3.3.1. Funktionalität
4.3.3.2. PIO Lesen
4.3.3.3. PIO Ansteuern
4.3.4. DS2408 (Familienkode: 29h)
4.3.4.1. Funktionalität
4.3.4.2. Daten aus dem DS2408 Lesen
4.3.4.3. Daten in der PIO schreiben
4.3.4.4. Activity Latches zurücksetzen
4.4. RTC/Timer
4.4.1. DS2417 (Familienkode: 27h)
4.4.2. DS1904 (Familienkode: 24h)
4.5. EEPROM
4.5.1. Überblick
4.5.2. DS2431 / DS28E07 (Familienkode: 2Dh)
4.5.2.1. Speicher-Organisation
4.5.2.2. Daten lesen
4.5.2.3. Daten schreiben
4.5.2. DS24B33 / DS1973 (Familienkode: 23h)
4.6. EPROM
4.6.1. Überblick
4.6.2. DS2502 / DS2502-Exx (Familienkode: 09h / 89h)
4.6.2.1. Speicherorganisation
4.6.2.2. Daten lesen
4.6.2.3. Daten schreiben
4.6.3. DS2505 (Familienkode: 0Bh)
Kapitel 5: OneWire Softwarebeispiele
5.1. Überblick: Was kann man damit tun?
5.2. Hardware des OneWire-DemoBoard2020
5.3. OneWire-DemoBoard2020: Hardware der Lite Version
5.4. OneWire-Shield für den Arduino UNO
5.5. Breakout Boards
5.6. Firmware des OneWire-DemoBoard2020
5.6.1. Einleitung
5.6.2. HW-Implementierung des OneWire Protokolls
5.6.2.1. OneWire Reset
5.6.2.2. OneWire Write
5.6.2.3. OneWire Write mit Strong Pull-Up
5.6.2.4. OneWire Write Bit
5.6.2.5. OneWire Read
5.6.3. Software-Implementierung des OneWire-Protokolls
5.6.3.1. Definitionen und Verzögerungsroutinen
5.6.3.2. OneWire Reset
5.6.3.3. OneWire Write Byte
5.6.3.4. OneWire SPU-Write
5.6.3.5. OneWire Write Bit
5.6.3.6. OneWire Read
5.6.4. Grundlagen und Implementierung des I2C Protokolls
5.6.4.1. Logische Ebene
5.6.4.2. Technische Grundlagen
5.7. OneWire Arduino Sketch
5.7.1. Einleitung
5.7.2. Initialisierung / Setup
5.7.3. OneWire Bibliothek
5.7.4. I2C-Bibliothek
5.7.5. Die Hauptschleife
5.8. DS2401 / DS2411 / DS1990A
5.8.1. Hardware
5.8.2. Bedienung mit DemoBoards
5.8.2.1. Übersicht
5.8.2.2. Chip Funktion 1
5.8.3. Software
5.8.3.1. ROM-ID auslesen
5.8.3.2. I2C-EEPROM auslesen
5.8.3.3. I2C-EEPROM beschreiben
5.9. Temperatursensoren
5.9.1. Hardware
5.9.2. Bedienung mit DemoBoard
5.9.2.1. Übersicht
5.9.2.2. Chip-Funktion 1
5.9.3. Software
5.9.3.1. Temperatur Auslesen
5.9.3.2. Temperatur Messen
5.10. GPIO - DS2406
5.10.1. Hardware
5.10.2. Bedienung mit DemoBoard
5.10.3. Software
5.10.3.1. GPIO lesen
5.10.3.2. GPIO schreiben - Option 1 (Byte)
5.10.3.3. GPIO schreiben - Option 2 (Bit)
5.11. GPIO - DS2408
5.11.1. Hardware
5.11.2. Bedienung mit dem DemoBoard
5.11.3. Software
5.11.3.1. Activity Latches zurücksetzen
5.11.3.2. GPIO lesen
5.11.3.3. Status Register lesen
5.11.3.4. Daten an GPIO schicken
5.12. GPIO - DS2413
5.12.1. Hardware
5.12.2. Bedienung mit dem DemoBoard
5.12.3. Software
5.12.3.1. GPIO lesen
5.12.3.2. GPIO ansteuern
5.13. RTC
5.13.1. Hardware
5.13.2. Bedienung mit den DemoBoards
5.13.3. Software
5.13.3.1. Chip Oszillator starten
5.13.3.2. Zählerinhalt auslesen
5.13.3.3. Zählerinhalt ändern
5.13.3.4. Die Zeitberechnung
5.14. EEPROM
5.14.1. Hardware
5.14.2. Bedienung mit den DemoBoards
5.14.2.1. Device-Funktion 1 - Daten auslesen
5.14.2.2. Device-Funktion 2 - Daten überschreiben
5.14.3. Software
5.14.3.1. EEPROM lesen
5.14.3.2. EEPROM beschreiben
5.14.3.3. Scratchpad beschreiben
5.14.3.4. Scratchpad auslesen
5.14.3.5. Scratchpad in den EEPROM-Bereich kopieren
5.15. EPROM (OTP)
5.15.1. Hardware
5.15.2. Bedienung mit den DemoBoards
5.15.3. Software
5.15.3.1. EPROM-Speicher lesen
5.15.3.2. Kommentar zum E48/E64
5.16. DS2413P als OneWire-zu-I2C-Brücke
5.16.1. Hardware
5.16.1.1. Die Brücke mit dem DS2413P
5.16.1.2. Hardware - LED-Board mit PCF8574N
5.16.1.3. Hardware - 7-Segment-Anzeige mit PCF8575C
5.16.2. Bedienung mit dem DemoBoard
5.16.3. Software
5.16.3.1. SCL und SDA mit DS2413P ansteuern
5.16.3.2. I2C-Initialisierung
5.16.3.3. Startbedingung
5.16.3.4. Stoppbedingung
5.16.3.5. Ein Byte über I2C verschicken
Kapitel 6: Praxisbeispiele
6.1. Elektronisches OneWire-Schloss
6.1.1. Die Schaltung
6.1.2. Die Bedienung
6.1.3. Die Firmware
6.1.3.1. I2C-Kommunikation mit EEPROM
6.1.3.2. OneWire-Kommunikation
6.1.3.3. Die endlose Hauptschleife
6.2. Temperatur messen
6.2.1. Thermometer mit einer 7-Segment-LED-Anzeige mit gemeinsamer Kathode
6.2.1.1. Die Schaltung
6.2.1.2. Die Firmware
6.2.2. Thermometer mit einer 7-Segment-LED-Anzeige mit gemeinsame Anode
6.2.2.1. Die Schaltung
6.2.2.2. Die Firmware
6.3. OneWire-Suche: Der Algorithmus
6.4. OneWire-Suche: Die Implementierung
6.4.1. OneWire-Triplet
6.4.2. Die Implementierung in Assembler
6.5. OneWire-Suche: Die Beispielschaltung
6.5.1. Version 1 - ROM-Code-Leser mit PIC16F1828
6.5.2. Version 2 - ROM-Code-Leser mit PIC18F13K22
6.5.3. Version 3 - ROM-Code-Suche mit PIC18F13K22
Kapitel 7: Anhang A - Maxim Evaluation Kits
7.1. Evaluation Kits
7.1.1. DS9090EVK
7.1.2. DS9092K
7.1.3. DS9481R-3C7
7.2. OneWireViewer
7.2.1. DS2401 - Maxim-Version
7.2.2. DS2433
7.2.3. DS2406
7.2.4. DS18B20
7.2.5. DS2417
7.2.6. DS2505
7.3. DS28E17K
7.3.1. DS28E17 (Familiencode: 19h)
7.3.1.1 Übersicht
7.3.1.2 Konfigurationsregister
7.3.1.3 Status Byte
7.3.1.4 Write Byte Status Byte
7.3.1.5 CRC16 Berechnung
7.3.1.6 Befehle
7.3.2. Thermometer DS7505
7.3.3. Demosoftware DS28E17 EV Kit
7.3.3.1. Beispiel mit DS7505
7.3.3.2. Beispiel mit PCF8574
7.3.3.3. Beispiel mit PCF8574 - Assembler-Routinen