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: Unable read register. received value = 0x00

Part Number: DRV10983

My hobby project with DRV10983 (not Q version) but I can't read value from 0x20 to 0x2B or another register. return value = 0x00 and I2C Halt ( donot responder) Device out 5V, 3.3V, 1.8V ... Power suppy 12VDC, current draw about 10mA ( only DRV10983)

ALL 10pcs ( DRV10983  ( 85T G4 CL6N ) same as. PCB is good, firmware Tested (good ) with drv10983 demo boad from old machine.

Help me !

P/s : DRV10983 seems to be in standby or sleep mode, so it can't receive I2c commands

  • Hello Duong,

    Please refer to the DRV10983 programming guide which could be helpful for the problem, specifically figure 10 that shows a successful I2C waveform: http://www.ti.com/lit/an/slvuaa5/slvuaa5.pdf

    Generally speaking, 10mA and stable LDOs means the you are using a standby device. As shown in the datasheet, the I2C block of the IC will be active in standby:

    If you're using the correct slave ID (0b101 0010) as determined in the I2C section of the datasheet and meeting the I2C frequency specifications, then I2C timing is the only reason to be receiving a NACK. Timing is largely determined by the I2C protocol and meeting VIH and VIL specs when the clock is in the correct state. Again, I encourage you to try and consult the programming guide and match the waveform in figure 10.

    Best,

    -Cole

  • Thanks, I have experimented with an old drv10983 and read and write well, even with about 22V of power I can write to the eeprom, the motor runs perfectly, so about I2C certainly no problem. Among the 10 purchased ones, there is one working well, the output voltage is 3.3V, 1.8V and 3.3V respectively. And 9pcs with 5V, 1.8V, 3.3V output voltage can't communicate with I2C, I suspect they are poor quality or have broken or are in standby state without being able to wake up. And if possible how do they get out of standby? I tried to write to register 0x03 with value 0x80 (sleepDis = 1) or 0x00 (sleepDis = 0), all cases did not bring results.
       Thanks again for your help.
    Best regards
    Duong.
  • Hey Duong,

    This seems rather strange.

    To address the other 9 pieces: If all of the regulators are present, then the device's digital logic should be powered. To verify that the logic is executing, place a 3.3V on the SPEED pin and monitor the voltage on a phase pin (U,V, or W). The motor should be disconnected. The device will be brought out of standby in this scenario; even though standby shouldn't be a problem as mentioned in the datasheet text above. "When the device enter sleep or standby, the motor stops driving... The step down regulator remains active... [In] standby... the I2C interface remains active".

    Using a different I2C interface, such as an aardvark or USB2ANY would rule out if the I2C protocol problems. You might have to provide I2C waveforms on your current set up.

    Clearly, you have proven that your PCB, and I2C communication have worked so we need to check our basic assumptions and see if any part of your procedure provides marginal success. I mention this because there's nothing that seems to be indicate that the devices should be the problem. No power supplies out of spec, no increased supply current, I2C within spec of device, etc.

    Speaking of basic assumptions and your thoughts, did you purchase these devices from a reputable distributor? I suppose it is possible that the devices could be counterfeit. We would have to cross-reference the markings on top of the device to your region.

    Best,

    -Cole