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.

DRV2605L: Problem with sequencer

Part Number: DRV2605L
Other Parts Discussed in Thread: USB2ANY,

Hi,

I am having problems with sequencer. It seems it only plays first three samples and then stops, or if there is pause between effects, they are incorrectly played.

Motors are ERM from precision microdrives, driven in open loop. I was testing all haptic libraries, but with the same result.

Data sniffer on I2C shows that I am sending correct sequence.

What am I missing?

Thank you in advance!

Best regards

  • Hi Sasa,

    Is this in Haptic Control Console? Can you provide a screen shot of how you have the console window set up?
  • Hi Kelly,

    No, it is not on haptic control console. We have built pcb with processor and drv2605l for our device.

    Best regards

  • If it is of any help, this is what I'm sending over I2C:

    Basically sequence is Strong click 100%, then three times pause of 320ms, and again Strong click 100%.

    What I'm getting is:

    I'm getting one click that, I guess, looks like strong click, and three short clicks after, where pause should be.

    Thank you in advance for any suggestion.

    Best regards

  • Even if I put only pause as sequence effect, there is short buzz sent to motor.
    Seems as this short buzz is appended to every effect in sequence.

    Does anyone have any idea?

    Best regards
  • Hi Sasa,

    It looks like you have your waveform sequences set up correctly: 0x04 = 0x01; 0x05-0x07 = 0xA0; 0x08 = 0x01. You are using the external TRIG edge mode, so to start the waveform, are you playing a single pulse on the TRIG pin?
    On your scope shot is that just OUT+? Is it possible to see OUT+/- and the TRIG pin?

    My suggestion for debugging is to just play a single waveform and make sure you can play the different waveforms in the library like ramps and long alerts/buzzes. Once the single waveform looks good, try doing 2 in sequence and build up to the final full sequence.
  • Hi Kelly,

    I'm using internal trigger via I2C by sending 0x01 to 0x0C register.

    I have tried playing only one effect, or only "pause" effect. It seems as every effect or pause are appended  with short buzz.

    Even efect such as "smooth hum" have rather hard short buzz on the end.

    I'm pretty much stuck :(

    Please help.

    Best regards

  • Hi Sasa,

    I see, this make me think that it has to do with the braking that is applied at the end of the waveforms in the library. Can you try running the effects in closed loop and see what the result is?
  • Hi Kelly,

    I was testing closed loop today, with no luck. However, behavior of the motor is different, and I hope I'm close to selecting correct parameters. I will report soon with more information.

    Best regards
  • Hi,

    I am sorry for the delay, we had some busy week behind us.

    I was testing status register of drv2605l, and this is what is going on:

    After auto calibration in closed loop ERM mode, auto calibration passes successfully, but after playing haptic effect, status bit 3 (diag result) returns to 1 suggesting something is wrong. Over_temp or oc_detect bits are 0; device_id correctly returns 7 (drv2605l).

    Other thing that bothers me is why is sequencer playing only 4 effects even when I send more than 4 effects?

    And why is it sending anything to motors when there is pause in sequencer?

    Thank you in advance.

    Best regards,

    Sasa

  • Hi Sasa,

    No worries.
    I want to suggest debugging with the DRV2605LEVM-CT + USB2ANY through Haptic Control Console. Do you have these boards? We were previously using the DRV-USBCOM-EVM for communication, but we switched to the USB2ANY.
  • Kelly Griffin said:
    Hi Sasa,

    It looks like you have your waveform sequences set up correctly: 0x04 = 0x01; 0x05-0x07 = 0xA0; 0x08 = 0x01.

    Dear Kelly,

    This is where we were wrong :)

    When sending data over I2C to drv2605l, first byte is address of device, second is register address, and third is value to be written to said register. Every other value after is written in subsequent register.

    I thought I have to write every register address before writing value.

    I hope my mistake will be helpful to someone.

    Best regards

  • Hi Sasa,
    I'm glad you found the error! Thank you for posting the answer here for all to learn .