Hello E2E,
We're looking into using I2C only for setting the motor speed. This idea is to set the Motor speed via register 0x30 and then monitor via Register 0x01. I have something working but I'm observing some error in my motor speed calculation which makes use of register 0x01. My calculation is as follows:
RPM = (( (MotorSpeed)*6) >> PolePairsShift;
Where PolePairsShift = 2, corresponding to 4 pole pairs.
It looks like the value is in the ballpark as I increase the motor speed, but can be off by a 100RPM or so... ("True" RPM has been measured using the FG pulse from the motor driver and also a secondary RPM measuring device with an oscilloscope, both of which show the same value.)
How accurate should I expect my RPM measurement to be utilizing register 0x01? (Could be that there is an error in my equation as well... :) ) Preference would be to not need to rely on the FG pulse.
Alternatively, would a measurement using the MotorPeriod be more accurate? (Register 0x02) Haven't tried that yet.
Thanks for the help!
Regards,
Russell