Other Parts Discussed in Thread: TCA9544A
Hi Team,
My customer is using two DRV2625 LRA drivers in a product that uses two LRAs (one per driver). The two drivers are tied to the same I2C bus. They are trying to utilize the haptic broadcast, described in Register 0x07 to write to one or the other driver in order to control the two LRAs. They are operating in RTP mode, so to start an LRA haptic process, we write a 1 to the Go bit in Register 0x0C.
We interpreted the description of the haptic broadcast to mean that the driver's address is changed from 0x5a to 0x58. Instead, the driver responds to both 0x5a and 0x58. This is a big difference. Now we have two drivers on the same I2C bus - one responds to 0x5a, and the other responds to both 0x5a and 0x58.
We can't seem to get control of both drivers at the same time. We want one driver to have 0x00 loaded into register 0x0E (the RTP input), while the other driver has 0x7F loaded into register 0x0E. Unfortunately we can't do that - when we write to 0x0E, it gets written to both drivers, so they have to have the same value.
We also can't put one into reset and write to the other one. When the device comes out of reset, registers are set to the default values, so register 0x07 is written with 0x44 which is not RTP mode. We have to write to register 0x07 to put it into RTP mode, and by doing so, have to write either a 0 or a 1 for the I2C_BCAST_EN bit. This then gets written to both devices.
Is there a way to have two drivers share the same I2C bus, go into RTP mode, and have separate values written to register 0x0E for different effects? I don't think so, but then I don't see how the haptic broadcast can work in RTP mode
Thanks,
Mitchell