DS1629 2-Wire Digital Thermometer and Real Time Clock www.dalsemi.com PIN ASSIGNMENT FEATURES § Measures temperatures from -55°C to +125°C; Fahrenheit equivalent is -67°F to 257°F § Real time clock counts seconds, minutes, hours, date of the month, month, day of the week, and year with leap year compensation through the year 2100 § Thermometer accuracy is ±2.0°C (typ) § Thermometer resolution is 9 bits (expandable) § Thermostatic and time alarm settings are user definable. Dedicated open-drain Alarm output § 32 bytes SRAM for general data storage § Data is read from/written to via a 2-wire serial interface. (open drain I/O lines) § Wide power supply range (2.2V - 5.5V) § Applications include personal computers/PDAs, cellular telephones, office equipment, dataloggers, or any thermally sensitive system § 8-pin 150mil SOIC package SDA 1 8 VDD SCL 2 7 OSC ALRM 3 X1 GND 4 6 5 X2 DS1629S 8-Pin SOIC (150-mil) PIN DESCRIPTION SDA SCL GND ALRM X1 X2 OSC VDD - 2-Wire Serial Data Input/Output - 2-Wire Serial Clock - Ground - Thermostat & Clock Alarm Output - 32.768 kHz Crystal Input - 32.768 kHz Crystal Feedback Output - Buffered Oscillator Output - Power Supply Voltage (+2.2V to +5V) DESCRIPTION The DS1629 2-Wire Digital Thermometer and Real Time Clock integrates the critical functions of a real time clock and a temperature monitor in a small outline 8-pin SOIC package. Communication to the DS1629 is accomplished via a 2-wire interface. The wide power supply range and minimal power requirement of the DS1629 allow for accurate time/temperature measurements in battery-powered applications. The digital thermometer provides 9-bit temperature readings which indicate the temperature of the device. No additional components are required; the device is truly a “temperature-to-digital” converter. The clock/calendar provides seconds, minutes, hours, day, date of the month, day of the week, month, and year. The end of the month date is automatically adjusted for months with less than 31 days, including corrections for leap years. It operates in either a 12- or 24-hour format with AM/PM indicator in 12-hour mode.The crystal oscillator frequency is internally divided, as specified by device configuration. An open-drain output is provided that can be used as the oscillator input for a microcontroller. 1 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 The open-drain alarm output of the DS1629 will become active when either the measured temperature exceeds the programmed over-temperature limit (TH) or current time reaches the programmed alarm setting. The user can configure which event (time only, temperature only, either, or neither) will generate an alarm condition. For storage of general system data or time/temperature datalogging, the DS1629 features 32 bytes of SRAM. Applications for the DS1629 include personal computers/ PDAs, cellular telephones, office equipment, thermal dataloggers, or any microprocessor-based, thermally-sensitive system. DETAILED PIN DESCRIPTION Table 1 PIN 1 2 3 SYMBOL SDA SCL ALRM 4 5 6 7 8 GND X2 X1 OSC VDD DESCRIPTION Data input/output pin for 2-wire serial communication port. Clock input/output pin for 2-wire serial communication port. Alarm output Open drain time/temperature alarm output with configurable active state Ground pin. 32.768 kHz Feedback Output . 32.768 kHz Crystal input. Oscillator Output. Open-drain output used for microcontroller clock input. Supply voltage 2.2V - 5.5V input power pin. OVERVIEW A block diagram of the DS1629 is shown in Figure 1. The DS1629 consists of six major components: 1. Direct-to-digital temperature sensor 2. Real time clock 3. 2-wire interface 4. Data registers 5. Thermal & clock alarm comparators 6. Oscillator divider & buffer The factory-calibrated temperature sensor requires no external components. The very first time the DS1629 is powered up it begins temperature conversions, and performs conversions continuously. The host can periodically read the value in the temperature register, which contains the last completed conversion. As conversions are performed in the background, reading the temperature register does not affect the conversion in progress. The host can modify DS1629 configuration such that it does not power up in the auto-convert or continuous convert modes. This could be beneficial in power-sensitive applications. The real time clock/calendar maintains a BCD count of seconds, minutes, hours, day of the week, day of the month, month, and year. It does so with an internal oscillator/ divider and a required 32.768 kHz crystal. The end of the month date is automatically updated for months with less than 31 days, including compensation for leap years through the year 2100. The clock format is configurable as a 12- (power-up default) or 24-hour format, with an AM/PM indicator in the 12-hour mode. The RTC can be shut down by clearing a bit in the clock register. 2 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 The crystal frequency is internally divided by a factor that the user defines. The divided output is buffered and can be used to clock a microcontroller. The DS1629 features an open-drain alarm output. It can be configured to activate on a thermal event, time event, either thermal or time, or neither thermal nor time (disabled, power-up state). The thermal alarm becomes active when measured temperature is greater than or equal to the value stored in the TH thermostat register. It will remain active until temperature is equal to or less than the value stored in TL, allowing for programmable hysteresis. The clock alarm will activate at the specific minute of the week that is programmed in the clock alarm register. The time alarm is cleared by reading from or writing to either the clock register or the clock alarm register. The DS1629 configuration register defines several key items of device functionality. It sets the conversion mode of the digital thermometer and what event, if any, will constitute an alarm condition. It also sets the active state of the alarm output. Finally, it enables/disables and sets the division factor for the oscillator output. The DS1629 also features 32 bytes of SRAM for storage of general information. This memory space has no bearing on thermometer or chronograph operation. Possible uses for this memory are time/temperature histogram storage, thermal datalogging, etc. Digital data is written to/read from the DS1629 via a 2-wire interface, and all communication is MSb first. Individual registers are accessed by unique 8-bit command protocols. The DS1629 features a wide power supply range (2.2V ≤ VDD ≤ 5.5V) for clock functionality, SRAM data retention, and 2-wire communication. EEPROM writes and temperature conversions should only be performed at 2.7V ≤VDD ≤5.5V for reliable results. 3 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 DS1629 FUNCTIONAL BLOCK DIAGRAM Figure 1 OPERATION-Measuring Temperature The DS1629 measures temperature through the use of an on-chip temperature measurement technique with an operating range from -55°C to +125°C. The device can be configured to perform a single conversion, store the result, and return to a standby mode or it can be programmed to convert continuously. Regardless of the mode used, the last completed digital temperature conversion is retrieved from the temperature register using the Read Temperature (AAh) protocol, as described in detail in the “Command Set” section. Details on how to change the settings after power-up are contained in the “OPERATION-Configuration” section. The DS1629 measures temperature by counting the number of clock cycles that an oscillator with a low temperature coefficient goes through during a gate period determined by a high temperature coefficient oscillator. The counter is preset with a base count that corresponds to -55°C. If the counter reaches 0 before the gate period is over, the temperature register, which is also preset to the -55°C value, is incremented, indicating that the temperature is higher than -55°C. 4 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 At the same time, the counter is then preset with a value determined by the slope accumulator circuitry. This circuitry is needed to compensate for the parabolic behavior of the oscillators over temperature. The counter is then clocked again until it reaches 0. If the gate period is still not finished, then this process repeats. The slope accumulator is used to compensate for the nonlinear behavior of the oscillators over temperature, yielding a high resolution temperature measurement. This is done by changing the number of counts necessary for the counter to go through for each incremental degree in temperature. To obtain the desired resolution, therefore, both the value of the counter and the number of counts per degree C (the value of the slope accumulator) at a given temperature must be known. Internally, this calculation is done inside the DS1629 to provide 0.5°C resolution. Table 2 describes the exact relationship of output data to measured temperature. For Fahrenheit usage, a lookup table or conversion factor must be used. Note that temperature is represented in the DS1629 in terms of a 0.5°C LSB, yielding the 9-bit format illustrated in Table 2. Higher resolutions may be obtained by implementing the algorithm in Application Note 105 and performing the following calculation. The 8-bit COUNT_REMAIN value can be obtained via the Read Counter (A8h) command and the COUNT_PER_C value (also 8-bit) is read via the Read Slope command (A9h). T = TEMP_READ -0.25 + (COUNT_PER _C_COUNT_REMAIN) COUNT_PER_ C Temperature/Data Relationships Table 2 S MSb 2-1 26 25 24 0 0 0 TEMPERATURE +125°C +25°C 0.5°C 0°C -0.5°C -25°C -55°C 23 (unit = °C) 0 DIGITAL OUTPUT (Binary) 01111101 00000000 00011001 00000000 00000000 10000000 00000000 00000000 11111111 10000000 11100111 00000000 11001001 00000000 5 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 22 21 0 0 20 LSb 0 MSB LSB DIGITAL OUTPUT (Hex) 7D00h 1900 0080 0000 FF80 E700h C900h 102299 DS1629 OPERATION-Real Time Clock/Calendar DS1629 real-time clock/calendar data is accessed with the 2-wire command protocol C0h. If the R/ W bit in the 2-wire control byte is set to 0, the bus master will set the clock (write to the clock register). The bus master sets the R/ W bit to 1 to read the current time (read from the clock register). Refer to the “2-Wire Serial Bus” section for details on this protocol. The format of the clock register is shown below in Figure 2. Data format for the clock register is binarycoded decimal (BCD). Most of the clock register is self-explanatory, but a few of the bits require elaboration. CH = Clock halt bit. This bit is set to 0 to enable the oscillator and set to 1 to disable it. If the bit is changed during a write to the clock register, the oscillator will not be started (or stopped) until the bus master issues a STOP pulse. The DS1629 power-up default has the oscillator enabled (CH=0) so that OSC can be used for clocking a microcontroller at power-up. 12/24 = Clock mode bit. This bit is set high when the clock is in the 12-hour mode and set to 0 in the 24hour mode. Bit 5 of byte 02h of the clock register contains the MSb of the hours (1 for hours 20-23) if the clock is in the 24-hour mode. If the clock mode is set to the 12-hour mode, this is the AM/PM bit. In the 12-hour mode, a 0 in this location denotes AM and a 1 denotes PM. When setting the clock, this bit must be written to according to the clock mode used. Bits in the clock register filled with 0 are a "don't care" on a write, but will always read out as 0. DS1629 CLOCK REGISTER FORMAT Figure 2 6 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 OPERATION-Alarms The DS1629 features an open-drain alarm output with a user-definable active state (factory default is active low). By programming the configuration register, the user also defines the event, if any, would generate an alarm condition. The four possibilities are: • Temperature alarm only • Time alarm only • Either temperature or time alarm • Alarm disabled (power–up default) Refer to the “OPERATION-Configuration” section for programming protocol. If the user chooses the alarm mode under which a thermal or time event generates an alarm condition, it is possible that either or both are generating the alarm. There are status bits in the configuration register (TAF, CAF) that define the current state of each alarm. In this way, the master can determine which event generated the alarm. If both events (thermal and time) are in an alarm state, the ALRM output will remain active until both are cleared. ALRM is the logical OR of the TAF and CAF flags if the device is configured for either to trigger the ALRM output. Figure 3 illustrates a possible scenario with this alarm mode. Refer to the “Thermometer Alarm” and “Clock Alarm” sections on how respective alarms are cleared. DS1629 ALARM TRANSFER FUNCTION Figure 3 7 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 Thermometer Alarm The thermostat comparator updates as soon as a temperature conversion is complete. When the DS1629’s temperature meets or exceeds the value stored in the high temperature trip register (TH), the TAF flag becomes active (high), and will stay active until the temperature falls below the temperature stored in the low temperature trigger register (TL). The respective register can be accessed over the 2-wire bus via the Access TH (A1h) or Access TL (A2h) commands. Reading from or writing to the respective register is controlled by the state of the R/ W bit in the 2-wire control byte (See “2-wire Serial Data Bus” section). The format of the TH and TL registers is identical to that of the Thermometer register; that is, 9-bit 2’s complement representation of the temperature in °C. Both TH and TL are nonvolatile EEPROM registers guaranteed to 2K write cycles. Thermostat Setpoint (TH/TL) Format Table 3 S MSb 2-1 26 25 24 0 0 0 23 (unit = °C) 0 22 21 0 0 20 LSb 0 MSB LSB Clock Alarm The clock alarm flag (CAF) becomes active within one second after the second, minute, hour, and day (of the week) of the clock register match the respective bytes in the clock alarm register. CAF will remain active until the bus master writes to or reads from either the clock register via the C0h command or the clock alarm register via the C7h command. The format of the clock alarm register is shown in Figure 4. The power-up default of the DS1629 has the clock alarm set to 12:00AM on Sunday. The register can be accessed over the 2-wire bus via the Access Clock Alarm (C7h) command. Reading from or writing to the register is controlled by the state of the R/ W bit in the 2-wire control byte (See “2-wire Serial Data Bus” section). The master must take precaution in programming bit 5 of byte 02h to ensure that the alarm setting matches the current clock mode. Bits designated with a 0 are a "don't care" on writes, but will always read out as a 0. OPERATION-USER SRAM The DS1629 has memory reserved for any purpose the user intends. The page is organized as 32 bytewide locations. The SRAM space is formatted as shown in Table 4. It is accessed via the 2-wire protocol 17h. If the R/ W bit of the control byte is set to 1, the SRAM will be read and a 0 in this location allows the master to write to the array. Reads or writes can be performed in the single byte or page mode. As such, the master must write the byte address of the first data location to be accessed. If the bus master is writing to/reading from the SRAM array in the page mode (multiple byte mode), the address pointer will automatically wrap from address 1Fh to 00h following the ACK after byte 1Fh. The SRAM array does not have a defined power-up default state. Refer to the “Command Set” section for details of the Access Memory protocol. 8 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 DS1629 SRAM FORMAT Table 4 BYTE 00h 01h 02h • • • 1Eh 1Fh CONTENTS SRAM BYTE 0 SRAM BYTE 1 SRAM BYTE 2 • • • SRAM BYTE 30 SRAM BYTE 31 DS1629 CLOCK ALARM REGISTER FORMAT Figure 4 OPERATION-Configuration/Status Register The configuration/status register is accessed via the Access Config (ACh) function command. Writing to or reading from the register is determined by the R/ W bit of the 2-wire control byte (See “2-Wire Serial Data Bus” section). Data is read from or written to the configuration register MSb first. The format of the register is illustrated in Figure 5. The effect each bit has on DS1629 functionality is described along with the power-up state and volatility. The user has read/write access to the MSB and read-only access to the LSB of the register. Configuration/Status Register Figure 5 OS1 MSb CAF OS0 A1 A0 0 CNV POL TAF CAL TAL 0 0 0 1SH LSb 0 MSB LSB 1SH = Temperature Conversion Mode. If 1SHOT is "1", the DS1629 will perform one temperature conversion upon reception of the Start Convert T protocol. If 1SHOT is "0", the DS1629 will continuously perform temperature conversions and store the last completed result in the Thermometer Register. The user has read/ write access to the nonvolatile bit, and the factory default state is "0" (continuous mode). POL = ALRM Polarity Bit. If POL = "1", the active state of the ALRM output will be high. A "0" stored in this location sets the thermostat output to an active low state. The user has read/write access to the nonvolatile POL bit, and the factory default state is "0" (active low). CNV = Power-up conversion state. If CNV="0" (factory default), the DS1629 will automatically initiate a temperature conversion upon power-up and supply stability. Setting CNV="1" will cause the DS1629 to power-up in a standby state. Table 5 illustrates how the user can set 1SH and CNV, depending on the power consumption sensitivity of the application. 9 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 DS1629 Thermometer Power-up Modes Table 5 CNV 0 0 ISH 0 1 1 0 1 1 MODE Powers up converting continuously (factory default) Automatically performs one conversion upon power-up. Subsequent conversions require a Start Convert command. Powers up in standby; upon Start Convert command, conversions will be performed continuously. Powers up in standby; upon Start Convert command, a single conversion will be performed and stored. A0, A1 = Alarm Mode. Table 6 defines the DS1629 alarm mode, based on the settings of the A0 and A1 bits. These bits define what event will activate the ALRM output. The alarm flags, CAF, TAF, CAL, TAL, are functional regardless of the state of these bits. Both locations are read/write and nonvolatile, and the factory default state disables the ALRM output (A0=A1=0). Alarm Mode Configuration Table 6 A1 0 0 1 1 A0 0 1 0 1 ALARM MODE Neither Thermal or Time (Disabled) Thermal only Time only Either Thermal or Time OS0, OS1 = Oscillator Output Setting. Table 7 defines the frequency of the OSC output, as defined by the settings of these bits. Both locations are read/write and nonvolatile, and the factory default state sets the OSC frequency equal to the crystal frequency (OS0=OS1="1"). The output should be disabled if the user does not intend to use it to reduce power consumption. OSC Frequency Configuration Table 7 OS1 0 0 1 1 OS0 0 1 0 1 OSC FREQUENCY Disabled 1/8f0 1/4f0 f0 CAF = Clock Alarm Flag. This volatile status bit will be set to "1" when the clock comparator is in an active state. Once set, it will remain "1" until reset by writing to or reading from either the clock register or clock alarm register. A "0" in this location indicates the clock is not in an alarm condition. This is a read-only bit (writes to this location constitute a "don’t care") and the power-up default is the flag cleared (CAF="0"). TAF = Thermal Alarm Flag. This volatile status bit will be set to "1" when the thermal comparator is in an active state. Once set, it will remain "1" until measured temperature falls below the programmed TL setting. A "0" in this location indicates the thermometer is not in an alarm condition. This is a read-only bit (writes to this location constitute a “don’t care”) and the power-up default is the flag cleared (TAF="0"). 10 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 CAL = Clock Alarm Latch. This volatile status bit will be set to "1" when the clock comparator becomes active. Once set, it will remain latched until DS1629 power is cycled. A "0" in this location indicates the clock has never been in an alarm condition since the DS1629 was powered-up. This is a read-only bit (writes to this location constitute a “don’t care”) and the power-up default is the flag cleared (CAL="0"). TAL = Thermal Alarm Latch. This volatile status bit will be set to "1" when the thermal comparator becomes active. Once set, it will remain latched until DS1629 power is cycled. A "0" in this location indicates the DS1629 temperature has never exceeded TH since power-up. This is a read-only bit (writes to this location constitute a “don’t care”) and the power-up default is the flag cleared (TAL="0"). 0 = Don’t care. "Don’t care" on a write, but will always read out as a "0". 2-WIRE SERIAL DATA BUS The DS1629 supports a bi-directional two-wire bus and data transmission protocol. A device that sends data onto the bus is defined as a transmitter, and a device receiving data as a receiver. The device that controls the message is called a “master.” The devices that are controlled by the master are “slaves.” The bus must be controlled by a master device which generates the serial clock (SCL), controls the bus access, and generates the START and STOP conditions. The DS1629 operates as a slave on the 2-wire bus. Connections to the bus are made via the open-drain I/O lines SDA and SCL. The following bus protocol has been defined: • Data transfer may be initiated only when the bus is not busy. • During data transfer, the data line must remain stable whenever the clock line is HIGH. Changes in the data line while the clock line is high will be interpreted as control signals. Accordingly, the following bus conditions have been defined: Bus not busy: Both data and clock lines remain HIGH. Start data transfer: A change in the state of the data line, from HIGH to LOW, while the clock is HIGH, defines a START condition. Stop data transfer: A change in the state of the data line, from LOW to HIGH, while the clock line is HIGH, defines the STOP condition. Data valid: The state of the data line represents valid data when, after a START condition, the data line is stable for the duration of the HIGH period of the clock signal. The data on the line must be changed during the LOW period of the clock signal. There is one clock pulse per bit of data. Each data transfer is initiated with a START condition and terminated with a STOP condition. The number of data bytes transferred between START and STOP conditions is not limited, and is determined by the master device. The information is transferred byte-wise and each receiver acknowledges with a 9th bit. The maximum clock rate of the DS1629 is 400 kHz. 11 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 Acknowledge: Each receiving device, when addressed, is obliged to generate an acknowledge after the reception of each byte. The master device must generate an extra clock pulse which is associated with this acknowledge bit. A device that acknowledges must pull down the SDA line during the acknowledge clock pulse in such a way that the SDA line is stable LOW during the HIGH period of the acknowledge related clock pulse. Of course, setup and hold times must be taken into account. A master must signal an end of data to the slave by not generating an acknowledge bit on the last byte that has been clocked out of the slave. In this case, the slave must leave the data line HIGH to enable the master to generate the STOP condition. Figure 6 details how data transfer is accomplished on the two-wire bus. Depending upon the state of the R/ W bit, two types of data transfer are possible: 1. Data transfer from a master transmitter to a slave receiver. The first byte transmitted by the master is the slave address. Next follows a number of data bytes. The slave returns an acknowledge bit after each received byte. 2. Data transfer from a slave transmitter to a master receiver. The 1st byte (the slave address) is transmitted by the master. The slave then returns an acknowledge bit. Next follows a number of data bytes transmitted by the slave to the master. The master returns an acknowledge bit after all received bytes other than the last byte. At the end of the last received byte, a ‘not acknowledge’ is returned. The master device generates all of the serial clock pulses and the START and STOP conditions. A transfer is ended with a STOP condition or with a repeated START condition. Since a repeated START condition is also the beginning of the next serial transfer, the bus will not be released. The DS1629 may operate in the following two modes: 1. Slave receiver mode: Serial data and clock are received through SDA and SCL. After each byte is received, an acknowledge bit is transmitted. START and STOP conditions are recognized as the beginning and end of a serial transfer. Address recognition is performed by hardware after reception of the slave address and direction bit. 2. Slave transmitter mode: The first byte is received and handled as in the slave receiver mode. However, in this mode, the direction bit will indicate that the transfer direction is reversed. Serial data is transmitted on SDA by the DS1629 while the serial clock is input on SCL. START and STOP conditions are recognized as the beginning and end of a serial transfer. SLAVE ADDRESS A control byte is the 1st byte received following the START condition from the master device. The control byte consists of a 4-bit control code; for the DS1629, this is set as 1001 binary for read and write operations. The next 3 bits of the control byte are the device select bits (A2, A1, A0). All 3 bits are hardwired high for the DS1629. Thus, only one DS1629 can reside on a 2-wire bus to avoid contention; however, as many as seven other devices with the 1001 control code can be dropped on the 2-wire bus so long as none contain the 111 address. The last bit of the control byte (R/ W ) defines the operation to be performed. When set to a 1 a read operation is selected, and when set to a 0 a write operation is selected. Following the START condition, the DS1629 monitors the SDA bus checking the device type identifier being transmitted. Upon receiving the control byte, the slave device outputs an ACK on the SDA line. 12 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 2-WIRE SERIAL COMMUNICATION WITH DS1629 Figure 6 13 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 2-WIRE SERIAL COMMUNICATION WITH DS1629 Figure 6 (continued) 14 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 COMMAND SET The command set for the DS1629 as shown in Table 8 is as follows: Access Config [ACh] If R/ W is "0", this command writes to the configuration register. After issuing this command, the next data byte value is to be written into the configuration register. If R/ W is "1", the next data byte read is the value stored in the configuration register. Because the MSB of the configuration register is read/write and the LSB is read-only, the user only needs to write one byte to the register. One or two bytes can be read. Start Convert T [EEh] This command begins a temperature conversion. No further data is required. In one-shot mode, the temperature conversion will be performed and then the DS1629 will remain idle. In continuous mode, this command will initiate continuous conversions. Issuance of this protocol may not required upon DS1629 power-up, depending upon the state of the CNV bit in the configuration register. Stop Convert T [22h] This command stops temperature conversion. No further data is required. This command may be used to halt a DS1629 in continuous conversion mode. After issuing this command, the current temperature measurement will be completed, and then the DS1629 will remain idle until a Start Convert T is issued to resume conversions. Read Temperature [AAh] This command reads the last temperature conversion result from the Thermometer Register in the format described in the “OPERATION-Measuring Temperature” section. If one’s application can accept thermometer resolution of only 1.0°C, the master only must read the first data byte and follow with a NACK and STOP. For higher resolution, both bytes must be read. Read Counter [A8h] This command returns the 8-bit COUNT_REMAIN value, used for high resolution thermometer calculations. Read Slope [A9h] This command returns the 8-bit COUNT_PER_C value, used for high resolution thermometer calculations. Access Clock [C0h] Accesses the DS1629 clock/calendar register. If R/ W is "0" the master will write to the clock register (set the clock). If R/ W is "1", the clock register is read. The clock register is addressed, so the user must provide a beginning byte address, whether a read or write is performed. A write to or read from this register or the clock alarm register is required to clear the clock alarm flag (CAF). Refer to Figure 6 for the protocol and Figure 2 for the clock register map. Access Clock Alarm [C7h] Accesses the DS1629 clock alarm register. If R/ W is "0" the master will write to the clock alarm register (set/ change the alarm). If R/ W is "1", the clock alarm register is read. The clock alarm register is addressed, so the user must provide a beginning byte address, whether a read or write is performed. A write to or read from this register or the clock register is required to clear the clock alarm flag (CAF). Refer to Figure 6 for the protocol and Figure 4 for the clock alarm register map. 15 of 22 102299 Powered by ICminer.com Electronic-Library Service CopyRight 2003 DS1629 Access TH [A1h] If R/ W is "0", this command writes to the TH register. After issuing this command, the next two bytes written to the DS1629, in the format described for thermostat set-points, will set the high temperature threshold for operation of the ALRM output and TAF/TAL flags. If R/ W is "1", the value stored in this register is read back. Access TL [A2h] If R/ W is "0", this command writes to the TL register. After issuing this command, the next two bytes written to the DS1629, in the format described for thermostat set-points, will set the high temperature threshold for operation of the ALRM output and TAF flag. If R/ W is "1", the value stored in this register is read back. Access Memory [17h] This command instructs the DS1629 to access the user-SRAM array, starting with the specified byte address. Read/write depends upon the state of the R/ W in the 2-wire control byte. The user can read/write all 32 bytes in succession within one command sequence, with the pointer automatically wrapping from 1Fh to 00h; if the master attempts to read/write more than 32 bytes, the address pointer will wrap to the 1st byte after the 32nd is read/written and ACK’d by the master/slave. Refer to Figure 6 for command protocol. DS1629 Command Set Table 8 INSTRUCTION Access Configuration Access Memory PROTOCOL DESCRIPTION 2-wire bus data after issuing protocol CONFIGURATION / MEMORY COMMANDS Writes to 8-bit configuration register 1 data byte ACh Reads from configuration/status 1 or 2 data bytes register Writes to SRAM array Starting Address+Nbytes 17h Read from SRAM array Starting Address+Nbytes THERMOMETER COMMANDS EEh Initiates temperature conversion(s) Idle Start Convert T Stop Convert T Read Temperature Read Counter Read Slope Access TH 22h Terminates continuous conversions AAh NOTES 1, 5 1, 2 3 Idle 3 Reads Temperature Register Read 1 or 2 data bytes 4 A8h A9h A1h Reads COUNT_REMAIN Reads COUNT_PER_C Writes to/Reads from TH register Access TL A2h Writes to/Reads from TL register Read 1 data byte Read 1 data byte Write 2 data bytes Read 1 or 2 data bytes Write 2 data bytes Read 1 or 2 data bytes Access Clock C0h CLOCK COMMANDS Sets/Reads Clock Access Clock Alarm C7h Sets/ Reads Clock Alarm 16 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 Starting Address + Nbytes Starting Address + Nbytes 1, 5 1, 5 1, 2 1, 2 102299 DS1629 NOTES: 1. Data direction depends upon R/ W bit in the 2-wire control byte. 2. When accessing (reading from or writing to) addressed SRAM in the page mode, the address pointer will automatically roll from the most significant byte to the least significant byte following the ACK of the most significant byte. 3. In continuous conversion mode, a Stop Convert T command will halt continuous conversion. To restart, the Start Convert T command must be issued. In one-shot mode, a Start Convert T command must be issued for every temperature reading desired. 4. If the user only desires 8-bit thermometer resolution, the master need only read 1 data byte, and follow with a NACK and STOP. If higher resolution is required, 2 bytes must be read. 5. Writing to E2 registers typically requires 10 ms at room temperature (50 ms max). After issuing a write command, no further writes should be requested for 50 ms. E2 writes should only occur under the conditions 2.7V ≤VDD ≤5.5V and 0°C ≤TJ ≤70°C. 17 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 Sample Command Sequence Table 9 Example: The bus master configures the DS1629 in the power-up one-shot mode. It sets the ALRM output active low with only the thermometer generating an ALRM and disables the oscillator output. It then sets the clock to 11:30AM on Thursday, January 1, 1998. It sets the thermostat with TH=50°C. BUS MASTER DS1629 DATA (MSB MODE MODE FIRST) COMMENTS TX RX START Bus Master initiates a START condition TX RX 9Eh Bus Master sends DS1629 address; R/ W = 0 RX TX ACK DS1629 generates acknowledge bit TX RX ACh Bus Master sends access configuration protocol RX TX ACK DS1629 generates acknowledge bit TX RX 11h Write to configuration as specified RX TX ACK DS1629 generates acknowledge bit TX RX START Bus Master initiates a repeated START condition TX RX 9Eh Bus Master sends DS1629 address; R/ W =0 RX TX ACK DS1629 generates acknowledge bit TX RX C0h Bus Master sends access clock protocol RX TX ACK DS1629 generates acknowledge bit TX RX 00h Bus Master sends starting clock register address RX TX ACK DS1629 generates acknowledge bit TX RX 00h Bus Master sets seconds and enables the clock RX TX ACK DS1629 generates acknowledge bit TX RX 30h Bus Master sets clock minutes RX TX ACK DS1629 generates acknowledge bit TX RX 51h Bus Master sets clock hours and AM/PM clock mode RX TX ACK DS1629 generates acknowledge bit TX RX 05h Bus Master sets day to Thursday RX TX ACK DS1629 generates acknowledge bit TX RX 01h Bus Master sets date to the first of the month RX TX ACK DS1629 generates acknowledge bit TX RX 01h Bus Master sets month to January RX TX ACK DS1629 generates acknowledge bit TX RX 98h Bus Master sets year to ‘98 RX TX ACK DS1629 generates acknowledge bit TX RX START Bus Master initiates a repeated START condition TX RX 9Eh Bus Master sends DS1629 address; R/ W =0 RX TX ACK DS1629 generates acknowledge bit TX RX A1h Bus Master sends access TH protocol RX TX ACK DS1629 generates acknowledge bit TX RX 32h Bus Master writes MSB of TH (50°C) RX TX ACK DS1629 generates acknowledge bit TX RX 00h Bus Master writes LSB of TH (50°C) RX TX ACK DS1629 generates acknowledge bit TX RX STOP Bus Master initiates STOP condition 18 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 Sample Command Sequence Table 10 Example: Assuming the DS1629 is configured such that the clock is running and the thermometer is converting, read the current time and temperature. Also read the status of the alarm flags. BUS MASTER DS1629 DATA (MSB MODE MODE FIRST) COMMENTS TX RX START Bus Master initiates a START condition TX RX 9Eh Bus Master sends DS1629 address; R/ W = 0 RX TX ACK DS1629 generates acknowledge bit TX RX AAh Bus Master sends read temperature protocol RX TX ACK DS1629 generates acknowledge bit TX RX START Bus Master initiates a Repeated START condition TX RX 9Fh Bus Master sends DS1629 address; R/ W = 1 RX TX ACK DS1629 generates acknowledge bit RX TX <data byte> DS1629 generates MSB of temperature TX RX ACK Bus Master generates acknowledge bit RX TX <data byte> DS1629 generates LSB of temperature TX RX NACK Master generates no-acknowledge bit TX RX START Bus Master initiates a repeated START condition TX RX 9Eh Bus Master sends DS1629 address; R/ W = 0 RX TX ACK DS1629 generates acknowledge bit TX RX C0h Bus Master sends access clock protocol RX TX ACK DS1629 generates acknowledge bit TX RX 01h Bus Master set clock register address to “minutes” RX TX ACK DS1629 generates acknowledge bit TX RX START Bus Master initiates a Repeated START condition TX RX 9Fh Bus Master sends DS1629 address; R/ W = 1 RX TX ACK DS1629 generates acknowledge bit RX TX <data byte> DS1629 generates minutes TX RX ACK Bus Mastergenerates acknowledge bit RX TX <data byte> DS1629 generates hours and clock mode TX RX ACK Bus Master generates acknowledge bit • • • • RX TX <data byte> DS1629 generates year TX RX NACK Master generates no-acknowledge bit TX RX START Bus Master initiates a repeated START condition TX RX 9Eh Bus Master sends DS1629 address; R/ W = 0 RX TX ACK DS1629 generates acknowledge bit TX RX ACh Bus Master sends access configuration protocol RX TX ACK DS1629 generates acknowledge bit TX RX 9Fh Bus Master sends DS1629 address; R/ W = 1 RX TX ACK DS1629 generates acknowledge bit RX TX <data byte> DS1629 generates MSB of configuration register TX RX ACK Master generates acknowledge bit RX TX <data byte> DS1629 generates LSB of configuration register (flags) TX RX NACK Master generates no-acknowledge bit TX RX STOP Bus Master initiates STOP condition 19 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 ABSOLUTE MAXIMUM RATINGS* Voltage on VDD, Relative to Ground (Note 1) Voltage on any other pin, Relative to Ground Operating Temperature Storage Temperature Soldering Temperature -0.3V to +7.0V -0.3V to (VDD +0.3V) -55°C to +125°C -55°C to +125°C 260°C for 10 seconds This is a stress rating only and functional operation of the device at these or any other conditions above those indicated in the operation sections of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods of time may affect reliability. RECOMMENDED DC OPERATING CONDITIONS (-55°C to +125°C; 2.2V ≤ VDD ≤ 5.5V) PARAMETER Supply Voltage SYMBOL VDD CONDITION DC ELECTRICAL CHARACTERISTICS PARAMETER Logic 0 Input Logic 1 Input SDA Logic 0 Output ALRM Saturation Voltage Input Current Each I/O Pin SYMBOL VIL VIH VOL1 CONDITION VOL2 IALRM=4mA Standby Current IDDS Timekeeping Current IDDC 2-Wire Communication IDD2 Thermometer Current IDDT Active Current IDD 0.4<VI/O<0.9 VDD VDD=2.2V VDD=5.0V VDD=2.2V VDD=5.0V VDD=2.2V VDD=5.0V VDD=2.7V VDD=5.0V VDD=2.7V VDD=5.0V 20 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 MIN 2.2 TYP MAX 5.5 UNITS V NOTES (-55°C to +125°C; 2.2V ≤ VDD ≤ 5.5V) MIN -0.5 0.7VDD 0 -10 TYP MAX 0.3VDD VDD+0.5 0.4 UNITS V V V 0.4 V +10 µA 3 µA 4 µA 5 µA 5 µA 5 µA 5 0.1 0.2 0.3 1 100 100 300 500 500 1000 NOTES 2 102299 DS1629 DC ELECTRICAL CHARACTERISTICS: DIGITAL THERMOMETER PARAMETER DS1629 Thermometer Error Resolution Conversion Time SYMBOL TERR CONDITION -10°C to +85°C 2.7V ≤VDD ≤5.5V MIN TYP 0.03 tCONVT 400 AC ELECTRICAL CHARACTERISTICS: 2-WIRE INTERFACE PARAMETER SCL Clock Period Data In Setup Time to SCL High Data Out Stable after SCL Low SDA Low Setup Time to SCL Low (START) SDA High Hold Time After SCL High (STOP) Capacitance Load for each Bus Line Input Capacitance Crystal Capacitance (-55°C to +125°C; 2.7V ≤ VDD ≤ 5.5V) SYMBOL t1 CONDITION MAX UNITS NOTES ±2.0 °C 6 0.5 1000 °C ms 7 (-55°C to +125°C; 2.2V ≤ VDD ≤ 5.5V) MIN 2.5 TYP MAX UNITS µs t2 100 ns t3 0 ns t4 100 ns t5 100 ns Cb 400 CI CC 5 12.5 NOTES pF 8 pF pF 9 NOTES: 1. All voltages are referenced to ground, unless otherwise noted. 2. Logic 0 voltage specified at a sink current of 4 mA at VDD =5.0V and 1.5 mA at VDD =2.2V. 3. I/O pins of fast mode devices must not obstruct the SDA and SCL lines if VDD is switched off. 4. Standby current specified with temperature conversions and clock oscillator/buffer shut down, ALRM pin open, and SDA, SCL = VDD, 0°C to +70°C. 5. IDDX specified with ALRM pin open, and 0°C to +70°C. 6. See typical accuracy curve for specification limits outside the temperature range indicated. Thermometer error is specified for 2.7V ≤ VDD ≤ 5.5V. Accuracy will degrade approximately 0.5°C if ALRM is sinking the maximum current. 7. Thermometer resolution (in °C) = 1/COUNT_PER_C(T). The calibration algorithm is such that COUNT_PER_C and thus resolution varies over temperature (but is constant at a given temperature for a given device) and from device to device. 21 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299 DS1629 8. Cb - total capacitance of one bus line in pF. 9. Refer to Application Note 58. 2-WIRE BUS TIMING DIAGRAM Figure 7 Typical DS1629 Thermometer Performance Curve Figure 9 22 of 22 Powered by ICminer.com Electronic-Library Service CopyRight 2003 102299