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.

Reducing Latency with the DRV2605

Other Parts Discussed in Thread: DRV2605

I'm attempting to update multiple DRVs at roughly 60hz.  Given the overhead associated with managing the fact that they all have the same I2C address I'm unable to update more than two at 60hz.   Are there any I2C switches that don't require an additional command to route the subsequent command?  In other words, you could assign 8 I2C addresses to the switch and each address would route to an individual I2C device, all sharing the same I2C address?    I'm hoping to avoid multi-threading and more complex FTDI setups.  Thank you in advance - Kirk

  • Kirk,

    Please look at this board that might be closer to your application. www.ti.com/.../drv2605levm-md

    For your application, the best way would be to load the waveforms in the sequencer and then set them as External Trigger. Thereafter you could use the GPIOs toggle do so. The MSP430 has pretty good high level control of GPIOs which makes it very easy to program.

    What is your application?

    Regards,
    Gautham Ramachandran
    Apps. Engineer - Haptics.
  • Thank you Gautham. I am using race car telemetry as well as driving simulators to pass the data to the DRV in real time, so no waveforms are necessary. You can drive around in the simulator and feel bumps, Gforces, etc with much higher fidelity and lower latency than existing solutions.

    I am already using the EVM-MD board. The problem is the latency added by the need to route commands through the TCA9548 chip. Writing directly to one DRV2605 can be done in about 6ms. Adding the TCA9548 up front for channel selection adds another 6ms to the operation. If I could re-address the DRVs to avoid address conflicts it would be a non-issue, but that is apparently not an option.
  • Kirk,

    Definitely sounds like a cool application!

    How long are your effects? I am guessing you are wanting to trigger them even before the other DRV on the bus has stopped playing the previous effect correct?

    The only way I can think of solving your requirement is to get away from the I2C expander and some hardware modification and some soldering. There are enough GPIOs broken out on the MSP430 to toggle GPIOs at 60Hz. We need to connect these to the TRIG pins of all the DRVs -> set it in external trigger.

    Here is a picture of the external trigger operation.

    Regards,

    Gautham Ramachandran

    Apps. Engineer- Haptics.

  • Thanks. I think my description of my approach was lacking. I'm using the RTP register so I'm passing a new value to the register at roughly 60hz. There are no effects, just a constant updating of the RTP register based on feedback coming from the simulator. Think of it this way, if you're in a flight simulator, you can feel how hard you're banking, even if you can only see clouds, so nothing is predetermined.

    I completely bypass the MSP430 as I'm using an FTDI I2C master to send commands directly to the DRV2605 RTP register.
  • Kirk,

    Hmm.. I see... Are you using the FTDI 2232 with the Multiprotocol Serial Engine?

    Then I would suggest that you use the RTP functionality with PWM interface where the duty cycle that you provide would relate to the drive amplitude. This could give you greater than 60Hz update rate.

    Let me know if this is something useful.

    Regards,

    Gautham Ramachandran

    Applications Engineer- Haptics

    Apps. Engineer- Haptics.