Connecting Multiple DS1859 Devices on the Same I²C Bus

Abstract

Some applications require that multiple DS1859 devices be connected on the same I²C bus. This application note shows how to change the I²C slave address on one of the DS1859 devices when two are connected together on the same I²C bus. The process described can then be extended and applied to any additional DS1859 devices added to that bus. The note also discusses how to access the device's auxiliary slave address.

Introduction

The DS1859 dual, temperature-controlled resistors do not allow the user to change the I²C slave address by using external pins. Instead, the device provides a programmable I²C slave address for the main memory. In an application it may be necessary to connect multiple DS1859 devices on the same I²C bus. Since all DS1859 devices have the same factory-default I²C slave address, it is therefore necessary to change the I²C slave address on one or more of these devices while they are still connected to the I²C bus.

This application note explains how to change the I²C slave address on one of the DS1859 devices when two are connected together on the same I²C bus. The same principle can then be extended to multiple devices. The article assumes that the user can switch the WPEN pin on the DS1859 to a logic-high or logic-low as required.

The DS1859 is also unique because it has two slave addresses for each device: one address for accessing the main memory which is programmable, and one fixed address (A0h) for accessing the Auxiliary memory. Access to the Auxiliary memory is discussed at the end of the application note.

Connecting Two DS1859 Devices on the Same I²C Bus

To connect two DS1859s to the same I²C bus, one must change the device address on one device and keep the other device at the default address, A2h. This can be done by using the following procedure.

  1. Drive the WPEN pin of one DS1859 (Device 1) to the signal ground.
  2. Drive the WPEN pin of the other DS1859 (Device 2) high.
  3. Set the MPEN bit of Device 2 high (Slave address A2h, Table 01h, Register 89h, bit 2). This action will program the MPEN bits of both the devices, but only Device 2 will be write protected because the WPEN pin of Device 1 is grounded. Any writes using slave address A2h after this step will only affect Device 1.
  4. Change the slave address on Device 1 to any value desired (00h–FEh, except A2h). For programming, use slave address A2h, Table 01h, Byte 8Ch.
  5. Set the ADFIX bit of Device 1 high. (Slave address A2h, Table 01h, Register 89h, bit 4).
  6. The slave address of Device 1 will now be configured to use the address specified in step 5.
  7. The WPEN pins can then be driven to the desired logic levels, after which the MPEN bit can be changed back to its default value (0b).

Adding Additional DS1859 Devices to the System

The same procedure should be followed to connect multiple DS1859 devices on the same I²C bus. In each case all devices are write-protected except the one whose device address needs to be changed.

Accessing the Auxiliary Memory

The user should note that only the main device address can be changed. The Auxiliary memory address for all the devices is not changeable and continues to be A0h. The Auxiliary memory can be accessed by only one of the devices on the I²C bus, at address A0h. The user can, however, configure the ADEN bit to access the Auxiliary memory of the other devices through the main device address as Table 00h.

Conclusion

This application note explains how to change the I²C slave addresses on multiple DS1859s that have the same default I²C addresses, are already soldered on PCB's in a system, and are connected to the same I²C bus.