DS28CM00 I²C/SMBus Silicon Serial Number www.maxim-ic.com GENERAL DESCRIPTION FEATURES The DS28CM00 is a low-cost, electronic registration number to provide an absolutely unique identity that can be determined with the industry standard I²C and SMBus interface. The registration number is a factory-lasered, 64-bit ROM that includes a unique 48-bit serial number, an 8-bit CRC, and an 8-bit family code (70h). In SMBus mode, the DS28CM00 resets its communication interface if it detects a bus fault condition. Unique, Factory-Lasered and Tested 64-bit Registration Number (8-bit Family Code + 48-bit Serial Number + 8-bit CRC) SMBus-Compatible I²C Serial Interface Supports 100kHz and 400kHz Communication Speeds 5V Tolerant Interface Pins Operating Range: 1.8V ±10% to 5V ±5%, -40°C to +85°C 5-Pin SOT23 Package APPLICATIONS Printed Circuit Board Unique Serialization Accessory and Peripheral Identification Equipment Registration and License Management Network Node Identification ORDERING INFORMATION PART TEMP RANGE DS28CM00R-A00+T -40°C to +85°C PIN-PACKAGE SOT23-5 Tape-and-Reel +Denotes lead-free package. TYPICAL OPERATING CIRCUIT PIN CONFIGURATION VCC RP RP VCC SDA SCL µC GND VCC SDA SCL DS28CM00 GND SCL 1 GND 2 SDA 3 5 VCC 4 NC SOT23 Note: Some revisions of this device may incorporate deviations from published specifications known as errata. Multiple revisions of any device may be simultaneously available through various sales channels. For information about device errata, click here: www.maxim-ic.com/errata. 1 of 9 REV: 072406 DS28CM00: I²C/SMBus Silicon Serial Number ABSOLUTE MAXIMUM RATINGS Voltage Range on Any Pin Relative to Ground Maximum Current Into Any Pin Operating Temperature Range Junction Temperature Storage Temperature Range Soldering Temperature -0.5V, +6V ±20mA -40°C to +85°C +150°C -55°C to +125°C See IPC/JEDEC J-STD-020 Stresses beyond those listed under “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only, and functional operation of the device at these or any other conditions beyond those indicated in the operational sections of the specifications is not implied. Exposure to the absolute maximum rating conditions for extended periods may affect device. ELECTRICAL CHARACTERISTICS (-40°C to +85°C, see Note 1) PARAMETER SYMBOL Supply Voltage Standby Current VCC ICCS Operating Current ICCA CONDITIONS MIN 1.62 Bus idle, VCC = 5.25V Bus active at 400kHz, VCC = 5.25V TYP MAX UNITS 5.25 3 V µA 200 µA SCL, SDA Pins (Note 2) See Figure 5 LOW Level Input Voltage -0.3 VCC < 2.0V -0.3 VCC ≥ 2.0V 0.7 × VCC 0.8 × VCC 0.05 × VCC 0.1 × VCC VIL HIGH Level Input Voltage (Note 3) VIH Hysteresis of Schmitt Trigger Inputs (Note 4) Vhys LOW Level Output Voltage at 4mA Sink Current Output Fall Time from VIhmin to VILmax with a Bus Capacitance from 10pF to 400pF (Notes 4, 5) Pulse Width of Spikes that are Suppressed by the Input Filter Input Current with an Input Voltage Between 0.1VCC and 0.9VCCmax Input Capacitance VCC ≥ 2.0V VCC < 2.0V VCC ≥ 2.0V VCC < 2.0V VOL tof VCC < 2.0V 20 + 0.1Cb 20 + 0.1Cb SDA and SCL pins only (Note 4) µA 10 400 344 75 pF 25 fSCL Bus Time-out Hold Time (Repeated) START Condition. After this Period, the First Clock Pulse is Generated. tTIMEOUT tHD:STA (Note 8) 0.6 VCC ≥ 2.7V VCC ≥ 2.0V VCC < 2.0V (Note 8) 1.3 1.5 2.3 0.6 (Note 8) 0.6 tSU:STA 2 of 9 ns 450 10 Ci tHIGH 250 -10 (Note 6) SCL Clock Frequency (Note 7) HIGH Period of the SCL Clock Setup Time for a Repeated START Condition V ns Ii tLOW V 50 (Note 4) VCC ≥ 2.0V VCC < 2.0V (Note 7) LOW Period of the SCL Clock (Note 8) V V 0.4 VCC ≥ 2.0V tSP 0.3 × VCC 0.25 × VCC VCCmax + 0.3V VCCmax + 0.3V kHz ms µs µs µs µs DS28CM00: I²C/SMBus Silicon Serial Number PARAMETER SYMBOL 0.3 0.3 0.3 100 0.6 tBUF (Note 8) 1.3 Cb (Notes 4, 8) tHD:DAT Data Setup Time Setup Time for STOP Condition Bus Free Time Between a STOP and START Condition Capacitive Load for Each Bus Line tSU:DAT tSU:STO Note 6: Note 7: Note 8: Note 9: Note 10: Note 11: MIN VCC ≥ 2.7V VCC ≥ 2.0V VCC < 2.0V (Notes 8, 11) (Note 8) Data Hold Time (Notes 9, 10) Note 1: Note 2: Note 3: Note 4: Note 5: CONDITIONS TYP MAX UNITS 0.9 1.1 1.7 µs ns µs µs 400 pF Specifications at -40°C are guaranteed by design and characterization only and not production tested. All values are referred to VIHmin and VILmax levels. The maximum specification value is guaranteed by design, not production tested. Not production tested. Guaranteed by design or characterization. CB = total capacitance of one bus line in pF. If mixed with HS-mode devices, faster fall-times according to I2C-Bus Specification v2.1 are allowed. The DS28CM00 does not obstruct the SDA and SCL lines if VCC is switched off. The minimum SCL clock frequency is limited by the bus timeout feature. If the CM bit is 1 AND SCL stays at the same logic level or SDA stays low for this interval, the DS28CM00 behaves as though it has sensed a STOP condition. System Requirement The DS28CM00 provides a hold time of at least 300ns for the SDA signal (referred to the VIHmin of the SCL signal) to bridge the undefined region of the falling edge of SCL. The maximum tHD:DAT has only to be met if the device does not stretch the low period (tLOW) of the SCL signal. A Fast-mode I²C-bus device can be used in a standard-mode I²C-bus system, but the requirement tSU:DAT ≥ 250ns must then be met. This is automatically the case if the device does not stretch the LOW period of the SCL signal. If such a device does stretch the LOW period of the SCL signal, it must output the next data bit to the SDA line tr max + tSU:DAT = 1000 + 250 = 1250ns (according to the standard-mode I²C-bus specification) before the SCL line is released. PIN DESCRIPTION PIN NAME 1 SCL 2 GND 3 SDA 4 5 N.C. VCC FUNCTION Serial interface clock input; must be tied to VCC through a pullup resistor. 5V tolerant input over 1.62V to 5.25V VCC range. Ground supply for the device. Serial interface bi-directional data line; must be tied to VCC through a pullup resistor. 5V tolerant input/output over 1.62V to 5.25V VCC range. Not Connected Power Supply Input OVERVIEW The DS28CM00 consists of a serial interface which provides access to a unique 64-bit Registration number and a Control Register, as shown in the block diagram in Figure 1. The device communicates with a host processor through its SMBus compatible I²C bus interface in standard-mode or in fast-mode. Since the network address of the DS28CM00 is fixed, exactly one device can reside on a bus segment. The Registration Number and Control Register are located in a linear 9-byte address space (Figure 2). 3 of 9 DS28CM00: I²C/SMBus Silicon Serial Number Figure 1. Block Diagram VCC SCL ROM Registration Number SDA Serial Interface Control Register GND Figure 2. Memory Map ADDRESS TYPE ACCESS DESCRIPTION 00h ROM Read Device Family Code (70h) 01h ROM Read Serial Number, bits 0 to 7 02h ROM Read Serial Number, bits 8 to 15 03h ROM Read Serial Number, bits 16 to 23 04h ROM Read Serial Number, bits 24 to 31 05h ROM Read Serial Number, bits 32 to 39 06h ROM Read Serial Number, bits 40 to 47 07h ROM Read CRC of Family Code and 48-bit Serial Number 08h SRAM R/W Control Register Unique Registration Number Each DS28CM00 has a unique Registration Number that is 64 bits long. The registration number begins with the family code at address 00h followed by the 48-bit serial number (LS-byte at the lower address) and ends at address 07h with the CRC (Cyclic Redundancy Check) of the first 56 bits. This CRC is generated using the polynomial X8 + X5 + X4 + 1. Additional information about CRCs is available in Application Note 27. The ROM Registration Number is not related to the I²C slave address of the device. Control Register The Control Register at address 08h allows switching between I²C mode and SMBus mode. Only the LS bit of this register, referred to as the CM bit, has a function. The other 7 bits always read 0 and cannot be changed. When the CM bit is set to 1 (power-on default), the device is in SMBus mode, which enables the bus timeout function. Setting the CM bit to 0 puts the device in I²C mode, where the timeout function is disabled. In SMBus mode, the serial interface times out and is internally reset if SCL is stuck (high or low) or if SDA is stuck low for the duration of tTIMEOUT or longer. This reset turns the SDA line into an input, ensuring that the device is ready to recognize a communication start condition. ADDR 08h b7 0 b6 0 b5 0 b4 0 b3 0 4 of 9 b2 0 b1 0 b0 CM DS28CM00: I²C/SMBus Silicon Serial Number DEVICE OPERATION Typically, the DS28CM00 is accessed after power-up to read the 64-bit Registration number, which may serve to identify the object that the device is embedded in. Write access exists only to the Control Register. Read and write access are controlled through the I²C/SMBus serial interface. See section Read and Write for details. Serial Communication Interface General Characteristics The serial interface uses a data line (SDA) plus a clock signal (SCL) for communication. Both SDA and SCL are bidirectional lines, connected to a positive supply voltage through a pullup resistor. When there is no communication, both lines are HIGH. The output stages of devices connected to the bus must have an open-drain or open-collector to perform the wired-AND function. Data can be transferred at rates of up to 100kbps in the Standard-mode, up to 400kbps in the Fast-mode. The DS28CM00 works in both modes. A device that sends data on the bus is defined as a transmitter, and a device receiving data as a receiver. The device that controls the communication is called a “master.” The devices that are controlled by the master are “slaves.” The DS28CM00 is a slave device. Slave Address/Direction Byte To be individually accessed, each device must have a slave address that does not conflict with other devices on the bus. The slave address to which the DS28CM00 responds is shown in Figure 3. The slave address is part of the slave-address/direction byte. The last bit of the slave-address/direction byte (R/W) defines the data direction. When set to a 0, subsequent data will flow from master to slave (write access mode); when set to a 1, data will flow from slave to master (read access mode). Figure 3. DS28CM00 Slave Address 7-Bit Slave Address A6 A5 A4 A3 A2 A1 A0 1 0 1 0 0 0 0 Most Significant Bit R/W Determines Read or Write I²C/SMBus Protocol Data transfers may be initiated only when the bus is not busy. The master generates the serial clock (SCL), controls the bus access, generates the START and STOP conditions, and determines the number of bytes transferred between START and STOP (Figure 4). Data is transferred in bytes with the most significant bit being transmitted first. After each byte follows an acknowledge bit to allow synchronization between master and slave. During any data transfer, SDA must remain stable whenever the clock line is HIGH. Changes in SDA line while SCL is high will be interpreted as a START or a STOP. The protocol is illustrated in Figure 4. For detailed timing references see Figure 5. 5 of 9 DS28CM00: I²C/SMBus Silicon Serial Number Figure 4. I²C/SMBus Protocol Overview R/W MS-bit ACK bit ACK bit SDA Slave Address Acknowledgment from Receiver SCL 1 Idle START Condition 2 6 7 8 9 ACK Repeated if more bytes are transferred 1 2 8 9 ACK STOP Condition Repeated START Condition Bus Idle or Not Busy Both, SDA and SCL, are inactive, i. e., in their logic HIGH states. START Condition To initiate communication with a slave, the master has to generate a START condition. A START condition is defined as a change in state of SDA from HIGH to LOW while SCL remains HIGH. STOP Condition To end communication with a slave, the master has to generate a STOP condition. A STOP condition is defined as a change in state of SDA from LOW to HIGH while SCL remains HIGH. Repeated START Condition Repeated starts are commonly used for read accesses to select a specific data source or address to read from. The master can use a repeated START condition at the end of a data transfer to immediately initiate a new data transfer following the current one. A repeated START condition is generated the same way as a normal START condition, but without leaving the bus idle after a STOP condition. Data Valid With the exception of the START and STOP condition, transitions of SDA may occur only during the LOW state of SCL. The data on SDA must remain valid and unchanged during the entire high pulse of SCL plus the required setup and hold time (tHD:DAT after the falling edge of SCL and tSU:DAT before the rising edge of SCL, see Figure 5). There is one clock pulse per bit of data. Data is shifted into the receiving device during the rising edge of the SCL pulse. When finished with writing, the master must release the SDA line for a sufficient amount of setup time (minimum tSU:DAT + tR in Figure 5) before the next rising edge of SCL to start reading. The slave shifts out each data bit on SDA at the falling edge of the previous SCL pulse and the data bit is valid at the rising edge of the current SCL pulse. The master generates all SCL clock pulses, including those needed to read from a slave. Acknowledged Usually, a receiving device, when addressed, is obliged to generate an acknowledge after the receipt of each byte. The master must generate a clock pulse that is associated with this acknowledge bit. A device that acknowledges must pull SDA LOW during the acknowledge clock pulse in such a way that SDA is stable LOW during the HIGH period of the acknowledge-related clock pulse plus the required setup and hold time (tHD:DAT after the falling edge of SCL and tSU:DAT before the rising edge of SCL). 6 of 9 DS28CM00: I²C/SMBus Silicon Serial Number Not Acknowledged by Slave A slave device may be unable to receive or transmit data, e.g., because it is busy. As a SMBus-compatible device, the DS28CM00 will always acknowledge its slave address. However, some time later the slave may refuse to accept data, e.g., because of an invalid memory address or access mode, e. g. attempting to write to a ROM byte. In this case the slave device will not acknowledge any of the bytes that it refuses and will leave SDA HIGH. After a slave has failed to acknowledge, the master should generate a repeated START condition or a STOP condition followed by a START condition to begin a new data transfer. Not Acknowledged by Master At some time when receiving data, the master must signal an end of data to the slave device. To achieve this, the master does not acknowledge the last byte that it has received from the slave. In response, the slave releases SDA, allowing the master to generate the STOP condition. Figure 5. I²C/SMBus Timing Diagram SDA tBUF tHD:STA tF tLOW tSP SCL tHD:STA tR tSU:STA tHIGH tHD:DAT Spike Suppression tSU:STO tSU:DAT Repeated START STOP START NOTE: Timing is referenced to VILMAX and VIHMIN. Read and Write The DS28CM00 behaves like an I²C memory device with an 9-byte memory map (Figure 2). The memory consists of 8 bytes ROM and one byte SRAM, i. e., the Control Register. The ROM data cannot be changed. To write to the DS28CM00, the master must access the device in write access mode, i.e., the slave address must be sent with the direction bit set to 0. The next byte to be sent in write access mode is an address byte to set the address pointer to a specific location. The DS28CM00 acknowledges any address between 00h and 08h. Write attempts to the ROM are ignored and data received for these addresses is not acknowledged. However, the address pointer increments after every full data byte transmitted by the master and rolls over from 08h to 00h after a full data byte is written to address 08h. To read from the DS28CM00, the master must access the device in read access mode, i.e., the slave address must be sent with the direction bit set to 1. The address pointer determines the location from which the master will start reading. The pointer is set when the DS28CM00 is accessed in write access mode, as described above. The power-on default of the pointer is 00h. When reading from the device, the address pointer increments with every data byte read. When the end of the memory is reached (address 08h), the address pointer wraps around to 00h. To read from an arbitrary address, the master must first access the DS28CM00 in write access mode and specify a new memory address. The address pointer remains unchanged if the device resets its communication interface due to a bus timeout in SMBus mode. 7 of 9 DS28CM00: I²C/SMBus Silicon Serial Number I²C Communication⎯Legend SYMBOL S DESCRIPTION SYMBOL DESCRIPTION START Condition A Acknowledged AD,0 Select DS28CM00 for Write Access A\ Not Acknowledged AD,1 Select DS28CM00 for Read Access <byte> Transfer of One Byte Sr Repeated START Condition VMA Valid Memory Address (00h to 08h) P STOP Condition IMA Invalid Memory Address Command-Specific Communication⎯Color-Codes Master-to-Slave Slave-to-Master Communication Examples Write to Control Register (address 08) S AD,0 A 08h A <byte> A P A\ P Write to ROM Address (excludes address 08) S AD,0 A VMA A <byte> data is not accepted Write to invalid address (>08) S AD,0 A IMA A\ P address is not accepted Read S AD,0 A VMA A Sr AD,1 Set address pointer A <byte> A <byte> A\ P last byte one or more bytes Application Information SDA and SCL Pullup Resistors SDA is an open-drain output on the DS28CM00 that requires a pullup resistor (Figure 6) to realize high logic levels. Because the DS28CM00 uses SCL only as input (no clock stretching) the master can drive SCL either through an open-drain/collector output with a pullup resistor or a push-pull output. Pullup Resistor RP Sizing According to the I²C specification, a slave device must be able to sink at least 3mA at a VOL of 0.4V. The SMBus specification requires a current sink capability of 4mA at 0.4V. The DS28CM00 can sink at least 4mA at 0.4V VOL over its entire operating voltage range. This DC characteristic determines the minimum value of the pullup resistor: Rpmin = (VCC - 0.4V)/4mA. With a maximum operating voltage of 5.25V, the minimum value for the pullup resistor is 1.2kΩ. The "Minimum RP" line in Figure 7 shows how the minimum pullup resistor changes with the operating (pullup) voltage. 8 of 9 DS28CM00: I²C/SMBus Silicon Serial Number Figure 6. Application Schematic VCC RP RP VCC To additional devices SDA SCL VCC SDA SCL DS28CM00 GND µC GND For I²C systems, the rise time and fall time are measured from 30% to 70% of the pullup voltage. The maximum bus capacitance CB is 400pF. The maximum rise time must not exceed 300ns. Assuming maximum rise time, the maximum resistor value at any given capacitance CB is calculated as: RPMAX = 300ns/(CB*ln(7/3)). For a bus capacitance of 400pF the maximum pullup resistor would be 885Ω. Since a 885Ω pullup resistor, as would be required to meet the rise time specification and 400pF bus capacitance, is lower than RPMIN at 5.25V, a different approach is necessary. The "Max. Load…" line in Figure 7 is generated by first calculating the minimum pullup resistor at any given operating voltage ("Minimum RP" line) and then calculating the respective bus capacitance that yields a rise time of 300ns. Only for pullup voltages of 4V and lower can the maximum permissible bus capacitance of 400pF be maintained. A reduced bus capacitance of 300pF is acceptable for the entire operating voltage range. The corresponding pullup resistor value at the voltage is indicated by the "Minimum RP" line. Figure 7. I²C Fast Speed Pullup Resistor Selection Chart Max. Load at Min. Rp fast mode 1200 600 1000 500 800 400 600 300 400 200 200 100 0 Load (pF) Minimum Rp (Ohms) "Minimum Rp" 0 1.5 2 2.5 3 3.5 4 4.5 5 Pull-up Voltage PACKAGE INFORMATION (The package drawing(s) in this data sheet may not reflect the most current specifications. For the latest package outline information, go to www.maxim-ic.com/DallasPackInfo.) 9 of 9