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.

DRV8307 motor start-up problem

Other Parts Discussed in Thread: DRV8307, DRV8308

Hi,

I am using the DRV8307 to control a 100W BLDC Maxon motor at 24V (http://www.maxonmotor.com/maxon/view/category/motor?target=filter&filterCategory=ecflat). My problem is: when I start the motor with the PWM signal coming from the microcontroller, sometimes the motor starts fine, but most of the times the rotor gets locked and motor do not start spinning (current rises and a lot of audible noise is generated). Why this happens? Am I doing something wrong with hall sensors connections or something? I am attaching here my schematic (the part that matters). The problem is not the motor, I have tried several different new motors.

I will appreciate any help.

Thanks in advance,

B.Drive.pdf

  • Hi,

    When it was running, have you checked the current of the motor? should be about 500mA at 24V without load if I got the correct motor spec from your link.

    Asking this because in one of the wrong Hall sequences but still can run the motor, the current will be much bigger than normal sequence. This is an unstable state.

    For trying all the Hall sequences, it is also possible that we need to check both the two scenarios that all the three Hall outputs connected to the Hx+ or to the Hx- of DRV8307. This two scenarios can't be full covered only by switching the U, V, W sequences.

    Best regards,

  • Hi Wilson,

    When the motor runs, the current is about 390mA without load. It took me a few trials to get the right sequence of hall sensors and motor winding connections, but I believe now it is correctly. Unless I should change all the Hx- by the Hx+ inputs in my schematic. Do you think this may be the problem, even if the motor runs fine sometimes? That will be hard to try in my design, since I will have to modify my PCB...

    About the resistors values and schematic connections, they look good correct to you? 4k7 is a good value for the resistors interfacing the hall sensors? I got that connections from the DRV8307 datasheet.

    Another possibility: in this forum, I read that someone had a similar problem with this driver when varying the PWM signal quickly. The problem was that the DRV8307 uses only one hall sensor to commute. The suggestion was varying the PWM slowly, but in my case, even if I start the PWM very slowly the problem still occurs.

    I work on the development team of a company and we are getting behind the schedule due to this problem. So I really appreciate you guys help.

    Best regards,

    B.
  • Hi,

    390mA from the supply looks reasonable at no load condition. Is there FAULTn and LOCKn output signals when the issue happens?

    For the Hall sensor sequence, could you give a scope capture on the U, V, W phase nodes (One or two is fine)?

    For the inputs PWM, could you try a fixed low rate like 30-50%. Just try to rule out the possible OCP issue.

    Also are you stop/start the motor only by changing the PWM from 0% to non-0%. You can try brake->disable->enable->PWM cycle to start the motor.

    Best regards,
  • Hi Wilson,

    When the motor do not start spinning, after a few seconds there is a fault condition. I am not using the LOCKn pin (unconnected).

    Hall sensor's wave form seems to be pretty good, an almost perfect square wave when the motor is correctly spinning.

    If I start the motor with a fixed low rate PWM duty cycle (30% or 50%), thinks get even worse. That means, the rotor gets locked most of the times. The only way to make it start spinning correctly for about 50% of the trials, is ramping PWM from 0.

    I already tried using brake in different configurations with PWM to see the difference. Not seems to change. About enable, it is tied to GND in my PCB, so I cannot disable the driver.

    I also changed the pull-up resistors values (from 4k7 to 2k2), but there is no difference at all in the results.

    Best regards,

    B.
  • Hi Magdo, it sounds like your PCB has incorrect Hall sensor mapping, causing the motor to not start much of the time, and you figured out the correct mapping by making modifications.  Is that right?  With the correct mapping, is there any problem?

    I definitely believe that the final board needs to use correct mapping, and of course that might delay your tight schedule.

    As you mentioned, step-changes in the duty cycle should be avoided, since they can cause mis-commutation.  I've seen this same behavior with competitor devices to the DRV8307.  In bench trials I've seen step-changes to a higher duty cycle to work ok, but step-down changes often lock up the motor.  I suggest always using ramps though.

    Btw, whenever the motor doesn't spin and then stops after a second, that's an RLOCK fault.  If the DRV8307 is driving and doesn't see a Hall transition for 1 second, that's RLOCK.

    Best regards,
    RE

  • Hi RE,

    First of all, thanks for the reply.

    No, the problem has not been solved, the same behaviour is still happening.

    Let me give you a little bit more details, so you can better advise me:

    - I design the PCB following the DRV8307datasheet precisely. For hall sensor's connection, I followed what is explained in session 9.1.1, more precisely, exactly figure 12 on page 20 (SLVSCK2 – APRIL 2014). I have upload me schematic.

    - Then I assembled the board and connected the motor following Maxon's datasheet for the motor. That was: 

    winding 1 => phase U

    winding 2 => phase V

    winding 3 => phase W

    hall 1 => HU+

    hall 2 => HV+

    hall 3 => HW+

    - That did not worked. Then I start to make changes in the hall sequence and got one that worked. Motor spins correctly and current is about 390mA without load. Looks ok, based on motor's datasheet. The problem is, several times the motor do not start spinning, it just make a lot of audible noise and current goes very high. Then, of course, I turn the driver off. But sometimes it just works fine.

    So, in my conclusions:

    - Sounds exactly when we have a wrong connection. But this is the only one that works (sometimes!), because I have tried all the other possible combinations and they are clearly wrong (motor does not start at all in any other condition, current goes very high, etc).  

    - The problem is not the motor, I tried several new motors. I also a different motor model (also Maxon), but same behaviour.

    - The problem is not the PCB assembly, I tried a lot of boards with different DRV8307 ICs.

    Another thing, the problem only happens if the motor is completely stopped. if I spin the shaft manually and then ramp PWM from 0, motor starts just fine.

    Then, my question is:

    If I change all Hx+ for the corresponding Hx-, there is any possibility to solve this problem in your opinion?

    I did not tried that yet because it very complicated in my PCB, but I will try if you say that it may work.

    Apart from that, I have no idea where this problem may come form. It is really bothering me :(

    Once again, thanks for your help.

    B.

     

  • When you're disabling the motor and restarting (and finding that it fails to start much of the time), are you disabling by toggling ENABLE? Or are you disabling by bringing the PWM input to 0%?

    Best regards,
    RE
  • Bringing PWM to 0%. In my schematic, ENABLE is tied to GND, so I cannot disable the driver in any moment. In any way, if I turn off all the power (instead of bring PWM to 0%), the same problem is still there.

    About my previous question, If I change all Hx+ for the corresponding Hx-, there is any possibility to solve this problem in your opinion?

    Best regards,

    B.
  • Ah ha, that's a problem. If you stop the motor by bringing the PWM to 0% while keeping ENABLEn active, the next startup attempt may fail. The 2 ways around this are to either use ENABLEn to stop, or set the PWM to 1% if you want to stop; however, going to 1% will probably result in RLOCK cycles every 1 second, which will cause a slight lag the next time you want to start up.

    This requirement is probably not adequately described in the datasheet. Sorry for the trouble, and I'll look into adding this more clearly.

    So give one of those workarounds a try. If there's still a problem, then I'd revisit trying other Hall sensor mappings. After that, hopefully things will run smoothly.

    Best regards,
    RE
  • Hi RE,

    This is good and bad news at the same time. It is good to know that we may have spotted the problem. However, this requirement sounds to be a big limitation in the DRV8307 IC design :(

    So, as mentioned, disabling the driver is not possible in my design (at least by now). And 1% PWM will stop the motor, but cause a fault condition for sure (I already tried that). And I need to stop and re-start the motor very quickly and very often (I have a superior control layer commanding the motor in closed loop).

    So, how about BRAKE and DIR? That are combinations with those two plus PWM percentage that I may use to solve this issue? As mentioned, my need is to stop, re-start and revert motor direction very often and as quickly as possible.

    About the datasheet, this clarification is certainly missing there ;) I have read it top to bottom before implementing my PCB :) It will be a great help for avoiding other people facing the same issue.

    Once again, thank you very much for the help! I really appreciate you time and consideration.

    Best regards,

    B.
  • One thing you could try is to set BRAKE high momentarily (~500ms) followed by setting PWM=0%. I don't think I've tested that combination. There's a small chance that could give you good behavior.

    Side note: when the motor is spinning and you bring ENABLEn high, the motor is properly disabled and coasts to a stop. If you prefer more dynamic performance (fast braking), it's a good idea to tie ENABLEn and BRAKE together, and then a low-level drives the motor, and a high-level disables it and brakes quickly.

    Best regards,
    RE
  • Ok, I will try your suggestion.

    About setting ENABLEn and BRAKE together sounds good, but datasheet says that after driver disabled, I have to wait at least 1 second to be able to enable it again. It is that correct?

    Another question: thinking about a future design, the DRV8308 share this same behaviour about the 0% PWM? And what about big step changes in PWM, it still needs ramping?

    Once again, thank very much!
  • Where is that 1 second requirement stated? After disabling, once the motor comes to a stop, you should be able to spin-up immediately. I've tested with ENABLEn and BRAKE tied together, and got fast stop/start performance. In your case, if you have lots of momentum and it takes a long time for the motor to stop, then that would limit the quickness.

    The DRV8308 has identical PWM behavior. However, with SPI you can toggle ENPOL to stop/start the motor while leaving the voltage on the ENABLE pin static.

    Best regards,
    RE
  • Hi RE,

    I have tied BRAKE and ENABLEn together and tested it today. As you said, it worked as expected. No more start up problems. And fast spinning in both direction, without delays.

    Thank you very for the help!

    P.S.: Datasheet pag. 21 paragraph 2 states that motor should be stop for 1 second before starts again. Or at least that was my understanding :)

  • Magdo, good point.  "1 second" is clearly overly conservative.  It's probably more like tens of milliseconds.

    Best regards,
    RE

  • Hi,

    Why is this happening, does DRV8307 have any memory block inside. My product involves locking of rotor frequently by mechanical stuffs. When the rotor locks (and motor makes an audible noise) the next attempt to start the motor is failing even if all the conditions are right. I am disabling and enabling the chip after such incident even then it is not starting my motor properly until I rotate it with my hands.

    Thanks,

    Sharath.

  • Any sugesstions on this issue ???
  • Hi Sharath,

    Sorry for the delayed response. Are you still experiencing a problem starting after the rotor locks?
    If so, can you provide more details?
    What are the hall sensor inputs during this time?
    What are the LOCKn and FAULTn signals?
    Is the PWM duty cycle the same as the previous start attempt?
    Are the outputs controlling the phases properly?
  • Hi,

    The problem is still there, i have attached the waveforms for fault, lockn, hallout pins. All hall sensors are working fine. 

    Probe 1 is lockn, Probe2 is hallout, Probe3 is fault. The moment hallout stops is the point where the motor is stoped due to load. After that the restart is not working, even if I disable and enable the chip. It is working only if I remove the power and connect back.