DS1WM Synthesizable 1-Wire Bus Master www.maxim-ic.com FEATURES § § § § § § § § § Memory maps into any standard byte-wide data bus. Eliminates CPU “bit-banging” by internally generating all 1-Wire® timing and control signals. Generates interrupts to provide for more efficient programming. Search ROM Accelerator relieves CPU from any single bit operations on the 1-Wire Bus. Supports Overdrive mode and slave interrupts. Capable of running off any system clock from 3.2MHz to 128MHz. Small size: all digital design, only 1500 gates. Available in both Verilog and VHDL. Applications include any circuit containing a 1-Wire communication bus. Customer ASIC Internal Data Bus 1-Wire Master 1-Wire Bus Interrupt DESCRIPTION As more 1-Wire devices become available, more and more users have to deal with the demands of generating 1-Wire signals to communicate to them. This usually requires “bit-banging” a port pin on a microprocessor, and having the microprocessor perform the timing functions required for the 1-Wire protocol. While 1-Wire transmission can be interrupted mid-byte, it cannot be interrupted during the “low” time of a bit time slot; this means that a CPU will be idled for up to 60 microseconds for each bit sent and at least 480 microseconds when generating a 1-Wire reset. The 1-Wire Master helps users handle communication to 1-Wire devices in their system without tying up valuable CPU cycles. Integrated into a user’s ASIC as a 1-Wire port, the core is available in both VHDL and Verilog code and uses very little chip area (1492 gates plus 1 bond pad for the Verilog version). This circuit is designed to be memory mapped into the user’s system and provides complete control of the 1-Wire bus through 8 bit commands. The host CPU loads commands, reads and writes data, and sets interrupt control through five individual registers. All of the timing and control of the 1-Wire bus are generated within. The host merely needs to load a command or data and then may go on about its business. When bus activity has generated a response that the CPU needs to receive, the 1-Wire Master sets a status bit and, if enabled, generates an interrupt to the CPU. In addition to write and read simplification, the 1-Wire Master also provides a Search ROM Accelerator function relieving the CPU from having to perform any single-bit operations on the 1-Wire bus. 1-Wire is a registered trademark of Dallas Semiconductor. 1 of 15 031902 DS1WM The operation of the 1-Wire bus is described in detail in the Book of iButton Standards [1]; therefore, the details of that will not be discussed in this document. Each slave device, in general, has its own set of commands that are described in detail in that device’s data sheet. The user is referred to those documents for detail on specific slave implementations. BLOCK DIAGRAM INTR INTERRUPT REGISTER D0-D7 DATA BUS BUFFER COMMAND REGISTER A0 A1 A2 INT ENABLE REGISTER CONTROL LOGIC ADS TRANSMIT BUFFER Tx SHIFT REGISTER RD WR Rx SHIFT REGISTER EN RECEIVE BUFFER MR INTERRUPT CONTROL LOGIC MASTER RESET CLOCK DIV REGISTER CLOCK DIVIDER CLK 2 of 15 1-WIRE TIMING AND CONTROL DQ DS1WM PIN DESCRIPTIONS The following describes the function of all the block I/O pins. In the following descriptions, 0 represents logic low and 1 represents logic high. A0, A1, A2, Register Select: Address signals connected to these three inputs select a register for the CPU to read from or write to during data transfer. A table of registers and their addresses is shown below. Register Addresses A2 0 0 0 0 1 A1 0 0 1 1 0 A0 0 1 0 1 0 Register Command Register (read/write) Transmit Buffer (write), Receive Buffer (read) Interrupt Register (read) Interrupt Enable Register (read/write) Clock Divisor Register (read/write) ADS , Address Strobe: The positive edge of an active Address Strobe ( ADS ) signal latches the Register Select (A0, A1, A2) into an internal latch. Provided that setup and hold timings are observed, ADS may be tied low making the latch transparent. CLK, Clock Input: This is a (preferably) 50% duty cycle clock that can range from 3.2MHz to 128MHz. This clock provides the timing for the 1-Wire bus. D7-D0, Data Bus: This bus comprises eight input/output lines. The bus provides bi-directional communications between the 1-Wire Master and the CPU. Data, control words, and status information are transferred via this D7-D0 Data Bus. DQ, 1-Wire Data Line: This open-drain line is the 1-Wire bi-directional data bus. 1-Wire slave devices are connected to this pin. This pin must be pulled high by an external resistor, nominally 5KW. EN , Enable: When EN is low, the 1-Wire Master is enabled; this signal acts as the device chip enable. This enables communication between the 1-Wire Master and the CPU. INTR, Interrupt: This line goes to its active state whenever any one of the interrupt types has an active high condition and is enabled via the Interrupt Enable Register. The INTR signal is reset to an inactive state when the Interrupt Register is read. MR, Master Reset: When this input is high, it clears all the registers and the control logic of the 1-Wire Master, and sets INTR to its default inactive state, which is HIGH. RD , Read: This pin drives the bus during a read cycle. When the circuit is enabled, the CPU can read status information or data from the selected register by driving RD low. RD and WR should never be low simultaneously; if they are, WR takes precedence. WR , Write: This pin drives the bus during a write cycle. When WR is low while the circuit is enabled, the CPU can write control words or data into the selected register. RD and WR should never be low simultaneously; if they are, WR takes precedence. 3 of 15 DS1WM OPERATION – CLOCK DIVISOR All 1-Wire timing patterns are generated using a base clock of 1.0MHz. The 1-Wire Master will generate this clock frequency internally given an external reference on the CLK pin. The external clock must have a frequency from 3.2MHz to 128MHz and a 50% duty cycle is preferred. The Clock Divisor Register controls the internal clock divider and provides the desired reference frequency. This is done in two stages: first a prescaler divides by 1, 3, 5, or 7, then the remaining circuitry divides by 2, 4, 8, 16, 32, 64,or 128. Clock Divisor Register Addr. 04h X X X DIV2 DIV1 DIV0 PRE1 MSB PRE0 LSB The clock divisor must be configured before communication on the 1-Wire bus can take place. This register is set to 0x00h if a Master Reset occurs. Use the table below to find the proper register value based on the CLK reference frequency. For example, the user would write 0x10h to this location when providing a 15MHz input clock. Clock Divisor Register Settings for Input Clock Rates Min CLK Frequency (MHz) >3.2 >4.0 >5.0 >6.0 >7.0 >8.0 >10.0 >12.0 >14.0 >16.0 >20.0 >24.0 >28.0 >32.0 >40.0 >48.0 >56.0 >64.0 >80.0 >96.0 >112.0 Max CLK Frequency (MHz) 4.0 5.0 6.0 7.0 8.0 10.0 12.0 14.0 16.0 20.0 24.0 28.0 32.0 40.0 48.0 56.0 64.0 80.0 96.0 112.0 128.0 Divider Ratio 4 5 6 7 8 10 12 14 16 20 24 28 32 40 48 56 64 80 96 112 128 DIV3 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 0 1 1 1 1 1 4 of 15 DIV2 1 0 0 0 1 0 1 0 0 1 1 1 0 1 0 1 1 0 0 0 1 DIV1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 PRE1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 PRE0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 DS1WM OPERATION — TRANSMITTING / RECEIVING DATA Data sent and received from the 1-Wire Master passes through the transmit/receive buffer location. The 1Wire Master is actually double buffered with separate transmit and receive buffers. Writing to this location connects the Transmit Buffer to the data bus, while reading connects the Receive Buffer to the data bus. Transmit Buffer (Write) / Receive Buffer (Read) Addr. 01h Data7 Data6 Data5 Data4 MSB Data3 Data2 Data1 Data0 LSB Writing a Byte To send a byte on the 1-Wire bus, the user writes the desired data to the Transmit Buffer. The data is then moved to the Transmit Shift Register where it is shifted serially onto the bus LSB first. A new byte of data can then be written to the Transmit Buffer. As soon as the Transmit Shift Register is empty, the data will be transferred from the Transmit Buffer and the process repeats. Each of these registers has a flag that may be used as an interrupt source. The Transmit Buffer Empty (TBE) flag is set when the Transmit Buffer is empty and ready to accept a new byte. As soon as a byte is written into the Transmit Buffer, TBE is cleared. The Transmit Shift Register Empty (TEMT) flag is set when the shift register has no data in it and is ready to accept a new byte. As soon as a byte of data is transferred from the Transmit Buffer, TEMT is cleared and TBE is set. Remember that proper 1-Wire protocol requires a reset before any bus communication. Reading a byte To read data from a slave device, the device must first be ready to transmit data depending on commands already received from the CPU. Data is retrieved from the bus in a similar fashion to a write operation. The host initiates a read by writing to the Transmit Buffer. The data that is then shifted into the Receive Shift Register is the wired-AND of the written data and the data from the slave device. Therefore, in order to read a byte from a slave device the host must write 0xFFh. When the Receive Shift Register is full the data is transferred to the Receive Buffer where it can be accessed by the host. Additional bytes can now be read by sending 0xFFh again. If the slave device is not ready to transmit, the data received will be identical to that which was transmitted. The Receive Buffer Register can also generate interrupts. The Receive Buffer flag (RBF) is set when data is transferred from the Receive Shift Register and cleared when the host reads the register. If RBF is set, no further transmissions should be made on the 1-Wire bus or else data may be lost, as the byte in the Receive Buffer will be overwritten by the next received byte. See the timing diagrams for details of the byte reception operation. Generating a 1-Wire reset on the bus is covered under Command Operations. Interrupt flags are explained in further detail under Interrupt Operations. Write and read operations are detailed in the timing diagrams. 5 of 15 DS1WM OPERATION — COMMANDS The Command Register determines the DS1WM’s mode of operation and also handles special transmissions over the bus. From this register the DS1WM can be selected to run in Overdrive mode, Search ROM Accelerator mode, or standard mode. This register also controls bus resets, 1-Wire Master resets, and direct reading and writing of the bus. Command Register (Read/Write) Addr. 00h OD X RST X MSB DQI DQO SRA 1WR LSB OD: Overdrive Bit. This bit selects the communication rate on the 1-Wire bus. Setting this bit to 1 will allow high-speed communication if all slave devices on the bus support overdrive mode. This bit must be set to 0 for standard 1-wire communication. RST: Software Reset. Setting this bit will immediately stop any communication and reset all internal state machines controlling communication. This command does not reset data in the registers. All register data will be maintained, however the Interrupt Register may change to reflect the new state of the 1-Wire Master. This bit must be 0 for normal operation. DQO: DQ Output. This bit can be used to bypass 1-Wire Master operations and drive the bus directly if needed. Setting this bit high will drive the bus low until it is cleared or the 1-Wire Master resets. While the 1-Wire bus is held low no other 1-Wire Master operations will function. By controlling the length of time this bit is set and the point when the line is sampled, see DQI below, any 1-Wire communication can be generated by the host controller. To prevent accidental writes to the bus, the DQOE bit in the Interrupt Enable Register must be set to a 1 before the DQO bit will function. This bit is cleared to a 0 on power-up or Master Reset. DQI: DQ Input. This bit is read only and reflects the present state of the 1-Wire bus. It should be used together with the DQO bit when controlling the bus directly. The state of this bit does not affect any other functions of the 1-Wire Master. Operation of this bit is unaffected by the state of DQOE. 1WR: 1-Wire Reset. If this bit is set a reset will be generated on the 1-Wire bus. Setting this bit automatically clears the SRA bit. The 1WR bit will be automatically cleared as soon as the 1-Wire reset completes. The 1-Wire Master will set the Presence Detect interrupt flag (PD) when the reset is complete and sufficient time for a presence detect to occur has passed. The result of the presence detect will be placed in the Interrupt Register bit PDR. If a presence detect pulse was received PDR will be cleared, otherwise it will be set. SRA: Search ROM Accelerator. When this bit is set, the 1-Wire Master will switch to Search ROM Accelerator mode. This mode presupposes that a Reset followed by the Search ROM command (0xF0h) has already been issued on the 1-Wire bus. For details on how the Search ROM is actually done in the 1Wire system, please see [1]. Simply put, the algorithm specifies that the bus master reads two bits (a bit and its complement), then writes a bit to specify which devices should remain on the bus for further processing. After the 1-Wire Master is placed in Search ROM Accelerator mode, the CPU must send 16 bytes to complete a single Search ROM pass on the 1-Wire bus. These bytes are constructed as follows: 6 of 15 DS1WM first byte 7 6 5 4 3 2 1 0 r3 x3 et cetera r2 x2 r1 x1 r0 x0 16th byte 7 6 5 4 3 2 1 0 r63 x63 r62 x62 r61 x61 r60 x60 In this scheme, the index (values from 0 to 63, “n”) designates the position of the bit in the ROM ID of a 1-Wire device. The character “x” marks bits that act as a filler and do not require a specific value (don’t care bits). The character “r” specifies the selected bit value to write at that particular bit in case of a conflict during the execution of the ROM search. For each bit position n (values from 0 to 63) the 1-Wire Master will generate three time slots on the 1Wire bus. These are referenced as: b0 b1 b2 for the first time slot (read data) for the second time slot (read data) and for the third time slot (write data). The 1-Wire Master determines the type of time slot b2 (write 1 or write 0) as follows: b2 = rn if conflict (as chosen by the host) = b0 if no conflict (there is no alternative) = 1 if error (there is no response) The response bytes that will be in the Data Register for the CPU to read during a complete pass through a Search ROM function using the Search Accelerator consists of 16 bytes as follows: first byte 7 6 r’3 d3 et cetera 5 4 3 2 1 0 r’2 d2 r’1 d1 r’0 d0 16th byte 7 6 5 4 3 2 1 0 r’63 d63 r’62 d62 r’61 d61 r’60 d60 As before, the index designates the position of the bit in the ROM ID of a 1-Wire device. The character “d” marks the discrepancy flag in that particular bit position. The discrepancy flag will be 1 if there is a conflict or no response in that particular bit position and 0 otherwise. The character “r’” marks the actually chosen path at that particular bit position. The chosen path is identical to b2 for the particular bit position of the ROM ID. To perform a Search ROM sequence one starts with all bits rn being 0s. In case of a bus error, all subsequent response bits r’n are 1’s until the Search Accelerator is deactivated by writing 0 to bit 1 of the Command Register. Thus, if r’63 and d63 are both 1, an error has occurred during the search procedure and 7 of 15 DS1WM the last sequence has to be repeated. Otherwise r’n (n=0…63) is the ROM code of the device that has been found and addressed. When the Search ROM process is complete the SRA bit should be cleared in order to release the 1-Wire Master from Search ROM Accelerator Mode. For the next Search ROM sequence one re-uses the previous set rn (n=0…63) but sets rm to 1 with “m” being the index number of the highest discrepancy flag that is 1 and sets all ri to 0 with i>m. This process is repeated until the highest discrepancy occurs in the same bit position for two consecutive passes. EXAMPLE — ACCELERATED ROM SEARCH In this example, the host will use the 1-Wire Master to identify four different devices on the 1-Wire bus. The ROM data of the devices is as shown (LSB first): ROM1 = 00110101… ROM2 = 10101010… ROM3 = 11110101… ROM4 = 00010001… 1) The host issues a reset pulse by writing 0x01h to the Command Register. All slave devices respond simultaneously with a presence detect. 2) The host issues a Search ROM command by writing 0xF0h to the Transmit Buffer. 3) The host places the 1-Wire Master in Accelerator mode by writing 0x02 to the Command Register. 4) The host writes 0x00h to Transmit Buffer and reads the returning data from the Receive Buffer. This process is repeated for a total of 16 bytes. The data read will contain ROM4 in the r’ locations and discrepancy bits set at d0 and d2 as shown (r’ locations are underlined, most significant discrepancy is bolded ): RECEIVED DATA 1 = 1000100100000001…. 5) The host then de-interleaves the data to arrive at a ROM code of 00010001… with the last discrepancy at location d2. 6) The host writes 0x00h to the Command Register to exit Search Accelerator mode. The host is now free to send a command or read data directly from this device. 7) Steps 1-6 are now repeated to find the next device. The 16 bytes of data transmitted this time are identical to ROM4 up until the last discrepancy bit (d2 in this case) which is inverted and all data following is set to 0 as shown. The received data will contain ROM1 in the r’ locations and bits d0 and d2 will be set again: TRANSMITTED DATA 2 = 0000010000000000… RECEIVED DATA 2 = 1000110100010001… 8) Since the most significant discrepancy (d2) did not change, the next most (d0) will be used and the process repeats. Further iterations contain the data as shown: TRANSMITTED DATA 3 = RECEIVED DATA 3 = TRANSMITTED DATA 4 = RECEIVED DATA 4 = 0100000000000000… 1110010001000100… 0101000000000000… 1111010100010001… 8 of 15 DS1WM 9) At this point, the most significant discrepancy (d1) did not change so the next most (d0) should be used. However, d0 has now been reached for the second time and since there are no less significant discrepancies, the search is complete having found a total of four devices. OPERATION — FLAGS AND INTERRUPTS Flags from transmit, receive, and 1-Wire reset operations are located in the Interrupt Register. Only the Presence Detect flag (PD) is cleared when the Interrupt Register is read, the other flags are cleared automatically when written to or read from the transmit and receive buffers. These flags can generate an interrupt on the INTR pin if the corresponding enable bit is set in the Interrupt Enable Register. Reading the Interrupt Register always sets the INTR pin inactive even if all flags are not cleared. Interrupt Register (Read-Only) Addr. 02h DQI NBSY SINT RBF MSB TEMT TBE PDR PD LSB PD: Presence Detect. After a 1-Wire Reset has been issued, this flag will be set after the appropriate amount of time for a presence detect pulse to have occurred. The default state for this bit is 0. This bit is cleared when the Interrupt Register is read. PDR: Presence Detect Result. When a Presence Detect interrupt occurs, this bit will reflect the result of the presence detect read; it will be 0 if a slave device was found, or 1 if no parts were found. The default state for this bit is 1. TBE: Transmit Buffer Empty. This flag will be cleared when data is written to the Transmit Buffer and cleared when that data is transferred to the Transmit Shift Register. The default state for this bit is 1. TEMT: Transmit Shift Register Empty. This flag will be cleared when data is shifted into the Transmit Shift Register from the Transmit Buffer and set after the last bit has been transmitted on the 1-Wire bus. The default state for this bit is 1. RBF: Receive Buffer Full. This flag will be set when there is a byte waiting to be read in the Receive Buffer. This flag will be cleared when the byte is read from the Receive Buffer Register. The default state for this bit is 0. SINT: Slave Interrupt. This flag is set when the 1-Wire bus is held low by a slave device for a period of greater than 960us. This bit is cleared when the register is read. The default state for this bit is 0. NBSY: Not Busy. The default state for this bit is 1 indicating that no operation is currently taking place inside the 1-Wire Master. It is cleared whenever a read, write, reset, or slave interrupt takes place. When the operation ends this flag returns to a 1 state. DQI: DQ Input. This bit is a mirror of bit 3 in the Command Register. This allows the entire status of the master and the bus to be determined by reading only the Interrupt Register. This bit does not have a corresponding enable bit in the Interrupt Enable Register. The Interrupt Enable Register allows the system programmer to specify the source of interrupts, which will cause the INTR pin to be active, and to define the active state for the INTR pin. When a Master Reset is received all bits in this register are cleared to 0 disabling all interrupt sources and setting the active state of the INTR pin to LOW. This means the INTR pin will be pulled high since all interrupts are disabled. The INTR pin is reset to an inactive state by reading the Interrupt Register. 9 of 15 DS1WM Interrupt Enable Register (Read / Write) Addr. 03h DQOE ENBSY ESINT ERBF MSB ETMT ETBE IAS EPD LSB EPD: Enable Presence Detect Interrupt. If this bit is a 1, and the Presence Detect flag is set, then the INTR pin will become active whenever a 1-Wire Reset is sent and an appropriate amount of time has passed for a presence detect pulse to have occurred. IAS: INTR Active State. This bit determines the active state for the INTR pin. If this bit is a 1, the INTR pin is active high; if it is a 0, the INTR pin is active low. EBTE: Enable Transmit Buffer Empty Interrupt. If this bit is a 1, and the Transmit Buffer Empty flag is set, then the INTR pin will become active. ETMT: Enable Transmit Shift Register Empty Interrupt. If this bit is a 1, and the Transmit Shift Register Empty flag is set, then the INTR pin will become active. ERBF: Enable Receive Buffer Full Interrupt. If this bit is a 1, and the Receive Buffer Full flag is set, then the INTR pin will become active. ESINT: Enable Slave Interrupt. If this bit is a 1, and the Slave Interrupt flag is set, then the INTR pin will become active. ENBSY: Enable Not Busy Interrupt. If this bit is a 1, and the Not Busy flag is set, then the INTR pin will become active. DQOE: DQ Output Enable. This bit acts as a control select for the DQ bus. When set to 0 (default), the bus is controlled by the 1-Wire Master as normal. When set to 1, the DQ0 bit located in the Command Register controls the state of the bus directly. This bit defaults to 0 on power-up or reset and should be left 0 unless the user desires to control the bus manually through the DQ0 bit. 10 of 15 DS1WM I/0 SIGNALING The 1-Wire bus requires strict signaling protocols to insure data integrity. The four protocols used by the 1-Wire Master are the initialization sequence (Reset Pulse followed by Presence Pulse), Write 0, Write 1, and Read Data. The master initiates all of these types of signaling except the Presence Pulse. The initialization sequence required to begin any communication with the bus slave is shown in Figure 1. A Presence Pulse following a Reset Pulse indicates the slave is ready to accept a ROM Command. The 1-Wire Master transmits a reset pulse for tRSTL. The 1-Wire bus line is then pulled high by the pullup resistor. After detecting the rising edge on the DQ pin, the slave waits for tPDH and then transmits the Presence Pulse for tPDL. The master samples the bus at tPDS after the slave responds to test for a valid presence pulse. The result of this sample is stored in the PDR bit of the Interrupt Register. The reset time slot ends tRSTH after the master releases the bus. 1-WIRE INITIALIZATION SEQUENCE (RESET PULSE AND PRESENCE PULSE) Figure 1 tRSTL tRSTH tPDH tPDL VCC DQ GND tPDS LINE TYPE LEGEND: 1-Wire Master active low Slave device active low Both Master and Slave device active low Resistor pullup WRITE TIME SLOTS A write time slot is initiated when the 1-Wire Master pulls the 1-Wire bus line from a logic high (inactive) level to a logic low level. The master generates a Write 1 time slot by releasing the line at tLOW1 and allowing the line to pull up to a logic high level. The line is held low for tLOW0 to generate a Write 0 time slot. A slave device will sample the 1-Wire bus line between 15µs and 60ms (between 2µs and 6ms in Overdrive mode) after the line falls. If the line is high when sampled, a Write 1 occurs. If the line is low when sampled, a Write 0 occurs (see Figure 2). READ TIME SLOTS A read time slot is initiated when the 1-Wire Master pulls the bus low for at least 1 ms and then releases it. If the slave device is responding with a 0 it will continue to hold the line low for up to 60ms (6ms in Overdrive mode), otherwise it will release it immediately. The master will sample the data tRDV from the start of the read time slot. The master will end the read slot after a time of tSLOT. See Figure 2 for more information. 11 of 15 DS1WM 1-WIRE WRITE AND READ TIME SLOTS Figure 2 WRITE 0 SLOT WRITE 1 SLOT tSLOT tLOW0 tLOW1 tSLOT tREC VCC DQ GND >1ms SLAVE SAMPLE TIME OD=0, 8ms typical OD=1, 2ms max SLAVE SAMPLE TIME OD=0, 8ms typical OD=1, 2ms max READ 0 SLOT READ 1 SLOT tSLOT tSLOT tREC VCC DQ GND Master Sample Window tRDV Master Sample Window >1ms tRDV LINE TYPE LEGEND: 1-Wire Master active low Slave device active low Both Master and Slave device active low Resistor pullup 12 of 15 DS1WM WRITE CYCLE t ADS ADS t AS A1,A0 tAH VALID t ES EN t AW t t WEN WR WR RD t DS DATA D7-D0 t DH VALID DATA READ CYCLE tADS ADS t AS A1,A0 tAH VALID t ES EN t AR t t RD REN RD WR DATA D7-D0 t tRVD HZ VALID DATA 13 of 15 DS1WM GENERATING A 1-WIRE RESET ADS A1,A0 0x00 EN WR RD DATA D7-D0 0x01 t t RSTH RSTL DQ tR t WRST tPDL t tPDH tPDS INTRPT 14 of 15 PDI DS1WM TIMING SPECIFICATIONS Symbol tADS tAH tAR tAS tAW tDH tDS tES tHZ tLOW0 tLOW1 tPDH tPDI tPDL tPDS tRD tRDV tREC tREN tRSTH tRSTL tRVD tSLOT t tWEN tWR tWRST Parameter Address Strobe Width Address Hold Time Address Latch to Read Address Setup Time Address Latch to Write Data Hold Time Data Setup Time Enable Setup Time RD to Floating Data Delay Write 0 Low Time, OD=0 Write 0 Low Time, OD=1 Write 1 Low Time, OD=0 Write 1 Low Time, OD=1 Presence Detect High Normal Presence Detect High Overdrive Presence Detect to INTR Presence Detect Low Normal Presence Detect Low Overdrive Presence Detect Sample, OD=0 Presence Detect Sample, OD=1 RD Strobe Width Read Data Valid Normal Read Data Valid Overdrive Recovery Time Enable Hold Time from RD Reset Time High, OD=0 Reset Time High, OD=1 Reset Time Low, OD=0 Reset Time Low, OD=1 Delay from RD to Data Time Slot, OD=0 Time Slot, OD=1 Timebase Period Enable Hold Time from WR WR Strobe Width WR High to Reset Conditions Note 1,3 Note 1,3 Note 1,3 Note 1,3 Note 1,3 Note 1 Note 1 Note 1 Note 1 63 t 8t 6t 1t Note 4 Note 1 Note 4 30t (Note 2) 3t Note 1 Note 1 500t 50t 488t 61t Note 1 73t 11t Note 1 Note 1 Note 1 Min 60 0 60 60 60 30 30 60 0 63 8 6 1 26 2.6 0 104 10.4 30 3 125 15 2 1 20 500 50 488 61 73 11 1 20 100 0 Max 100 78.75 10 7.5 1.25 60 6 100 240 24 37.5 3.75 Units ns ns ns ns ns ns ns ns ns µs µs µs ns µs µs ns µs 625 62.5 610 76.25 60 91.25 13.75 1.25 100 µs ns µs µs ns µs µs ns ns ns NOTES: 1) These values will depend upon the process used to realize the circuit. Values shown are for example purposes only. 2) The 1-Wire Master will wait for a falling edge on the DQ line to be detected after a reset, for up to 60 µs or 6 µs Overdrive. 3) If ADS is tied low, tAR and tAW are referred from tES ; thus RD or WR must occur at least tES + tAR or tES + tAW after EN goes low. 4) Timing determined by 1-wire slave REFERENCES: [1] Book of iButton Standards, Dallas Semiconductor, online at http://www.ibutton.com/ibuttons/standard.pdf 15 of 15 This datasheet has been download from: www.datasheetcatalog.com Datasheets for electronics components.