Top

Advanced 1-Wire Network Driver

Reference Design Disclaimer See the  Important Notice and Disclaimer  covering reference designs and other Maxim resources.

Description

Introduction

To a large degree, the reliability of a 1-Wire network depends on the characteristics of the driver circuit that the host computer uses to communicate with 1-Wire slave devices. This document describes a 1-Wire master interface that uses careful impedance matching and an "intelligent" (software-controlled) strong pullup to accomplish reliable operation in networks from very lightweight to very heavy, up to 500m equivalent size. For guidelines on how to create reliable 1-Wire networks see tutorial 148, "Guidelines for Reliable Long Line 1-Wire Networks".

Circuit Description

The network driver (Figure 1) consists of a pulldown section (Q1, R1, C1, R5) and a pullup section (Q2, R2, C2, R6). A third transistor and surrounding components (Q3, C4, R7) form a strong pullup section to supply extra power for devices such as EEPROMs, or temperature sensors. This "strong-pullup" function is not discussed in this document. Of the three transistors, a maximum of one is conducting at any time. When there is no 1-Wire communication ("idle" state), all three transistors are nonconducting.

Figure 1. Driver schematic.

Figure 1. Driver schematic.

The series path of R4, R1, and R3 provides the standard 1-Wire pullup to VCC. With this circuit, the total pullup resistance is approximately 1kΩ. This value applies when the 1-Wire line is idle. Since R4 is connected to the drain of Q1, the current flowing through it when Q1 is conducting does not affect the lowlevel voltage on the 1-Wire line. R4 + R1 + R3 together with the load or "weight" of the 1-Wire network determine the speed at which the voltage on the 1-Wire rises to 5V. Lowering R4 is not recommended since it raises the low-level voltage on the 1-Wire, which is undesirable. The Schottky diodes D1 and D2 eliminate spikes from electrostatic discharge (ESD) hits or cross coupling from other cabling nearby by conducting them to GND and VCC, respectively. R3 limits the ESD current and protects D1 and D2.

A special characteristic of this driver is the proper line termination of the 1-Wire cable on the master end. The category 5 unshielded twisted-pair data cable, which is recommended for 1-Wire applications, has a characteristic impedance of approximately 100Ω. Line termination is accomplished through R1 or R2 in series with R3 when Q1 or Q2 is conducting. C3 in series with R1 and R3 provide an AC-coupled termination for presence pulses. To adapt this driver to a different impedance, R1 and R2 need to be changed accordingly.

All three sections of this driver are slew-rate controlled when the associated transistor is turned on. R5 and C1 limit the slew rate when the driver pulls the 1-Wire line low, e.g., at the beginning of a time slot or a reset pulse. R6 and C2 limit the slew rate when the dynamic pullup becomes active. R7 and C4 limit the slew rate of the active pullup. The time constant of all three sections is 0.5µs. This value results in a slew rate of approximately 4V/µs. For details and scope traces see the Performance Examples section.

Circuit Operation

Disregarding the strong pullup circuitry (Q3, R7, C4) the driver requires three connections to a supervising microcontroller. These signals are called DRIVE, DPU, and SENSE. DRIVE is an active-high signal that initiates 1-Wire communication by turning on Q1. DPU is an active-low signal that activates the dynamic pullup Q2. SENSE is essentially a through-connection from the 1-Wire line to an input port of the microcontroller. 1-Wire ground and driver/microcontroller GND are the same. To perform 1-Wire communication it is necessary to properly generate the DRIVE and DPU signals and to read from the 1-Wire line through the SENSE input at the appropriate times. 1-Wire communication knows four cases of waveforms; these are reset/presence-detect sequence, and the three cases of communication time slots.

Reset Presence and Detect

All 1-Wire communication begins with a reset pulse followed by a window for the presence pulse. Figure 2 shows the 1-Wire waveform. To generate the reset pulse, the DRIVE signal is activated for a duration from A to B (see Figure 2). Starting at A, the voltage on the 1-Wire ramps down to 0V. As DRIVE gets inactive at B, the voltage on the 1-Wire starts rising, unless a 1-Wire device pulls the line low to signal an interrupt condition (see DS1904 and DS2417 data sheets, Type 2 Interrupt). To properly accommodate this interrupt case, the status of the 1-Wire is sampled repeatedly starting at C until the 1-Wire has reached a logic high level at D. Shortly after D, the dynamic pullup DPU is activated (point E). This quickly pulls the 1-Wire line to 5V. At F the dynamic pullup ends. Assuming that a 1-Wire device is present, it generates a presence pulse, which begins at G and ends at I. At H, somewhere between G and I, the status on the 1-Wire is sampled to test whether a 1-Wire device is present. As the presence pulse ends, the voltage on the 1-Wire starts rising towards 5V. At J the logic status of the 1-Wire is sampled again to detect whether a Type 1A interrupt (see DS1904/DS2417 data sheets) is signaled. Without interrupt, the logic state is high, as shown in Figure 2, and the dynamic pullup is activated again from K to L, which ensures that the 1-Wire line is fully recharged. With interrupt signal, the status sensed at J is a logic zero and another series of repeated sampling, exactly like that at the end of the reset pulse is necessary (i.e., going back to C and continue sampling). The interrupt pulse is understood as a reset pulse by other 1-Wire devices. Therefore they generate a presence pulse as the response, except for the interrupting device (i. e., when J is reached in the second pass, the logic status of the 1-Wire is high, as shown in Figure 2. In any case, the reset/presence-detect sequence ends at M, where a time slot begins.

Figure 2. Reset and presence-detect sequence.

Figure 2. Reset and presence-detect sequence.

Table 1. Recommended Timing Values for Reset/Presence Detect Sequence
A to B B to C D to E E to F E to H H to J J to K K to L L to M
480µs 0 to 2µs 0 to 2µs 8µs 72µs 240µs 0 to 2µs 60µs > 2µs

The sampling point H must be chosen to hit the presence pulse window, which is determined by the timing spread between the fastest and the slowest 1-Wire device present. Data sheets specify this window as tMSP. The timing reference for tMSP begins when the 1-Wire device detects logic-HIGH level after the reset pulse is over. In Figure 2 this reference point approximately coincides with E. The duration from A to C is equivalent to the sum of tF (fall time) and tRSTL (reset low time). In case of a Type 2 interrupt, the effective reset low time is the sum of A to B and the duration of the interrupt pulse (see DS1904 and DS2417 data sheets). The time from E to M is called reset high time tRSTH. Data sheets specify tRSTL and indicate how to determine the minimum duration of tRSTH. There is no maximum for tRSTH.

Communication Time Slots

Write Zero Time Slot

The write zero time slot transmits a 0-bit on the 1-Wire line. Figure 3 shows the 1-Wire waveform. To generate the write zero time slot, the DRIVE signal is activated for a duration from A to B0. Starting at A, the voltage on the 1-Wire ramps down to 0V. As DRIVE becomes inactive at B0, the voltage on the 1-Wire line starts rising. Shortly after B0, the dynamic pullup DPU is activated (point C0). This quickly pulls the 1-Wire line to 5V. At D0 the dynamic pullup ends. The next time slot or a reset/presence-detect sequence may follow at E0.

Figure 3. Write zero time slot.

Figure 3. Write zero time slot.

A write zero time slot does not require sampling the data line. Therefore Figure 3 does not show any sampling point. However, it is definitely permissible to sample the 1-Wire line at the same point in time as with a read time slot (Figure 4 or 5). The sampled logic state is always 0, indicating that the circuit actually writes a 0 to the 1-Wire line. The duration from A to C0 is equivalent to the sum of tF (fall time) and tW0L (write zero low time). The time from C0 to E0 is called recovery time tREC. Data sheets specify tW0L and a minimum value for tREC. The time from A to E0 is also referred to as time slot duration tSLOT.

Table 2. Recommended Timing Values for Write Zero Time Slot
A to B0 B0 to C0 C0 to D0 A to E0
60µs 2µs 16µs 80µs
Write One/Read Time Slot (Read One)

The write one time slot transmits a 1-bit on the 1-Wire line. Figure 4 shows the 1-Wire waveform. Reading a 1-bit from the 1-Wire line results in exactly the same waveform as writing a 1-bit. Therefore, the write one and read one case are combined and discussed as a single case. To generate the write one or read time slot, the DRIVE signal is activated for a duration from A to BR. Starting at A, the voltage on the 1-Wire ramps down to 0V. As DRIVE becomes inactive at BR, in the case of reading or writing a 1-bit, the voltage on the 1-Wire line starts rising. At CR the status on the 1-Wire is sampled. Since the bit read is a 1, the dynamic pullup is activated immediately, lasting from D1 to E1. This quickly pulls the 1-Wire line to 5V. The next time slot or a reset/presence-detect sequence may begin at F1.

Figure 4. Write one/read time slot (read one).

The sampling point CR must be chosen to hit the master sampling window, which is determined by the timing of the fastest 1-Wire device. In data sheets this window is called tMSR. The timing reference for tMSR begins when the 1-Wire device detects a logic LOW-level after the beginning of the time slot. In Figure 4 this reference point is approximately A plus fall time tF. The duration from A to BR is equivalent to the sum of tF (fall time) and tRL (read low time). Data sheets specify tRL (equal to tW1L) and tMSR. The time from A to F1 is also referred to as time slot duration tSLOT.

Table 3. Recommended Timing Values for Write One/Read Time Slot (Read One)
A to BR A to CR CR to D1 D1 to E1 A to F1
9µs 18µs 0 to 2µs 60µs 80µs
Read Time Slot (Read Zero)

The read zero time slot is a read time slot that reads a 0-bit from the 1-Wire line. Figure 5 shows the 1-Wire waveform. To generate the read time slot, the DRIVE signal is activated for a duration from A to BR. Starting at A, the voltage on the 1-Wire ramps down to 0V. To send a 0-bit, a 1-Wire device starts pulling the 1-Wire line low after A but before BR. The voltage on the 1-Wire line, therefore, is first driven low by the 1-Wire master and then remains held at a logic low by one or more 1-Wire devices. When BR has occurred, the master pulldown is turned off. At CR the status on the 1-Wire is sampled. Since the bit read is a 0, the 1-Wire is sampled repeatedly. At D0 the 1-Wire device stops pulling the line low, which allows the voltage to rise. A subsequent sampling at E0 determines that the line has reached a logic-high level. Now the dynamic pullup is activated, lasting from F0 to G0. This quickly pulls the 1-Wire line to 5V. The next time slot or a reset/presence-detect sequence may begin at H0.

Figure 5. Read time slot (read zero).

Figure 5. Read time slot (read zero).

The sampling point CR is the same as with the write one/read time slot. The distance between the subsequent sampling points should be as short as the microcontroller and software allow. The time from A to H0 is also referred to as time slot duration tSLOT.

Table 4. Recommended Timing Values for Read Time Slot (Read Zero)
A to BR A to CR E0 to F0 CR to G0 A to H0
9µs 18µs 0 to 2µs 60µs 82µs

Practical Considerations

The structure of the signals that control the advanced 1-Wire network driver is relatively complex. The algorithms, however, are straightforward. For this reason, this driver is typically implemented in software, using a microcontroller that is fast enough to generate the signals in real-time. The flow charts given below assist in implementing the advanced driver using any suitable microcontroller that the user is familiar with. The execution time of every command at the user-specified crystal frequency must be taken into account to generate the proper timing.

Software Flow Charts

Figure 6

Note 1: Decrementing is necessary only if the timer is implemented as a counter rather than a real timer. The timer should expire after 5000µs.

Note 2: Presence and Short are logical variables that report to the superordinated program the result of the reset/presence-detect sequence. Interrupt is not reported as a variable since there is only one 1-Wire chip that can generate interrupts (DS1904 and DS2417) and the use of interrupts can considerably reduce the effective speed of a 1-Wire network.

Figure 7

This flow chart assumes that there is a logical input variable that controls whether to generate a write zero or read time slot. The write one time slot is the same as a read time slot. The bit variable BitValue reports the result of the time slot to the superordinated program.

Note 1: Decrementing is necessary only if the timer is implemented as a counter rather than a real timer. The timer should expire after 45µs.

Note 2: According to the flow chart, DPU is repeatedly activated before the timer expires. This is acceptable since activating a signal that is already active does not change the state of that signal. If desired, one can test whether DPU is already active, and if so, not activate it again while performing the loop.

Performance Examples

The scope traces on the next page show 1-Wire signals generated by the driver as described in this document. When verifying the signals, especially at the far end of a cable, it is necessary to use a differential probe, leaving the probe's ground reference floating. Otherwise the probe's ground connection would bypass the 1-Wire ground reference and change the topology of the system. If a differential probe is not available, one must isolate the oscilloscope-ground from mains-ground through a transformer or use a battery-operated oscilloscope. Alternatively one could disconnect the safety ground of the oscilloscope's power-supply cable.

Scope Traces

Reset/Presence Detect Sequence (as in Figure 2).

Write Zero Time Slot (as in Figure 3).

Write Zero Time Slot (as in Figure 3).

Write One/Read One Time Slot (as in Figure 4).

Read Zero Time Slot (as in Figure 5).

Read Zero Time Slot (as in Figure 5).

Falling edge at the far end of a 300m cable.

Falling edge at the far end of a 300m cable.

Same edge seen at the near end of the 300m cable.

Same edge seen at the near end of the 300m cable.

Note: A product similar to the Advanced 1-Wire Line Driver is manufactured by Southwind Enterprises. See http://ibuttonlink.com/ for technical details and ordering information.

Icon

Designed, Built, Tested

Board pictured here has been fully assembled and tested. Not available for sale.

 

Maxim Devices (39)

Part Number Name Product Family Order Design kits and evaluation modules
DS2404 EconoRAM Time Chip Archive Buy Now Not Available
DS1920 Temperature iButton iButton Buy Now Not Available
DS1990A iButton Serial Number Memory Buy Now Not Available
DS18B20-PAR 1-Wire Parasite-Power Digital Thermometer Sensors Buy Now Not Available
DS18B20 Programmable Resolution 1-Wire Digital Thermometer Sensors Buy Now Design Kits
DS1982 iButton 1Kb Add-Only Memory Buy Now Not Available
DS1995 iButton 16Kb Memory Memory Buy Now Not Available
DS2406 Dual Addressable Switch Plus 1Kb Memory Memory Buy Now Design Kits
DS1921Z High-Resolution Thermochron iButton Devices Data Loggers Buy Now Design Kits
DS1982U UniqueWare iButton Device Memory Buy Now Not Available
DS1973 iButton 4Kb EEPROM Memory Buy Now Not Available
DS1993 iButton 1Kb/4Kb Memory Memory Buy Now Not Available
DS2405 Addressable Switch Controllers/Expanders Buy Now Not Available
DS2502 1Kb Add-Only Memory Memory Buy Now Design Kits
DS2505 16Kb Add-Only Memory Memory Buy Now Design Kits
DS18S20-PAR Parasite-Power Digital Thermometer Sensors Buy Now Not Available
DS18S20 1-Wire Parasite-Power Digital Thermometer Sensors Buy Now Not Available
DS2433 4Kb 1-Wire EEPROM Memory Buy Now Not Available
DS1904 iButton RTC Real-Time Clock IC - RTC Buy Now Not Available
DS1971 iButton 256-Bit EEPROM Memory Buy Now Not Available
DS1963S iButton Monetary Device with SHA-1 Function Memory Buy Now Not Available
DS1921H High-Resolution Thermochron iButton Devices Data Loggers Buy Now Design Kits
DS1822 Econo 1-Wire Digital Thermometer Sensors Buy Now Not Available
DS2415 1-Wire Time Chip Archive Buy Now Not Available
DS2432 1Kb Protected 1-Wire EEPROM with SHA-1 Engine Memory Buy Now Not Available
DS1986 iButton 64Kb Add-Only iButton Buy Now Not Available
DS2401 Silicon Serial Number Memory Buy Now Design Kits
DS1992 iButton 1Kb/4Kb Memory Memory Buy Now Not Available
DS1994 iButton 4Kb Memory Plus Time iButton Buy Now Not Available
DS1921G Thermochron iButton Device Data Loggers Buy Now Design Kits
DS1985 iButton 16Kb Add-Only Memory Buy Now Not Available
MAX31826 1-Wire Digital Temperature Sensor with 1Kb Lockable EEPROM Sensors Buy Now Design Kits
DS2417 1-Wire Time Chip With Interrupt Real-Time Clock IC - RTC Buy Now Not Available
DS2450 1-Wire Quad A/D Converter Analog-to-Digital Converters Buy Now Not Available
DS1961S iButton 1Kb EEPROM with SHA-1 Engine Memory Buy Now Not Available
DS1996 iButton 64Kb Memory Memory Buy Now Not Available
DS2506 64Kb Add-Only Memory Memory Buy Now Not Available
MAX31820 1-Wire Ambient Temperature Sensor Sensors Buy Now Not Available
MAX31820PAR 1-Wire Parasite-Power, Ambient Temperature Sensor Sensors Buy Now Not Available

Maxim Devices (39)

Part Number Product Family
Archive
EconoRAM Time Chip
Not Available
iButton
Temperature iButton
Not Available
Memory
iButton Serial Number
Not Available
Sensors
1-Wire Parasite-Power Digital Thermometer
Not Available
Sensors
Programmable Resolution 1-Wire Digital Thermometer
Memory
iButton 1Kb Add-Only
Not Available
Memory
iButton 16Kb Memory
Not Available
Memory
Dual Addressable Switch Plus 1Kb Memory
Data Loggers
High-Resolution Thermochron iButton Devices
Memory
UniqueWare iButton Device
Not Available
Memory
iButton 4Kb EEPROM
Not Available
Memory
iButton 1Kb/4Kb Memory
Not Available
Controllers/Expanders
Addressable Switch
Not Available
Memory
1Kb Add-Only Memory
Memory
16Kb Add-Only Memory
Sensors
Parasite-Power Digital Thermometer
Not Available
Sensors
1-Wire Parasite-Power Digital Thermometer
Not Available
Memory
4Kb 1-Wire EEPROM
Not Available
Real-Time Clock IC - RTC
iButton RTC
Not Available
Memory
iButton 256-Bit EEPROM
Not Available
Memory
iButton Monetary Device with SHA-1 Function
Not Available
Data Loggers
High-Resolution Thermochron iButton Devices
Sensors
Econo 1-Wire Digital Thermometer
Not Available
Archive
1-Wire Time Chip
Not Available
Memory
1Kb Protected 1-Wire EEPROM with SHA-1 Engine
Not Available
iButton
iButton 64Kb Add-Only
Not Available
Memory
Silicon Serial Number
Memory
iButton 1Kb/4Kb Memory
Not Available
iButton
iButton 4Kb Memory Plus Time
Not Available
Data Loggers
Thermochron iButton Device
Memory
iButton 16Kb Add-Only
Not Available
Sensors
1-Wire Digital Temperature Sensor with 1Kb Lockable EEPROM
Real-Time Clock IC - RTC
1-Wire Time Chip With Interrupt
Not Available
Analog-to-Digital Converters
1-Wire Quad A/D Converter
Not Available
Memory
iButton 1Kb EEPROM with SHA-1 Engine
Not Available
Memory
iButton 64Kb Memory
Not Available
Memory
64Kb Add-Only Memory
Not Available
Sensors
1-Wire Ambient Temperature Sensor
Not Available
Sensors
1-Wire Parasite-Power, Ambient Temperature Sensor
Not Available

Related Videos

View All Videos