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.

DRV10983: DRV10983

Part Number: DRV10983

Hello,

I am currently using DRV10983 and trying to communicate with it through I2C using microcontroller. I sent data and clock from Master to DRV10983(slave) but the ack didn't back.

so,

1- what is the perfect timings for delay. 

2-Any advice about why Ack didn't back to master?

  • Hey Ahmed,

    It sounds like we need to debug what might be happening. Let's go over some basic checks:

    • Ensure the hardware is correct
      • Make sure the resistors on SCL and SDA for our device is 4.75k Ohms and pulled up to 3P3V
      • Follow traces and make sure the master output of the clock is connected to SCL and data is connected to SDA (continuity test with a DMM will help)
      • Note that the DRV10983-Q1 has different registers than the DRV10983, if you are using the DRV10983-Q1, please review the DRV10983-Q1 datasheet
    • Ensure I2C protocol is followed
      • The frequency of the I2C communication (e.g. CLK) should be below 400kHz for our device (this is our max speed for I2C)
      • The slave address of the DRV10983 is 0b101 0010
      • Probe the SDA and SCL lines, look if the SDA line up with SCL as expected
    • The DRV10983 Programming guide contains some examples that could be helpful to you

    Best,

    -Cole

  • Hey Cole,

    thanks for your support.

    I am now facing another problem, the motor doesn't work and I used these values in motor params:

    REG_20 --> (0x39)
    REG_21 --> (0x1E)
    REG_22 --> (0x3A)
    REG_23 --> (0x08)
    REG_24 --> (0x50)
    REG_25 --> (0xDA)
    REG_26 --> (0x8B)
    REG_27 --> (0x10)
    REG_28 --> (0x27)
    REG_29 --> (0x37)
    REG_2A --> (0x00)
    REG_2B --> (0x0E)

    And why when using Avometer to measure voltage between any output pin and ground or between ant two output pins they give 0v?? 

  • Hey Ahmed,

    It sounds like you're having trouble tuning the motor. First thing we need to do is get the Motor parameters correctly inserted.

    There are 3 motor parameters that should be correct: programmed Phase Resistance, programmed Kt, and Tcontrol (lead time).

    Phase to Phase resistance is found by taking a digital multimeter and measuring the resistance between any of the two phase wires, and phase resistance will be half the phase to phase resistance:

    R_ph_ph / 2 = R_ph_ct

    For Kt, we highly recommend finding that number by taking a scope probe between two of the phases, physically rotate the motor, and measure Voltage (peak to peak) and frequency of the BEMF. Then, Kt will come from dividing the peak to peak voltage by to 2 and dividing by frequency:

    Kt = (V_pk_pk/2)/(f_BEMF)

    For Tcontrol, go to the Control Advance Time Fine Tune section in the tuning guide and follow the instructions there. Tcontrol usually ranges between 30us to 450us.

    All of these steps (and more) are reiterated in tuning guide:

    DRV10983: http://www.ti.com/lit/pdf/slou395

    Also, we have some videos that show the steps as well:

    Part 1: https://www.youtube.com/watch?v=ix7YPvBtbvE

    Part 2: https://www.youtube.com/watch?v=bojHY-qnkCY

    Best,

    -Cole