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: I2C query

Part Number: DRV10983

I am currently using DRV10983 for BLDC motor driving but my DRV isn't responding.

I am sending initially address twice but DRV is not acknowledging to my any of mine address and neither to the data.

Is the DRV damaged and thats why not responding or because i am sending my data twice and so it isn't responding?

  • Hey Jeet,

    Please use this guide for the proper format of communicating with the DRV10983 through I2C (www.ti.com/.../slvuaa5.pdf).
    In general, for the first 8 bit packet, the format is address "1010 010" and "0" for write or "1" for read. And then send the second 8bit packet as the actual data for write, or the register address for read.
    Make sure you are able to read from the device sucessfully.

    Another factor is your device may not be set up properly. Please share your circuit schematic, and make sure all voltages on pins are as expected.
    If this is a sleep-mode device and it is in sleep mode, I2C will not work. Please tell me if this is a sleep mode or standby device.

    Sincerely,
    Sanmesh U.
  • Hey Sanmesh,
    I tried changing my slave address so i randomly send DRV address as 0x2A for writing and 0X2B for reading, it did acknowledge but it couldn't read nor could it write my data.

    If it is acknowledging it is not in sleep mode.

    And if i try to read i usually send START -> ADDR(WRITE) -> DATA -> REPSTART -> ADDR(READ) -> (wait for the data)
    But aft ADDR(READ) the clock is hold i mean to say that the data is not transmitted i.e cant see on oscilloscope and the read interrupt on my control has still not raised. So the data is not transmitted.
    If it is acknowledging then why is data not transmitted?

    And why is it acknowledging to random data and not to 0XA4 (slave write addr)?
  • Hey jeet,

    From what I understand you are saying, you use 0x2A for writing and 0x2B for reading and getting some acknowledgement back instead of from 0xA4 and 0xA5. But you are not able to see any response to the read request. Let's be more specific.

    I want to be very clear on the I2C commands you sent and what you saw. Please either provide a list of the I2C data sent and read like the one below for the DRV10983-q1. One list should be the ones with the proper slave address of 0xA4 and 0xA5. The other list should be of the slave address of  0x2A and 0x2B.

    I would follow the commands in the "Programming Guide for the DRV10983". Please confirm you followed that exactly. You cannot do any writing to the registers till the Sidata bit is set to 1, and this is shown in the programming guide. 

  • Any follow-up jeet? Were you able to complete the steps i highlighted in my previous post?
    Or were you able to figure out the solution (If so please list the solution so others can benefit from it)?
  • I will list this as resolved for now. If are able to follow up, then I will respond accordingly as well.