8.3.6 EEPROM Access
The DRV10987 device has 112 bits (7 registers with 16-bit width) of EEPROM data, which are used to program the motor parameters as described in the I2C Serial Interface.
The procedure for programming the EEPROM is as follows. TI recommends to perform the EEPROM programming without the motor spinning, cycle the power after the EEPROM write, and read back the EEPROM to verify the programming is successful.
- Power up with any voltage within operating voltage range (6.2 V to 28 V)
- Wait 10 ms
- Write register 0x60 to set MTR_DIS = 1; this disables the motor driver.
- Write register 0x31 with 0x0000 to clear the EEPROM access code
- Write register 0x31 with 0xC0DE to enable access to EEPROM
- Read register 0x32 for eeReadyStatus = 1
- Case-A: Mass Write
- Write all individual shadow registers
- Write register 0x90 (CONFIG1) with CONFIG1 data
- ...
- Write register 0x96 (CONFIG7) with CONFIG7 data
- Write the following to register 0x35
- ShadowRegEn = 0
- eeRefresh = 0
- eeWRnEn = 1
- EEPROM Access Mode = 10
- Wait for register 0x32 eeReadyStatus = 1 – EEPROM is now updated with the contents of the shadow registers.
- Case-B: Mass Read
- Write the following to register 0x35
- ShadowRegEn = 0
- eeRefresh = 0
- eeWRnEn = 0
- eeAccMode = 10
- Internally, the device starts reading the EEPROM and storing it in the shadow registers.
- Wait for register 0x32 eeReadyStatus = 1 – shadow registers now contain the EEPROM values
- Write register 0x60 to set MTR_DIS = 0; this re-enables the motor driver