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: Externa trigger level & edge mode

Part Number: DRV2605L

Hi Experts,

I'm working with the DRV2605L using an LRA in closed-loop mode with auto-calibration (LRA library).
I'm trying to use an external trigger to start a sequence. The trigger is activated by pressing a button (logic level: low to high).

The sequence is as follows:

  • RAM 0x04 = waveform 24

  • RAM 0x05 to 0x0A = wait 10

  • RAM 0x0B = 0x00

I'm monitoring the current consumption, see image attached.

Issue 1:
Setting external trigger edge mode. The sequence executes correctly, but if I keep the button pressed, the sequence restarts automatically.
Is this behavior expected? (It’s not mentioned in the datasheet!)

DRV2605L_trigger_issue.png

Indeed, when I use external trigger level mode, a different behavior occurs when I keep the button pressed: the sequence starts and finishes, but the motor keeps vibrating until I release the button. ( see current consumpion )

immagine.png

Issue 2:
Sometimes the driver gets stuck and keeps restarting the sequence continuously until a reset occurs.

 

Let me know,

Regards

 

  • Hi,

    Are you saying that the External Trig Edge mode is continuously playing a waveform from the ROM memory when pressed?  

    Can you provide the TRIG voltage capture on the same plots above? Let me see if we can test this in our lab. 

  • Hi Kelly,

    Yes, exactly. If I keep the button pressed (trigger voltage level high), the sequence keeps playing continuously.

    "Can you provide the TRIG voltage capture on the same plots above? Let me see if we can test this in our lab."

    Unfortunately, I can’t capture it in real time, but signal is stable high when button pressed and low when released ( oscilloscope )

    See below case trigger voltage level

    I believe you can test it with any other board; mine is custom.

    If it’s useful for you, here is the register configuration after initialization (other registers remain at their default values):


    STATUS:   0xEC
    MODE:     0x01
    LIBSEL:   0x06
    WSR1:     0x18
    WSR2:     0x8A
    WSR3:     0x00
    WSR4:     0x00
    WSR5:     0x00
    WSR6:     0x00
    WSR7:     0x00
    WSR8:     0x00
    FEEDBACK: 0xAA
    CTRL1:    0x17
    CTRL2:    0x35
    CTRL3:    0xA0
    CTRL4:    0x30
    LRAOLP:   0x33

  • Ok - let me see when we can get some bandwidth to setup the EVM and test.

    For these registers, is WSR1 the waveform selection slot 1? So you have 2 effects selected in WSR1 and WSR2, correct? I think that WSR2 looks like a time delay of 100ms (MSB=1). 

    Can you list the CTRLx and LRAOLP (0x20?) register numbers with the values? I assume it is like the 0x1C registers down but would like to confirm so we set it up appropriately. 

  • "For these registers, is WSR1 the waveform selection slot 1? So you have 2 effects selected in WSR1 and WSR2, correct? I think that WSR2 looks like a time delay of 100ms (MSB=1). "

    Yes, exactly.

    "Can you list the CTRLx and LRAOLP (0x20?) register numbers with the values? I assume it is like the 0x1C registers down but would like to confirm so we set it up appropriately. "

    CTRL1: startup 1, ac_couple 0, drive_time 0x27

    CTRL2: idiss 1, blanking 1, sample time 3, bidir 0

    CTRL3: default

    CTRL4: auto cal time 3

    LRAOLP: default

    bit not mentioned are default.

    Regards

  • Hi Kelly, do you have any update?

    Best regards
    Davide

  • I did a test using the Adafruit DRV2605L and achieved the same behavior.

  • Hi Davide,

    Sorry, I meant to reply yesterday. We did give this a try in the lab late in the afternoon. It seems that the opposite of what is expected is happening with the External Trigger modes. If you set External Trig Level, the sequence is only played one time. If you set External Trig Edge, then the sequence appears to continuously repeat. 

    My suspicion in what it has taken 10+ years for this to be caught is because most people use Ext Trig Edge when the drive small pulses to the driver to activate a waveform sequence. They do not leave the Trig pin high typically. Please use the Ext Trig Level setting if you plan to leave the Trig high after the sequence has ended. 

  • Ok Kelly, at first I had the repetition issue in both modes, but then I found a calibration problem in my own code.
    Now it behaves just like you described, so I’ll use the trigger level mode, since with trigger edge I still get the sequence repetition as you said. 

    Thanks
    Davide