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.

DRV10987: Best cheapest solution for DRV10987 with I2C speed control?

Part Number: DRV10987
Other Parts Discussed in Thread: MSP430G2230

Hi,

As I2C registers stored in non-volatile memory. What is the cheapest and best solution for DRV10987 speed control using I2C interface? Is using MCU with I2C?

I need to configure I2C registers for needed motor speed at . I mean, i want to run motor at only at one speed. 

Option-1:

Use MCU with I2C interface to configure DRV10987 speed

Option-2:

Use digital potentiometer (program potentiometer using I2C once) and use analog interface to configure DRV10987 speed

  • Hi Sadashiva,

    Thanks for posting in E2E forum. I just want to make some slight corrections to your statement. I2C does not have registers. I2C communicates to the device via GUI or MCU and writes the speed command to the register (address - 0x06) in the device.

    I see Option 2 as a cheaper solution but since you mentioned Speed control, you might need an MCU. If you are looking for a precise speed control then DRV10987 alone will not serve the purpose. You will need an MCU as well. Let's talk about this in detail. 

    Option 1:

    Since you mentioned Speed control and a fixed speed operation, you will need an MCU to constantly read speed via FG pin and implement a PI controller in the MCU and write the speed command to device via I2C to maintain a stable and fixed speed. The speed command that is written to the device from the MCU via I2C will be constant or varying depending on the actual motor speed. For example, if the motor speed in your application decreases due to an external force or load, there will be a drop in speed and the commanded speed will not be same as the actual speed. PI controller in the MCU will compensate this by writing a speed command greater than the actual speed. When the commanded speed is greater, device outputs more voltage and compensates for the drop in speed thereby maintaining a constant speed at the output even under external load disturbances.

    Option 2:

    This option is cheaper and is possible if the torque is constant. If there is no external load disturbance, the applied speed command will almost be same as the output speed. In such cases, you will not need an MCU to control the speed. As you mentioned, an I2C compatible digital potentiometer will be sufficient to set the speed command and interface with the device.

    Regards,

    Vishnu 

  • Thanks Vishnu for details. What I meant of I2C registers was registers accessed though I2C interface. I'm aware that I2C is just an interface to communicating between devices.

    I have updated 3 possible solutions for Motor speed configuration - see attachment for block diagram

    Need:

    1) Motor should run at pre-configured one speed only

    Option-1, I2C: using MCU to control registers using I2C  (last pic)

    Option-2, Analog-i: using Digital potentiometer/Rheostat (center pic)

    Option-3, Analog-in: using 10K, 1% potentiometer/trimmer (first pic)

    Even though option-3 is the simplest one, I'm not finding low-cost 10K, 1% potentiometer/trimmer. Whether TI has low-cost solution option-1 & option-2 mentioned above? 

  • Hi Sadashiva,

    I'm not sure how many units you are looking for as the cost depends on the quantity. TI provides I2C compatible Digital potentiometers and low cost MCUs. Please check the below links and pick a component that suits your design.

    http://www.ti.com/data-converters/digital-potentiometer/products.html#p158=I2C

    http://www.ti.com/microcontrollers/msp430-ultra-low-power-mcus/products.html?pqs=paqs&familyid=342#

    Regards,

    Vishnu

  • Thanks for links - 

    Option-1: Can I use MSP430G2230 to one-time program of all registers (including EEPROM) of DRV10987 using I2C interface? Is MCU's RAM & Memory is enough for one-time programming?

    Option-2: I'm not finding ~10K, 1%, 1024 steps digital pot in TI  

  • Hi Sadashiva,

    Option-1: You can use MSP460G2230 to program the registers via I2C. I don't see any issues using this MCU. 

    Option-2:  I think using a 256 step 100k pot will give a good resolution. Resolution of 256 step 100k pot (http://www.ti.com/lit/ds/symlink/tpl0102-100.pdf) will be 0.39 kOhms. Converting this to voltage (full scale - 3.3V) will give a resolution of 12.87 mV. Using a 128 step 10k (http://www.ti.com/lit/ds/symlink/tpl0401b-10-q1.pdf) will give a resolution of 26.4 mV. Since you mentioned you will spin the motor at a fixed speed, programming the digital pot to a resistance close to the desired speed pin voltage should't be challenging in my opinion.   

    Regards,

    Vishnu

  • Thanks for confirmation on the following - 

    Option-1: MSP460G2230 RAM & FLASH capacity to program all I2C registers

    Option-2: 8-bits resolutions for Analog In