I have 2 of the DAC121C081 chips in my product that we use to adjust the control lines of 2 power supplies. The power supplies can be configured to be either in series or in parallel, so there are actually 2 different grounds and Vdd sources for the different DACs to ensure they are in line with the grounds of the power supplies they are controlling. They are however, on the same I2C bus, and we do this with an I2C isolator chip. According to the datasheet, there are 3 addresses we can give to the chip based on how we set the address pin – We can tie the address pin to ground, leave it floating or pull it up to Vdd. Since they are on the same bus we had to give them different addresses. For the issue I am seeing, we have the power supplies configured in series, so I’m going to refer to the power supplies as top and bottom. The one that is associated with the bottom power supply is tied to ground and the one tied to the top power supply is left floating. We have been operating with this configuration for some time without known issues sending the ground address to set the bottom supply and the floating address to set the top supply. Recently we have noticed an issue where if we set the DACs to control the power supplies, then turn off the power supplies only - not the board power - and go do a different function that involves a PWM signal on the Bottom DACs ground line, stop that action and then return to trying to control the power supplies with the DACs, the top DAC, with the floating pin address, is non-responsive. The bottom DAC, with the ground address, is unaffected. This issue is now very repeatable and the only thing we have found that truly corrects this issue is a power cycle of the device.
On a hunch, I tried sending the address as if the pin was tied to Vdd once the device got into this state and the DAC started to respond. It responded repeatedly to the Vdd address and wouldn’t go back to responding to the floating address until I power cycled the device. Once the device was power cycled, it would no longer respond to the Vdd address until we repeated the process to get into that state.
While this is working, we don’t like that we don’t have a good explanation for why this happens and we aren’t confident that it will always work. The datasheet seems to indicate that the address should be locked after it receives a non-broadcast address message. Up until we started to see problems we hadn’t used the broadcast addresses at all – I tried playing with them to see if I could reset the DAC only via software, but had no luck. Any idea why this is happening? Page 19 from the d/s is the page from the datasheet I’m referring to that talks about how to set the addresses. Please let me know if you need any additional information to help us on this.