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.

Register write successful motor still does not work

Expert 1055 points
Part Number: DRV10983-Q1
Other Parts Discussed in Thread: DRV10983

Hi team,

   Previously, I used DRV10993-Q1 EVM board provided by TI to debug the drive motor, and controlled the motor speed in closed-loop mode through EVM GUI software. Then I saved the Settings of GUI software to obtain the values of 0x90~0x96 in seven registers. The seven registers were written in accordance with the operation steps of EEPROM Access. After the writing, the register was read and the parameters were written one by one successfully, but the motor did not work. May I ask if there is any problem with my setting?
I found in the programming guide documentation that more registers are saved from the GUI than are actually saved. Why?

  • Hi Suy,

    The screenshot that you shared shows the registers of DRV10983. Register map of DR10983 is different from DRV10983-Q1. Did you write the seven register values (0x90 to 0x96) to the device EEPROM on your board or EVM? Did you use the EVM and GUI or your own MCU to program the EEPROM? After successfully writing to EEPROM, you should be able to spin the motor by issuing speed command over I2C or SPEED pin. Did you issue the speed command and still don't see the motor spinning? Can you read the fault register to see if there are any faults triggered?

    Regards,

    Vishnu

  • Hi Vishnu,

    At present, it uses its own FPGA to write registers to EVM. 

    There are two questions:

    1,I wrote the register values 0x90~0x96 into EEPROM through EVM GUI software, and then read the values of seven registers of EVM through FPGA, and compared them with the exported register values of GUI, and found that several register values were inconsistent with the exported register values (as shown in the screenshot below).

    The FPGA has to write EEPROM according to the read value in order for the motor to work properly, if the FPGA writes EEPROM according to the value derived from GUI, the motor will not work, I want to know why this is?

    register address value exports by GUI   value reads by FPGA from EVM
    0x90 54F0 054F
    0x91 2B4A 2B4A
    0x92 5800 0058
    0x93 408F 408F
    0x94 3F0F 3F0F
    0x95 3073 3073
    0x96 6900 0069

    2,We require the motor speed to be set at 10Hz to work in closed loop mode. Is it OK to set the threshold from open loop to closed loop (Op2ClsThr[4:0])? Which register is used to confirm that the motor is working in closed loop mode after setting?

  • Suy,

    Looks like your FPGA is not reading the EEPROM data correctly from the device. Refer to section 8.5.1 in DRV10983-Q1 datasheet for instructions on how to read the data. 

    It is recommended to set the open to closed loop threshold to be lower than the closed loop speed command to avoid any speed overshoots. You can configure the FG to output in closed loop only to check if the motor is in open loop or closed loop.

    Regards,

    Vishnu 

  • Hi Vishnu,

       I want to say that my FPGA uses the same program to read the register values 0x91,93,94,95, which are consistent with the values exported by GUI, but the values of 0x91 & 96 are wrong,It looks like some 4bit or 8bit position has been reversed.

    Another it can drive the motor to work normally after writing the register values read by FPGA from EVM on a new drv10983. If the value 0x90~96 derived from the GUI is written to the register, the motor will not work. I wonder what's wrong with this?

  • Suy,

    I didn't quite understand the problem. It doesn't matter whether you read the data from FPGA or GUI. As far as the device EEPROM is programmed correctly with the tuned parameters, it should work.

    Regards,

    Vishnu