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-Q1: Unable to read from the Config Registers

Part Number: DRV10983-Q1

I can communicate with the DRV10983-Q1 using I2C using all registers except the configuration ones.

0x00 to 0x08  I can read sensible data from registers 

0x30 SpeedCtrl I can read and write to the SpeedCtrl register ( I attempt to write 0xFFFF and when I read I get 0x81FF which is what I would expect)

0x90 to 0x96 I am unable to read anything except 00 from these registers and do not appear to be able to write to them

Is there any reason why I should not be able to read and write to the Config registers? Is there any type of write protection?

  • Hey Paul,

    You're exactly right, there is some read/write protection for the EEPROM settings. Looking at section 8.3.6 in the datasheet regarding EEPROM Access (0x90-0x96), one needs to write the EEPROM access code (0xC0DE) into register 0x31 (EEPROM Programming1: ENPROGKEY[15:0]) before writing or reading from these registers.

    You can find more information about the process in the EEPROM Access section 8.3.6 in the DRV10983-Q1 datasheet.

    Best,

    -Cole

    Edit: Instructions included for your ease

  •  Hi Cole,

    I have made some progress but still struggling.

    I can perform a Mass Read and can see the default values.

    When I try to action a Mass Write I fail to write to the Shadow Registers (0x90-97).

    In detail:

    1. 0X60 Wrote:8000 Read:$0000 - The datasheet states that I can't read this so fine. This works as if I do not clear the motor output is disabled

    2. 0X31 Wrote:0000 Read:$0000

    3. 0X60 Wrote:code Read:$C0DE - Appears to be in order

    4. 0X32 Check Status (LSB) $0001

    5. eeReadyStatus SET,

    6. 0X90 Wrote:$034A Read:$0404 - Failed to write

    7. 0X91 Wrote:$1A3A Read:$0404

    8. 0X92 Wrote:$0006 Read:$0404

    9. 0X93 Wrote:$138E Read:$0404

    10. 0X94 Wrote:$BB6F Read:$0404

    11. 0X95 Wrote:$3132 Read:$0404

    12. 0X96 Wrote:$0534 Read:$0404

    13. 0X35 Wrote: 06   Read:$0006

    As can be seen, I fail to write to any of the Config Registers. Is 0404 a clue in why I'm failing as it is the same value on all 7 registers.

    I've scoped the I2C to confirm that I'm not loosing the MSB of the address (hence 9 does not become 1). Trace attached writting 0x90 with FF and AA

  • Hi Cole,
    Forget the above. I started to work out how to write to individual registers and realized that it had started to work. Friday afternoon finger trouble.
    Thanks for you help
    Paul