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: DRV10983 Speed setting resolution using I2C setting Register target speed 3000RPM

Part Number: DRV10983

Dear all,

I have been using the EVM and gui to get the a 24v BLDC motor running.

It is working well I have followed the Tuning guide and tuned all the parameters.

The RPM is now very stable,

I have written a program On an STM32 to set the speed by I2C Command,

1st I wrie bits 7 to a 1 in register 0x01 spped crtl2 //this enables the drv10983 to takes I"C speed settings

I than set various values the range is 0-511 decimal into register 0x00 

my target speed is 3000 RPM

If I set 112 112 and 113 decimal speed commands of 0x6E, 0x6F and 0x70 which is near the speed I want

the folwing rpms is achieved

111 0x6E = 2960 RPM

112 0x6F = 2990 RPM

113 0x70 = 3020 RPM

Changing reg 0x00 speed command by 1 bit results in a big change of 30 RPM, its ion closed loop

the rpm is very stable wich is great but the single increase of 1 in reg 0x00 changes the RPM by 30 Rpm per 1 bit in 0-511 speed set point

if I cancel I2C speed command and use a 10 Turn POT on the analogue input I can adjust the speed to exactly 3000 RPM my target speed. But using I2C command it jumps by 30 RPM per bit

it is asif the pot has a better reoloution than the speed setpoint register

if I set a large number or turn the POT only two 1/3rd on the motor goes 6000 RPM far to fast

How can i increase the resoloution each step of 0-511 in the speed set point makes it jump 30 RPM for 1 bit in 0-511 speed setpint

its to course the steps i need are in between 112 and 113 0x6F and 0x70 to get exactly 3000RPM

Its as if the pot has a better resoloution than the speed set point register as using pot i can set eactly 3000RPM

is there a paramater that can tune the motor make the speed setting reg 0x00 be less course so changing by 1 bit dosent move speed as much as 30RPM per step.

it asif there isnt enough resoloution each steo from 0-511 jumps 30 RPM, how come the pot can set eactly to 3000RPM on ten turn wiper but in reg each step is to course

Its in closed loop and very stable but the speed setting is to course is there a partamater to slow the maximum speed to make the speed command 0x00 effecxtivley less course / less rpm per step

i dont want to use a pot i want to set it by i2c in my final spplication many thanks

Matthew

 

  • Hi Matthew,

    The Speed pin will give you a speed resolution of 10 bits while the speed command register will give you a resolution of 9 bits. I suggest that you use the Speed pin and use PWM into the device to get to as close to 3000 RPM as possible.

    Regards,

    Michael W.

  • Sorry my reply was late,

    that explains why I can get better rpm resoloution using the pot.

    In reg 0x01 i set 113 dec he 0x70 to gert about 3000RPM

    is there anyDRV10983 registers /  paramaters i can alter to make the motor rpm increase in smaller steps i only use bits 0 to 8 bit 9 in 0x001 is not needed as only 113 dec sets my 3000RPM.

    I wonder if any paramater could later it so the reg ox01 i2c speed setting had less effective rpm per step as in make the max speed lower so the effective resoloution of the 511 steps was a smaller rpm sterp per increase in bit.

    In our application we prefer to set speed by i2c than using pwm or analogue ouput to the speed pin

    namy thanks sorry for late reply

  • Hi Matthew,

    No Problem, I am sorry to say that there is no way to get that resolution from just the registers. Why are you limited to just I2C? does your MCU not have a PWM output available.

    Regards,

    Michael W.