Other Parts Discussed in Thread: DRV10983, , DRV10983EVM
Hello,
I used a DRV10983EVM to acquire the motor parameters from my BLDC motor. It ran fine and I went ahead to design a standalone PCB with the DRV10983 and an ATmega324PA. After soldering, I found out that I had actually ordered a DRV10983-Q1. I wrote a library for controlling the motor driver and everything seems to work. I have no problems writing to and reading from EEPROM for example. But when I send a speed command, the motor does not show any sign of life, it does not even attempt to run.
I set the motor parameters in the same fashion as with the DRV10983. While there are differences, I would expect the motor to at least try to run.
When I send a speed command, I set the override bit high and make sure the motor disable bit from the EECTRL register is low. I always send my most significant byte first and least significant byte last (not described anywere what the right order is, but this seemed correct).
I checked the fault register, not a single fault code was active. I also checked the EEPROM programming registers, to exclude the possibility of the motor being disabled due to EEPROM related actions. I don't see any other registers that would prevent the motor from running. The SpeedCtrl register gets cleared after setting it, but the SpeedCmd does have a value which roughly corresponds to the speed I tried to set. The SpeedCmdBuffer register does not hold any value (= 0x00).
My PCB is wired up correctly and is running at 24VDC. The idle current is approximately 5 mA. The 5V from VREG seems to be quite noisy (when I probe it, the probe acts as an entenna and you can literally hear it), but I don't suspect this to interfere with the motor operation.
Did I perhaps miss something? Quite at a loss here.
Thanks in advance,
Stan
EDIT: I'm running the DRV10983-SQ1, so the standby version, not the sleep version. Also, I just tried sending a speed command (100dec) and let it read the fault register on loop for as long as the register was equal to zero. It eventually returned the value 0x001F ( lock 1 up to lock 4). No idea what to make of this.