This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DRV2665 Override Bit

Other Parts Discussed in Thread: DRV2665, DRV2667

Hello, I am trying to control a DRV2665 using an Arduino Due board. I have implemented the application circuit listed in the datasheet on page 20 with the suggested components (chip is mounted to a small prototype PCB and inserted into a breadboard - all other components are on the breadboard). The chip is powered with 3.3V and the inputs are being held at 3.3V on the IN+ and Gnd on the IN-. A piezo actuator with a 50nF load capacitance is attached.  I am able to talk to the DRV2665 via I2C. If I clear the standby bit, enable the Analog inputs and gain settings and then try to toggle the override bit in register 0x02, the chip seems to reset (if I immediately read the registers after setting the override bit I get back 0x28 from register 0x01 and 0x40 from register 0x02. No output appears between Out+ and Out-. Writes to the FIFO in digital mode also do not generate an output. I have several of these board mounted chips which all produce the same effect. Any suggestions where my error is? The layout guidelines do imply the external components should be very close to the chip pins which they relatively are not using my breadboard setup - still I would expect some output.

  • Hi Chris,

    From a hardware point of view, everything looks fine: VDD, IN+ and IN-, capacitance of the piezo load. What are the values of R1 and R2? Reading 0x40 from register 0x02 indicates that the device is still in stand-by mode, while reading 0x28 from register 0x01 indicates that the device is in digital playback mode. From that, I would understand why you don't have any output.

    Can you confirm that registers are updated whenever you send specific commands? For example, What happens when you just reset 0x01[6] (STANDBY)?

    Leo Rodriguez
    ARP - Haptics
  • Thanks Leo,

    R1 = 399kohm
    R2 = 18.73kohm
    Rext = 13.75kohm

    So I am using the lowest gain setting at the moment. I originally had it set for the 100V setting with the same result.

    Here is my init procedure:

    After power up
    Read from Reg 0x01 => 0x28
    Read from Reg 0x02 => 0x40

    Write to Reg 0x02 value 0x00 (clear standby)
    Read from Reg 0x01 => 0x28
    Read from Reg 0x02 => 0x00

    Write to Reg 0x01 value 0x04 (set to analog input & 25V Gain Setting)
    Read from Reg 0x01 => 0x04
    Read from Reg 0x02 => 0x00

    Write to Reg 0x02 value 0x02 (set override)
    Read from Reg 0x01 => 0x28
    Read from Reg 0x02 => 0x40

    Does it make sense that I am not reading the ChipID of 5 back once I've written 0x04 to Reg 0x01? (those bits are RO). To add to the mystery, given all the same parameters if I insert the three different DRV2665 boards I have I get varying steady state current draws. One is 2mA, the other 25mA and the third is 55mA. Some fluctuation when I communicate with it. That doesn't line up with what I would expect based on the Iq current in the datasheet.

    Thanks,

    Chris
  • Hi Chris,

    Yes, everything seems to be ok until enabling override. Refer to subsection 7.3.4 of the datasheet for information regarding EN_OVERRIDE. Try enabling override first and then setting the rest of the registers. I'll look more into the fluctuation in Iq.

    Let me know how it goes,
    Leo Rodriguez
    ARP - Haptics
  • Hi Leo,

    I tried the following:

    After power up:
    Write to Reg 0x02 value 0x42 (set override but leave enable high)
    Read from Reg 0x01 => 0x28
    Read from Reg 0x02 => 0x42

    So the override can be toggled but as soon as I clear standby the chip appears to reset and write 0 to the override bit. Below is a sequence that allows me to set all the appropriate bits:

    After power up:
    Write to Reg 0x02 value 0x00 (clear standby)
    Read from Reg 0x01 => 0x28
    Read from Reg 0x02 => 0x00

    Write to Reg 0x01 value 0x04 (enable analog)
    Read from Reg 0x01 => 0x04
    Read from Reg 0x02 => 0x00

    Write to Reg 0x02 value 0x40 (set standby)
    Read from Reg 0x01 => 0x04
    Read from Reg 0x02 => 0x40

    Write to Reg 0x02 value 0x42 (set override but leave enable high)
    Read from Reg 0x01 => 0x04
    Read from Reg 0x02 => 0x42

    Write to Reg 0x02 value 0x02 (clear standby)
    Read from Reg 0x01 => 0x28
    Read from Reg 0x02 => 0x40
  • Hi Chris,

    Were you able to get any output? That seems like an unreasonable amount of steps to write two registers. I will check with our test boards and get back to you before the end of the week.

    Regards,
    Leo
  • Hi Leo,

    What I get at the output (piezo attached and multi-meter reading across OUT+ to OUT-) is a short pulse in the mV. The meter registers a ~150mV pulse once I clear the standby bit for the 2nd time in the sequence I posted above. Analog inputs are being held constant. What I will probably do is order a few of the following boards that include the DRV2667 chips - I assume these should get me up and running quickly while you are looking into the problem on your end.

    www.tindie.com/.../.

    One item I am not clear on is if I use these chips in analog mode and apply the following DC inputs, will I get the constant outputs I've listed?

    IN+ = 3.3VDC
    IN- = Gnd
    OUT+ = 25V
    OUT- = 0V

    IN+ = Gnd
    IN- = 3.3VDC
    OUT+ = 0V
    OUT- = 25V
  • Hi Chris,

    If you use the DRV2667 in analog mode, then the output is going to be dictated by both the input and the gain (Register 0x01[1:0]). If you need exactly 25 Vp (50 Vp-p), then you can set the gain at 0x01[1:0] = 0 and use digital playback.

    I couldn't replicate your problem with our EVMs. I proceeded to order DRV2665 samples and use our test boards. Have you had any success on your side?

    Regards,
    Leo Rodriguez
  • Hi Leo,

    I haven't had any further success on my side. I did order those integrated DRV2667 boards so possibly by the end of the week or early next week I can experiment with those. Let me know if are able to test those DRV2665 samples.

    Thanks,

    Chris
  • Hi Chris,

    I have not been able to replicate your issue. Let me know how it goes with the DRV2667. Should you continue to experience the same issue, will it be a possibility to contact you directly and arrange for you to ship one of your boards? That way we can debug it in-house and have a better understanding on what's going on.

    Please keep us posted,
    Leo Rodriguez
  • Hi Leo,

    Sorry for the long delay. I received my DRV2667 boards yesterday. They work perfect with the existing code I had - no significant differences that I can see with the external components between these new boards and my old ones other then all the components are soldered to a PCB. Strange...at least I have a working solution now.

    Thanks for your assistance with this.

    Best Regards,

    Chris

  • Very glad to hear that Chris.

    Regards,
    Leo Rodriguez