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: Issues with DRV10983 Output for A2212/13T 1000KV BLDC motor

Part Number: DRV10983

Hello, 

I'm using A2212/13T 1000KV BLDC motor i.e., used in drone. By using external microcontroller i wrote 12 registers (0x20 - 0x2B) of DRV1093 via I2C regarding to motor parameters. And on register 0x00 & 0x01 i wrote 0XFF for full speed, it also included overRide Bit so that speed command through I2C.

measured phase Resistance is 0.155 ohm (according to table value for Register 0x20 is 0x18)

I measured Motor Velocity Constant ≈ VCC / maximum motor speed (no load)

My example: motor spins with 12000 rpm as its rating is 1000 RPM/Volt, so my volt is 12V that's why 12000 RPM. 12 poles and 12V power supply:

12000 rpm / 60 / (6 pole pairs) = 1200 Hz

BEMF constant Kt = 12 V / 1200 Hz =>10 mv/Hz (according to table value for Register 0x21 is 0x0B)

Rest Registers

#define REG_22 0x3A
#define REG_23 0x00
#define REG_24 0x50
#define REG_25 0xDA
#define REG_26 0x8B
#define REG_27 0x10
#define REG_28 0x27
#define REG_29 0x3A  // DeadBand 400 nsec
#define REG_2A 0x04  // Buck Regulator output 3.3V
#define REG_2B 0x0C

But motor spins in unmannered behaviour sometime run and sometime stop because DRV10983 output generate with only 3% duty and it comes after every 4 sec and rest time it off.

So please help me regarding to values of these registers. And it's valuable response if support is regarding to A2212/13T 1000KV BLDC motor's parameters. 

  • Your settings you entered are below:

    Datasheet I used for your motor is here  https://www.rhydolabz.com/documents/26/BLDC_A2212_13T.pdf . Please tell me if this is wrong datasheet

    Possible Issues:

    1) Software Current limit set to 0.4A. Disable it for now. This might be limiting the duty cycle

    2) I think Kt is right but double check

       -BEMF constant in datasheet = 1V/1000RPM * 1000mV/1V * Rpm/Hz         = 1V/1000RPM * 1000mV/1V * 60/7 =         8.571 mV/Hz

          -60/#PolePairs = Rpm/Hz

       -Close enough to entered value of 10mV/Hz

       -But check what the measured Kt is through registers MotorKt1 and MotorKt2 according to datasheet

    3) Make sure entered phase resistance is correct

       -Make sure it is phase to centertap, not phase to phase

       -Datasheet shows resistance as 0.090 ohms, so off from entered value of 155m.

    4) Enable all locks except for "Abnormal Kt"

    5) Improper tuning:

       -See which fault triggers by checking the FaultCode register

       -To debug, see which phase of motor operation the fault happens. Does it happens during align, open loop, or closed loop?

    Let me know if this helps resolve your issue.

  • for the first 5 sec speed is not too fast and after that A2212 motor continue spinning with very low speed as per given registers

    #define REG_20 0x09 // 87mOhm (Table = 0x09)
    #define REG_21 0x0B // 10mV/Hz ( Table = 0x0B)
    #define REG_22 0x3A
    #define REG_23 0x00
    #define REG_24 0x50
    #define REG_25 0xDA
    #define REG_26 0x8B
    #define REG_27 0x00 // disabled all locks
    #define REG_28 0xFE // current limit
    #define REG_29 0x3B // B=11 i.e., 11*40 = 440nsec
    #define REG_2A 0x04
    #define REG_2B 0x0C // Please check this register Abnormal Kt lock detect threshold

    for full speed via I2C I also write in Register 0x00 = 0xFF and in Register 0x01 = 0x81, but when i read Register 0x10 i got 0x00 and Register 0x12 varying 0x0a-0x0b, what is this matter?

    Answers to your possible issues -

    1. How to disable current limit, may be i'm right as i wrote in Register 0x27 = 0x00 disabled all lock
    limits and 0xFE in register 0x28. It means 3 Amp acceleration current limit & 6 Amp lock detection
    current limit. In this register i also wrote 0x00 i.e., no acceleration current limit but at that time
    motor doesn't spin.

    2. In your Kt calculation you used 14 poles i.e., 7 pole pairs. But I'm sure the motor which i have has
    12 poles i.e., 6 pole pairs.

    As per the tuning guide of DRV10983 i got this : "If you are not able to figure out the motor velocity
    constant from the previous steps, it can be estimated by the maximum motor speed"
    Motor Velocity Constant ≈ VCC / maximum motor speed (no load)
    Given example: motor spins with 1500 rpm (4 pole) at 24-V power supply:
    – 1500 rpm / (60 / 2 pole pairs) = 50 Hz
    – 24 V / 50 Hz = 480 mv/Hz
    My example: motor spins with 12000 rpm as its rating is 1000 RPM/Volt, so my volt is 12V that's
    why 12000 RPM. 12 poles and 12V power supply:
    12000 rpm / 60 / (6 pole pairs) = 1200 Hz
    BEMF constant Kt = 12 V / 1200 Hz =>10 mv/Hz (according to table value for Register 0x21 is 0x0B)

    Measured Kt through registers MotorKt1(Register 0x15) is 0x02 and MotorKt2(Register 0x16) is
    varying from 0xC0-0xEF

    3. I measured phase to phase resistance by using LCR meter
    Ruv = 0.167
    Rvw = 0.173
    Ruw = 0.173
    After that (Ruv+Rvw+Ruw)/3, Then this result is divided by two and I got 0.087 ohm (according to
    table value for Register 0x20 is 0x09) i.e., nearly equals to 90 mOhm

    4. I disabled all locks by writing 0x00 in Register 0x27

    5. I read value of Register 0x1E i.e., Fault Code Register and i got value 0x04 that indicates abnormal
    Kt
  • Let me get back tomorrow on following up on your other questions.

    Just some quick notes below.

    register 0x10 is status register so vaue of 0x00 is good, meaning no faults.
    Register 0x12 is MotorSpeed2 register. Speed in Hz is (MotorSpeed1:MotorSpeed2)/10. So if MotorSpeed1 = 0x01, and MotorSpeed2 = 0xFF, then speed in Hz is 0x01FF / 10 = 51Hz
  • sir,
    still motor is not running well means very slow speed, Register 0x10 is status register and i got 0x0F, means no fault. In register 0x11 i got 0x00 and in register 0x12 i got 0x0A-0x0B. So, speed is 0x000A/10 = 1Hz. But I wrote in register 0x00 = 0xff and in register 0x01 = 0x81 means full speed written via I2C. And also check my previous reply carefully in which i gave answers for your possible issues.

    Actually we are going to make our own BLDC Ceiling Fan . We saw your TIDA 00386 solution regarding to BLDC ceiling FAN, also see on youtube BLDC ceiling fan solution on TI Platform i.e., www.youtube.com/watch. First step is motor functioning. Recently we use A2212 drone Motor to clear concept of BLDC functioning by DRV10983. If we got success in this case then we have to move on fan's motor.

    Regards,
    Shariq Hussain
  • Apologize for the delay. It is taking me a little time to process all the information you gave me and make a decision on how to proceed, so please allow me tomorrow to get back on this.
  • Sir,
    It's OK ...... No need to apologize and thanks for your valuable reply.
    It's a great help from you if you run that motor A2212 at your end as i saw in youtube's video i.e., BLDC ceiling fan solution on TI Platform www.youtube.com/watch. I expect it from you as you are a TI Employee and we are a big group in India in the field of lightning. So, it's a good business for TI, if we got success on TIDA 00386 solution.

    Regards,
    Shariq Hussain
  • Hey Shariq,

    The speed constantly displaying as 1Hz shows the motor isn't commutating correctly.

    1) Please try the settings below:

    Biggest changes implemented:

    a) Doubled pwm frequency to get better motor control.

    b) Increased open to closed loop threshold. The Kt of the motor is low, so we need to increase the handoff speed. If this doesnt work, I would suggest increase

    c) Increased Open Loop current to provide more torque when spinning the motor in open loop. this motor can handle even 10A according to the datasheet, so might as well apply more current.

    d) FG outputs only in closed loop. So if you dont see any FG signal out when the motor is spinning, that means the driver never reached closed loop, so its an open loog configuration problem.

    If this doesnt work, please let me know what fault triggered. Try increasing the open to closed loop threshold if it doesnt work.

    We'll start from this step.

    I think getting a motor phase current oscilloscope capture might help as well.

  • Hello sir,

    As per your recommendation I applied following values to EEPROM :=>

     I attached videos for today's work please check the condition

    #define REG_20  0x89          // 87mOhm (value for Rph acc. to table = 0x09), Freq =  50KHz

    #define REG_21  0x0B         // BEMF 10mV/Hz ( Table = 0x0B), AdjMode = Full cycle adjustment

    #define REG_22  0x3A         // commutate control advance = constant, lead time = 200 usec

    #define REG_23  0x00         // ISD Disable

    #define REG_24  0xD0        // open loop current rate 1.6Amp, Open-loop align current 1.5 VCC/s,No brake

    #define REG_25  0xDA        // Control coefficient = 1,open loop start-up accelerate (second order) 6.9 Hz/SecSq

        // Open loop start-up accelerate (first order) 38 Hz/s

    #define REG_26  0xA9         // Align time 2.7 s, Open to closed loop threshold 76.8 Hz

    #define REG_27  0xA0         // No motor fault,abnormal speed fault, I remove your bit i.e.,  detect current limit

    #define REG_28  0x0E         // SWiLimit No acc. current limit, Lock detection current limit threshold = 6 Amp

    #define REG_29  0xFB        //deadband 11*40 = 440nsec,stuck in close loop,Closed loop accelate = 0.045 VCC/s

    #define REG_2A  0x0C        // IPD Disable,Stuck in closed loop, Buck Regulator 3.3V

    #define REG_2B  0x4C        // FG outputs only in closed loop,Kt_high = 2Kt. Kt_low = 1/2Kt

    Motor not accelerate, but there is some kind of force which want to accelerate motor but every time after a little bit jerk motor stop,

    then I read status register which indicates 0x2F, means this Bit indicate that a phase to phase overcurrent event happened. This is a stickybit, once written, it stays high even if overcurrent signal goes low. This bit is cleared on Read

    I also read fault code register which indicates sometime 0x05 means Kt abnormal but mostly  0x01  means lock detection current limit

    I checked phase to phase current it reaches to 80 mAmp, Suddenly by mistake Y Phase wire got disconnected and motor spin with full speed this time phase to phase current is 38 mAmp, when i connect that Y Phase wire Again motor stopped with high jerk, for this i hvn't idea how motor run with two phase.

    I saw in CRO when motor spinning with good speed by two phase one phase duty is 48% and other's was 35%. But in this case of two phases after some time one channel's duty exceeds 60% and motor stopped with high jerk with status register 0x2F.

    when motor spin with good speed by two phases i read motorKt i.e., motorKt1 =0x00 & motor Kt2=0x1E-0x20

    Now what to do, I also attached video regarding to this work please check them

  • 1) the motor shouldnt spin when a motor phase is connected, as the "no motor fault" should detect it if it is enabled, so I would maybe investigate what is going on.
    2) So we see an overcurrent fault. Do you have a current probe from which you could see the phase current and see from startup what is causing the overcurrent condition?
    3) When you say "Motor not accelerate, but there is some kind of force which want to accelerate motor but every time after a little bit jerk motor stop," does this mean that the motor barely starts before stopping? Or is it shown in one of the videos you sent? I would identify which phase of the motor control operation is the problem happening. Is it happening in align, open loop, or closed loop? I would disable closed loop first and make sure open loop is operating well first, before moving to closed loop.
  • Sir,
    1) In Register 0x27 I also include No motor fault's bit Enabled when high
    But when I read Register 0x10 then I got OverCurr bit high and in Register 0x1E I got Kt abnormal,Lock
    detection current limit bit high. It means that there is no motor fault.
    2) I'll tell you tomarrow regarding to phase current via current probe.
    3) .............. Ya motor barely starts before stopping when all three phase output of DRV10983 connected to motor
    .............. No this isn't show in the videos which i have shown.
    .............. Motor starts spinning with fast speed when i remove Middle Phase (V Phase), shown in video
    ............. Register 23 = 0x00 // ISD Disable
    Register 24 = 0xD0 // open loop current setting 1.6Amp, Open-loop current ramp-up rate
    setting 1.5 VCC/s, No brake
    Register 25 = 0xDA // Control coefficient = 1, Open loop start-up accelerate (second order) 6.9
    Hz/SecSq, Open loop start-up accelerate (first order) 19 Hz/s
    Register 26 = 0xA9 // Align time 2.7 s, Open to closed loop threshold
    Register 28 = 0x0E // No acceleration current limit, Lock detection current limit threshold 6
    Amp
    Register 29 = 0xFB // B=11 i.e., 11*40 = 440nsec, stuck in close loop, Closed loop accelerate
    0.045 VCC/s
    Register 2A = 0x0C // IPD Disable, stuck in closed loop, Buck Regulator 3.3V
    Register 2B = 0x4C // FG outputs only in closed loop,1 pulse output per electrical cycle,Kt_high
    = 2Kt. Kt_low = 1/2Kt,Analog input expected at SPEED pin,Transfer to closed
    loop at Op2ClsThr speed
  • I'm sharing some videos regarding to Over Current of phase to phase via current probe . Please check all videos carefully. I'm sure that the error is over current which stops motor. Because I read status register (0X10) and i got 0x20. And I read fault code regoister (0X1E) and i got 0x01. The white colour wire is middle phase i.e., V Phase. I connected and disconnected the V phase i.e., white wire to run the motor.

    .............. Sanmesh sir I'm in hurry to launch the prototype of TIDA 00386 BLDC Cieling fan solution. So, please support me by your full effort.

  • I will respond within the next hour.
  • I'm confused about the current oscilloscope reading because it looks like the current frequency reduces over time instead of increases to a final value.
    Let's break down getting the motor to spin into steps:
    1) Please give me your most up-to-date full eeprom settings you are using, from rgister 0x20 to 0x2B.
    2) Let's first make sure the open loop works. Please disable closed loop through the CLoopDis. Spin the motor in open loop, and make sure the motor phase current looks smoothly sinusoidal and that the motor is spinning smoothly. The most important thing is to make sure the BEMF Constant Readback from MotorKt1 and MotorKt2 (Kt = {MotorKt1:MotorKt2}/2/1090) matches the expected kt of the motor (I think you expected around 10mV/Hz). If it doesn't match, then try increasing the open to closed loop threshold.
    3) Once open loop works as expected, please enable closed loop again through setting CLoopDis = 0. If it doesnt work, try changing closed loop accelerate or ClsLpAccel bit to the minimum for the least acceleration and try adjusting the TCtrlAdv bits or lead angle.


    Lets have this as the preliminary plan.

    Also, if you could capture 1 motor phase current from startup to spinning or failure, all in one scope capture, that would be really helpful to see whats going on. I would be able to see the align, open loop, and closed loop.

  • Sir, Reply to your suggestions =>

    1) most up-to-date (accorrding to previous videos) full eeprom settings i'm using, from rgister 0x20 to 0x2B, i'm remind you that CLoopDis

    bit is 0 in 0x2B Register means Transfer to closed loop at Op2ClsThr speed

    #define REG_20 0x89 // 87mOhm (value for Rph acc. to table = 0x09), Freq : 50KHz

    #define REG_21 0x09 // 10mV/Hz ( Table = 0x0B)

    #define REG_22 0x3A

    #define REG_23 0x00 // ISD Disable

    #define REG_24 0xD0 // open loop current setting 1.6Amp, Open-loop current ramp-up rate setting 1.5 VCC/s, No brake

    #define REG_25 0xDA // Control coefficient = 1 // Open loop start-up accelerate (second order) 6.9 Hz/SecSq

    // Open loop start-up accelerate (first order) 38 Hz/s

    #define REG_26 0xA9 // Align time 5.3 s, Open to closed loop threshold 25.6 Hz

    #define REG_27 0xA0 // No motor fault,abnormal speed, current limit locks

    #define REG_28 0x0E // No acceleration current limit, Lock detection current limit threshold = 6 Amp

    #define REG_29 0xFB // B=11 i.e., 11*40 = 440nsec, stuck in close loop, Closed loop accelerate = 0.045 VCC/s

    #define REG_2A 0x0C // IPD Disable ,Stuck in closed loop, Buck Regulator 3.3V

    #define REG_2B 0x4c // FG outputs only in closed loop,1 pulse output per electrical cycle,Kt_high = 2Kt. Kt_low = 1/2Kt,Analog input expected

    at SPEED pin,Transfer to closed loop at Op2ClsThr speed

    2) When i disable CLoopDis bit by writing 1 to it . Motor not spinning, only make humming noise but current continous flows through phase, for which i attached video with this conversation. This time MotorKt1 is 0x00 and MotorKt2 ix 0x0F = 6 mv/Hz. And my Kt is 10 mv/Hz not matched with the read value so i increase the open to closed loop threshold to maximum REG_26 = 0xF9 . This time motor make more humming and max current limit reach above 4 Amp that's why humming stop and i read in 0x10 register bit 0x20 overcurrent.

    3) Motor not spin in open loop only humming noise created and continous current flow through phase when REG_26 = 0xA9 // Align time 5.3 s, Open to closed loop threshold 25.6 Hz



    Please check the 4 videos, to download videos then go to link .................... https://we.tl/t-SxWEg969gH
  • I will go through your videos. My only comment is first focus on getting open loop to work. If motor is just humming this usually means either the open loop current needs to be adjusted or the acceleration rates need to be slower.
  • Sir,
    I'm sorry to say that it's a disappointment for me that i got reply from e2e community with a delay of 4 days.
    As per your previous reply in which you told me to send latest EEPROM settings so I did that in my previous reply. Please check and manage those settings so motor can rotate in open loop.

    Thanks & Regards,
    Sharique
  • Hey Sharique,

    1) I apologize for not letting you know I was out of office for US holiday. My last response time was friday, and after that, saturday and sunday are non-work days, and monday was "Memorial Day" holiday in the US. I should have let you know that monday was a holiday so I apologize for that.

    2) The best method I would recommend as of now, since you have the motor in front of you and I don't, is to focus on getting open loop working first, and trying my suggestions  that I recommended previously.

    Your current open loop settings are below:

    I would suggest adjusting the open loop/align current and reducing the acceleration rates.

    3) I cannot open your videos from your file sharing link because TI blocks access to this link. I will have to either view the videos later at home when not on TI network, but I would recommend just uploading the videos directly to e2e like you did previously, or uploading to youtube and sharing a link.

  • Sir,

         Today i adjust open loop current and reduce acceleration rates as per your suggestion. But can't got success, still motor makes humming noise to move but not move and current continously flows through the phase. for which i attached video.Control coefficient is 1, but it doesn't matter whatever is control coefficient because i already disable close loop by enable bit CLoopDis.

  • Hey Sharique,

    I have a motor similar to yours. It is the Turnigy Aerodrive D3536/8 1000kV www.amazon.com/.../B00URCLJHE and has similar kt of 9.56mV/HZ as your motor. I tried to spin in open loop and the motor also vibrated. Let me continue testing and get back to you on getting open loop working.

    Only suggestion meanwhile is to make sure that the motor phases are connected to the motor phase connectors on the evm in the middle of P1 terminal block, and not connected to the power and ground connectors on the outside of the p1 terminal block
  • Sir,

    I highly appreciate you that you arranged similar motor, now it's really helpful for me.
    Motor has three phases RYB represents Red,yellow,Black wire. I'm not using DRV10983 EVM, I used PCB of TIDA 00386. And connects motor Red,yellow,Black wires to U,V,W phase of DRV10983 respectively.

    Today i make changes in eeprom settings according to TI video www.youtube.com/watch, I also attached eeprom settings of this video as a screenshot and my today's workout video.
    ........... But motor only vibrate, not spin & current continously flows through phase, you can see rms,max & pk-pk current in attached video . There is no Fault as i read status register 0x10 = 0x00 & Fault Code register 0x1E = 0x00. But it's confusing why motor not spin while in that TI's video with sceenshot's eeprom setting motor spins.



    Thanks & regards,
    Sharique

  • The eeprom setting will change for each motor. So just cause that eeprom setting worked for that motor doesnt mean it will work for this motor. I tried again today to spin the motor I have, and i am able to get it out of vibrating in open loop, but as soon as it starts spinning, it hits overcurrent. I think this is related to the low inductance of these kind of motors. I will have to check with my coworkers if they can help in spinning the motor.
  • sir,
    same thing happened with me after start spinning, it hits overcurrent. At that time i read status register 0x10, it shows overcurr bit high & i also read faultcode register 0x1E, it shows Lock detection current limit.
  • I am able to spin the motor as shown below.

    Settings attached are below:

    ShariqueSolution2.csv

    What I did basically was:

    1) Disable Current limit and let the Overcurrent protection just protect the circuit. This way, motor phase current can go up to around 3.5A.

    2) Increase open loop acceleration a little bit so the motor doesnt get stuck vibrating

    3) Use max open loop/align current

    Please take and modify these settings for your application and let me know if it works.

  • How is tuning the driver going? Any followup necessary?

  • Sir,

           I apologize for not letting you know actually i'm on leave for Eid's celebration. I'll back on monday to continue this work,

    Thanks,

    Sharique

  • Hey Sharique, 

          I will mark this as "TI Thinks Resolved" for now, as I have given a solution for now. Please follow up on monday on if the solution worked for you.

    Sincerely,

         Sanmesh U. 

  • sir,

        I apply same EEPROM settings. But no response from motor. Even I check phase current via current probe, it shows no current. After that I also changed my BEMF & Phase resistance according to your motor. Then motor run with slow speed, this also showed in video.

  • Hey Sharique, 

    So far, I have shown that the DRV10983 can spin these kinds of motors, and I have given an example setting.

    You will have to play around with these settings with some modifications to get your motor to spin.

    Right now I dont have enough info from your description to say what the problem is. For me to be able to help more, I would like more info. For example, when you try the settings and there is no phase current, I would want to know if it is because a lock happened. When the motor runs with slow speed, I would like to know what your speed cmd is, and whether the motor went to closed loop.

    Your videos are helpful to see the issue. However, if you see in my video, I showed both the motor and phase current simultaneously, so that I could see all the stages of motor control, including align, open loop, and closed loop. I had my oscilloscope in "roll mode" so I could see the phase current over time. It would help to see this kind of video where I can see all phases of the motor operation.

    Sincerely,

          Sanmesh U.

  • I will mark this resolved for now as I havent recieved a follow up, but if you need a followup, just reply to this thread

  • Sir,

    You did a great job, i'm satisfied from your support.But i can't got solution even 25 days has been gone in my efforting. So, I think it will be a solution that if i seek help from local FAE so i can get live help. It's a request can you provide me a contact of TI  FAE who deals in New Delhi, India. It will be a good business as we are brand in india in lightning sector i.e., Halonix Technologies.

    Thanks & Regards,

    Shariq Hussain

  • Sure, let me see if there are any FAE's there.

  • I have sent your request for a local FAE to our team. I'll follow up with any other updates.

  • Sir,

        Ok I got.

    thanks & regards,

    Shariq Hussain