19-4890; 11/09 DS1977 Password-Protected 32KB EEPROM iButton www.maxim-ic.com iButton DESCRIPTION SPECIAL FEATURES The DS1977 is a 32KB EEPROM in a rugged, iButton® enclosure. Access to the memory can be password-protected with different passwords for read-only and full access. Data is transferred serially through the 1-Wire® protocol, which requires only a single data lead and a ground return. Every DS1977 is factory lasered with a guaranteed unique 64-bit registration number that allows for absolute traceability. The durable stainless-steel iButton package is highly resistant to environmental hazards such as dirt, moisture, and shock. Accessories permit the DS1977 iButton to be mounted on almost any object, including containers, pallets, and bags. COMMON iButton FEATURES APPLICATIONS Maintenance/Inspection Data Storage Medical Data Carrier Health Data Carrier Audit Data Storage and Carrier F5 MicroCAN 5.89 0.51 16.25 FC 37 000000FBC52B 17.35 1-Wire 32KB EEPROM Organized as Pages of 64 Bytes Each Optional Password Protection with Different 64Bit Passwords for Read and Full Access Communicates to Host with a Single Digital Signal at Up to 15.3kbps at Standard Speed or Up to 125kbps in Overdrive Mode Using 1-Wire Protocol Operating Range: 2.8V to 5.25V, -40C to +85C Minimum 100k Write Cycles Endurance 15kV Built-in ESD Protection Unique Factory-Lasered 64-Bit Registration Number Assures Error-Free Device Selection and Absolute Traceability Because No Two Parts are Alike Built-In Multidrop Controller for 1-Wire Net Chip-Based Data Carrier Stores Digital Identification and Information, Armored in a Durable Stainless-Steel Case Data can be Accessed While Affixed to Object Button Shape is Self-Aligning with Cup-Shaped Probes Easily Affixed with Self-Stick Adhesive Backing, Latched by its Flange, or Locked with a Ring Pressed onto its Rim Presence Detector Acknowledges when Reader First Applies Voltage ORDERING INFORMATION PART TEMP RANGE DS1977-F5# -40C to +85C PACKAGE F5 iButton #Denotes an RoHS-compliant device that may include lead(Pb) that is exempt under the RoHS requirements. IO GND All dimensions are shown in millimeters. EXAMPLES OF ACCESSORIES PART DS9096P DS9101 DS9093RA DS9093A DS9092 iButton and 1-Wire are registered trademarks of Maxim Integrated Products, Inc. 1 of 29 DESCRIPTION Self-Stick Adhesive Pad Multipurpose Clip Mounting Lock Ring Snap-In Fob iButton Probe DS1977 PHYSICAL SPECIFICATION Size Weight DS1977 See mechanical drawing Ca. 3.3g ABSOLUTE MAXIMUM RATINGS I/O Voltage to GND I/O Sink Current Junction Temperature Storage Temperature Range -0.3V, +5.5V 20mA +150°C -40°C to +85°C Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to the absolute maximum rating conditions for extended periods may affect device. ELECTRICAL CHARACTERISTICS (VPUP = 2.8V to 5.25V, TA = -40°C to +85°C.) PARAMETER SYMBOL CONDITIONS I/O Pin General Data 1-Wire Pullup (Notes 1, 2) RPUP Resistance Input Capacitance CIO (Note 3) Input Load Current IL I/O pin at VPUP High-to-Low Switching (Notes 4, 5) VTL Threshold Input Low Voltage VIL (Notes 1, 6) Low-to-High Switching (Notes 4, 7) VTH Threshold Switching Hysteresis VHY (Note 8) Output-Low Voltage at (Note 9) VOL 4mA Standard speed, RPUP= 2.2k (Note 1) Overdrive speed, RPUP= 2.2k Recovery Time tREC (Note 1) Overdrive speed, directly prior to reset pulse; RPUP= 2.2k (Note 1) Rising-Edge Hold-off Standard speed (Note 10) tREH Time Overdrive speed (Note 10) Standard speed (Note 1) Timeslot Duration tSLOT Overdrive speed (Note 1) I/O Pin, 1-Wire Reset, Presence Detect Cycle Standard speed (Note 1) Reset Low Time tRSTL Overdrive Speed (Note 1) Presence Detect High Standard speed (Note 11) tPDH Time Overdrive speed (Note 11) Standard speed, VPUP > 4.5V (Note 12) Presence Detect Fall tFPD Time Standard speed (Note 12) Overdrive speed (Note 12) Presence Detect Low Standard speed tPDL Time Overdrive speed 2 of 29 MIN TYP MAX UNITS 0.6 2.2 k 1 5 10 nF µA 0.5 3.2 V 0.30 V 0.7 3.4 V 0.15 N/A V 0.4 V 5 2 µs 5 0.5 0.5 65 8 5 2 480 48 15 2.5 640 80 60 6.5 1.5 5 1.5 0.15 60 8 8 1 240 24 µs µs µs µs µs µs DS1977 PARAMETER SYMBOL Presence Detect Sample Time CONDITIONS Standard speed, VPUP > 4.5V (Note 1) Standard speed (Note 1) Overdrive speed (Note 1) MIN TYP MAX UNITS 65 75 68 7.5 75 10.5 Standard speed (Notes 1, 13) Overdrive speed (Notes 1, 13) Standard speed (Notes 1, 13) Overdrive speed (Notes 1, 13) 60 6 5 1 120 16 15 2 Standard speed (Notes 1, 14) Overdrive speed (Notes 1, 14) Standard speed, VPUP > 4.5V (Notes 1, 14) Standard speed (Notes 1, 14) Overdrive speed (Notes 1, 14) 5 1 15 - 2- tRL + 20 tRL + tRL + 15 2 tSPUR tSPUW (Note 1) (Note 1) 2.64 22.46 ms ms tSPUV (Note 1) 0.62 ms tMSP µs I/O Pin, 1-Wire Write Write-0 Low Time tW0L Write-1 Low Time tW1L µs µs I/O Pin, 1-Wire Read Read Low Time tRL Read Sample Time tMSR I/O Pin, Strong Pullup Strong Pullup Read Strong Pullup Write Strong Pullup password verification EEPROM Programming Current Write/Erase Cycles Data Retention Note 1: Note 2: Note 3: Note 4: Note 5: Note 6: Note 7: Note 8: Note 9: Note 10: Note 11: Note 12: Note 13: Note 14: ILPROG NCYCLE tRET 7 100k 10 µs µs mA — years System requirement. Maximum allowable pullup resistance is a function of the number of 1-Wire devices in the system and 1-Wire recovery times. The specified value here applies to systems with only one device and with the minimum 1-Wire recovery times. For more heavily loaded systems, an active pullup such as that found in the DS2480B may be required. Capacitance on the data pin could be 5nF when power is first applied. VTL and VTH are functions of the internal supply voltage, which is a function of VPUP and the 1-Wire recovery times. The VTH and VTL maximum specifications are valid at VPUPMAX (5.25V). In any case, VTL < VTH < VPUP. Voltage below which, during a falling edge on I/O, a logic '0' is detected. The voltage on I/O needs to be less or equal to VILMAX whenever the master drives the line low. Voltage above which, during a rising edge on I/O, a logic '1' is detected. After VTH is crossed during a rising edge on I/O, the voltage on I/O has to drop by VHY to be detected as logic '0'. The I-V characteristic is linear for voltages less than 1V. The earliest recognition of a negative edge is possible at tREH after VTH has been reached before. Highlighted numbers are NOT in compliance with the published iButton standards. See comparison table below. Interval during the negative edge on I/O at the beginning of a Presence Detect pulse between the time at which the voltage is 90% of VPUP and the time at which the voltage is 10% of VPUP. in Figure 11 represents the time required for the pullup circuitry to pull the voltage on I/O up from VIL to VTH. The actual maximum duration for the master to pull the line low is tW1LMAX + tF - and tW0LMAX + tF - respectively. in Figure 11 represents the time required for the pullup circuitry to pull the voltage on I/O up from VIL to the input-high threshold of the bus master. The actual maximum duration for the master to pull the line low is tRLMAX + tF. Parameter Name tSLOT (incl. tREC) tRSTL tPDH tPDL tW0L Standard Values Standard Speed Overdrive Speed min max min max 61µs (undef.) 7µs (undef.) 480µs (undef.) 48µs 80µs 15µs 60µs 2µs 6µs 60µs 240µs 8µs 24µs 60µs 120µs 6µs 16µs DS1977 Values Standard Speed Overdrive Speed min max min max 65µs1) (undef.) 8µs1) (undef.) 480µs 640µs 48µs 80µs 15µs 60µs 2.5µs 6.5µs 60µs 240µs 8µs 24µs 60µs 120µs 6µs 16µs 1) Intentional change, longer recovery time requirement due to modified 1-Wire front end. 3 of 29 DS1977 APPLICATION The DS1977 is an ideal device to store maintenance and inspection data of equipment or medical- and healthrelated data in digitally readable format. Due to its small size and rugged enclosure the device can be carried with a keyring to provide critical data in case of an emergency. The DS1977 can also serve as data shuttle to transport fleet management and vending machine data to an access point for upload into a remote server for further processing. Software for communication with the DS1977 is available for free download from the iButton website. OVERVIEW The block diagram in Figure 1 shows the relationships between the major control and memory sections of the DS1977. The device has four main data components: 1) 64-bit lasered ROM, 2) 512-bit scratchpad and buffer, 3) 32KB EEPROM, and 4) two password buffers. The passwords can only be written and verified, but never be read. The hierarchical structure of the 1-Wire protocol is shown in Figure 2. The bus master must first provide one of the seven ROM function commands: 1) Read ROM, 2) Match ROM, 3) Search ROM, 4) Skip ROM, 5) Overdrive-Skip ROM, 6) Overdrive-Match ROM or 7) Resume. Upon completion of an Overdrive ROM command byte executed at standard speed, the device will enter Overdrive mode, where all subsequent communication occurs at a higher speed. The protocol required for these ROM function commands is described in Figure 9. After a ROM function command is successfully executed, the memory and control functions become accessible and the master may provide any one of the six available commands. The protocol for these memory and control function commands is described in Figure 7. All data is read and written least significant bit first. Figure 1. DS1977 BLOCK DIAGRAM ROM FUNCTION CONTROL I/O 64-BIT LASERED ROM POWER CONTROL CRC16 GENERATOR MEMORY FUNCTION CONTROL 64-BYTE SCRATCHPAD AND BUFFER MEMORY ACCESS SECURITY CONTROL 32KB EEPROM 4 of 29 DS1977 Figure 2. HIERARCHICAL STRUCTURE FOR 1-WIRE PROTOCOL 1-Wire NET BUS MASTER OTHER DEVICES DS1977 COMMAND LEVEL: 1-Wire ROM FUNCTION COMMANDS DS1977-SPECIFIC MEMORY FUNCTION COMMANDS AVAILABLE COMMANDS: DATA FIELD AFFECTED: READ ROM MATCH ROM SEARCH ROM SKIP ROM RESUME OVERDRIVE SKIP OVERDRIVE MATCH 64-BIT ROM, RC-FLAG 64-BIT ROM, RC-FLAG 64-BIT ROM, RC-FLAG RC-FLAG RC-FLAG RC-FLAG, OD-FLAG 64-BIT ROM, RC-FLAG, OD-FLAG WRITE SCRATCHPAD READ SCRATCHPAD COPY SCRATCHPAD W/PW 64-BYTE SCRATCHPAD 64-BYTE SCRATCHPAD DATA MEMORY, PASSWORDS, PASSWORD ENABLE BYTE DATA MEMORY, PASSWORDS, PASSWORD ENABLE BYTE PASSWORDS VERSION REGISTER READ MEMORY W/PW VERIFY PASSWORD READ VERSION 64-BIT LASERED ROM Each DS1977 contains a unique ROM code that is 64 bits long. The first 8 bits are a 1-Wire family code. The next 48 bits are a unique serial number. The last 8 bits are a CRC of the first 56 bits. See Figure 3 for details. The 1Wire CRC is generated using a polynomial generator consisting of a Shift and XOR gates as shown in Figure 4. The polynomial is X8 + X5 + X4 + 1. Additional information about the 1-Wire Cyclic Redundancy Check is available in Application Note 27 and in the Book of DS19xx iButton Standards. The Shift register bits are initialized to 0. Then starting with the least significant bit of the family code, one bit at a time is shifted in. After the 8th bit of the family code has been entered, then the serial number is entered. After the 48th bit of the serial number has been entered, the Shift register contains the CRC value. Shifting in the 8 bits of CRC returns the Shift register to all 0s. Figure 3. 64-BIT LASERED ROM MSB LSB 8-BIT CRC CODE MSB LSB 8-BIT FAMILY CODE (37h) 48-BIT SERIAL NUMBER MSB LSB 5 of 29 MSB LSB DS1977 Figure 4. 1-WIRE CRC GENERATOR 8 5 4 POLYNOMIAL = X + X + X + 1 st nd 1 STAGE X 0 rd 2 STAGE X 1 th 3 STAGE X 2 th 4 STAGE X 3 th 5 STAGE X 4 th 6 STAGE X 5 th 7 STAGE X 6 8 STAGE X 7 X 8 INPUT DATA MEMORY The memory map of the DS1977 is shown in Figure 5. The 32KB of general-purpose EEPROM are located in pages 0 through 510. The passwords and the Password Control register take 17 bytes of page 511. The remaining bytes of page 511 are not accessible to the user. The scratchpad is an additional page that acts as a buffer when writing to the EEPROM memory or setting up a password, and when reading from the EEPROM. Figure 5. DS1977 MEMORY MAP 64-Byte Intermediate Storage Scratchpad ADDRESS 0000h to 003Fh 0040h to 7F7Fh 7F80h to 7FBFh 7FC0h to 7FC7h 7FC8h to 7FCFh 64-Byte User EEPROM Page 0 64-Byte User EEPROM Pages 1 To 509 64-Byte User EEPROM Page 510 Read Access Password (A) Full Access Password (B) 7FD0h Password Control Register 7FD1h to 7FFFh (No Function; Will Read FFh, Cannot be Written) SECURITY BY PASSWORD The DS1977 is designed to use two passwords that control read access and full access. No password applies when reading from or writing to the scratchpad. Setting up a password or enabling/disabling the password checking is done in the same way as writing data to a memory location, only the address is different. Since they are located in the same memory page, both passwords can be redefined at the same time. Before changing passwords, disable passwords. When setting up a password, make sure that all 8 bytes of the password are defined. Otherwise the new password may be unknown. Always verify the scratchpad before issuing the copy scratchpad command. After a new password is successfully copied from the scratchpad to its memory location, erase the scratchpad by filling it with new data. Otherwise a copy of the password will remain accessible through the scratchpad until the DS1977 is disconnected from the 1-Wire line or undergoes a power-on reset. 6 of 29 DS1977 Read Access Password This password only applies to the function "Read Memory with Password”. If passwords are enabled (EPW = AAh, see Password Control register), the 64-bit data pattern that the 1-Wire master has to transmit with the command flow is compared to the passwords stored in the DS1977 iButton. The DS1977 delivers the requested data only if the password transmitted by the master was correct or if password checking is not enabled. Read Access Password Register ADDR b7 b6 b5 b4 b3 b2 b1 b0 7FC0h RP7 RP6 RP5 RP4 RP3 RP2 RP1 RP0 7FC1h RP15 RP14 RP13 RP12 RP11 RP10 RP9 RP8 — — — 7FC6h RP55 RP54 RP53 RP52 RP51 RP50 RP49 RP48 7FC7h RP63 RP62 RP61 RP60 RP59 RP58 RP57 RP56 There is only write access to this register. The Read Access Password needs to be transmitted exactly in the sequence RP0, RP1… RP62, RP63. Full Access Password This password applies to the functions "Read Memory with Password” and "Copy Scratchpad with Password”. If passwords are enabled (EPW = AAh, see Password Control register), the 64-bit data pattern that the 1-Wire master has to transmit with the command flow is compared to the passwords stored in the DS1977 iButton. The DS1977 executes the command only if the password transmitted by the master was correct or if password checking is not enabled. Full Access Password Register ADDR b7 b6 b5 b4 b3 b2 b1 b0 7FC8h FP7 FP6 FP5 FP4 FP3 FP2 FP1 FP0 7FC9h FP15 FP14 FP13 FP12 FP11 FP10 FP9 FP8 — — — 7FCEh FP55 FP54 FP53 FP52 FP51 FP50 FP49 FP48 7FCFh FP63 FP62 FP61 FP60 FP59 FP58 FP57 FP56 There is only write access to this register. The Full Access Password needs to be transmitted exactly in the sequence FP0, FP1… FP62, FP63. Password Control Register The data pattern stored in the Password Control Register determines whether password checking is enabled. If password checking is enabled, the password transmitted is compared to the passwords stored in the device. Reading from or writing to the scratchpad does not require a password. Password Control Register Bitmap ADDR 7FD0h b7 b6 b5 b4 b3 b2 b1 b0 EPW Register Details BIT DESCRIPTION EPW: Enable Passwords BIT(S) DEFINITION b0 to b7 This byte enables or disables the password protection, which applies to reading from and writing to the memory except for the scratchpad. If the EPW bits form a pattern of 10101010 (AAh), the device will execute these commands only if the correct password is transmitted. The default pattern of EPW is different from AAh. To enable password checking, the EPW bits need to form a binary pattern of 10101010 (AAh). If the EPW pattern is different from AAh, any password will be accepted, as long as it has a length of exactly 64 bits. Before enabling 7 of 29 DS1977 passwords, check whether the new password has been successfully installed. See Verify Password command for details. Once enabled, changing the passwords or disabling password checking requires the knowledge of the current full-access password. VERSION REGISTER The DS1977 includes a read-only Version register, which is not a component of the memory map. Therefore, a special command is used to read this register. The Chip Revision number enables application software to automatically use the appropriate software driver in case of different logical behavior. Version Register Bitmap b7 b6 b5 b4 b3 VER2 VER1 VER0 0 0 Bits 0 to 4 have no function. They always read 0. b2 0 b1 0 b0 0 Register Details BIT DESCRIPTION BIT(S) DEFINITION (N/A) b0 to b4 These bits are all 0. VER: Chip Revision Indicator b5 to b7 Chip revision code. The initial version of the DS1977 will have all revision bits set to 0. Figure 6. ADDRESS REGISTERS Target Address (TA1) T7 T6 T5 T4 T3 T2 T1 T0 Target Address (TA2) T15 T14 T13 T12 T11 T10 T9 T8 Ending Address with Data Status (E/S) (Read Only) AA PF E5 E4 E3 E2 E1 E0 ADDRESS REGISTERS AND TRANSFER STATUS Because of the serial data transfer, the DS1977 employs three address registers, called TA1, TA2, and E/S (Figure 6). Registers TA1 and TA2 must be loaded with the target address to which the data will be written or from which data will be sent to the master upon a Read command. Register E/S acts like a byte counter and Transfer Status register. It is used to verify data integrity with write commands. Therefore, the master only has read access to this register. The lower six bits of the E/S register indicate the address of the last byte that has been written to the scratchpad. This address is called Ending Offset. Bit 6 of the E/S register, called PF, is set if the number of data bits sent by the master is not an integer multiple of 8 or if the data in the scratchpad is not valid due to a loss of power. A valid write to the scratchpad will clear the PF bit. Note that the lowest six bits of the target address also determine the address within the scratchpad, where intermediate storage of data will begin. This address is called byte offset. If the target address for a Write command is 103Ch for example, then the scratchpad will store incoming data beginning at the byte offset 3Ch and will be full after only four bytes. The corresponding ending offset in this example is 3Fh. For best economy of speed and efficiency, the target address for writing should point to the beginning of a new page, i.e., the byte offset will be 0. Thus the full 64-byte capacity of the scratchpad is available, resulting also in the ending offset of 3Fh. However, it is possible to write one or several contiguous bytes somewhere within a page. The ending offset together with the Partial Flag support the master checking the data integrity after a Write command. The highest valued bit of the E/S register, called AA is valid only if the PF flag reads 0. If PF is 0 and AA is 1, a copy has taken place. The AA bit is cleared when the device receives a write scratchpad command. 8 of 29 DS1977 WRITING WITH VERIFICATION To write data to the DS1977 , the scratchpad has to be used as intermediate storage. First the master issues the Write Scratchpad command to specify the desired target address, followed by the data to be written to the scratchpad. Under certain conditions (see Write Scratchpad command) the master will receive an inverted CRC16 of the command, address and data at the end of the write scratchpad command sequence. Knowing this CRC value, the master can compare it to the value it has calculated itself to decide whether the communication was successful and proceed to the Copy Scratchpad command. If the master could not receive the CRC16, it has to send the Read Scratchpad command to read back the scratchpad to verify data integrity. As preamble to the scratchpad data, the DS1977 repeats the target address TA1 and TA2 and sends the contents of the E/S register. If the PF flag is set, data did not arrive correctly in the scratchpad or there was a loss of power since data was last written to the scratchpad. The master does not need to continue reading; it can start a new trial to write data to the scratchpad. Similarly, a set AA flag together with a cleared PF flag indicates that the Write command was not recognized by the device. If everything went correctly, both flags are cleared and the ending offset indicates the address of the last byte written to the scratchpad; the master can continue reading and verifying every data byte. After the master has verified the data, it has to send the Copy Scratchpad command. This command must be followed exactly by the data of the three address registers TA1, TA2, and E/S. The master may obtain the contents of these registers by reading the scratchpad or derive it from the target address and the amount of data to be written. As soon as the DS1977 has received these bytes correctly and the master has provided an acceptable password, the DS1977 will copy the scratchpad data to the requested location beginning at the target address. MEMORY FUNCTION COMMANDS The “Memory Function Flow Chart” (Figure 7) describes the protocols necessary for accessing the memory and the special function registers of the DS1977. Examples on how to use these functions to operate the DS1977 are included at the end of this document, preceding the Electrical Characteristics section. The communication between master and DS1977 takes place either at standard speed (default, OD = 0) or at Overdrive Speed (OD = 1). If not explicitly set into the Overdrive mode the DS1977 assumes regular speed. Write Scratchpad Command [0Fh] This command is used to specify the target address and to write data to the scratchpad for verification before the transfer to the EEPROM can be initiated. After issuing the write scratchpad command, the master must first provide the 2-byte target address, followed by the data to be written to the scratchpad. The data will be written to the scratchpad starting at the byte offset (T5:T0). The ending offset (E5: E0) will be the byte offset at which the master stops writing data. Only full data bytes are accepted. If the last data byte is incomplete its content will be ignored and the partial byte flag PF will be set. When writing to a password address, internal circuitry of the chip will force the 3 least significant address bits to 0. Only full 8-byte passwords are accepted. The ending offset will be 07 or 0F, depending on the password(s) to be changed. When executing the Write Scratchpad command the CRC generator inside the DS1977 (Figure 13) calculates an inverted CRC over the entire data stream, starting at the command code and ending at the last data byte sent by the master. This CRC is generated using the CRC16 polynomial by first clearing the CRC generator and then shifting in the command code (0FH) of the Write Scratchpad command, the Target Addresses TA1 and TA2 as supplied by the master and all the data bytes. The master may end the Write Scratchpad command at any time. However, if the ending offset is 3Fh, the master may send 16 read-time slots and will receive the CRC generated by the DS1977 . The memory address range of the DS1977 is 0000h to 7FFFh (Figure 5). There is no user-access to the address range 7FD1h to 7FFFh. If the master sends a target address higher than this, the internal circuitry of the chip will set the most significant address bit to zero as it is shifted into the internal address register. The Read Scratchpad command will reveal the target address as it will be used by the DS1977 . The master will identify such address modifications by comparing the target address read back to the target address transmitted. If the master does not read the scratchpad, a subsequent copy scratchpad command will not work since the most significant bits of the target address the master sends will not match the value the DS1977 expects. Read Scratchpad Command [AAh] This command is used to verify scratchpad data and target address. After issuing the Read Scratchpad command, the master begins reading. The first 2 bytes will be the target address. The next byte will be the ending offset/data status byte (E/S) followed by the scratchpad data beginning at the byte offset (T5:T0), as shown in Figure 6. 9 of 29 DS1977 Regardless of the actual ending offset the master may continue reading data until the end of the scratchpad after which it will receive an inverted CRC16 of the command code, Target Addresses TA1 and TA2, the E/S byte, and the scratchpad data starting at the byte offset, which is determined by the target address. After the CRC is read, the bus master will read logical 1s from the DS1977 until a reset pulse is issued. Copy Scratchpad with Password [99h] This command is used to transfer data from the scratchpad to the memory. After issuing the copy scratchpad command, the master must provide a 3-byte authorization pattern, which can be obtained by reading the scratchpad for verification. This pattern must exactly match the data contained in the three address registers (TA1, TA2, E/S, in that order). Next the master must send a valid full-access password, or, if passwords are not enabled, 8 dummy bytes. Now the master must provide power by bypassing the 1-Wire pullup resistor with an electronic switch, generating a "strong pullup". If authorization pattern and password are accepted, the AA (Authorization Accepted) flag will be set and the copy will begin. Copy takes 10ms maximum during which the voltage on the 1Wire bus must not fall below 2.8V. After the copy is completed, the master turns off the strong pullup and begins reading from the 1-Wire. A pattern of alternating 1’s and 0’s will indicate that the copy command was executed successfully. If the copy command was disturbed due to lack of power or for other reasons (see Figure 7-2, "strong pullup valid?"), the master will read a constant stream of FFh bytes until it sends a 1-Wire reset pulse. In this case the destination memory may be incompletely programmed requiring a write scratchpad and copy scratchpad be repeated to ensure proper programming of the EEPROM. This requires careful consideration when designing application software that writes to the DS1977 in an intermittent contact environment. The data to be copied is determined by the three address registers (TA1, TA2, E/S). The scratchpad data from the beginning offset through the ending offset will be copied to memory, starting at the target address. Anywhere from 1 to 64 bytes may be copied to memory with this command. Read Memory with Password [69h] This command is used to read the entire memory, except for the passwords. After issuing the command, the master must provide the 2-byte target address. Next the master must send a valid read access password, or, if passwords are not enabled, 8 dummy bytes. Now the master must provide power by bypassing the 1-Wire pullup resistor with an electronic switch, generating a "strong pullup". If the password was accepted, EEPROM data beginning at the specified target address and ending at the page boundary will be loaded into the scratchpad starting at the beginning offset. This transfer takes 5 ms maximum during which the voltage on the 1-Wire bus must not fall below 2.8V. After the transfer is completed, the master turns off the strong pullup and begins reading from the 1-Wire. When the end of the memory page (end of scratchpad) is reached, the master will receive an inverted CRC16 of the command, target address and page data. If the master wants to read more data and the end of the memory is not yet reached, it again has to activate the strong pullup. This will transfer a full 64-byte page of memory data to the scratchpad from where the master can read it by issuing read-time slots. This transfer only takes place if the DS1977 receives enough power through the 1-Wire line (see Figure 7-3, "strong pullup valid?"). The loop of strong pullup and reading 64 bytes can be repeated until the end of the memory is reached, at which point the master will read logic 1's. Verify Password [C3h] This command allows the user to verify whether the process of updating a password was successful, eliminating the risk of a weak programming of the memory cells that actually store the password. The command allows verifying one password at a time. After issuing the command code, the master must send the memory address of the password to be verified. Next the master transmits the password itself and generates a strong pullup to provide the power for the password comparison. This takes 5ms maximum, during which the voltage on the 1-Wire bus must not fall below 2.8V. After the comparison is completed, the master turns off the strong pullup and begins reading from the 1-Wire line. A pattern of alternating 1's and 0's indicates that the verification was successful, i. e., the password supplied by the master matches the one stored in the DS1977. If the passwords do not match, the master will read a constant stream of FFh bytes until it sends a reset pulse. Before changing a password, first disable the use of passwords. Then using Write Scratchpad, Read Scratchpad and Copy Scratchpad, write the new password to its respective memory location. Now use Verify Password to double-check whether the password reads correctly from the EEPROM memory. If the verification is successful, it is safe to again enable passwords. 10 of 29 DS1977 Figure 7-1. MEMORY/CONTROL FUNCTION FLOW CHART From ROM Functions Flow Chart (Figure 9) Master TX Memory Function Command 0Fh Write Scratchpad AAh Read Scratchpad N Y Y Master TX TA1 (T7:T0), TA2 (T15:T8) Master RX TA1 (T7:T0) Y Master RX TA2 (T15:T8) Address of Password? N DS1977 sets Scratchpad Offset = (T5:T0) and Clears (PF, AA) DS1977 sets Scratchpad Offset = (T5:T3,0,0,0) and Clears (PF, AA, T2:T0) Master RX Ending Offset with Data Status (E/S) Master TX Data Byte to Scratchpad Offset Master TX one or both 8-byte passwords DS1977 sets Scratchpad Offset = (T5:T0) DS1977 sets (E5:E0) = Scratchpad Offset Master TX Reset? DS1977 Increments Scratchpad Offset N Y Master RX Data Byte from Scratchpad Offset Y Master TX Reset? DS1977 Increments Scratchpad Offset N Scratchpad Offset = 3Fh? Partial Byte Written? Y N To Figure 7 nd 2 Part Master TX Reset? N Y N Y N Scratchpad Offset = 3Fh? Y Master RX CRC16 of Command, Address Data, E/S Byte, and Data Starting at the Target Address PF = 1 N Master RX CRC16 of Command, Address Data Y Y Master TX Reset? N Master TX Reset? Master RX "1"s N Master RX "1"s To ROM Functions Flow Chart (Figure 9) 11 of 29 From Figure 7 nd 2 Part DS1977 Figure 7-2. MEMORY/CONTROL FUNCTION FLOW CHART From Figure 7 1st Part 99h Copy Scrpad. [w/PW] To Figure 7 3rd Part N Y Master TX TA1 (T7:T0), TA2 (T15:T8) Master TX E/S Byte Master TX 64-Bits [Password] NOTE: The strong pullup must be activated within 40µs after the last bit of the password is transmitted. Pullup duration: see tSPUW Master Activates Strong Pullup N ReadAccess Passw.? Y Authorization Code N Password Accepted? Y Save to Read Password Holding Register Authorization Code Match? Y N AA = 1 Y More data in SP? Y N Address of Password? N Save to FullAccess Password Holding Register DS1977 Copies Scratchpad Data or Data from Password Holding Register (if Password Address) to Memory Strong Pullup Valid? N Master RX "1"s Y DS1977 TX "0" Y Master TX Reset? Master TX Reset? N Y N DS1977 TX "1" N Master TX Reset? Y To Figure 7 1st Part From Figure 7 3rd Part 12 of 29 DS1977 Figure 7-3. MEMORY/CONTROL FUNCTION FLOW CHART From Figure 7 nd 2 Part 69h Read Mem. [w/PW] To Figure 7 th 4 Part N Y Master TX TA1 (T7:T0), TA2 (T15:T8) NOTE: The strong pullup must be activated within 40µs after the last bit of the password is transmitted. Pullup duration: see tSPUR Master TX 64-Bits [Password] To continue reading the next memory page, the strong pullup must be activated within 40µs after the last bit of the CRC16 is read. DS1977 sets Memory Address = (T15:T0) Master Activates Strong Pullup Decision made by DS1977 N Password Accepted? Y Decision made by Master Y Strong pullup valid? N Master RX Data Byte from Memory Address or FFh if Password Address Y DS1977 Increments Address Counter Master TX Reset? N N End of Page? Y See Note Master RX CRC16 of Command, Address, Data st (1 Pass); CRC16 of Data (Subsequent Passes) Master TX Reset N Master Activates Strong Pullup DS1977 Increments Address Counter CRC OK? Y End of Memory? N Y Master TX Reset? N Master RX "1"s Y To Figure 7 nd 2 Part From Figure 7 th 4 Part 13 of 29 DS1977 Figure 7-4. MEMORY/CONTROL FUNCTION FLOW CHART From Figure 7 3rd Part C3h Verify Password CCh Read Version N Y Y N Master TX TA1 (T7:T0), TA2 (T15:T8) N Address of Password? Y DS1977 sets Memory Address = (T15:T3, 0, 0, 0) Master TX two bytes 00h Master TX Password to verify Master RX two copies of Version Register Master Activates Strong Pullup NOTE: The strong pullup must be activated within 40µs after the last bit of the password is transmitted. Pullup duration: see tSPUV N Password Match? Y Master RX AAh byte Master TX Reset? Master RX FFh byte N Master TX Reset? Y Y To Figure 7 3rd Part 14 of 29 N DS1977 Read Version Command [CCh] This command allows the master to read the chip revision code of the DS1977. After issuing the command code, the master sends two 00h-bytes to access the version register. With the next 16 time slots the master receives two copies of the content of the version register. Additional read-time slots will read logic 1's. Only the upper 3 bits of the version register are valid. The lower 5 bits will all read 0. 1-Wire BUS SYSTEM The 1-Wire bus is a system, which has a single bus master and one or more slaves. In all instances the DS1977 is a slave device. The bus master is typically a microcontroller or PC. For small configurations the 1-Wire communication signals can be generated under software control using a single port pin. A second port pin is required to control the strong pullup to supply power for the commands Copy Scratchpad with Password, Read Memory with Password and Verify Password. Alternatively, the DS2480B 1-Wire line driver chip or serial port adapters based on this chip (DS9097U series) are can be used. This simplifies the hardware design and frees the microprocessor from responding in real-time. The discussion of this bus system is broken down into three topics: hardware configuration, transaction sequence, and 1-Wire signaling (signal types and timing). The 1-Wire protocol defines bus transactions in terms of the bus state during specific time slots that are initiated on the falling edge of sync pulses from the bus master. For a more detailed protocol description, refer to Chapter 4 of the Book of DS19xx iButton Standards. HARDWARE CONFIGURATION The 1-Wire bus has only a single line by definition; it is important that each device on the bus be able to drive it at the appropriate time. To facilitate this, each device attached to the 1-Wire bus must have open drain or tri-state outputs. The 1-Wire port of the DS1977 is open-drain with an internal circuit equivalent to that shown in Figure 8. A multi-drop bus consists of a 1-Wire bus with multiple slaves attached. At standard speed the 1-Wire bus has a maximum data rate of 15.3 kbits per second. The speed can be boosted to 125 kbits per second by activating the Overdrive mode. The value of the pullup resistor primarily depends on the network size and load conditions. For most applications the optimal value of the pullup resistor will be approximately 2.2k for standard speed and 1.5k for Overdrive speed. The idle state for the 1-Wire bus is high. If for any reason a transaction needs to be suspended, the bus MUST be left in the idle state if the transaction is to resume. If this does not occur and the bus is left low for more than 16µs (Overdrive speed) or more than 120µs (standard speed), one or more devices on the bus may be reset. TRANSACTION SEQUENCE The protocol for accessing the DS1977 through the 1-Wire port is as follows: Initialization ROM Function Command Memory Function Command Transaction/Data Illustrations of the transaction sequence for the various memory function commands are found later in this document. INITIALIZATION All transactions on the 1-Wire bus begin with an initialization sequence. The initialization sequence consists of a reset pulse transmitted by the bus master followed by presence pulse(s) transmitted by the slave(s). The presence pulse lets the bus master know that the DS1977 is on the bus and is ready to operate. For more details, see the 1Wire Signaling section. 1-Wire ROM FUNCTION COMMANDS Once the bus master has detected a presence, it can issue one of the eight ROM function commands. All ROM function commands are 8 bits long. A list of these commands follows (refer to flowchart in Figure 9). 15 of 29 DS1977 Figure 8. HARDWARE CONFIGURATION VPUP SIMPLE BUS MASTER DS1977 1-Wire PORT IRLMS6702 or equivalent SPU RPUP RX SEE TEXT DATA RX TX SPU = Strong Pullup TX RX = Receive Open Drain Port Pin 100 MOSFET TX = Transmit DS2480B BUS MASTER +5V VDD VPP HOST CPU Serial Port serial in serial out POL 1-W RXD NC To 1-Wire data TXD GND DS2480B READ ROM [33H] This command allows the bus master to read the DS1977’s 8-bit family code, unique 48-bit serial number, and 8-bit CRC. This command can only be used if there is a single DS1977 on the bus. If more than one slave is present on the bus, a data collision will occur when all slaves try to transmit at the same time (open drain will produce a wiredAND result). The resultant family code and 48-bit serial number will result in a mismatch of the CRC. MATCH ROM [55H] The Match ROM command, followed by a 64-bit ROM sequence, allows the bus master to address a specific DS1977 on a multidrop bus. Only the DS1977 that exactly matches the 64-bit ROM sequence will respond to the following memory function command. All slaves that do not match the 64-bit ROM sequence will wait for a reset pulse. This command can be used with a single or multiple devices on the bus. SEARCH ROM [F0H] When a system is initially brought up, the bus master might not know the number of devices on the 1-Wire bus or their 64-bit ROM codes. The Search ROM command allows the bus master to use a process of elimination to identify the 64-bit ROM codes of all slave devices on the bus. The search ROM process is the repetition of a simple three-step routine: read a bit, read the complement of the bit, then write the desired value of that bit. The bus master performs this simple, three-step routine on each bit of the ROM. After one complete pass, the bus master knows the contents of the ROM in one device. The remaining number of devices and their ROM codes may be identified by additional passes. See Application Note 187 for a comprehensive discussion of the 1-Wire search algorithm. SKIP ROM [CCH] This command can save time in a single-drop bus system by allowing the bus master to access the memory functions without providing the 64-bit ROM code. If more than one slave is present on the bus and a Read command is issued following the Skip ROM command, data collision will occur on the bus as multiple slaves transmit simultaneously (open drain pulldowns will produce a wired-AND result). 16 of 29 DS1977 Figure 9-1. ROM FUNCTIONS FLOW CHART Bus Master TX Reset Pulse nd From Figure 9, 2 From Memory Functions Flow Chart (Figure 9) OD Reset Pulse ? N Part OD = 0 Y Bus Master TX ROM Function Command 33h Read ROM Command ? Y DS1977 TX Presence Pulse N 55h Match ROM Command ? F0h Search ROM Command ? N Y Y RC = 0 RC = 0 DS1977 TX Family Code (1 Byte) Master TX Bit 0 RC = 0 DS1977 TX Bit 0 DS1977 TX Bit 0 Master TX Bit 0 N N Bit 0 Match ? Y Y DS1977 TX Bit 1 Master TX Bit 1 DS1977 TX Bit 1 Master TX Bit 1 N Bit 1 Match ? N Bit 1 Match ? Y DS1977 TX CRC Byte To Figure 9 nd CCh 2 Part Skip ROM Command ? N Y RC = 0 Bit 0 Match ? DS1977 TX Serial Number (6 Bytes) N Y DS1977 TX Bit 63 Master TX Bit 63 DS1977 TX Bit 63 Master TX Bit 63 N Bit 63 Match ? N Bit 63 Match ? Y RC = 1 Y RC = 1 To Memory Functions Flow Chart (Figure 7) 17 of 29 To Figure 9 nd 2 Part From Figure 9 nd 2 Part DS1977 Figure 9-2. ROM FUNCTIONS FLOW CHART st To Figure 9, 1 Part From Figure 9 st 1 Part A5h Resume Command ? 3Ch Overdrive Skip ROM ? N Y N Y N Y RC = 0 ; OD = 1 RC = 1 ? 69h Overdrive Match ROM ? RC = 0 ; OD = 1 N Master TX Bit 0 Y Master TX Reset ? N Y Bit 0 Match ? N Y Master TX Bit 1 Master TX Reset ? Y Bit 1 Match ? N Y N Master TX Bit 63 Bit 63 Match ? Y RC = 1 From Figure 9 st 1 Part To Figure 9 st 1 Part 18 of 29 N DS1977 RESUME COMMAND [A5h] The Resume Command function maximizes the data throughput in a multidrop environment. This function checks the status of the RC bit and, if it is set, directly transfers control to the Memory/Control functions, similar to a Skip ROM command. The only way to set the RC bit is through successfully executing the Match ROM, Search ROM or Overdrive Match ROM command. Once the RC bit is set, the device can repeatedly be accessed through the Resume Command function. Accessing another device on the bus will clear the RC bit, preventing two or more devices from simultaneously responding to the Resume Command function. OVERDRIVE SKIP ROM [3CH] On a single-drop bus this command can save time by allowing the bus master to access the memory functions without providing the 64-bit ROM code. Unlike the normal Skip ROM command, the Overdrive Skip ROM sets the DS1977 in the Overdrive mode (OD = 1). All communication following this command has to occur at Overdrive speed until a reset pulse of minimum 480µs duration resets all devices on the bus to standard speed (OD = 0). When issued on a multidrop bus this command will set all Overdrive-supporting devices into Overdrive mode. To subsequently address a specific Overdrive-supporting device, a reset pulse at Overdrive speed has to be issued followed by a Match ROM or Search ROM command sequence. This will speed up the time for the search process. If more than one slave supporting Overdrive is present on the bus and the Overdrive Skip ROM command is followed by a Read command, data collision will occur on the bus as multiple slaves transmit simultaneously (open drain pulldowns will produce a wired-AND result). OVERDRIVE MATCH ROM [69H] The Overdrive Match ROM command followed by a 64-bit ROM sequence transmitted at Overdrive Speed allows the bus master to address a specific DS1977 on a multidrop bus and to simultaneously set it in Overdrive mode. Only the DS1977 that exactly matches the 64-bit ROM sequence will respond to the subsequent memory function command. Slaves already in Overdrive mode from a previous Overdrive Skip or Match command will remain in Overdrive mode. All overdrive-capable slaves will return to standard speed at the next Reset Pulse of minimum 480µs duration. The Overdrive Match ROM command can be used with a single or multiple devices on the bus. 1-Wire SIGNALING The DS1977 requires strict protocols to ensure data integrity. The protocol consists of five types of signaling on one line: Reset Sequence with Reset Pulse and Presence Pulse, Write-Zero, Write-One Read-Data, and strong pullup to supply power over the 1-Wire line. Except for the presence pulse the bus master initiates all these signals. The DS1977 can communicate at two different speeds, standard speed and Overdrive Speed. If not explicitly set into the Overdrive mode, the DS1977 will communicate at standard speed. While in Overdrive mode the fast timing applies to all waveforms. To get from idle to active, the voltage on the 1-Wire line needs to fall from VPUP below the threshold VTL. To get from active to idle, the voltage needs to rise from VILMAX past the threshold VTH. The time it takes for the voltage to make this rise, in Figure 10 as , and its duration depends on the pullup resistor (RPUP) used and capacitance of the 1-Wire network attached. The voltage VILMAX is relevant for the DS1977 when determining a logical level, not triggering any events. The initialization sequence required to begin any communication with the DS1977 is shown in Figure 10. A Reset Pulse followed by a Presence Pulse indicates the DS1977 is ready to receive data, given the correct ROM and memory function command. If the bus master uses slew-rate control on the falling edge, it must pull down the line for tRSTL + tF to compensate for the edge. A tRSTL duration of 480µs or longer will exit the Overdrive mode returning the device to standard speed. If the DS1977 is in Overdrive Mode and tRSTL is no longer than 80µs the device will remain in Overdrive mode. 19 of 29 DS1977 Figure 10. INITIALIZATION PROCEDURE “RESET AND PRESENCE PULSES” MASTER TX “RESET PULSE” MASTER RX “PRESENCE PULSE” tMSP VPUP VIHMASTER VTH VTL VILMAX 0V tF tRSTL RESISTOR tPDH tPDL tRSTH MASTER tREC DS1977 After the bus master has released the line it goes into receive mode (RX). Now the 1-Wire bus is pulled to VPUP via the pullup resistor or, in case of a DS2480B driver, by active circuitry. When the threshold VTH is crossed, the DS1977 waits for tPDH and then transmits a Presence Pulse by pulling the line low for tPDL. To detect a presence pulse, the master must test the logical state of the 1-Wire line at tMSP. The tRSTH window must be at least the sum of tPDHMAX, tPDLMAX, and tRECMIN. Immediately after tRSTH is expired, the DS1977 is ready for data communication. In a mixed population network tRSTH should be extended to minimum 480µs at standard speed and 48µs at Overdrive speed to accommodate other 1-Wire devices. READ/WRITE-TIME SLOTS Data communication with the DS1977 takes place in time slots, which carry a single bit each. Write-time slots transport data from bus master to slave. Read-time slots transfer data from slave to master. The definitions of the write and read-time slots are illustrated in Figure 11. All communication begins with the master pulling the data line low. As the voltage on the 1-Wire line falls below the threshold VTL, the DS1977 starts its internal timing generator that determines when the data line will be sampled during a write-time slot and how long data will be valid during a read-time slot. MASTER-TO-SLAVE For a write-one time slot, the voltage on the data line must have crossed the VTHMAX threshold after the write-one low time tW1LMAX is expired. For a write-zero time slot, the voltage on the data line must stay below the VTHMIN threshold until the write-zero low time tW0LMIN is expired. For most reliable communication the voltage on the data line should not exceed VILMAX during the entire tW0L window. After the VTHMAX threshold has been crossed, the DS1977 needs a recovery time tREC before it is ready for the next time slot. Figure 11. READ/WRITE TIMING DIAGRAM Write-One Time Slot tW1L VPUP VIHMASTER VTH VTL VILMAX 0V tF tSLOT RESISTOR MASTER 20 of 29 DS1977 Figure 11. READ/WRITE TIMING DIAGRAM (continued) Write-Zero Time Slot tW0L VPUP VIHMASTER VTH VTL VILMAX 0V tF tSLOT RESISTOR tREC MASTER Read-Data Time Slot tMSR tRL VPUP VIHMASTER VTH Master Sampling Window VTL VILMAX 0V tF tREC tSLOT RESISTOR MASTER DS1977 SLAVE-TO-MASTER A read-data time slot begins like a write-one time slot. The voltage on the data line must remain below VTLMIN until the read low time tRL is expired. During the tRL window, when responding with a 0, the DS1977 will start pulling the data line low; its internal timing generator determines when this pulldown ends and the voltage starts rising again. When responding with a 1, the DS1977 will not hold the data line low at all, and the voltage starts rising as soon as tRL is over. The sum of tRL + (rise rime) on one side and the internal timing generator of the DS1977 on the other side define the master sampling window (tMSRMIN to tMSRMAX) in which the master must perform a read from the data line. For most reliable communication, tRL should be as short as permissible and the master should read close to but no later than tMSRMAX. After reading from the data line, the master must wait until tSLOT is expired. This guarantees sufficient recovery time tREC for the DS1977 to get ready for the next time slot. IMPROVED NETWORK BEHAVIOR 1-Wire networks can only be terminated during transients controlled by the bus master (1-Wire driver) and are therefore susceptible to noise of various origins. Depending on the physical size and topology of the network, reflections from end points and branch points can add up or cancel each other to some extent. Such reflections are visible as glitches or ringing on the 1-Wire communication line. A glitch during the rising edge of a time slot can cause a slave device to lose synchronization with the master and, as a consequence, result in a search ROM command coming to a dead end. For better performance in network applications, the DS1977 uses a new 1-Wire front end, which makes it less sensitive to noise and also reduces the magnitude of noise injected by the slave device itself. The 1-Wire front end of the DS1977 differs from traditional slave devices in four characteristics. 1) The falling edge of the presence pulse has a controlled slew rate. This provides a better match to the line impedance than a digitally switched transistor, converting the high frequency ringing known from traditional 21 of 29 DS1977 devices into a smoother low-bandwidth transition. The slew rate control is specified by the parameter tFPD, which has different values for standard and Overdrive speed. 2) There is additional low-pass filtering in the circuit that detects the falling edge at the beginning of a time slot. This reduces the sensitivity to high-frequency noise. This additional filtering does not apply at Overdrive speed. 3) There is a hysteresis at the low-to-high switching threshold VTH. If a negative glitch crosses VTH but doesn’t go below VTH - VHY, it will not be recognized (Figure 12, Case A). The hysteresis is effective at any 1-Wire speed. 4) There is a time window specified by the rising edge hold-off time tREH during which glitches will be ignored, even if they extend below VTH - VHY threshold (Figure 12, Case B, tGL < tREH). Deep voltage droops or glitches that appear late after crossing the VTH threshold and extend beyond the tREH window cannot be filtered out and will be taken as beginning of a new time slot (Figure 12, Case C, tGL tREH). Only devices which have the parameters tFPD, VHY and tREH specified in their electrical characteristics use the improved 1-Wire front end. Figure 12. NOISE SUPPRESSION SCHEME tREH VPUP tREH VTH VHY Case A 0V Case B tGL Case C tGL CRC GENERATION With the DS1977 there are two different types of CRCs (Cyclic Redundancy Checks). One CRC is an 8-bit type and is stored in the most significant byte of the 64-bit ROM. The bus master can compute a CRC value from the first 56 bits of the 64-bit ROM and compare it to the value stored within the DS1977 to determine if the ROM data has been received error-free. The equivalent polynomial function of this CRC is: X8 + X5 + X4 + 1. This 8-bit CRC is received in the true (non-inverted) form. It is computed at the factory and lasered into the ROM. The other CRC is a 16-bit type, generated according to the standardized CRC16-polynomial function x16 + x15 + x2 + 1. This CRC is used for error detection when reading the memory using the Read Memory with Password command and for fast verification of a data transfer when writing to or reading from the scratchpad. In contrast to the 8-bit CRC, the 16-bit CRC is always communicated in the inverted form. A CRC-generator inside the DS1977 chip (Figure 13) will calculate a new 16-bit CRC as shown in the command flow chart of Figure 9. The bus master compares the CRC value read from the device to the one it calculates from the data and decides whether to continue with an operation or to reread the portion of the data with the CRC error. With the initial pass through the Read Memory with Password flow chart, the 16-bit CRC value is the result of shifting the command byte into the cleared CRC generator, followed by the 2 address bytes and the data bytes. The password is excluded from the CRC calculation. Subsequent passes through the Read Memory with Password flow chart will generate a 16-bit CRC that is the result of clearing the CRC generator and then shifting in the data bytes. With the Write Scratchpad command the CRC is generated by first clearing the CRC generator and then shifting in the command code, the Target Addresses TA1 and TA2 and all the data bytes. The DS1977 will transmit this CRC only if the data bytes written to the scratchpad include scratchpad ending offset 3Fh. The data may start at any location within the scratchpad. With the Read Scratchpad command the CRC is generated by first clearing the CRC generator and then shifting in the command code, the Target Addresses TA1 and TA2, the E/S byte, and the scratchpad data starting at the target address. The DS1977 will transmit this CRC only if the reading continues through the end of the scratchpad, regardless of the actual ending offset. For more information on generating CRC values see Application Note 27. 22 of 29 DS1977 Figure 13. CRC16 HARDWARE DESCRIPTION AND POLYNOMIAL 16 Polynomial = X st nd 1 STAGE 0 th 8 2 X th 10 STAGE 9 X 10 X 11 X 12 X 13 X 8 STAGE 7 X th 14 STAGE X th 7 STAGE 6 X th 13 STAGE th 6 STAGE 5 X th 12 STAGE th 5 STAGE 4 X th 11 STAGE 2 +X +1 th 4 STAGE 3 X th 9 STAGE th 3 STAGE 1 X X rd 2 STAGE 15 +X th 15 STAGE 16 STAGE 14 15 X X INPUT DATA 16 X CRC OUTPUT COMMAND-SPECIFIC 1-Wire COMMUNICATION PROTOCOL—LEGEND SYMBOL DESCRIPTION RST PD Select WS RS CPS RM VP RV TA TA-E/S <data to EOS> <data to EOP> <PW/dummy> <64 bytes> <data> 00h Password Version CRC16\ FF loop AA loop 1-Wire Reset Pulse Generated by Master 1-Wire Presence Pulse Generated by Slave Command and Data to Satisfy the ROM Function Protocol Command "Write Scratchpad" Command "Read Scratchpad" Command "Copy Scratchpad with Password" Command "Read Memory with Password" Command "Verify Password" Command "Read Version" Target Address TA1, TA2 Target Address TA1, TA2 with E/S Byte Transfer of as Many Data Bytes as are Needed to Reach the Scratchpad Offset 3Fh Transfer of as Many Data Bytes as are Needed to Reach the End of a Memory Page Transfer of 8 Bytes that Either Represent a Valid Password or Acceptable Dummy Data Transfer of 64 Bytes Transfer of an Undetermined Amount of Data Transmission of One Byte 00h Transmission of Password Transmission of Device Version Number Transfer of an Inverted CRC16 Indefinite Loop Where the Master Reads FF Bytes Indefinite Loop Where the Master Reads AA Bytes Data Transfer to/from EEPROM (Data or Passwords Memory); No Activity on the 1-Wire Bus Permitted During this Time Strong Pullup 23 of 29 DS1977 COMMAND-SPECIFIC 1-WIRE COMMUNICATION PROTOCOL—COLOR CODES Master to slave Slave to master Strong Pullup WRITE SCRATCHPAD, REACHING THE END OF THE SCRATCHPAD (CANNOT FAIL) RST PD Select WS TA <data to EOS> CRC16\ FF loop WRITE SCRATCHPAD, NOT REACHING THE END OF THE SCRATCHPAD (CANNOT FAIL) RST PD Select WS TA <data> RST PD READ SCRATCHPAD (CANNOT FAIL) RST PD Select RS TA-E/S <data to EOS> CRC16\ FF loop COPY SCRATCHPAD WITH PASSWORD (SUCCESS) RST PD Select CPS TA-E/S <PW/dummy> Strong Pullup AA loop COPY SCRATCHPAD WITH PASSWORD (FAIL TA-E/S OR PASSWORD) RST PD Select CPS TA-E/S <PW/dummy> Strong Pullup FF loop READ MEMORY WITH PASSWORD (SUCCESS) RST PD Select RM TA <PW/dummy> Strong Pullup Strong Pullup <data to EOP> <64 bytes> CRC16\ CRC16\ FF loop Loop READ MEMORY WITH PASSWORD (FAIL PASSWORD) RST PD Select RM TA <PW/dummy> Strong Pullup 24 of 29 FF loop DS1977 VERIFY PASSWORD (SUCCESS) RST PD Select VP TA Password Strong Pullup AA loop VERIFY PASSWORD (FAIL ADDRESS OR PASSWORD) RST PD Select VP TA Password Strong Pullup FF loop READ VERSION (CANNOT FAIL) RST PD Select RV 00h 00h Version Version FF loop COMMUNICATION EXAMPLES The examples in this section demonstrate the use of the memory functions in typical situations. The first example shows how to read the ROM and the version register. In the second example, passwords are installed. The third example shows how to write a couple of bytes and how to read adjacent memory pages. EXAMPLE 1 Task: Read the ROM and the version register With only a single DS1977 connected to the bus master, the communication is as follows: MASTER MODE TX RX TX RX TX TX RX RX TX RX DATA (LSB FIRST) (Reset) (Presence) 33h <8 Bytes ROM ID> CCh 00h, 00h <Version>, <Version> FFh (Reset) (Presence) COMMENTS Reset Pulse Presence Pulse Issue Read ROM Command Read ROM ID Issue Read Version Register Command Write Two 00h Bytes Read Chip Version Code Twice Additional Reads Result in FFh Bytes Reset Pulse Presence pulse EXAMPLE 2 Task: Install and activate passwords; passwords are currently not activated This task is broken into the following steps: 1. Write new passwords to scratchpad 2. Read Scratchpad 3. Copy scratchpad 4. Verify new passwords 5. Activate password 25 of 29 DS1977 With only a single DS1977 connected to the bus master, the communication is as follows: MASTER MODE Step 1 TX RX TX TX TX Step 2 Step 3 Step 4 DATA (LSB FIRST) (Reset) (Presence) CCh 0Fh C0h TX TX TX 7Fh <Read Password> <Full-Access Password> TX RX TX TX RX RX RX RX (Reset) (Presence) CCh AAh C0h 7Fh 0Fh <16 Bytes> TX RX TX TX (Reset) (Presence) CCh 99h TX TX TX TX C0h 7Fh 0Fh <8 Bytes> (—) RX (Activate Strong Pullup for tPROG) AAh TX RX TX TX TX (Reset) (Presence) CCh C3h C0h TX TX (—) RX TX RX TX TX TX 7Fh <Read Password> (Activate Strong Pullup for tPROG) AAh (Reset) (Presence) CCh C3h C8h 26 of 29 COMMENTS Reset Pulse Presence Pulse Issue Skip ROM Command Issue Write Scratchpad Command TA1, Target Address = C0h (Password Start Address) TA2, Target Address = 7FC0h Write 8-Byte Read Password to Scratchpad Write 8-Byte Full-Access Password to Scratchpad Reset Pulse Presence Pulse Issue Skip ROM Command Issue Read Scratchpad Command Read TA1, Target Address = C0h Read TA2, Target Address = 7FC0h Read E/S-Byte Read Both Passwords from Scratchpad and Compare to what was Written Reset Pulse Presence Pulse Issue Skip ROM Command Issue Copy Scratchpad with Password Command TA1, Target Address = C0h TA2, Target Address = 7FC0h E/S-byte Transmit 8 Dummy Bytes as Password, Because Passwords are Not Yet Enabled Supply Power for Programming Read to Check for Programming Success; AAh Means Success Reset Pulse Presence Pulse Issue Skip ROM Command Issue Verify Password Command TA1, Target Address = C0h (Read Password Address) TA2, target address = 7FC0h Transmit Read Password Supply Power for Password Comparison Check for Password Match; AAh = Match Reset Pulse Presence Pulse Issue Skip ROM Command Issue Verify Password Command TA1, Target Address = C8h (Full-Access DS1977 MASTER MODE DATA (LSB FIRST) TX TX (—) RX TX RX TX TX TX 7Fh <Full-Access Password> (Activate Strong Pullup for tPROG) AAh (Reset) (Presence) CCh 0Fh D0h TX TX TX RX TX TX RX RX RX RX TX RX TX TX 7Fh AAh (Reset) (Presence) CCh AAh D0h 7Fh 10h AAh (Reset) (Presence) CCh 99h TX TX TX TX D0h 7Fh 10h <8 Bytes> (—) RX (Activate Strong Pullup for tPROG) AAh TX RX (Reset) (Presence) Step 5 COMMENTS Password Address) TA2, Target Address = 7FC8h Transmit Full-Access Password Supply Power for Password Comparison Check for Password Match; AAh = Match Reset Pulse Presence Pulse Issue Skip ROM Command Issue Write Scratchpad Command TA1, Target Address = D0h (Password Control Register Address) TA2, Target Address = 7FD0h Write Password Enabling Pattern Reset Pulse Presence Pulse Issue Skip ROM Command Issue Read Scratchpad Command Read TA1, Target Address = D0h Read TA2, Target Address = 7FD0h Read E/S-Byte Verify Password Enabling Pattern Reset Pulse Presence Pulse Issue Skip ROM Command Issue Copy Scratchpad with Password Command TA1, Target Address = D0h TA2, Target Address = 7FD0h E/S-Byte Transmit 8 Dummy Bytes as Password, Because Passwords are Not Yet Enabled Supply Power for Programming Read to Check for Programming Success; AAh Means Success Reset Pulse Presence Pulse Instead of always using Skip ROM, one could use Read ROM first to learn the device's ROM identification (see Example 1). For the next access one would use the Match ROM command and send the correct ROM identification to address the device. Subsequent accesses could use the Resume command. This procedure ensures that devices cannot be swapped during a communication session. EXAMPLE 3 Task: write 10 data bytes starting at address 00A0h in page 2; read memory pages 2 and 3. The device has passwords installed and activated. This task is broken into the following steps: 1. Write data to scratchpad 2. Read Scratchpad 3. Copy scratchpad 4. Read the entire memory page 3 5. Continue reading through the end of page 4 27 of 29 DS1977 With only a single DS1977 connected to the bus master, the communication is as follows: MASTER MODE Step 1 TX RX TX TX TX TX TX TX RX Step 2 TX TX RX RX RX RX Step 3 Step 4 Step 5 DATA (LSB FIRST) (Reset) (Presence) CCh 0Fh A0h 00h <10 Data Bytes> (Reset) (Presence) CCh AAh A0h 00h 29h <10 Bytes> TX RX TX TX (Reset) (Presence) CCh 99h TX TX TX TX (—) RX A0h 00h 29h <Full-Access Password> (Activate Strong Pullup for tPROG) AAh TX RX TX TX (Reset) (Presence) CCh 69h TX TX TX (—) RX RX (—) RX RX TX RX 80h 00h <Read Password> (Activate Strong Pullup for tPROG) <64 Bytes> <2 Bytes CRC16> (Activate Strong Pullup for tPROG) <64 Bytes> <2 Bytes CRC16> (Reset) (Presence) 28 of 29 COMMENTS Reset Pulse Presence Pulse Issue Skip ROM Command Issue Write Scratchpad Command TA1, Target Address = A0h (Start Address) TA2, Target Address = 00A0h Write Data Bytes to Scratchpad Reset Pulse Presence Pulse Issue Skip ROM Command Issue Read Scratchpad Command Read TA1, Target Address = A0h Read TA2, Target Address = 00A0h Read E/S-Byte Read from Scratchpad and Compare to what was Written Reset Pulse Presence Pulse Issue Skip ROM Command Issue Copy Scratchpad with Password Command TA1, Target Address = A0h TA2, Target Address = 00A0h E/S-Byte Transmit Full-Access Password (8 Bytes) Supply Power for Programming Read to Check for Programming Success; AAh Means Success Reset Pulse Presence Pulse Issue Skip ROM Command Issue Read Memory with Password Command TA1, Target Address = 80h TA2, Target Address = 0080h Transmit Read Password (8 Bytes) Supply Power for Reading Read Data from Page 2 Read Inverted CRC16 Supply Power for Reading Read Data from Page 3 Read Inverted CRC16 Reset Pulse Presence Pulse DS1977 REVISION HISTORY REVISION DATE DESCRIPTION 8/09 Added the # sign to the PART number in the Ordering Information table, indicating an RoHS-compliant product. Removed the UL#913 bullet from the Common iButton Features section. 11/09 Applied EC table note 13 to tW0L. Deleted from the tW1L spec in the EC table. VTL/VTH clarification: Added to EC table note 4 the text ", which is a function of ..." Added to EC table notes 13 and 14 the reference to Figure 11 and the text "The actual maximum duration...." Added to the write zero time slot graphic in Figure 11. 29 of 29 PAGES CHANGED 1 3, 21