19-4991; Rev 4; 4/11 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory The DS1923 temperature/humidity logger iButton® is a rugged, self-sufficient system that measures temperature and/or humidity and records the result in a protected memory section. The recording is done at a user-defined rate. A total of 8192 8-bit readings or 4096 16-bit readings, taken at equidistant intervals ranging from 1s to 273hr, can be stored. Additionally, 512 bytes of SRAM store application-specific information and 64 bytes store calibration data. A mission to collect data can be programmed to begin immediately, after a user-defined delay, or after a temperature alarm. Access to the memory and control functions can be password protected. The DS1923 is configured and communicates with a host-computing device through the serial 1-Wire® protocol, which requires only a single data lead and a ground return. Every DS1923 is factory lasered with a guaranteed unique 64-bit registration number that allows for absolute traceability. The durable stainless-steel package is highly resistant to environmental hazards such as dirt, moisture, and shock. Accessories permit the DS1923 to be mounted on almost any object, including containers, pallets, and bags. Applications Temperature and Humidity Logging in Food Preparation and Processing Transportation of Temperature-Sensitive and Humidity-Sensitive Goods, Industrial Production Warehouse Monitoring Environmental Studies/Monitoring Features ♦ Digital Hygrometer Measures Humidity with 8-Bit (0.6%RH) or 12-Bit (0.04%RH) Resolution ♦ Operating Range: -20°C to +85°C; 0 to 100%RH (see Safe Operating Range Graph) ♦ Automatically Wakes Up, Measures Temperature and/or Humidity, and Stores Values in 8KB of Data-Log Memory in 8-Bit or 16-Bit Format ♦ Digital Thermometer Measures Temperature with 8-Bit (0.5°C) or 11-Bit (0.0625°C) Resolution ♦ Temperature Accuracy Better Than ±0.5°C from -10°C to +65°C with Software Correction ♦ Built-In Capacitive Polymer Humidity Sensor for Humidity Logging ♦ Hydrophobic Filter Protects Sensor Against Dust, Dirt, Contaminants, and Water Droplets/Condensation ♦ Sampling Rate from 1s Up to 273hr ♦ Programmable Recording Start Delay After Elapsed Time or Upon a Temperature Alarm Trip Point ♦ Programmable High and Low Trip Points for Temperature and Humidity Alarms ♦ Quick Access to Alarmed Devices Through 1-Wire Conditional Search Function ♦ 512 Bytes of General-Purpose Memory Plus 64 Bytes of Calibration Memory ♦ Two-Level Password Protection of All Memory and Configuration Registers ♦ Communicates to Host with a Single Digital Signal at Up to 15.4kbps at Standard Speed or Up to 125kbps in Overdrive Mode Using 1-Wire Protocol ♦ Individually Calibrated in an NIST-Traceable Chamber ♦ Calibration Coefficients for Temperature and Humidity Factory Programmed Into Nonvolatile (NV) Memory Common iButton Features ♦ Digital Identification and Information by Momentary Contact ♦ Unique Factory-Lasered 64-Bit Registration Number Ensures 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 Compactly Stores Information ♦ Data Can Be Accessed While Affixed to Object ♦ Button Shape is Self-Aligning with Cup-Shaped Probes ♦ Durable Stainless-Steel Case Engraved with Registration Number Withstands Harsh Environments ♦ 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 ♦ Meets UL 913, 5th Ed., Rev. 1997-02-24; Intrinsically Safe Apparatus: Approved Under Entity Concept for Use in Class I, Division 1, Group A, B, C, and D Locations Ordering Information PART DS1923-F5# TEMP RANGE PIN-PACKAGE -20°C to +85°C F5 iButton #Denotes a RoHS-compliant device that may include lead(Pb) that is exempt under the RoHS requirements. Examples of Accessories PART DS9096P DS9101 DS9093RA DS9093A DS9092 ACCESSORY Self-Stick Adhesive Pad Multipurpose Clip Mounting Lock Ring Snap-In FOB iButton Probe Pin Configuration appears at end of data sheet. iButton and 1-Wire are registered trademarks of Maxim Integrated Products, Inc. ________________________________________________________________ Maxim Integrated Products For pricing, delivery, and ordering information, please contact Maxim Direct at 1-888-629-4642, or visit Maxim’s website at www.maxim-ic.com. 1 DS1923 General Description DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory ABSOLUTE MAXIMUM RATINGS IO Voltage Range Relative to GND ..........................-0.3V to +6V IO Sink Current....................................................................20mA Operating Temperature and Humidity Range ................-20°C to +85°C, 0 to 100%RH* Storage Temperature and Humidity Range ................-40°C to +85°C, 0 to 100%RH* *See the Safe Operating Range graph. 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 absolute maximum rating conditions for extended periods may affect device reliability. ELECTRICAL CHARACTERISTICS (VPUP = +3.0V to +5.25V, TA = -20°C to +85°C.) (Note 31) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS 2.2 k IO PIN: GENERAL DATA 1-Wire Pullup Resistance RPUP Input Capacitance CIO Input Load Current IL (Notes 1, 2) (Note 3) IO pin at VPUP High-to-Low Switching Threshold VTL (Notes 4, 5) Input Low Voltage VIL (Notes 1, 6) Low-to-High Switching Threshold VTH (Notes 4, 7) Switching Hysteresis VHY (Note 8) Output Low Voltage VOL At 4mA (Note 9) Recovery Time (Note 1) Rising-Edge Hold-Off Time Time-Slot Duration (Note 1) tREC tREH t SLOT Standard speed, RPUP = 2.2k Overdrive speed, RPUP = 2.2k Overdrive speed directly prior to reset pulse, RPUP = 2.2k 100 800 pF 6 10 μA 3.2 V 0.4 0.3 V 0.7 3.4 V 0.09 N/A V 0.4 V 5 2 μs 5 (Note 10) 0.6 Standard speed 65 Overdrive speed, VPUP > 4.5V Overdrive speed (Note 11) 8 2.0 μs μs 9.5 IO PIN: 1-Wire RESET, PRESENCE-DETECT CYCLE Reset Low Time (Note 1) Presence-Detect High Time Presence-Detect Fall Time (Note 12) 2 tRSTL t PDH tFPD Standard speed, VPUP > 4.5V Standard speed (Note 11) 480 720 690 720 Overdrive speed, VPUP > 4.5V 48 80 Overdrive speed (Note 11) 70 80 Standard speed, VPUP > 4.5V 15 60 Standard speed (Note 11) 15 63.5 Overdrive speed (Note 11) 2 7 Standard speed, VPUP > 4.5V 1.5 5 Standard speed 1.5 8 Overdrive speed 0.15 1 _______________________________________________________________________________________ μs μs μs Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory (VPUP = +3.0V to +5.25V, TA = -20°C to +85°C.) (Note 31) PARAMETER Presence-Detect Low Time Presence-Detect Sample Time (Note 1) SYMBOL t PDL tMSP CONDITIONS MIN TYP MAX Standard speed, VPUP > 4.5V 60 240 Standard speed (Note 11) 60 287 Overdrive speed, VPUP > 4.5V (Note 11) Overdrive speed (Note 11) 7 24 7 28 Standard speed, VPUP > 4.5V 65 75 Standard speed 71.5 75 Overdrive speed 8 9 Standard speed 60 120 UNITS μs μs IO PIN: 1-Wire WRITE Write-Zero Low Time (Notes 1, 13) tW0L Overdrive speed, VPUP > 4.5V (Note 11) 6 12 7.5 12 Standard speed 5 15 Overdrive speed 1 1.95 Standard speed 5 15 - Overdrive speed 1 1.95 - Standard speed tRL + 15 Overdrive speed tRL + 1.95 Overdrive speed (Note 11) Write-One Low Time (Notes 1, 13) tW1L μs μs IO PIN: 1-Wire READ Read Low Time (Notes 1, 14) tRL Read Sample Time (Notes 1, 14) tMSR μs μs REAL-TIME CLOCK (RTC) Accuracy See RTC Accuracy graph Frequency Deviation F -20°C to +85°C -300 +60 Min/ Month ppm TEMPERATURE CONVERTER Conversion Time tCONV Thermal Response Time Constant RESP Conversion Error Without Software Correction Conversion Error with Software Correction 8-bit mode (Note 15) 30 75 16-bit mode (11 bits) 240 600 iButton package (Note 16) ms 130 s (Notes 15, 17, 18, 19) See the Temperature Accuracy graph °C (Notes 15, 17, 18, 19) See the Temperature Accuracy graph °C RH Slow moving air (Note 21) 30 s HUMIDITY CONVERTER (Note 20) Humidity Response Time Constant RH Resolution (Note 22) RH Range (Note 23) 8 12 12 0.64 0.04 0.04 %RH 100 %RH 0 Bits _______________________________________________________________________________________ 3 DS1923 ELECTRICAL CHARACTERISTICS (continued) DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory ELECTRICAL CHARACTERISTICS (continued) (VPUP = +3.0V to +5.25V, TA = -20°C to +85°C.) (Note 31) PARAMETER SYMBOL CONDITIONS MIN TYP MAX UNITS RH Accuracy and Interchangeability With software correction (Notes 18, 19, 24, 25, 26) ±5 RH Nonlinearity With software correction (Note 18) <1 RH Hysteresis (Notes 27, 28) 0.5 %RH RH Repeatability (Note 29) ±0.5 %RH Long-Term Stability At 50%RH (Note 30) < 1.0 %RH/ year 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: Note 15: Note 16: Note 17: Note 18: Note 19: Note 20: Note 21: Note 22: 4 %RH 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 in the DS2480B may be required. Capacitance on the data pin could be 800pF when VPUP is first applied. If a 2.2kΩ resistor is used to pull up the data line, 2.5μs after VPUP has been applied, the parasite capacitance does not affect normal communications. 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 VPUP = 5.25V. In any case, VTL < VTH < VPUP. Voltage below which, during a falling edge on IO, a logic 0 is detected. The voltage on IO must be less than or equal to VILMAX whenever the master drives the line low. Voltage above which, during a rising edge on IO, a logic 1 is detected. After VTH is crossed during a rising edge on IO, the voltage on IO must 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 previously reached. Numbers in bold are not in compliance with the published iButton standards. See the Comparison Table. Interval during the negative edge on IO 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 13 represents the time required for the pullup circuitry to pull the voltage on IO 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 13 represents the time required for the pullup circuitry to pull the voltage on IO 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. To conserve battery power, use 8-bit temperature logging whenever possible. This number was derived from a test conducted by Cemagref in Antony, France, in July 2000: www.cemagref.fr/English/index.htm Test Report No. E42. For software-corrected accuracy, assume correction using calibration coefficients with calibration equations for error compensation. Software correction for humidity and temperature is handled automatically using the 1-Wire Viewer Software package available at: www.ibutton.com. Warning: Not for use as the sole method of measuring or tracking temperature and/or humidity in products and articles that could affect the health or safety of persons, plants, animals, or other living organisms, including but not limited to foods, beverages, pharmaceuticals, medications, blood and blood products, organs, and flammable and combustible products. User shall assure that redundant (or other primary) methods of testing and determining the handling methods, quality, and fitness of the articles and products should be implemented. Temperature and/or humidity tracking with this product, where the health or safety of the aforementioned persons or things could be adversely affected, is only recommended when supplemental or redundant information sources are used. Data-logger products are 100% tested and calibrated at time of manufacture by Maxim to ensure that they meet all data sheet parameters, including temperature accuracy. User shall be responsible for proper use and storage of this product. As with any sensor-based product, user shall also be responsible for occasionally rechecking the accuracy of the product to ensure it is still operating properly. All humidity specifications are determined at +25°C except where specifically indicated. Response time is determined by measuring the 1/e point as the device transitions from 40%RH to 90%RH or 90%RH to 40%RH, whichever is slower. Test was performed at 5L/min airflow. All DS1923 humidity measurements are 12-bit readings. Missioning determines 8-bit or 16-bit data logging. Battery lifetime is the same no matter what RH resolution is logged. _______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory DS1923 ELECTRICAL CHARACTERISTICS (continued) (VPUP = +3.0V to +5.25V, TA = -20°C to +85°C.) (Note 31) Note 23: Reliability studies have shown that the device survives a minimum of 1000 cycles of condensation and drying, but this product is not guaranteed for extended use in condensing environments. Note 24: Software-corrected accuracy is accomplished using the method detailed in the Software Correction Algorithm for Temperature section. Note 25: Every DS1923 device is measured and calibrated in a controlled, NIST-traceable RH environment. Note 26: Higher accuracy versions may be available. Contact the factory for details. Note 27: If this device is exposed to a high humidity environment (> 70%RH), and then exposed to a lower RH environment, the device reads high for a period of time. The device typically reads within +0.5%RH at 20%RH, 30 minutes after being exposed to continuous 80%RH for 30 minutes. Note 28: All capacitive RH sensors can change their reading depending upon how long they have spent at high (> 70%RH) or low RH (< 20%RH). This effect is called saturation drift and can be compensated through software, as described in the Software Saturation Drift Compensation section. Note 29: Individual RH readings always include a noise component (repeatability). To minimize measurement error, average as many samples as is reasonable. Note 30: Like all relative humidity sensors, when exposed to contaminants and/or conditions toward the limits of the safe operating range, accuracy degradation can result (see the Safe Operating Range graph). For maximum long-term stability, the sensor should not be exposed or subjected to organic solvents, corrosive agents (e.g., strong acids, SO2, H2SO4, CI2, HCL, H2S) and strong bases (i.e., compounds with a pH greater than 7). Dust settling on the filter surface does not affect the sensor performance except to possibly decrease the speed of response. For more information on the RH sensor’s tolerance to chemicals visit: http://content.honeywell.com/sensing/prodinfo/humiditymoisture/technical/c15_144.pdf. Note 31: Guaranteed by design; not production tested to -20°C. COMPARISON TABLE LEGACY VALUES STANDARD SPEED (μs) PARAMETER MIN MAX DS1923 VALUES OVERDRIVE SPEED (μs) MIN MAX STANDARD SPEED (μs) MIN * OVERDRIVE SPEED (μs) MAX MIN MAX t SLOT (including tREC) 61 (undefined) 7 (undefined) 65 (undefined) 9.5 (undefined) tRSTL 480 (undefined) 48 80 690 720 70 80 t PDH 15 60 2 6 15 63.5 2 7 t PDL 60 240 8 24 60 287 7 28 tW0L 60 120 6 16 60 120 7.5 12 *Intentional change; longer recovery time requirement due to modified 1-Wire front-end. Note: Numbers in bold are not in compliance with the published iButton standards. iButton CAN PHYSICAL SPECIFICATION SIZE See the Package Information section. WEIGHT Ca. 5.0 grams SAFETY Meets UL 913, 5th Ed., Rev. 1997-02-24; Intrinsically Safe Apparatus, approval under Entity Concept for use in Class I, Division 1, Group A, B, C, and D Locations. _______________________________________________________________________________________ 5 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory DS1923 Safe Operating Range 100 HUMIDITY (%RH) 80 60 SAFE OPERATING ZONE 40 STORAGE ONLY 20 0 -40 -20 0 20 40 60 80 TEMPERATURE (°C) Temperature Accuracy 2.0 1.5 ERROR (°C) 1.0 UNCORRECTED MAXIMUM ERROR 0.5 SW CORRECTED MAXIMUM ERROR 0 SW CORRECTED MINIMUM ERROR -0.5 UNCORRECTED MINIMUM ERROR -1.0 -20 -10 0 10 20 30 40 50 60 70 80 TEMPERATURE (°C) NOTE: THE GRAPHS ARE BASED ON 11-BIT DATA. 6 _______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory EVERY MINUTE EVERY 60 MINUTES EVERY 3 MINUTES NO SAMPLES EVERY 10 MINUTES OSCILLATOR OFF 10 8-BIT MINIMUM PRODUCT LIFETIME (YEARS) 9 8 7 6 5 4 3 2 1 0 -20 -10 0 10 20 30 40 50 60 70 80 TEMPERATURE (°C) EVERY MINUTE EVERY 60 MINUTES EVERY 3 MINUTES EVERY 300 MINUTES EVERY 10 MINUTES NO SAMPLES EVERY 30 MINUTES OSCILLATOR OFF 11-BIT MINIMUM PRODUCT LIFETIME (YEARS) 10 9 8 7 6 5 4 3 2 1 0 -20 -10 0 10 20 30 40 50 60 70 80 TEMPERATURE (°C) _______________________________________________________________________________________ 7 DS1923 Minimum Lifetime vs. Temperature, Slow Sampling (Temperature Only) Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory DS1923 Minimum Lifetime vs. Temperature, Fast Sampling (Temperature Only) EVERY SECOND EVERY 30 SECONDS EVERY 3 SECONDS EVERY 60 SECONDS EVERY 10 SECONDS 8-BIT MINIMUM PRODUCT LIFETIME (DAYS) 350 300 250 200 150 100 50 0 -20 -10 0 10 20 30 40 50 60 70 80 70 80 TEMPERATURE (°C) EVERY SECOND EVERY 30 SECONDS EVERY 3 SECONDS EVERY 60 SECONDS EVERY 10 SECONDS 11-BIT MINIMUM PRODUCT LIFETIME (DAYS) 100 80 60 40 20 0 -20 -10 0 10 20 30 40 50 60 TEMPERATURE (°C) 8 _______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory EVERY MINUTE EVERY 60 MINUTES EVERY 3 MINUTES NO SAMPLES EVERY 10 MINUTES OSCILLATOR OFF 10 8-BIT TEMPERATURE PLUS HUMIDITY MINIMUM PRODUCT LIFETIME (YEARS) 9 8 7 6 5 4 3 2 1 0 -20 -10 0 10 20 30 40 50 60 70 80 TEMPERATURE (°C) Minimum Lifetime vs. Temperature, Fast Sampling (Temperature with Humidity) EVERY SECOND EVERY 30 SECONDS EVERY 3 SECONDS EVERY 60 SECONDS EVERY 10 SECONDS 8-BIT TEMPERATURE PLUS HUMIDITY MINIMUM PRODUCT LIFETIME (DAYS) 350 300 250 200 150 100 50 0 -20 -10 0 10 20 30 40 50 60 70 80 TEMPERATURE (°C) _______________________________________________________________________________________ 9 DS1923 Minimum Lifetime vs. Temperature, Slow Sampling (Temperature with Humidity) Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory DS1923 Minimum Product Lifetime vs. Sample Rate (Temperature Only) 10 0°C +40°C 8-BIT MINIMUM PRODUCT LIFETIME (YEARS) +60°C +75°C 1 +85°C 0.1 0.01 0.01 0.1 1 10 100 MINUTES BETWEEN SAMPLES NOTE: WITH HUMIDITY LOGGING ACTIVATED, THE LIFETIME IS REDUCED BY LESS THAN 11% FOR THE SAMPLE RATES OF 3MIN. AND SLOWER, AND BY A MAXIMUM OF 20% FOR SAMPLE RATES OF 1MIN. AND FASTER. 10 0°C +40°C 11-BIT MINIMUM PRODUCT LIFETIME (YEARS) +60°C +75°C 1 +85°C 0.1 0.01 0.001 0.01 0.1 1 10 100 MINUTES BETWEEN SAMPLES NOTE: WITH HUMIDITY LOGGING ACTIVATED, THE LIFETIME IS REDUCED BY A MAXIMUM OF 4%. THE INCREMENTAL ENERGY CONSUMED BY HUMIDITY LOGGING IS INDEPENDENT OF THE HUMIDITY LOGGING RESOLUTION. 10 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 2.0 1.0 DRIFT (MINUTES/MONTH) 0.0 -1.0 -2.0 -3.0 -4.0 -5.0 -20 -10 0 10 20 30 40 50 60 70 80 TEMPERATURE (°C) Detailed Description The DS1923 is an ideal device to monitor for extended periods of time the temperature and humidity of any object it is attached to or shipped with, such as fresh produce, medical drugs and supplies, and for use in refrigerators and freezers, as well as for logging climatic data during the transport of sensitive objects and critical processes such as curing. A 1.27mm diameter hole in the lid of the device allows for air to reach the humidity sensor. The rest of the electronics inside the DS1923 is sealed so that it is not exposed to ambient humidity. Note that the initial sealing level of the DS1923 achieves the equivalent of IP56. Aging and use conditions can degrade the integrity of the seal over time, so for applications with significant exposure to liquids, sprays, or other similar environments, it is recommended to place the Hygrochron™ under a shield to protect it (refer to Application Note 4126: Understanding the IP (Ingress Protection) Ratings of iButton Data Loggers and Capsule). The hydrophobic filter may not protect the DS1923 from destruction in the event of full submersion in liquid. Software for setup and data retrieval through the 1-Wire interface is available for free download from the iButton website (www.ibutton.com). Hygrochron is a trademark of Maxim Integrated Products, Inc. This software also includes drivers for the serial and USB port of a PC and routines to access the general-purpose memory for storing application-specific or equipmentspecific data files. All iButton data loggers are calibrated/validated against NIST traceable reference devices. Maxim offers a web application to generate validation certificates for the DS1922L, DS1922T, DS1922E, and DS1923 (temperature portion only) data loggers. Input is the iButton’s ROM code (or list of codes) and the output is a validation certificate in PDF format. For more information, refer to Application Note 4629: iButton® Data-Logger Calibration and NIST Certificate FAQs. Overview The block diagram in Figure 1 shows the relationships between the major control and memory sections of the DS1923. The device has six main data components: 64-bit lasered ROM; 256-bit scratchpad; 512-byte general-purpose SRAM; two 256-bit register pages of timekeeping, control, status, and counter registers and passwords; 64 bytes of calibration memory; and 8192 bytes of data-logging memory. Except for the ROM and the scratchpad, all other memory is arranged in a single linear address space. The data-logging memory, counter registers, and several other registers are ______________________________________________________________________________________ 11 DS1923 RTC Accuracy (Typical) DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 1-Wire PORT ROM FUNCTION CONTROL IO 64-BIT LASERED ROM MEMORY FUNCTION CONTROL 3V LITHIUM PARASITE-POWERED CIRCUITRY 256-BIT SCRATCHPAD DS1923 GENERAL-PURPOSE SRAM (512 BYTES) INTERNAL TIMEKEEPING, CONTROL REGISTERS, AND COUNTERS 32.768kHz OSCILLATOR THERMAL SENSE HUMIDITY SENSOR AND ADC2 REGISTER PAGES (64 BYTES) CALIBRATION MEMORY (64 BYTES) ADC1 CONTROL LOGIC DATA-LOG MEMORY 8KB Figure 1. Block Diagram read only for the user. Both register pages are write protected while the device is programmed for a mission. The password registers, one for a read password and another one for a read/write password, can only be written, never read. accessible and the master can provide any one of the eight available commands. The protocol for these memory and control function commands is described in Figure 9. All data is read and written least significant bit first. Figure 2 shows the hierarchical structure of the 1-Wire protocol. The bus master must first provide one of the eight ROM function commands: Read ROM, Match ROM, Search ROM, Conditional Search ROM, Skip ROM, Overdrive-Skip ROM, Overdrive-Match ROM, or Resume. Upon completion of an Overdrive-ROM command executed at standard speed, the device enters overdrive mode, where all subsequent communication occurs at a higher speed. The protocol required for these ROM function commands is described in Figure 11. After a ROM function command is successfully executed, the memory and control functions become The block diagram (Figure 1) shows the parasite-powered circuitry. This circuitry “steals” power whenever the IO input is high. IO provides sufficient power as long as the specified timing and voltage requirements are met. The advantages of parasite power are twofold: 1) By parasiting off this input, battery power is not consumed for 1-Wire ROM function commands, and 2) if the battery is exhausted for any reason, the ROM may still be read normally. The remaining circuitry of the DS1923 is solely operated by battery energy. 12 Parasite Power ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 1-Wire NET BUS MASTER OTHER DEVICES DS1923 COMMAND LEVEL: AVAILABLE COMMANDS: DATA FIELD AFFECTED: 1-Wire ROM FUNCTION COMMANDS READ ROM MATCH ROM SEARCH ROM CONDITIONAL SEARCH ROM SKIP ROM RESUME OVERDRIVE-SKIP ROM OVERDRIVE-MATCH ROM 64-BIT ROM, RC-FLAG 64-BIT ROM, RC-FLAG 64-BIT ROM, RC-FLAG 64-BIT ROM, RC-FLAG, ALARM FLAGS, SEARCH CONDITIONS RC-FLAG RC-FLAG RC-FLAG, OD-FLAG 64-BIT ROM, RC-FLAG, OD-FLAG WRITE SCRATCHPAD READ SCRATCHPAD COPY SCRATCHPAD WITH PW READ MEMORY WITH PW AND CRC CLEAR MEMORY WITH PW 256-BIT SCRATCHPAD, FLAGS 256-BIT SCRATCHPAD 512-BYTE DATA MEMORY, REGISTERS, FLAGS, PASSWORDS MEMORY, REGISTERS, PASSWORDS MISSION TIMESTAMP, MISSION SAMPLES COUNTER, START DELAY, ALARM FLAGS, PASSWORDS MEMORY ADDRESSES 020Ch TO 020Fh FLAGS, TIMESTAMP, MEMORY ADDRESSES 020Ch TO 020Fh (WHEN LOGGING) FLAGS DS1923-SPECIFIC MEMORY/CONTROL FUNCTION COMMANDS FORCED CONVERSION START MISSION WITH PW STOP MISSION WITH PW Figure 2. Hierarchical Structure for 1-Wire Protocol MSB LSB 8-BIT CRC CODE MSB 8-BIT FAMILY CODE (41h) 48-BIT SERIAL NUMBER LSB MSB LSB MSB LSB Figure 3. 64-Bit Lasered ROM ______________________________________________________________________________________ 13 DS1923 Understanding and Using Cyclic Redundancy Checks with Maxim iButton Products. 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, the serial number is entered. After the last 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. 64-Bit Lasered ROM Each DS1923 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 cyclic redundancy check (CRC) of the first 56 bits (see Figure 3 for details). The 1-Wire CRC is generated using a polynomial generator consisting of a shift register and XOR gates as shown in Figure 4. The polynomial is X8 + X5 + X4 + 1. Additional information about the 1-Wire CRC is available in Application Note 27: DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory POLYNOMIAL = X8 + X5 + X4 + 1 1ST STAGE X0 2ND STAGE X1 3RD STAGE X2 4TH STAGE 5TH STAGE X3 X4 6TH STAGE X5 7TH STAGE X6 8TH STAGE X7 X8 INPUT DATA Figure 4. 1-Wire CRC Generator 32-BYTE INTERMEDIATE STORAGE SCRATCHPAD ADDRESS 0000h TO 001Fh 32-BYTE GENERAL-PURPOSE SRAM (R/W) PAGE 0 0020h TO 01FFh GENERAL-PURPOSE SRAM (R/W) PAGES 1 TO 15 0200h TO 021Fh 32-BYTE REGISTER PAGE 1 PAGE 16 0220h TO 023Fh 32-BYTE REGISTER PAGE 2 PAGE 17 0240h TO 025Fh CALIBRATION MEMORY PAGE 1 (R/W) PAGE 18 0260h TO 027Fh CALIBRATION MEMORY PAGE 2 (R/W) PAGE 19 0280h TO 0FFFh (RESERVED FOR FUTURE EXTENSIONS) PAGES 20 TO 127 1000h TO 2FFFh DATA-LOG MEMORY (READ ONLY) PAGES 128 TO 383 Figure 5. Memory Map Memory Figure 5 shows the DS1923 memory map. Pages 0 to 15 contain 512 bytes of general-purpose SRAM. The various registers to set up and control the device fill pages 16 and 17, called register pages 1 and 2 (see Figure 6 for details). Pages 18 and 19 can be used as storage space for calibration data. The data-log logging memory starts at address 1000h (page 128) and extends over 256 pages. The memory pages 20 to 127 are reserved for future extensions. The scratchpad is an additional page that acts as a buffer when 14 writing to the SRAM memory or the register pages. The calibration memory holds data from the device calibration that can be used to further improve the accuracy of temperature and humidity readings. See the Software Correction Algorithm sections for details. The last byte of the calibration memory page stores an 8-bit CRC of the preceding 31 bytes. Page 19 is an exact copy of the data in page 18. While the user can overwrite the calibration memory, this is not recommended. See the Security by Password section for ways to protect the memory. The access type for the ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 behavior of the write access logic (write scratchpad, copy scratchpad), it is recommended to only write full pages at a time. This also applies to the register pages. See the Address Registers and Transfer Status section for details. BIT 3 BIT 2 BIT 1 0200h 0 10 Seconds Single Seconds 0201h 0 10 Minutes Single Minutes 0202h 0 12/24 0203h 0 0 0204h CENT 0 0205h 20 Hour AM/PM 0 Single Date 10 Months R/W R Sample Rate R/W R Temperature Alarms R/W R Humidity Alarms R/W R Latest Temperature R R Latest Humidity R R Single Years Low Byte 0 High Byte 0208h Low Threshold 0209h High Threshold 020Ah Low Threshold 020Bh High Threshold 020Ch ACCESS* Single Months 10 Years 0 FUNCTION RealTime Clock Registers Single Hours 10 Date 0206h 0207h 10 Hour BIT 0 Low Byte 0 020Dh 0 0 0 0 High Byte 020Eh Low Byte 020Fh High Byte 0210h 0 0 0 0 0 0 ETHA ETLA Temperature Alarm Enable R/W R 0211h 1 1 1 1 1 1 EHHA EHLA Humidity Alarm Enable R/W R 0212h 0 0 0 0 0 0 EHSS EOSC RTC Control R/W R R/W R 0213h 1 1 SUTA RO HLFS TLFS EHL ETL Mission Control 0214h BOR 1 1 1 HHF HLF THF TLF Alarm Status R R 0215h 1 1 0 WFTA MEMCLR 0 MIP 0 General Status R R Start Delay Counter R/W R 0216h Low Byte 0217h Center Byte 0218h High Byte *The left entry in the ACCESS column is valid between missions. The right entry shows the applicable access type while a mission is in progress. Figure 6. Register Pages Map ______________________________________________________________________________________ 15 DS1923 register pages is register-specific and depends on whether the device is programmed for a mission. Figure 6 shows the details. The data-log memory is read only for the user. It is written solely under supervision of the on-chip control logic. Due to the special DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory ADDRESS BIT 7 0219h 0 10 Seconds Single Seconds 021Ah 0 10 Minutes Single Minutes 021Bh 0 12/24 20 Hour AM/PM 021Ch 0 0 021Dh CENT 0 021Eh BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 10 Hour Single Hours 10 Date 0 BIT 1 Single Date 10 Months BIT 0 FUNCTION ACCESS* Mission Timestamp R R Single Months 10 Years Single Years 021Fh (No Function; Reads 00h) — R R 0220h Low Byte 0221h Center Byte R R 0222h High Byte Mission Samples Counter Device Samples Counter R R 0223h Low Byte 0224h Center Byte 0225h High Byte 0226h Configuration Code Flavor R R 0227h EPW PW Control R/W R 0228h First Byte … … W — 022Fh Eighth Byte Read Access Password 0230h First Byte … … W — 0237h Eighth Byte Full Access Password (No function; all these bytes read 00h) — R R 0238h … 023Fh *The left entry in the ACCESS column is valid between missions. The right entry shows the applicable access type while a mission is in progress. Figure 6. Register Pages Map (continued) 16 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Timekeeping and Calendar The RTC and calendar information is accessed by reading/writing the appropriate bytes in the register page, address 0200h to 0205h. For readings to be valid, all RTC registers must be read sequentially starting at address 0200h. Some of the RTC bits are set to 0. These bits always read 0 regardless of how they are written. The number representation of the RTC registers is binary-coded decimal (BCD) format. The DS1923’s RTC can run in either 12hr or 24hr mode. Bit 6 of the Hours register (address 0202h) is defined as the 12hr or 24hr mode select bit. When high, the 12hr mode is selected. In the 12hr mode, bit 5 is the AM/PM bit with logic 1 being PM. In the 24hr mode, bit 5 is the 20hr bit (20hr to 23hr). The CENT bit, bit 7 of the Months register, can be written by the user. This bit changes its state when the years counter transitions from 99 to 00. The calendar logic is designed to automatically compensate for leap years. For every year value that is either 00 or a multiple of 4, the device adds a 29th of February. This works correctly up to (but not including) the year 2100. Sample Rate The content of the Sample Rate register (addresses 0206h, 0207h) specifies the time elapse (in seconds if EHSS = 1, or minutes if EHSS = 0) between two temperature/humidity-logging events. The sample rate can be any value from 1 to 16,383, coded as an unsigned 14-bit binary number. If EHSS = 1, the shortest time between logging events is 1s and the longest (sample rate = 3FFFh) is 4.55hr. If EHSS = 0, the shortest is 1min and the longest time is 273.05hr (sample rate = 3FFFh). The EHSS bit is located in the RTC Control register at address 0212h. It is important that the user sets the EHSS bit accordingly while setting the Sample Rate register. Writing a sample rate of 0000h results in a sample rate = 0001h, causing the DS1923 to log the temperature either every minute or every second depending upon the state of the EHSS bit. RTC Registers Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 0200h 0 10 Seconds Single Seconds 0201h 0 10 Minutes Single Minutes 0202h 0 12/24 0203h 0 0 0204h CENT 0 0205h 20 Hour AM/PM 10 Hour Single Hours 10 Date 0 BIT 0 Single Date 10 Months Single Months 10 Years Single Years Note: During a mission, there is only read access to these registers. Bit cells marked “0” always read 0 and cannot be written to 1. Sample Rate Register Bitmap ADDRESS BIT 7 BIT 6 0 0 0206h 0207h BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 Sample Rate Low Sample Rate High Note: During a mission, there is only read access to these registers. Bit cells marked “0” always read 0 and cannot be written to 1. ______________________________________________________________________________________ 17 DS1923 Detailed Register Descriptions DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Temperature Conversion The DS1923’s temperature range begins at -20°C and ends at +85°C. Temperature values are represented as an 8-bit or 16-bit unsigned binary number with a resolution of 0.5°C in 8-bit mode and 0.0625°C in 16-bit mode. The higher temperature byte TRH is always valid. In 16-bit mode, only the three highest bits of the lower byte TRL are valid. The five lower bits all read 0. TRL is undefined if the device is in 8-bit temperature mode. An out-of-range temperature reading is indicated as 00h or 0000h when too cold and FFh or FFE0h when too hot. With TRH and TRL representing the decimal equivalent of a temperature reading, the temperature value is calculated as: ϑ(°C) = TRH/2 - 41 + TRL/512 (16-bit mode, TLFS = 1, see address 0213h) ϑ(°C) = TRH/2 - 41 (8-bit mode, TLFS = 0, see address 0213h) This equation is valid for converting temperature readings stored in the data-log memory as well as for data read from the Latest Temperature Conversion Result register. To specify the temperature alarm thresholds, the previous equations are resolved to: Because the temperature alarm threshold is only one byte, the resolution or temperature increment is limited to 0.5°C. The TALM value must be converted into hexadecimal format before it can be written to one of the Temperature Alarm Threshold registers (Low Alarm address 0208h; High Alarm address 0209h). Independent of the conversion mode (8-bit or 16-bit), only the most significant byte of a temperature conversion is used to determine whether an alarm is generated. Humidity Conversion In addition to temperature, the DS1923 can log humidity data in an 8-bit or 16-bit format. Humidity values are represented as 8-bit or 16-bit unsigned binary numbers with a resolution of 0.64%RH in the 8-bit mode and 0.04%RH in the 16-bit mode. The DS1923 reads data from its humidity sensor whenever a Forced Conversion command is executed (see the Memory and Control Function Commands section) or during a mission if the device is set up to log humidity data. Regardless of its setup, the DS1923 always reads 16 bits from the humidity sensor. The result of the latest humidity reading is found at address 020Eh (low byte) and 020Fh (high byte). The most significant bit read from the humidity sensor can always be found as H11 at address 020Fh. Due to the 12-bit digital output of the humidity sensor, the lower 4 bits in 16-bit format are undefined. TALM = 2 x ϑ(°C) + 82 Latest Temperature Conversion Result Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 BYTE 020Ch T2 T1 T0 0 0 0 0 0 TRL 020Dh T10 T9 T8 T7 T6 T5 T4 T3 TRH Table 1. Temperature Conversion Examples MODE TRH HEX TRL DECIMAL HEX DECIMAL 8-Bit 54h 84 — — 1.0 8-Bit 17h 23 — — -29.5 16-Bit 54h 84 00h 0 1.000 16-Bit 17h 23 60h 96 -29.3125 Table 2. Temperature Alarm Threshold Examples (°C) 18 (°C) TALM HEX DECIMAL 25.5 85h 133 -10.0 3Eh 62 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 BYTE 020Eh H3 H2 H1 H0 X X X X HRL 020Fh H11 H10 H9 H8 H7 H6 H5 H4 HRH During a mission, if humidity logging is enabled, the HRH byte (H11 to H4) is always recorded. The HRL byte is only recorded if the DS1923 is set up for 16-bit humidity logging. The logging mode (8-bit or 16-bit) is selected through the HLFS bit at the Mission Control register, address 0213h. With HRH and HRL representing the decimal equivalent of a humidity reading, the actual humidity is calculated according to the algorithms shown in the table below. 16-BIT MODE, HLFS = 1 8-BIT MODE, HLFS = 0 IVAL = (HRH x 256 + HRL)/16 Round IVAL down to the nearest integer; this eliminates the undefined 4 bits of HRL. (N/A) ADVAL = IVAL x 5.02/4096 ADVAL = HRH x 5.02/256 HUMIDITY(%RH) = (ADVAL - 0.958)/0.0307 The result is a raw humidity reading that needs to be corrected to achieve the specified accuracy. See the Software Correction Algorithm for Humidity section for further details. To specify the humidity alarm thresholds, the equation needs to be resolved to: ADVAL = HUMIDITY(%RH) x 0.0307 + 0.958 HALM = ADVAL x 256/5.02 Round HALM to the nearest integer. The HALM value needs to be converted into hexadecimal before it can be written to one of the Humidity Alarm Threshold registers (Low Alarm address 020Ah; High Alarm address 020Bh). Independent of the conversion mode (8-bit or 16-bit), only the most significant byte of a humidity conversion is used to determine whether an alarm is generated. The alarm thresholds are applied to the raw humidity readings. Therefore, if software correction is used, the effect of the software correction is to be reversed before calculating a humidity alarm threshold. For example, let the desired alarm threshold be 60%RH. The 60% threshold may correspond to a raw reading of 65%RH (i.e., before correction). To set a 60%RH (after correction) threshold, the HALM value then needs to be calculated for 65%RH. These examples do not include the effects of software correction. Table 3. Humidity Conversion Examples MODE HRH HRL HUMIDITY (%RH) HEX DECIMAL HEX DECIMAL B5h 181 84.41 8-bit 67h 103 34.59 16-bit B5h 181 C0h 12 84.89 16-bit 67h 103 30h 48 34.70 8-bit Table 4. Humidity Alarm Threshold Examples HUMIDITY (%RH) HALM HEX DECIMAL 65 97h 151 25 58h 88 ______________________________________________________________________________________ 19 DS1923 Latest Humidity Conversion Result Register Bitmap DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Temperature Sensor Control Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 0210h 0 0 0 0 0 0 ETHA ETLA Note: During a mission, there is only read access to this register. Bits 2 to 7 have no function. They always read 0 and cannot be written to 1. Humidity Sensor Control Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 0211h 1 1 1 1 1 1 EHHA EHLA Note: During a mission, there is only read access to this register. Bits 2 to 7 have no function. They always read 1 and cannot be written to 0. RTC Control Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 0212h 0 0 0 0 0 0 EHSS EOSC Note: During a mission, there is only read access to this register. Bits 2 to 7 have no function. They always read 0 and cannot be written to 1. Temperature Sensor Alarm The DS1923 has two Temperature Alarm Threshold registers (address 0208h, 0209h) to store values that determine whether a critical temperature has been reached. A temperature alarm is generated if the device measures an alarming temperature and the alarm signaling is enabled. The bits ETLA and ETHA that enable the temperature alarm are located in the Temperature Sensor Control register. The temperature alarm flags TLF and THF are found in the Alarm Status register at address 0214h. Bit 1: Enable Temperature High Alarm (ETHA). This bit controls whether, during a mission, the temperature high alarm flag (THF) can be set, if a temperature conversion results in a value equal to or higher than the value in the Temperature High Alarm Threshold register. If ETHA is 1, temperature high alarms are enabled. If ETHA is 0, temperature high alarms are not generated. Bit 0: Enable Temperature Low Alarm (ETLA). This bit controls whether, during a mission, the temperature low alarm flag (TLF) can be set, if a temperature conversion results in a value equal to or lower than the value in the Temperature Low Alarm Threshold register. If ETLA is 1, temperature low alarms are enabled. If ETLA is 0, temperature low alarms are not generated. Humidity Alarm The DS1923 has two Humidity Alarm Threshold registers (address 020Ah, 020Bh) to store values that determine whether humidity readings can generate an alarm. Such an alarm is generated if the humidity data read from the sensor qualifies for an alarm and the 20 alarm signaling is enabled. The bits EHLA and EHHA that enable the humidity alarm are located in the Humidity Sensor Control register. The corresponding alarm flags HLF and HHF are found in the Alarm Status register at address 0214h. Bit 1: Enable Humidity High Alarm (EHHA). This bit controls whether, during a mission, the humidity high alarm flag (HHF) can be set, if a value from the humidity sensor is equal to or higher than the value in the Humidity High Alarm Threshold register. If EHHA is 1, humidity high alarms are enabled. If EHHA is 0, humidity high alarms are not generated. Bit 0: Enable Humidity Low Alarm (EHLA). This bit controls whether, during a mission, the humidity low alarm flag (HLF) can be set, if a value from the humidity sensor is equal to or lower than the value in the Humidity Low Alarm Threshold register. If EHLA is 1, humidity low alarms are enabled. If EHLA is 0, humidity low alarms are not generated. RTC Control To minimize the power consumption of a DS1923, the RTC oscillator should be turned off when the device is not in use. The oscillator on/off bit is located in the RTC Control register. This register also includes the EHSS bit, which determines whether the sample rate is specified in seconds or minutes. Bit 1: Enable High-Speed Sample (EHSS). This bit controls the speed of the sample rate counter. When set to logic 0, the sample rate is specified in minutes. When set to logic 1, the sample rate is specified in seconds. ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Bit 3: Humidity Logging Format Selection (HLFS). This bit specifies the format used to store humidity readings in the data-log memory. If this bit is 0, the data is stored in 8-bit format. If this bit is 1, the 16-bit format is used (higher resolution). With 16-bit format, the most significant byte is stored at the lower address. Bit 2: Temperature Logging Format Selection (TLFS). This bit specifies the format used to store temperature readings in the data-log memory. If this bit is 0, the data is stored in 8-bit format. If this bit is 1, the 16-bit format is used (higher resolution). With 16-bit format, the most significant byte is stored at the lower address. Mission Control The DS1923 is set up for its operation by writing appropriate data to its special function registers, which are located in the two register pages. The settings in the Mission Control register determine whether temperature and/or humidity is logged, which format (8 or 16 bits) applies, and whether old data can be overwritten by new data once the data-log memory is full. An additional control bit can be set to tell the DS1923 to wait with logging data until a temperature alarm is encountered. Bit 1: Enable Humidity Logging (EHL). To set up the DS1923 for a humidity-logging mission, this bit must be set to logic 1. If temperature and humidity logging are enabled, the recorded humidity values begin at address 2000h (TLFS = HLFS) or 1A00h (TLFS = 0; HLFS = 1) or 2400h (TLFS = 1; HLFS = 0). If only humidity logging is enabled, the recorded values are stored starting at address 1000h. Since humidity data has little scientific value without knowing the temperature, typically both humidity and temperature logging are enabled (i.e., ETL and EHL are set to 1). Bit 5: Start Mission Upon Temperature Alarm (SUTA). This bit specifies whether a mission begins immediately (includes delayed start) or if a temperature alarm is required to start the mission. If this bit is 1, the device performs an 8-bit temperature conversion at the selected sample rate and begins with data logging only if an alarming temperature (high alarm or low alarm) was found. The first logged temperature is when the alarm occurred. However, the Mission Samples Counter does not increment. The start upon temperature alarm function is only available if temperature logging is enabled (ETL = 1). Bit 4: Rollover Control (RO). This bit controls whether, during a mission, the data-log memory is overwritten with new data or whether data logging is stopped once the data-log memory is full. Setting this bit to 1 enables the rollover and data logging continues at the begin- Bit 0: Enable Temperature Logging (ETL). To set up the device for a temperature-logging mission, this bit must be set to logic 1. To successfully start a mission, ETL or EHL must be 1. If temperature logging is enabled, the recorded temperature values are always stored starting at address 1000h. Mission Control Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 0213h 1 1 SUTA RO HLFS TLFS EHL ETL Note: During a mission, there is only read access to this register. Bits 6 and 7 have no function. They always read 1 and cannot be written to 0. ______________________________________________________________________________________ 21 DS1923 ning, overwriting previously collected data. If this bit is 0, the logging and conversions stop once the data-log memory is full. However, the RTC continues to run and the MIP bit remains set until the Stop Mission command is performed. Bit 0: Enable Oscillator (EOSC). This bit controls the crystal oscillator of the RTC. When set to logic 1, the oscillator starts. When written to logic 0, the oscillator stops and the device is in a low-power data-retention mode. This bit must be 1 for normal operation. A Forced Conversion or Start Mission command automatically starts the RTC by changing the EOSC bit to logic 1. DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Alarm Status Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 0214h BOR 1 1 1 HHF HLF THF TLF Note: There is only read access to this register. Bits 4 to 6 have no function. They always read 1. All five alarm status bits are cleared simultaneously when the Clear Memory command is invoked. See the Memory and Control Function Commands section for details. General Status Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 0215h 1 1 0 WFTA MEMCLR 0 MIP 0 Note: There is only read access to this register. Bits 0, 2, 5, 6, and 7 have no function. Alarm Status The fastest way to determine whether a programmed temperature or humidity threshold was exceeded during a mission is through reading the Alarm Status register. In a networked environment that contains multiple DS1923 iButtons, the devices that encountered an alarm can quickly be identified by means of the Conditional Search ROM command (see the 1-Wire ROM Function Commands section). The humidity and temperature alarm only occurs if enabled (see the Temperature Sensor Alarm and Humidity Alarm sections). The BOR alarm is always enabled. Bit 7: Battery-On Reset Alarm (BOR). If this bit reads 1, the device has performed a power-on reset. This indicates that the device has experienced a shock big enough to interrupt the internal battery power supply. The device can still appear functional, but it has lost its factory calibration. Any data found in the data-log memory should be disregarded. Bit 3: Humidity High Alarm Flag (HHF). If this bit reads 1, there was at least one humidity reading during a mission revealing a value equal to or higher than the value in the Humidity High Alarm register. A forced conversion can affect the HHF bit. Bit 2: Humidity Low Alarm Flag (HLF). If this bit reads 1, there was at least one humidity reading during a mission revealing a value equal to or lower than the value in the Humidity Low Alarm register. A forced conversion can affect the HLF bit. Bit 1: Temperature High Alarm Flag (THF). If this bit reads 1, there was at least one temperature conversion during a mission revealing a temperature equal to or higher than the value in the Temperature High Alarm register. A forced conversion can affect the THF bit. This bit can also be set with the initial alarm in the SUTA = 1 mode. Bit 0: Temperature Low Alarm Flag (TLF). If this bit reads 1, there was at least one temperature conversion 22 during a mission revealing a temperature equal to or lower than the value in the Temperature Low Alarm register. A forced conversion can affect the TLF bit. This bit can also be set with the initial alarm in the SUTA = 1 mode. General Status The information in the General Status register tells the host computer whether a mission-related command was executed successfully. Individual status bits indicate whether the DS1923 is performing a mission, waiting for a temperature alarm to trigger the logging of data or whether the data from the latest mission has been cleared. Bit 4: Waiting for Temperature Alarm (WFTA). If this bit reads 1, the mission start upon temperature alarm was selected and the Start Mission command was successfully executed, but the device has not yet experienced the temperature alarm. This bit is cleared after a temperature alarm event, but is not affected by the Clear Memory command. Once set, WFTA remains set if a mission is stopped before a temperature alarm occurs. To clear WFTA manually before starting a new mission, set the high temperature alarm (address 0209h) to -40°C and perform a forced conversion. Bit 3: Memory Cleared (MEMCLR). If this bit reads 1, the Mission Timestamp, Mission Samples Counter, and all the alarm flags of the Alarm Status register have been cleared in preparation of a new mission. Executing the Clear Memory command clears these memory sections. The MEMCLR bit returns to 0 as soon as a new mission is started by using the Start Mission command. The memory must be cleared for a mission to start. Bit 1: Mission in Progress (MIP). If this bit reads 1, the device has been set up for a mission and this mission is still in progress. The MIP bit returns from logic 1 to logic 0 when a mission is ended. See the Start Mission [with Password] [CCh] and Stop Mission [with Password] [33h] sections. ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 0216h Delay Low Byte 0217h Delay Center Byte 0218h Delay High Byte BIT 2 BIT 1 BIT 0 Note: During a mission, there is only read access to this register. Mission Timestamp Register Bitmap ADDRESS BIT 7 0219h 0 10 Seconds Single Seconds 021Ah 0 10 Minutes Single Minutes 0 20 Hours AM/PM 021Bh BIT 6 12/24 021Ch 0 0 021Dh CENT 0 021Eh BIT 5 BIT 4 10 Hours BIT 6 BIT 1 BIT 0 Single Date 10 Months Single Months 10 Years BIT 7 BIT 2 Single Hours 10 Date 0 Single Years Note: There is only read access to this register. ADDRESS BIT 3 Mission Samples Counter Register Bitmap BIT 5 BIT 4 BIT 3 0220h Low Byte 0221h Center Byte 0222h High Byte BIT 2 BIT 1 BIT 0 Note: There is only read access to this register. Note that when both the internal temperature and humidity logging are enabled, the two log readings are counted as one event in the Mission Samples Counter and Device Samples Counter. Mission Start Delay Mission Timestamp The content of the Mission Start Delay Counter register tells how many minutes must expire from the time a mission was started until the first measurement of the mission takes place (SUTA = 0) or until the device starts testing the temperature for a temperature alarm (SUTA = 1). The Mission Start Delay register is stored as an unsigned 24-bit integer number. The maximum delay is 16,777,215min, equivalent to 11,650 days or roughly 31yr. If the start delay is nonzero and the SUTA bit is set to 1, first the delay must expire before the device starts testing for temperature alarms to begin logging data. For a typical mission, the Mission Start Delay is 0. If a mission is too long for a single DS1923 to store all readings at the selected sample rate, one can use several devices and set the Mission Start Delay for the second device to start recording as soon as the memory of the first device is full, and so on. The RO bit in the Mission Control register (address 0213h) must be set to 0 to prevent overwriting of collected data once the data-log memory is full. The Mission Timestamp register indicates the date and time of the first temperature and humidity sample of the mission. There is only read access to the Mission Timestamp register. Mission Progress Indicator Depending on settings in the Mission Control register (address 0213h), the DS1923 logs temperature and/or humidity in 8-bit or 16-bit format. The description of the ETL and EHL bit explains where the device stores data in its data-log memory. The Mission Samples Counter register together with the starting address and the logging format (8 or 16 bits) provide the information to identify valid blocks of data that have been gathered during the current (MIP = 1) or latest mission (MIP = 0). See the Data-Log Memory Usage section for an illustration. Note that when SUTA = 1, the Mission Samples Counter does not increment when the first sample is logged. The number read from the Mission Samples Counter indicates how often the DS1923 woke up during a mission to measure temperature and/or humidity. The number format is 24-bit unsigned integer. The Mission Samples Counter is reset through the Clear Memory command. ______________________________________________________________________________________ 23 DS1923 Mission Start Delay Counter Register Bitmap DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Device Samples Counter Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 0223h Low Byte 0224h Center Byte 0225h High Byte BIT 2 BIT 1 BIT 0 Note: There is only read access to this register. Device Configuration Register Bitmap ADDRESS 0226h BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 PART 0 0 0 0 0 0 0 0 DS2422 0 0 1 0 0 0 0 0 DS1923 0 1 0 0 0 0 0 0 DS1922L 0 1 1 0 0 0 0 0 DS1922T 1 0 0 0 0 0 0 0 DS1922E Note: There is only read access to this register. Password Control Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 0227h BIT 3 BIT 2 BIT 1 BIT 0 EPW Note: During a mission, there is only read access to this register. Other Indicators Security by Password The Device Samples Counter register is similar to the Mission Samples Counter register. During a mission this counter increments whenever the DS1923 wakes up to measure and log data and when the device is testing for a temperature alarm in Start Mission Upon Temperature Alarm mode. Between missions, the counter increments whenever the Forced Conversion command is executed. This way the Device Samples Counter register functions like a gas gauge for the battery that powers the iButton. The Device Samples Counter register is reset to zero when the iButton is assembled. The number format is 24-bit unsigned integer. The maximum number that can be represented in this format is 16,777,215. Due to the calibration and tests at the factory, new devices can have a count value of up to 35,000. The typical value is well below 10,000. The code in the Device Configuration register allows the master to distinguish between the DS2422 chip and different versions of the DS1922 iButtons. The Device Configuration Register Bitmap table shows the codes assigned to the various devices. The DS1923 is designed to use two passwords that control read access and full access. Reading from or writing to the scratchpad as well as the Forced Conversion command does not require a password. The password must be transmitted immediately after the command code of the memory or control function. If password checking is enabled, the password transmitted is compared to the passwords stored in the device. The data pattern stored in the Password Control register determines whether password checking is enabled. To enable password checking, the EPW bits need to form a binary pattern of 10101010 (AAh). The default pattern of EPW is different from AAh. If the EPW pattern is different from AAh, any pattern is accepted as long as it has a length of exactly 64 bits. Once enabled, changing the passwords and disabling password checking requires the knowledge of the current fullaccess password. 24 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 0228h RP7 RP6 RP5 RP4 RP3 RP2 RP1 RP0 0229h RP15 RP14 RP13 RP12 RP11 RP10 RP9 RP8 … … 022Eh RP55 RP54 RP53 RP52 RP51 RP50 RP49 RP48 022Fh RP63 RP62 RP61 RP60 RP59 RP58 RP57 RP56 Note: There is only write access to this register. Attempting to read the password reports all zeros. The password cannot be changed while a mission is in progress. Full-Access Password Register Bitmap ADDRESS BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0 0230h FP7 FP6 FP5 FP4 FP3 FP2 FP1 FP0 0231h FP15 FP14 FP13 FP12 FP11 FP10 FP9 FP8 … … 0236h FP55 FP54 FP53 FP52 FP51 FP50 FP49 FP48 0237h FP63 FP62 FP61 FP60 FP59 FP58 FP57 FP56 Note: There is only write access to this register. Attempting to read the password reports all zeros. The password cannot be changed while a mission is in progress. Before enabling password checking, passwords for read-only access as well as for full access (read/write/control) must be written to the password registers. 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. The Read Access Password must be transmitted exactly in the sequence RP0, RP1…RP62, RP63. This password only applies to the Read Memory with CRC command. The DS1923 delivers the requested data only if the password transmitted by the master was correct or if password checking is not enabled. The Full Access Password must be transmitted exactly in the sequence FP0, FP1…FP62, FP63. It affects the commands Read Memory with CRC, Copy Scratchpad, Clear Memory, Start Mission, and Stop Mission. The DS1923 executes the command only if the password transmitted by the master was correct or if password checking is not enabled. Due to the special behavior of the write-access logic, the Password Control register and both passwords must be written at the same time. When setting up new passwords, always verify (read back) the scratchpad before sending 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 (Write Scratchpad command). Otherwise, a copy of the passwords remains in the scratchpad for public read access. ______________________________________________________________________________________ 25 DS1923 Read-Access Password Register Bitmap DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Data-Log Memory Usage Once set up for a mission, the DS1923 logs the temperature and/or humidity measurements at equidistant time points entry after entry in its data-log memory. The data-log memory can store 8192 entries in 8-bit format or 4096 entries in 16-bit format (Figure 7a). If temperature as well as humidity are logged, both in the same format, the memory is split into two equal sections that can store 4096 8-bit entries or 2048 16-bit entries (Figure 7b). If the device is set up to log data in different formats, e. g., temperature in 8-bit and humidity in 16-bit format, the memory is split into blocks of different size, accommodating 2560 entries for either data source (Figure 7c). In this case, the upper 256 bytes are not used. In 16-bit format, the higher 8 bits of an entry are stored at the lower address. Knowing the starting time point (Mission Timestamp) and the interval between temperature measurements, one can reconstruct the time and date of each measurement. There are two alternatives to the way the DS1923 behaves after the data-log memory is filled with data. The user can program the device to either stop any further recording (disable rollover) or overwrite the previously recorded data (enable rollover), one entry at a time, starting again at the beginning of the respective memory section. The contents of the Mission Samples Counter in conjunction with the sample rate and the Mission Timestamp allow reconstructing the time points of all values stored in the data-log memory. This gives the exact history over time for the most recent measurements taken. Earlier measurements cannot be reconstructed. Missioning The typical task of the DS1923 iButton is recording temperature and/or humidity. Before the device can perform this function, it needs to be set up properly. This procedure is called missioning. First, the DS1923 must have its RTC set to a valid time and date. This reference time can be the local time, or, when used inside of a mobile unit, UTC (also called GMT, Greenwich Mean Time), or any other time standard that was agreed upon. The RTC oscillator must be running (EOSC = 1). The memory assigned to store the Mission Timestamp, Mission Samples Counter, and alarm flags must be cleared using the Clear Memory command. To enable the device for a mission, at least one of the enable logging bits (ETL, EHL) must be set to 1. These are general settings that must be made in any case, regardless of the type of object to be monitored and the duration of the mission. 26 If alarm signaling is desired, the temperature alarm and/or humidity alarm low and high thresholds must be defined. See the Temperature Conversion section for information on how to convert a temperature value into the binary code to be written to the threshold registers. See the Humidity Conversion section for information on determining the thresholds for the humidity alarm. In addition, the temperature alarm and/or humidity alarm must be enabled for the low and/or high threshold. This makes the device respond to a Conditional Search ROM command (see the 1-Wire ROM Function Commands section), provided that an alarming condition has been encountered. The setting of the RO bit (rollover enable) and sample rate depends on the duration of the mission and the monitoring requirements. If the most recently logged data is important, the rollover should be enabled (RO = 1). Otherwise one should estimate the duration of the mission in minutes and divide the number by 8192 (single channel 8-bit format) or 4096 (single channel 16-bit format, two channels 8-bit format) or 2048 (two channels 16-bit format) or 2560 (two channels, one 8-bit and one 16-bit format) to calculate the value of the sample rate (number of minutes between conversions). If the estimated duration of a mission is 10 days (= 14400min), for example, then the 8192-byte capacity of the data-log memory would be sufficient to store a new 8-bit value every 1.8min (110s). If the data-log memory of the DS1923 is not large enough to store all readings, one can use several devices and set the Mission Start Delay to values that make the second device start logging as soon as the memory of the first device is full, and so on. The RO-bit needs to be set to 0 to disable rollover that would otherwise overwrite the logged data. After the RO bit and the Mission Start Delay are set, the sample rate must be written to the Sample Rate register. The sample rate can be any value from 1 to 16,383, coded as an unsigned 14-bit binary number. The fastest sample rate is one sample per second (EHSS = 1, sample rate = 0001h) and the slowest is one sample every 273.05hr (EHSS = 0, sample rate = 3FFFh). To get one sample every 6min, for example, the sample rate value must be set to 6 (EHSS = 0) or 360 decimal (equivalent to 0168h at EHSS = 1). If there is a risk of unauthorized access to the DS1923 or manipulation of data, one should define passwords for read access and full access. Before the passwords become effective, their use must be enabled. See the Security by Password section for more details. ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 1000h 8192 8-BIT ENTRIES TEMPERATURE OR HUMIDITY DATA 2FFFh DS1923 ETL = 1; EHL = 0 OR ETL = 0; EHL = 1 TLFS = HLFS = 0 ETL = 1; EHL = 0 OR ETL = 0; EHL = 1 TLFS = HLFS = 1 1000h 4096 16-BIT ENTRIES TEMPERATURE OR HUMIDITY DATA WITH 16-BIT FORMAT, THE MOST SIGNIFICANT BYTE IS STORED AT THE LOWER ADDRESS. 2FFFh Figure 7a. 1-Channel Logging ETL = EHL = 1 TLFS = HLFS = 0 ETL = EHL = 1 TLFS = HLFS = 1 1000h TEMPERATURE 4096 8-BIT ENTRIES 1000h TEMPERATURE 2048 16-BIT ENTRIES 1FFFh 1FFFh 2000h 2000h HUMIDITY DATA 4096 8-BIT ENTRIES WITH 16-BIT FORMAT, THE MOST SIGNIFICANT BYTE IS STORED AT THE LOWER ADDRESS. HUMIDITY DATA 2048 16-BIT ENTRIES 2FFFh 2FFFh Figure 7b. 2-Channel Logging, Equal Resolution ETL = EHL = 1 TLFS = 0; HLFS = 1 TEMPERATURE 2560 8-BIT ENTRIES ETL = EHL = 1 TLFS = 1; HLFS = 0 1000h 19FFh 1A00h 1000h TEMPERATURE 2560 16-BIT ENTRIES 23FFh HUMIDITY DATA 2560 16-BIT ENTRIES 2DFFh HUMIDITY DATA 2560 8-BIT ENTRIES WITH 16-BIT FORMAT, THE MOST SIGNIFICANT BYTE IS STORED AT THE LOWER ADDRESS. 2DFFh 2E00h 2E00h (NOT USED) 2400h (NOT USED) 2FFFh 2FFFh Figure 7c. 2-Channel Logging, Different Resolution ______________________________________________________________________________________ 27 DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory The last step to begin a mission is to issue the Start Mission command. As soon as it has received this command, the DS1923 sets the MIP flag and clears the MEMCLR flag. With the immediate/delayed start mode (SUTA = 0), after as many minutes as specified by the Mission Start Delay are over, the device wakes up, copies the current date and time to the Mission Timestamp register, and logs the first entry of the mission. This increments both the Mission Samples Counter and Device Samples Counter. All subsequent log entries are made as specified by the value in the Sample Rate register and the EHSS bit. If the start upon temperature alarm mode is chosen (SUTA = 1) and temperature logging is enabled (ETL = 1), the DS1923 first waits until the start delay is over. Then the device wakes up in intervals as specified by the sample rate and EHSS bit and measures the temperature. This increments the Device Samples Counter register only. The first sample of the mission is logged when the temperature alarm occurred. However, the Mission Samples Counter does not increment. One sample period later the Mission Timestamp register is set. From then on, both the Mission Samples Counter and Device Samples Counter registers increment at the same time. All subsequent log entries are made as specified by the value in the Sample Rate register and the EHSS bit. The general-purpose memory operates independently of the other memory sections and is not write protected during a mission. All the DS1923’s memory can be read at any time, e.g., to watch the progress of a mission. Attempts to read the passwords read 00h bytes instead of the data that is stored in the password registers. Memory Access Address Registers and Transfer Status Because of the serial data transfer, the DS1923 employs three address registers called TA1, TA2, and E/S (Figure 8). Registers TA1 and TA2 must be loaded with the target address to which the data is written or from which data is 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 5 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. The DS1923 requires that the ending offset is always 1Fh for a Copy Scratchpad to function. Bit 5 of the E/S register, called PF or partial byte flag, is set if the number of data bits sent by the master is not an integer multiple of 8. Bit 6 is always a 0. Note that the lowest 5 bits of the target address also determine the address within the scratchpad, where intermediate storage of data begins. This address is called byte offset. If the target address for a Write Scratchpad command is 13Ch, for example, the scratchpad stores incoming data beginning at the byte offset 1Ch and is full after only 4 bytes. The corresponding ending offset in this example is 1Fh. For best economy of speed and BIT NUMBER 7 6 5 4 3 2 1 0 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 0 PF E4 E3 E2 E1 E0 Figure 8. Address Registers 28 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Writing with Verification To write data to the DS1923, the scratchpad must 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. In the next step, the master sends the Read Scratchpad command to read the scratchpad and to verify data integrity. As preamble to the scratchpad data, the DS1923 sends the requested target address TA1 and TA2 and the contents of the E/S Register. If the PF flag is set, data did not arrive correctly in 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 indicates that the Write Scratchpad 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. Now the master can continue verifying every data bit. After the master has verified the data, it must send the Copy Scratchpad command. This command must be followed exactly by the data of the three address registers TA1, TA2, and E/S, as the master has read them verifying the scratchpad. As soon as the DS1923 has received these bytes, it copies the data to the requested location beginning at the target address. Memory and Control Function Commands Figure 9 shows the protocols necessary for accessing the memory and the special function registers of the DS1923. An example on how to use these and other functions to set up the DS1923 for a mission is included in the Mission Example: Prepare and Start a New Mission section. The communication between the master and the DS1923 takes place either at standard speed (default, OD = 0) or at overdrive speed (OD = 1). If not explicitly set into the overdrive mode, the DS1923 assumes standard speed. Internal memory access during a mission has priority over external access through the 1-Wire interface. This affects several commands in this section. See the Memory Access Conflicts section for details and solutions. Write Scratchpad [0Fh] 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 is written to the scratchpad starting at the byte offset T[4:0]. The master must send as many bytes as are needed to reach the ending offset of 1Fh. If a data byte is incomplete, its content is ignored and the partial byte flag PF is set. When executing the Write Scratchpad command, the CRC generator inside the DS1923 calculates a CRC of the entire data stream, starting at the command code and ending at the last data byte sent by the master (Figure 15). This CRC is generated using the CRC-16 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. If the ending offset is 11111b, the master can send 16 read time slots and receive the inverted CRC-16 generated by the DS1923. Note that both register pages are write protected during a mission. Although the Write Scratchpad command works normally at any time, the subsequent copy scratchpad to a register page fails during a mission. ______________________________________________________________________________________ 29 DS1923 efficiency, the target address for writing should point to the beginning of a page, i.e., the byte offset is 0. Thus, the full 32-byte capacity of the scratchpad is available, resulting also in the ending offset of 1Fh. The ending offset together with the PF flag are a means to support the master checking the data integrity after a Write Scratchpad command. The highest valued bit of the E/S register, called authorization accepted (AA), indicates that a valid Copy Scratchpad command for the scratchpad has been received and executed. Writing data to the scratchpad clears this flag. DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Read Scratchpad [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 are the target address. The next byte is the ending offset/data status byte (E/S) followed by the scratchpad data beginning at the byte offset T[4:0], as shown in Figure 8. The master can continue reading data until the end of the scratchpad after which it receives an inverted CRC-16 of the command code, target addresses TA1 and TA2, the E/S byte, and the scratchpad data starting at the target address. After the CRC is read, the bus master reads logic 1s from the DS1923 until a reset pulse is issued. Copy Scratchpad [with Password] [99h] This command is used to copy data from the scratchpad to the writable memory sections. 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 transmit the 64-bit full access password. If passwords are enabled and the transmitted password is different from the stored full access password, the Copy Scratchpad command fails. The device stops communicating and waits for a reset pulse. If the password was correct or if passwords were not enabled, the device tests the 3-byte authorization code. If the authorization code pattern matches, the AA flag is set and the copy begins. A pattern of alternating 1s and 0s is transmitted after the data has been copied until the master issues a reset pulse. While the copy is in progress, any attempt to reset the part is ignored. Copy typically takes 2μs per byte. The data to be copied is determined by the three address registers. The scratchpad data from the beginning offset through the ending offset are copied, starting at the target address. The AA flag remains at logic 1 until it is cleared by the next Write Scratchpad command. With suitable password, the copy scratchpad always functions for the 16 pages of data memory and the 2 pages of calibration memory. While a mission is in 30 progress, write attempts to the register pages are not successful. The AA bit remaining at 0 indicates this. Read Memory with [Password and] CRC [69h] The Read Memory with CRC command is the general function to read from the device. This command generates and transmits a 16-bit CRC following the last data byte of a memory page. After having sent the command code of the Read Memory with CRC command, the bus master sends a 2-byte address that indicates a starting byte location. Next, the master must transmit one of the 64-bit passwords. If passwords are enabled and the transmitted password does not match one of the stored passwords, the Read Memory with CRC command fails. The device stops communicating and waits for a reset pulse. If the password was correct or if passwords were not enabled, the master reads data from the DS1923 beginning from the starting address and continuing until the end of a 32-byte page is reached. At that point the bus master sends 16 additional read-data time slots and receives the inverted 16-bit CRC. With subsequent read-data time slots the master receives data starting at the beginning of the next memory page followed again by the CRC for that page. This sequence continues until the bus master resets the device. When trying to read the passwords or memory areas that are marked as “reserved,” the DS1923 transmits 00h or FFh bytes, respectively. The CRC at the end of a 32-byte memory page is based on the data as it was transmitted. With the initial pass through the Read Memory with CRC flow, 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 contents of the data memory. Subsequent passes through the Read Memory with CRC flow generate a 16-bit CRC that is the result of clearing the CRC generator and then shifting in the contents of the data memory page. After the 16-bit CRC of the last page is read, the bus master receives logic 1s from the DS1923 until a reset pulse is issued. The Read Memory with CRC command sequence can be ended at any point by issuing a reset pulse. ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 0Fh WRITE SCRATCHPAD? DS1923 FROM ROM FUNCTIONS FLOWCHART (FIGURE 11) MASTER Tx MEMORY OR CONTROL FUNCTION COMMAND AAh READ SCRATCHPAD? N Y 99h COPY SCRATCHPAD [WITH PW] N Y MASTER Tx TA1 [T7:T0] TO FIGURE 9b N Y MASTER Rx TA1 [T7:T0] MASTER Tx TA1 [T7:T0], TA2 [T15:T8] AUTHORIZATION CODE MASTER Tx TA2 [T15:T8] MASTER Rx TA2 [T15:T8] MASTER Tx E/S BYTE DS1923 SETS SCRATCHPAD OFFSET = [T4:T0] AND CLEARS (PF, AA) MASTER Rx ENDING OFFSET WITH DATA STATUS (E/S) MASTER Tx 64 BITS [PASSWORD] MASTER Tx DATA BYTE TO SCRATCHPAD OFFSET DS1923 SETS SCRATCHPAD OFFSET = [T4:T0] PASSWORD ACCEPTED? N Y DS1923 SETS [E4:E0] = SCRATCHPAD OFFSET DS1923 INCREMENTS SCRATCHPAD OFFSET MASTER Tx RESET? MASTER Rx DATA BYTE FROM SCRATCHPAD OFFSET DS1923 INCREMENTS SCRATCHPAD OFFSET Y MASTER Tx RESET? AUTHORIZATION CODE MATCH? N Y Y AA = 1 N N SCRATCHPAD OFFSET = 11111b? Y Y N MASTER Tx RESET? N PARTIAL BYTE WRITTEN? Y Y MASTER Rx CRC-16 OF COMMAND, ADDRESS DATA, E/S BYTE, AND DATA STARTING AT THE TARGET ADDRESS N DS1923 COPIES SCRATCHPAD DATA TO MEMORY SCRATCHPAD OFFSET = 11111b? MASTER Rx "1"s MASTER Rx "1"s N COPYING FINISHED MASTER Tx RESET? Y N N PF = 1 MASTER Rx CRC-16 OF COMMAND, ADDRESS DATA DS1923 Tx "0" Y MASTER Tx RESET? MASTER Tx RESET? N Y MASTER Tx RESET? Y MASTER Rx "1"s Y N N DS1923 Tx "1" MASTER Rx "1"s N MASTER Tx RESET? Y FROM FIGURE 9b TO ROM FUNCTIONS FLOWCHART (FIGURE 11) Figure 9a. Memory/Control Function Flowchart ______________________________________________________________________________________ 31 DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 69h READ MEMORY [WITH PW] AND CRC FROM FIGURE 9a 96h CLEAR MEMORY [WITH PW] N Y Y DECISION MADE BY DS1923 55h FORCED CONVERSION? N MASTER Tx TA1 [T7:T0], TA2 [T15:T8] MASTER Tx 64 BITS [PASSWORD] MASTER Tx 64 BITS [PASSWORD] MASTER Tx FFh DUMMY BYTE N TO FIGURE 9c Y MASTER Tx FFh DUMMY BYTE MISSION IN PROGRESS? Y N PASSWORD ACCEPTED? N PASSWORD ACCEPTED? Y DECISION MADE BY MASTER DS1923 PERFORMS A TEMPERATURE CONVERSION Y DS1923 SETS MEMORY ADDRESS = [T15:T0] MISSION IN PROGRESS? DS1923 COPIES RESULT TO ADDRESS 020C/Dh Y N MASTER Rx DATA BYTE FROM MEMORY ADDRESS Y N DS1923 INCREMENTS ADDRESS COUNTER MASTER Tx RESET? DS1923 PERFORMS A HUMIDITY CONVERSION DS1923 CLEARS MISSION TIMESTAMP, MISSION SAMPLES COUNTER, ALARM FLAGS DS1923 COPIES RESULT TO ADDRESS 020E/Fh DS1923 SETS MEMCLR = 1 N N END OF PAGE? MASTER Tx RESET? N N Y MASTER Tx RESET? Y Y MASTER Rx CRC-16 OF COMMAND, ADDRESS, DATA (1ST PASS); CRC-16 OF DATA (SUBSEQUENT PASSES) MASTER Tx RESET N CRC OK? Y END OF MEMORY? N Y MASTER Rx "1"s MASTER Tx RESET? N Y TO FIGURE 9a Figure 9b. Memory/Control Function Flowchart (continued) 32 ______________________________________________________________________________________ FROM FIGURE 9c Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 33h STOP MISSION [WITH PW] N MISSION START DELAY PROCESS Y DS1923 CCh START MISSION [WITH PW] FROM FIGURE 9b N Y MASTER Tx 64 BITS [PASSWORD] MASTER Tx 64 BITS [PASSWORD] START DELAY COUNTER = 0? MASTER Tx FFh DUMMY BYTE Y MASTER Tx FFh DUMMY BYTE N DS1923 WAITS FOR 1 MINUTE N PASSWORD ACCEPTED? PASSWORD ACCEPTED? DS1923 DECREMENTS START DELAY COUNTER Y Y Y MISSION IN PROGRESS? SUTA = 1? N DS1923 SETS MIP = 0, WFTA = 0 MEMCLR = 1? DS1923 WAITS ONE SAMPLE PERIOD Y Y MASTER Tx RESET? MIP = 0? N DS1923 INITIATES MISSION START DELAY PROCESS N MASTER Tx RESET? Y N Y DS1923 SETS WFTA = 1 DS1923 SETS MIP = 1, MEMCLR = 0 MISSION IN PROGRESS? Y N N N N Y DS1923 PERFORMS 8-BIT TEMPERATURE CONVERSION TEMPERATURE ALARM? N Y DS1923 SETS WFTA = 0 AND LOGS FIRST SAMPLE THE MISSION SAMPLES COUNTER DOES NOT INCREMENT DS1923 WAITS ONE SAMPLE PERIOD DS1923 COPIES RTC DATA TO MISSION TIMESTAMP REGISTER IF SUTA = 1, THIS IS THE SECOND SAMPLE. DS1923 STARTS LOGGING TAKING FIRST SAMPLE END OF PROCESS TO FIGURE 9b Figure 9c. Memory/Control Function Flowchart (continued) ______________________________________________________________________________________ 33 DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Clear Memory [with Password] [96h] Start Mission [with Password] [CCh] The Clear Memory with Password command is used to prepare the device for another mission. This command is only executed if no mission is in progress. After the command code, the master must transmit the 64-bit full-access password followed by an FFh dummy byte. If passwords are enabled and the transmitted password is different from the stored full access password or a mission is in progress, the Clear Memory command fails. The device stops communicating and waits for a reset pulse. If the password was correct or if passwords were not enabled, the device clears the Mission Timestamp register, Mission Samples Counter register, and all alarm flags of the Alarm Status register. After these cells are cleared, the MEMCLR bit of the General Status register reads 1 to indicate the successful execution of the Clear Memory with Password command. Clearing of the data-log memory is not necessary because the Mission Samples Counter indicates how many entries in the data-log memory are valid. The DS1923 uses a control function command to start a mission. A new mission can only be started if the previous mission has been ended and the memory has been cleared. After the command code, the master must transmit the 64-bit full access password followed by an FFh dummy byte. If passwords are enabled and the transmitted password is different from the stored fullaccess password or a mission is in progress, the Start Mission command fails. The device stops communicating and waits for a reset pulse. If the password was correct or if passwords were not enabled, the device starts a mission. If SUTA = 0, the sampling begins as soon as the Mission Start Delay is over. If SUTA = 1, the first sample is written to the data-log memory at the time the temperature alarm occurred. However, the Mission Samples Counter does not increment. One sample period later, the Mission Timestamp register is set and the regular sampling and logging begins. While the device is waiting for a temperature alarm to occur, the WFTA flag in the General Status register reads 1. During a mission there is only read access to the register pages. Forced Conversion [55h] The Forced Conversion command can be used to measure the temperature and humidity without starting a mission. After the command code, the master must send one FFh byte to get the conversion started. The conversion result is found as a 16-bit value in the Latest Temperature Conversion Result and Latest Humidity Conversion Result registers. This command is only executed if no mission is in progress (MIP = 0). It cannot be interrupted and takes maximum 666ms to complete. During this time memory access through the 1-Wire interface is blocked. The device behaves the same way as during a mission when the sampling interferes with a memory/control function command. See the Memory Access Conflicts section for details. 34 Stop Mission [with Password] [33h] The DS1923 uses a control function command to stop a mission. Only a mission that is in progress can be stopped. After the command code, the master must transmit the 64-bit full access password followed by a FFh dummy byte. If passwords are enabled and the transmitted password is different from the stored fullaccess password or a mission is not in progress, the Stop Mission command fails. The device stops communicating and waits for a reset pulse. If the password was correct or if passwords were not enabled, the device clears the MIP bit in the General Status register and restores write access to the register pages. The WFTA bit is not cleared. See the description of the general status register for a method to clear the WFTA bit. ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory While a mission is in progress or while the device is waiting for a temperature alarm to start a mission, periodically a temperature and/or humidity sample is taken and logged. This “internal activity” has priority over 1-Wire communication. As a consequence, device-specific commands (excluding ROM function commands and 1-Wire reset) do not perform properly when internal and “external” activities interfere with each other. Not affected are the commands Start Mission, Forced Conversion, and Clear Memory, because they are not applicable while a mission is in progress or while the device is waiting for a temperature alarm. Table 5 explains how the remaining five commands are affected by internal activity, how to detect this interference, and how to work around it. The interference is more likely to be seen with a highsample rate (one sample every second) and with highresolution logging, which can last up to 666ms when both temperature and humidity are recorded. With lower sample rates, interference may hardly be visible at all. In any case, when writing driver software it is important to know about the possibility of interference and to take measures to work around it. Table 5. Memory Access Conflicts and Solutions COMMAND INDICATION OF INTERFERENCE SOLUTION Write Scratchpad The CRC-16 at the end of the command flow reads FFFFh. Wait 0.5s, 1-Wire reset, address the device, repeat Write Scratchpad with the same data, and check the validity of the CRC-16 at the end of the command flow. Alternatively, use Read Scratchpad to verify data integrity. Read Scratchpad The data read changes to FFh bytes or all bytes received are FFh, including the CRC at the end of the command flow. Wait 0.5s, 1-Wire reset, address the device, repeat Read Scratchpad, and check the validity of the CRC-16 at the end of the command flow. Copy Scratchpad The device behaves as if the authorization code or password was not valid or as if the copy function would not end. Wait 0.5s, 1-Wire reset, address the device, issue Read Scratchpad, and check the AA bit of the E/S byte. If the AA bit is set, Copy Scratchpad was successful. The data read changes to all FFh bytes or all bytes Read Memory with received are FFh, including the CRC at the end of CRC the command flow, despite a valid password. Stop Mission The General Status register at address 0215h reads FFh or the MIP bit is 1 while bits 0, 2, and 5 are 0. Wait 0.5s, 1-Wire reset, address the device, repeat Read Memory with CRC, and check the validity of the CRC-16 at the end of the memory page. Wait 0.5s, 1-Wire reset, address the device, and repeat Stop Mission. Perform a 1-Wire reset, address the device, read the General Status register at address 0215h, and check the MIP bit. If the MIP bit is 0, Stop Mission was successful. ______________________________________________________________________________________ 35 DS1923 Memory Access Conflicts DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 1-Wire Bus System The 1-Wire bus is a system that has a single bus master and one or more slaves. In all instances the DS1923 is a slave device. The bus master is typically a microcontroller. 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. 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 three-state outputs. The 1-Wire port of the DS1923 is open drain with an internal circuit equivalent to that shown in Figure 10. A multidrop bus consists of a 1-Wire bus with multiple slaves attached. At standard speed the 1-Wire bus has a maximum data rate of 16.3kbps. The speed can be boosted to 142kbps by activating the overdrive mode. The DS1923 is not guaranteed to be fully compliant to the iButton standard. Its maximum data rate in standard speed is 15.4kbps and 125kbps in overdrive speed. The value of the pullup resistor primarily depends on the network size and load conditions. The DS1923 requires a pullup resistor of maximum 2.2kΩ at any 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. Note that the DS1923 does not quite meet the full 16μs maximum low time of the normal 1-Wire bus overdrive timing. With the DS1923 the bus must be left low for no longer than 12μs at overdrive to ensure that no DS1923 on the 1-Wire bus performs a reset. The DS1923 communicates properly when used in conjunction with a DS2480B or DS2490 1-Wire driver and adapters that are based on these driver chips. Transaction Sequence The protocol for accessing the DS1923 through the 1-Wire port is as follows: • Initialization • ROM Function Command • Memory/Control Function Command • Transaction/Data VPUP BUS MASTER DS1923 1-Wire PORT RPUP DATA Rx Rx IL Tx Tx Rx = RECEIVE Tx = TRANSMIT OPEN-DRAIN PORT PIN 100Ω MOSFET Figure 10. Hardware Configuration 36 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 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 DS1923 is on the bus and is ready to operate. For more details, see the 1-Wire 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 that the DS1923 supports. All ROM function commands are 8 bits long. A list of these commands follows (see the flowchart in Figure 11). Read ROM [33h] This command allows the bus master to read the DS1923’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 slave on the bus. If more than one slave is present on the bus, a data collision occurs when all slaves try to transmit at the same time (open drain produces a wired-AND result). The resultant family code and 48-bit serial number results 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 DS1923 on a multidrop bus. Only the DS1923 that exactly matches the 64-bit ROM sequence responds to the following memory function command. All other slaves wait for a reset pulse. This command can be used with a single device 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 registration numbers. By taking advantage of the wired-AND property of the bus, the master can use a process of elimination to identify the registration numbers of all slave devices. For each bit of the registration number, starting with the least significant bit, the bus master issues a triplet of time slots. On the first slot, each slave device participating in the search outputs the true value of its registration number bit. On the second slot, each slave device participating in the search outputs the complemented value of its registration number bit. On the third slot, the master writes the true value of the bit to be selected. All slave devices that do not match the bit written by the master stop participating in the search. If both of the read bits are zero, the master knows that slave devices exist with both states of the bit. By choosing which state to write, the bus master branches in the ROM code tree. After one complete pass, the bus master knows the registration number of a single device. Additional passes identify the registration numbers of the remaining devices. Refer to Application Note 187: 1-Wire Search Algorithm for a detailed discussion, including an example. Conditional Search ROM [ECh] The Conditional Search ROM command operates similarly to the Search ROM command except that only those devices that fulfill certain conditions participate in the search. This function provides an efficient means for the bus master to identify devices on a multidrop system that have to signal an important event. After each pass of the conditional search that successfully determined the 64-bit ROM code for a specific device on the multidrop bus, that particular device can be individually accessed as if a Match ROM had been issued, since all other devices have dropped out of the search process and are waiting for a reset pulse. The DS1923 responds to the Conditional Search ROM command if one of the five alarm flags of the Alarm Status register (address 0214h) reads 1. The humidity and temperature alarm only occurs if enabled (see the Temperature Sensor Alarm and Humidity Alarm sections). The BOR alarm is always enabled. The first alarm that occurs makes the device respond to the Conditional Search ROM command. ______________________________________________________________________________________ 37 DS1923 Initialization DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 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. For example, if more than one slave is present on the bus and a read command is issued following the Skip ROM command, data collision occurs on the bus as multiple slaves transmit simultaneously (open-drain pulldowns produce a wired-AND result). Resume [A5h] The DS1923 must be accessed several times before a mission starts. In a multidrop environment this means that the 64-bit ROM code after a Match ROM command must be repeated for every access. To maximize the data throughput in a multidrop environment, the Resume command was implemented. This command 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. Accessing another device on the bus clears the RC bit, preventing two or more devices from simultaneously responding to the Resume command. Overdrive-Skip ROM [3Ch] On a single-drop bus this command can save time by allowing the bus master to access the memory/control functions without providing the 64-bit ROM code. Unlike the normal Skip ROM command, the Overdrive-Skip 38 ROM command sets the DS1923 in the overdrive mode (OD = 1). All communication following this command must occur at overdrive speed until a reset pulse of minimum 690μs duration resets all devices on the bus to standard speed (OD = 0). When issued on a multidrop bus, this command sets all overdrive-supporting devices into overdrive mode. To subsequently address a specific overdrive-supporting device, a reset pulse at overdrive speed must be issued followed by a Match ROM or Search ROM command sequence. This speeds 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 occurs on the bus as multiple slaves transmit simultaneously (open-drain pulldowns produce a wiredAND 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 DS1923 on a multidrop bus and to simultaneously set it in overdrive mode. Only the DS1923 that exactly matches the 64-bit ROM sequence responds to the subsequent memory/control function command. Slaves already in overdrive mode from a previous Overdrive-Skip ROM or successful Overdrive-Match ROM command remain in overdrive mode. All overdrive-capable slaves return to standard speed at the next reset pulse of minimum 690μs duration. The Overdrive-Match ROM command can be used with a single or multiple devices on the bus. ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory DS1923 BUS MASTER Tx RESET PULSE FROM FIGURE 11b FROM MEMORY/CONTROL FUNCTION FLOWCHART (FIGURE 9) OD RESET PULSE? N OD = 0 Y BUS MASTER Tx ROM FUNCTION COMMAND 33h READ ROM COMMAND? DS1923 Tx PRESENCE PULSE N 55h MATCH ROM COMMAND? F0h SEARCH ROM COMMAND? N ECh CONDITIONAL SEARCH COMMAND? N Y Y Y Y RC = 0 RC = 0 RC = 0 RC = 0 N N TO FIGURE 11b CONDITION MET? Y DS1923 Tx FAMILY CODE (1 BYTE) DS1923 Tx BIT 0 MASTER Tx BIT 0 BIT 0 MATCH? N N DS1923 Tx BIT 0 MASTER Tx BIT 0 MASTER Tx BIT 0 BIT 0 MATCH? N DS1923 Tx BIT 1 MASTER Tx BIT 1 BIT 1 MATCH? N N DS1923 Tx BIT 1 DS1923 Tx BIT 1 DS1923 Tx BIT 1 MASTER Tx BIT 1 MASTER Tx BIT 1 BIT 1 MATCH? N Y Y MASTER Tx BIT 63 BIT 63 MATCH? N N BIT 1 MATCH? Y DS1923 Tx BIT 63 DS1923 Tx CRC BYTE BIT 0 MATCH? Y Y Y DS1923 Tx SERIAL NUMBER (6 BYTES) DS1923 Tx BIT 0 DS1923 Tx BIT 0 DS1923 Tx BIT 63 DS1923 Tx BIT 63 DS1923 Tx BIT 63 MASTER Tx BIT 63 MASTER Tx BIT 63 BIT 63 MATCH? N BIT 63 MATCH? Y Y Y RC = 1 RC = 1 RC = 1 TO FIGURE 11b FROM FIGURE 11b TO MEMORY/CONTROL FUNCTION FLOWCHART (FIGURE 9) Figure 11a. ROM Functions Flowchart ______________________________________________________________________________________ 39 DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory TO FIGURE 11a FROM FIGURE 11a CCh SKIP ROM COMMAND? N Y A5h RESUME COMMAND? 3Ch OVERDRIVESKIP ROM? N Y N RC = 0; OD = 1 RC = 1? N Y Y RC = 0 69h OVERDRIVEMATCH ROM? RC = 0; OD = 1 N Y MASTER Tx RESET? Y MASTER Tx BIT 0 N (SEE NOTE) MASTER Tx RESET? N Y BIT 0 MATCH? N OD = 0 Y MASTER Tx BIT 1 (SEE NOTE) BIT 1 MATCH? N OD = 0 Y MASTER Tx BIT 63 (SEE NOTE) BIT 63 MATCH? N OD = 0 Y FROM FIGURE 11a RC = 1 TO FIGURE 11a NOTE: THE OD FLAG REMAINS AT 1 IF THE DEVICE WAS ALREADY AT OVERDRIVE SPEED BEFORE THE OVERDRIVE-MATCH ROM COMMAND WAS ISSUED. Figure 11b. ROM Functions Flowchart (continued) 40 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory DS1923 is in overdrive mode and tRSTL is no longer than 80μs, the device remains in overdrive mode. The DS1923 requires strict protocols to ensure data integrity. The protocol consists of four types of signaling on one line: reset sequence with reset pulse and presence pulse, write-zero, write-one, and read-data. Except for the presence pulse, the bus master initiates all these signals. The DS1923 can communicate at two different speeds: standard speed and overdrive speed. If not explicitly set into the overdrive mode, the DS1923 communicates 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 is seen in Figure 12 as “ε” and its duration depends on the pullup resistor (RPUP) used and the capacitance of the 1-Wire network attached. The voltage VILMAX is relevant for the DS1923 when determining a logical level, not triggering any events. The initialization sequence required to begin any communication with the DS1923 is shown in Figure 12. A reset pulse followed by a presence pulse indicates the DS1923 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 690μs or longer exits the overdrive mode, returning the device to standard speed. If the After the bus master has released the line, it goes into receive mode (Rx). Now the 1-Wire bus is pulled to VPUP through the pullup resistor or, in the case of a DS2480B driver, through active circuitry. When the threshold VTH is crossed, the DS1923 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 t RSTH window must be at least the sum of t PDHMAX , t PDLMAX , and t RECMIN . Immediately after tRSTH is expired, the DS1923 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 DS1923 takes place in time slots that 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 13. 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 DS1923 starts its internal timing generator that determines when the data line is sampled during a write time slot and how long data is valid during a read time slot. MASTER Tx "RESET PULSE" MASTER Rx "PRESENCE PULSE" ε tMSP VPUP VIHMASTER VTH VTL VILMAX 0V tRSTL tPDH tF tPDL tREC tRSTH RESISTOR MASTER DS1923 Figure 12. Initialization Procedure: Reset and Presence Pulse ______________________________________________________________________________________ 41 DS1923 1-Wire Signaling DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Master-to-Slave For a write-one time slot, the voltage on the data line must have crossed the VTH threshold before the write-one low time tW1LMAX is expired. For a write-zero time slot, the voltage on the data line must stay below the VTH threshold until the write-zero low time tW0LMIN is expired. The voltage on the data line should not exceed VILMAX during the entire tW0L or tW1L window. After the VTH threshold has been crossed, the DS1923 needs a recovery time tREC before it is ready for the next time slot. Slave-to-Master A read-data time slot begins like a write-one time slot. The voltage on the data line must remain below VTL until the read low time tRL is expired. During the tRL window, when responding with a 0, the DS1923 starts 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 DS1923 does not hold the data line low at all, and the voltage starts rising as soon as tRL is over. The sum of tRL + δ (rise time) on one side and the internal timing generator of the DS1923 on the other side define the master sampling window (t MSRMIN to tMSRMAX) in which the master must perform a read from the data line. For most reliable communication, t RL 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 DS1923 to get ready for the next time slot. Improved Network Behavior (Switchpoint Hysteresis) In a 1-Wire environment, line termination is possible only during transients controlled by the bus master (1Wire driver). 1-Wire networks, therefore, are 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. Noise coupled onto the 1-Wire line from external 42 sources can also result in signal glitching. 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 or cause a device-specific function command to abort. For better performance in network applications, the DS1923 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 DS1923’s 1-Wire front-end 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 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 lowpass 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 does not go below VTH - VHY, it is not recognized (Figure 14, 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 are ignored, even if they extend below V TH - V HY threshold (Figure 14, Case B, t GL < t REH ). Deep voltage droops or glitches that appear late after crossing the VTH threshold and extend beyond the tREH window cannot be filtered out and are taken as the beginning of a new time slot (Figure 14, Case C, tGL ≥ tREH). Devices that have the parameters tFPD, VHY, and tREH specified in their electrical characteristics use the improved 1-Wire front-end. ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory DS1923 WRITE-ONE TIME SLOT tW1L VPUP VIHMASTER VTH VTL VILMAX 0V ε tF tSLOT RESISTOR MASTER WRITE-ZERO TIME SLOT tW0L VPUP VIHMASTER VTH VTL VILMAX 0V ε tF tREC tSLOT RESISTOR MASTER READ-DATA TIME SLOT tMSR tRL VPUP VIHMASTER VTH MASTER SAMPLING WINDOW VTL VILMAX 0V δ tF tREC tSLOT RESISTOR MASTER DS1923 Figure 13. Read/Write Timing Diagrams ______________________________________________________________________________________ 43 DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory tREH tREH VPUP VTH VHY CASE A CASE B CASE C 0V tGL tGL Figure 14. Noise Suppression Scheme POLYNOMIAL = X16 + X15 + X2 + 1 1ST STAGE X0 X2 X1 9TH STAGE X8 3RD STAGE 2ND STAGE 10TH STAGE X9 11TH STAGE X10 4TH STAGE X3 12TH STAGE X11 5TH STAGE X4 13TH STAGE X12 6TH STAGE X5 14TH STAGE X13 7TH STAGE X6 8TH STAGE X7 15TH STAGE X14 16TH STAGE X15 X16 CRC OUTPUT INPUT DATA Figure 15. CRC-16 Hardware Description and Polynomial CRC Generation The DS1923 uses two types of CRCs. 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 DS1923 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 (noninverted) form, and it is computed at the factory and lasered into the ROM. The other CRC is a 16-bit type, generated according to the standardized CRC-16 polynomial function X16 + X15 + X2 + 1. This CRC is used for error detection when reading register pages or the data-log memory using the Read Memory with CRC command and for fast verification of a data transfer when writing to or reading from the scratchpad. In contrast to the 8-bit 44 CRC, the 16-bit CRC is always communicated in the inverted form. A CRC generator inside the DS1923 (Figure 15) calculates a new 16-bit CRC as shown in the command flowchart 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 CRC flowchart, the 16bit 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 CRC flowchart 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 shift- ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory 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 DS1923 transmits 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, refer to Application Note 27. Command-Specific 1-Wire Communication Protocol—Legend SYMBOL DESCRIPTION RST 1-Wire reset pulse generated by master. PD 1-Wire presence pulse generated by slave. Select Command and data to satisfy the ROM function protocol. WS Command “Write Scratchpad.” RS Command “Read Scratchpad.” CPS Command “Copy Scratchpad with Password.” RMC Command “Read Memory with Password and CRC.” CM Command “Clear Memory with Password.” FC Command “Forced Conversion.” SM Command “Start Mission with Password.” STP Command “Stop Mission with Password.” TA Target Address TA1, TA2. TA–E/S Target Address TA1, TA2 with E/S byte. <Data to EOS> Transfer of as many data bytes as are needed to reach the scratchpad offset 1Fh. <Data to EOP> Transfer of as many data bytes as are needed to reach the end of a memory page. <Data to EOM> Transfer as many bytes as are needed to reach the end of the data-log memory. <PW/Dummy> <32 Bytes> <Data> Transfer of 8 bytes that either represent a valid password or acceptable dummy data. Transfer of 32 bytes. Transfer of an undetermined amount of data. FFh Transmission of one FFh byte. CRC-16 Transfer of an inverted CRC-16. FF Loop Indefinite loop where the master reads FF bytes. AA Loop Indefinite loop where the master reads AA bytes. ______________________________________________________________________________________ 45 DS1923 ing in the command code, the target addresses TA1 and TA2, and all the data bytes. The DS1923 transmits this CRC only if the data bytes written to the scratchpad include scratchpad ending offset 11111b. The data can start at any location within the scratchpad. With the Read Scratchpad command, the CRC is generated by first clearing the CRC generator and then Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory DS1923 Command-Specific 1-Wire Communication Protocol—Color Codes Master-to-Slave Slave-to-Master 1-Wire Communication Examples Write Scratchpad, Reaching the End of the Scratchpad (Cannot Fail) RST PD Select WS TA <Data to EOS> CRC-16 FF Loop Read Scratchpad (Cannot Fail) RST PD Select RS TA-E/S <Data to EOS> CRC-16 FF Loop Copy Scratchpad with Password (Success) RST PD Select CPS TA-E/S <PW/Dummy> AA Loop Copy Scratchpad with Password (Fail TA-E/S or Password) RST PD Select CPS TA-E/S <PW/Dummy> FF Loop Read Memory with Password and CRC (Success) RST PD Select RMC TA <PW/Dummy> <Data to EOP> CRC-16 <32 Bytes> CRC-16 FF Loop Loop Read Memory with Password and CRC (Fail Password or Address) RST PD Select RMC TA <PW/Dummy> FF Loop Clear Memory with Password RST PD Select CM <PW/Dummy> FFh FF Loop To verify success, read the General Status register at address 0215h. If MEMCLR is 1, the command was executed successfully. 46 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Forced Conversion RST PD Select FC FFh FF Loop To read the result and to verify success, read the addresses 020Ch to 020Fh (results) and the Device Samples Counter at address 0223h to 0225h. If the count has incremented, the command was executed successfully. Start Mission with Password RST PD Select SM <PW/Dummy> FFh FF Loop To verify success, read the General Status register at address 0215h. If MIP is 1 and MEMCLR is 0, the command was executed successfully. Stop Mission with Password RST PD Select STP <PW/Dummy> FFh FF Loop To verify success, read the General Status register at address 0215h. If MIP is 0, the command was executed successfully. Mission Example: Prepare and Start a New Mission Step 1: Clear the data of the previous mission. Step 2: Write the setup data to register page 1. Assumption: The previous mission has been ended by using the Stop Mission command. Passwords are not enabled. The device is a DS1923. Starting a mission requires three steps: Step 3: Start the new mission. Step 1: Clear the data of the previous mission. MASTER MODE With only a single device connected to the bus master, the communication of step 1 looks like this: DATA (LSB FIRST) Tx (Reset) Rx (Presence) Tx CCh Tx 96h Tx <8 FFh bytes> Tx FFh Tx (Reset) Rx (Presence) COMMENTS Reset pulse Presence pulse Issue “Skip ROM” command Issue “Clear Memory” command Send dummy password Send dummy byte Reset pulse Presence pulse ______________________________________________________________________________________ 47 DS1923 1-Wire Communication Examples (continued) DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Step 2: Write the setup data to register page 1. During the setup, the device needs to learn the following information: • Time and Date • Sample Rate • Alarm Thresholds 48 ADDRESS DATA 0200h 00h 0201h 30h 0202h 15h 0203h 15h 0204h 05h 0205h 04h 0206h 0Ah 0207h 00h 0208h 66h 0209h 7Ah 020Ah 6Fh 020Bh 9Eh 020Ch FFh 020Dh FFh 020Eh FFh 020Fh FFh • Alarm Controls (Response to Conditional Search ROM) • General Mission Parameters (e.g., Channels to Log and Logging Format, Rollover, Start Mode) • Mission Start Delay The following data sets up the DS1923 for a mission that logs temperature and humidity using 8-bit format for both. EXAMPLE VALUES FUNCTION 15:30:00 hours Time 15th of May in 2004 Date Every 10 minutes (EHSS = 0) Sample rate 10°C Low 20°C High Temperature Alarm Thresholds 40%RH Low 70%RH High Humidity Alarm Threshold, no software correction used (Don’t care) Clock through read-only registers 0210h 03h Enable high and low alarm Temperature Alarm Control 0211h FFh Enable high and low alarm Humidity Alarm Control 0212h 01h On (enabled), EHSS = 0 (low sample rate) RTC Oscillator Control, sample rate selection 0213h C3h Normal start; no rollover; 8-bit logging General Mission Control 0214h FFh 0215h FFh (Don’t care) Clock through read-only registers 0216h 5Ah 0217h 00h 90 minutes Mission Start Delay 0218h 00h ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory MASTER MODE DATA (LSB FIRST) Tx (Reset) Rx (Presence) Tx CCh Issue “Skip ROM” command Tx 0Fh Issue “Write Scratchpad” command Tx 00h TA1, beginning offset = 00h Tx 02h Tx <25 Data Bytes> Tx <7 FFh Bytes> Tx (Reset) Rx (Presence) Tx CCh Issue “Skip ROM” command Tx AAh Issue “Read Scratchpad” command Rx 00h Read TA1, beginning offset = 00h Rx 02h Read TA2, address = 0200h Rx 1Fh Rx <32 Data Bytes> COMMENTS Reset pulse Presence pulse TA2, address = 0200h Write 25 bytes of data to scratchpad Write through the end of the scratchpad Reset pulse Presence pulse Read E/S, ending offset = 1Fh, flags = 0h Read scratchpad data and verify Tx (Reset) Rx (Presence) Tx CCh Tx 99h Issue “Copy Scratchpad” command Tx 00h TA1 Tx 02h TA2 Tx 1Fh E/S Tx <8 FFh Bytes> Tx (Reset) Rx (Presence) Reset pulse Presence pulse Issue “Skip ROM” command (AUTHORIZATION CODE) Send dummy password Reset pulse Presence pulse If step 3 was successful, the MIP bit in the General Status register is 1, the MEMCLR bit is 0, and the Mission Start Delay counts down. Step 3: Start the new mission. With only a single device connected to the bus master, the communication of step 3 looks like this: MASTER MODE DS1923 With only a single device connected to the bus master, the communication of step 2 looks like this: DATA (LSB FIRST) COMMENTS Tx (Reset) Rx (Presence) Tx CCh Issue “Skip ROM” command Tx CCh Issue “Start Mission” command Tx <8 FFh Bytes> Tx FFh Tx (Reset) Rx (Presence) Reset pulse Presence pulse Send dummy password Send dummy byte Reset pulse Presence pulse ______________________________________________________________________________________ 49 DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Software Correction Algorithm for Temperature The accuracy of high-resolution temperature conversion results (forced conversion as well as temperature logs) can be improved through a correction algorithm. The data needed for this software correction is stored in the calibration memory (memory page 18). It consists of reference temperature (Tr) and conversion result (Tc) for two different temperatures, as shown below. See the Temperature Conversion section for the binary number format. The software correction algorithm requires two additional values, which are not stored in the device. For the DS1923 these values are Tr1 = 60°C and Offset = 41. The correction algorithm consists of two steps, preparation and execution. The preparation step first converts temperature data from binary to decimal °C format. Next, three coefficients A, B, and C are computed. In the execution step, the temperature reading as delivered by the DS1923 is first converted from the low/highbyte format (TcL, TcH) to °C (Tc) and then corrected to Tcorr. Once step 1 is performed, the three coefficients can be used repeatedly to correct any temperature reading and temperature log of the same device. ADDRESS DESIGNATOR DESCRIPTION 0240h Tr2H 0241h Tr2L Cold reference temperature, low-byte. 0242h Tc2H Conversion result at cold reference temperature, high-byte. 0243h Tc2L Conversion result at cold reference temperature, low-byte. 0244h Tr3H Hot reference temperature, high-byte. 0245h Tr3L Hot reference temperature, low-byte. 0246h Tc3H Conversion result at hot reference temperature, high-byte. 0247h Tc3L Conversion result at hot reference temperature, low-byte. Cold reference temperature, high-byte. Step 1: Preparation Tr1 = 60 Offset = 41 Tr2 = Tr2H/2 + Tr2L/512 - Offset (convert from binary to °C) Tr3 = Tr3H/2 + Tr3L/512 - Offset Tc2 = Tc2H/2 + Tc2L/512 - Offset Tc3 = Tc3H/2 + Tc3L/512 - Offset (convert from binary to °C) (convert from binary to °C) (convert from binary to °C) Err2 = Tc2 - Tr2 Err3 = Tc3 - Tr3 Err1 = Err2 B = (Tr22 - Tr12) x (Err3 - Err1)/[(Tr22 - Tr12) x (Tr3 - Tr1) + (Tr32 - Tr12) x (Tr1 - Tr2)] A = B x (Tr1 - Tr2)/(Tr22 - Tr12) C = Err1 - A x Tr12 - B x Tr1 Step 2: Execution Tc = TcH/2 + TcL/512 - Offset (convert from binary to °C) Tcorr = Tc - (A x Tc2 + B x Tc + C) (the actual correction) 50 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory CONVERTED DATA FROM CALIBRATION MEMORY Tr2 = -10.1297°C Tr3 = 24.6483°C Tc2 = -10.0625°C Tc3 = 24.5°C ERROR VALUES Err2 = 0.0672°C Err3 = -0.1483°C Err1 = Err2 RESULTING CORRECTION COEFFICIENTS B = -0.008741 A = 0.000175/°C C = -0.039332°C APPLICATION OF CORRECTION COEFFICIENTS TO SAMPLE READING Tc = 22.500000°C Tcorr = 22.647275°C Note: The software correction requires floating point arithmetic (24-bit or better). Suitable math libraries for microcontrollers are found on various websites and are included in cross-compilers. Software Correction Algorithm for Humidity The accuracy of humidity conversion results (forced conversion as well as logged data) can be improved through a correction algorithm. The data needed for this software correction is stored in the calibration memory (memory page 18). It consists of reference humidity (Hr) and conversion result (Hc) for three different humidity levels, as shown below. The data is taken at 25°C. ADDRESS DESIGNATOR 0248h Hr1H The correction algorithm consists of two steps: preparation and execution. The preparation step first converts humidity data from binary to decimal %RH format. Next, three coefficients A, B, and C are computed. In the execution step the humidity reading as delivered by the DS1923 (raw data) is first converted from the low/highbyte format (HcL, HcH) to %RH (Hc) and then corrected to Hcorr. Once step 1 is performed, the three coefficients can be used repeatedly to correct any humidity reading and humidity log of the same device. DESCRIPTION Low reference humidity, high byte. 0249h Hr1L Low reference humidity, low byte. 024Ah Hc1H Conversion result at low reference humidity, high byte. 024Bh Hc1L Conversion result at low reference humidity, low byte. 024Ch Hr2H Medium reference humidity, high byte. 024Dh Hr2L Medium reference humidity, low byte. 024Eh Hc2H Conversion result at medium reference humidity, high byte. 024Fh Hc2L Conversion result at medium reference humidity, low byte. 0250h Hr3H High reference humidity, high byte. 0251h Hr3L High reference humidity, low byte. 0252h Hc3H Conversion result at high reference humidity, high byte. 0253h Hc3L Conversion result at high reference humidity, low byte. ______________________________________________________________________________________ 51 DS1923 Numerical Temperature Correction Example DS1923 Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory Step 1: Preparation For the humidity data in the calibration memory, the lower 4 bits of each low byte are set to 0. This simplifies the conversion from the binary data format to raw %RH values to a one-line equation. Hr1 = ((Hr1H x 256 + Hr1L) x 5.02/65536 - 0.958)/0.0307 (convert from binary to %RH) Hr2 = ((Hr2H x 256 + Hr2L) x 5.02/65536 - 0.958)/0.0307 Hr3 = ((Hr3H x 256 + Hr3L) x 5.02/65536 - 0.958)/0.0307 Hc1 = ((Hc1H x 256 + Hc1L) x 5.02/65536 - 0.958)/0.0307 Hc2 = ((Hc2H x 256 + Hc2L) x 5.02/65536 - 0.958)/0.0307 Hc3 = ((Hc3H x 256 + Hc3L) x 5.02/65536 - 0.958)/0.0307 Err1 = Hc1 - Hr1 Err2 = Hc2 - Hr2 Err3 = Hc3 - Hr3 B = [(Hr22 - Hr12) x (Err3 - Err1) + Hr32 x (Err1 - Err2) + Hr12 x (Err2 - Err1)]/[(Hr22 - Hr12) x (Hr3 - Hr1) + (Hr32 - Hr12) x (Hr1 - Hr2)] A = [Err2 - Err1 + B x (Hr1 - Hr2)]/(Hr22 - Hr12) C = Err1 - A x Hr12 - B x Hr1 Step 2: Execution Hc = ((HcH x 256 + HcL) x 5.02/65536 - 0.958)/0.0307 Hcorr = Hc - (A x Hc2 + B x Hc + C) (convert from binary to %RH) (the actual correction) Numerical Humidity Correction Example CONVERTED DATA FROM CALIBRATION MEMORY Hr1 = 20%RH Hr2 = 60%RH Hr3 = 90%RH Hc1 = 17.65%RH Hc2 = 56.41%RH Hc3 = 89.57%RH RESULTING CORRECTION COEFFICIENTS B = -0.186810 A = 0.001948%RH C = 0.607143%RH ERROR VALUES Err1 = -2.35%RH Err2 = -3.59%RH Err3 = -0.43%RH APPLICATION OF CORRECTION COEFFICIENTS TO SAMPLE READING Hc = 8.9%RH Hcorr = 9.8%RH Note: The software correction requires floating point arithmetic (24-bit or better). Suitable math libraries for microcontrollers are found on various websites and are included in cross-compilers. 52 ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory The data for the software correction of humidity is taken at 25°C. Since the temperature characteristics of the humidity sensor are known, humidity readings taken at other temperatures can be corrected, provided the temperature at the time of the humidity conversion is also known. Therefore, to obtain the most accurate humidity results, both temperature and humidity should be logged. NAME Temperature compensation uses the following equation: HTcorr = (Hcorr x K + α x (T - 25°C) - β x (T - 25°C)2)/(K + γ x (T - 25°C) - δ x (T - 25°C)2) Hcorr is the humidity reading with the software correction algorithm for humidity already applied, as explained in the previous section. The function and values of the other parameters are explained in the table below. FUNCTION VALUE T Temperature at the time of humidity conversion. (in °C) K Humidity sensor conversion constant. 0.0307 Linear compensation, enumerator. 0.0035/°C Quadratic compensation, enumerator. 0.000043/°C2 Linear compensation, denominator. >15°C: 0.00001/°C 15°C: -0.00005/°C Quadratic compensation, denominator. 0.000002/°C2 Numerical RH Temperature Compensation Example SAMPLE INPUT DATA T = 70°C Hcorr = 24.445%RH APPLICATION OF CORRECTION COEFFICIENTS TO SAMPLE READING = 0.00001/°C HTcorr = (24.445 x 0.0307 + 0.0035 x 45 - 0.000043 x 452)/(0.0307 + 0.00001 x 45 - 0.000002 x 452) HTcorr = 30.291% Software Saturation Drift Compensation Capacitive humidity sensors read higher humidity values than the actual humidity level when they are exposed to a high-humidity environment for an extended time period. The DS1923’s humidity sensor produces readings that are higher than the actual humidity when exposed to humidity levels of about 70%RH and higher. This shift continues to increase while the device remains at 70%RH and above. This effect is called saturation drift, or hysteresis. This drift is reversible. Readings return to their regular level when the DS1923 is removed from a high-humidity environment. It is possible to compensate for most of the error introduced by the saturation drift by post-processing temperature and humidity logs using the equation below, which is based on laboratory tests and curve-fitting techniques. N 0 . 0156 × ARH × 2 . 54 − 0. 3502 × k k HScorr = HTcorr − ∑ k =1 1 + ( Tk − 25 ) / 100 ARHk The average software-corrected and temperature-compensated humidity reading of the kth hour that the device is continuously exposed to 70%RH or higher. Tk The average software-corrected temperature reading of the k th hour that the device is continuously exposed to 70%RH or higher. N The number of hours that the device is continuously exposed to 70%RH or higher. HTcorr The humidity reading at the end of the Nth hour with the software correction algorithm for humidity and temperature compensation already applied. See the Software Correction Algorithm for Humidity and RH Temperature Compensation sections for details. The numbers in the equation are derived from curve fitting. They apply to a time scale in hours. ______________________________________________________________________________________ 53 DS1923 RH Temperature Compensation Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory DS1923 Numerical Saturation Drift Compensation Example SAMPLE INPUT DATA (N = 8) APPLICATION OF CORRECTION ALGORITHM k (HOUR) Tk (°C) ARHk (%RH) PARTIAL CORRECTIONS (INDIVIDUAL ADDENDS) 1 25.1 91.1 1.024321 2 25.0 92.5 0.751140 3 24.9 92.9 0.544824 4 25.0 93.1 0.393535 5 25.1 93.2 0.283950 6 25.1 93.3 0.205086 7 25.0 93.6 0.148591 8 24.9 93.7 0.107428 HTcorr = 93.70207%RH Sum of partial corrections: HScorr = HTcorr - Sum of partial corrections = 93.70207%RH - 3.458875%RH HScorr = 90.24319%RH The data in this example was taken from devices that were exposed for several hours to 90%RH at 25°C in a 3.458875 test chamber. The drift per hour decreases the longer the device is exposed to high humidity. The correction algorithm compensates for the drift reasonably well. For some applications, compensation may not be necessary since the error introduced by the saturation is relatively small. Pin Configuration 5.89mm BACK-SIDE BRANDING FRONT-SIDE BRANDING 16.25mm iB t o n ®. c ut A1 t o n ®. c om ut om iB 0.51mm ® 41 000000FBC52B grochr 17.35mm W 1-Wire® Hygrochron™ WZ ZZ D S1923 F5 on ™ YY Hy IO GND Package Information For the latest package outline information and land patterns (footprints), go to www.maxim-ic.com/packages. Note that a “+”, “#”, or “-” in the package code indicates RoHS status only. Package drawings may show a different suffix character, but the drawing pertains to the package regardless of RoHS status. 54 PACKAGE TYPE PACKAGE CODE OUTLINE NO. LAND PATTERN NO. F5 iButton IB#6HB 21-0266 — ______________________________________________________________________________________ Hygrochron Temperature/Humidity Logger iButton with 8KB Data-Log Memory REVISION NUMBER REVISION DATE 0 8/04 1 12/07 2 4/09 3 10/09 4 4/11 DESCRIPTION Initial release PAGES CHANGED — Changed bullet from “Hydrophobic Filter Protects Sensor Against Dust, Dirt, Water, and Contaminants” to “Hydrophobic Filter Protects Sensor Against Dust, Dirt, Contaminants, and Water Droplets/Condensation”; deleted “Application Pending” from UL bullet and safety statement; added text to the Application section: Note that the initial sealing level of DS1923 achieves IP56. Aging and use conditions can degrade the integrity of the seal over time, so for applications with significant exposure to liquids, sprays, or other similar environments, it is recommended to place the Hygrochron under a shield to protect it. (See www.maxim-ic.com/AN4126). The hydrophobic filter may not protect the DS1923 from destruction in the event of full submersion in liquid Created newer template-style data sheet Deleted the standard part number from the Ordering Information table Updated UL certificate reference; added “Guaranteed by design” note to Electrical Characteristics table; deleted from the tW1L specification in the Electrical Characteristics table; applied note 13 to the tW0L specification in the Electrical Characteristics table; changed RTC accuracy specification in the Electrical Characteristics table from numbers to graph; added more details to Electrical Characteristics table notes 4, 13, and 14; revised the last sentence of the Parasite Power section for more clarity; added paragraph on validation certificates to Detailed Description section; added more details on the Device Samples Counter in the Other Indicators section 1, 4, 10 All 1 1–5, 11, 24 Maxim cannot assume responsibility for use of any circuitry other than circuitry entirely embodied in a Maxim product. No circuit patent licenses are implied. Maxim reserves the right to change the circuitry and specifications without notice at any time. Maxim Integrated Products, 120 San Gabriel Drive, Sunnyvale, CA 94086 408-737-7600 ____________________ 55 © 2011 Maxim Integrated Products Maxim is a registered trademark of Maxim Integrated Products, Inc. DS1923 Revision History