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.

DRV8711 dv/dt and di/dt disturbences

Other Parts Discussed in Thread: DRV8711, DRV8711EVM

Greatings! I`m running 6 Nema 17 stepper motors with 6 DRV8711 drivers. I`ve connected IRF530 MOSFETs. My pwm frequency is 4k to 12kHz. The current through the motors is set to 1.44A, 100us OFF, automix decay(I can write down all my settings if it`s necessary ). I`m recieving all driver block after 30-60 min of work instantly. All of them simultaneously. Multiple errors in all stat registers. I suppose the problem is in the power supply, but I want  to be sure. Is there a way dv/dt or di/dt to cause this problems. In high power devices this is possible, but I`m not sure for such small powers. I`m using 12V computer power supply(250W).

Can you give me an advice?

Thanks!

  • Hi Pavlin,

    Please provide your settings, as well as the sense resistor values.

    What errors are you receiving in the status registers?

    Possible suggestions:
    1) Decrease your OFF time to 30us or less. Doing this will reduce the chances of the current regulation PWM being audible. An OFF time of 100us is in the audible range.

    2) Do you need to run all motors at the same time? If not you can either lower the torque register to half the value when the motor is unused.
  • Here are my settings:
    CTRL->0x0C21 -> Enable motor, 1/16, 5 gain, 400ns dead time
    TORQUE-> 0x11AA -> 1.7A
    TOFF -> 0x20C8 -> 100us
    TBLANK -> 0x3000
    DECAY-> 0x4580
    DRIVE-> 0x6FF4
    My sense resistor is 2.2 ohms.
    I`m receiving BOCP, APDF and many others. Usually 3-4 faults simultaneously including UVLO.
    I`m using 4 motor max simultaneously! So I can easily decrease the current I suppose! But this is not my point! Do I have to look for problems in the power supply? I think this days I can change it easily with 350W. My fear is these are dv/dt and di/dt disturbances so the increased power supply will not help!
    Thanks!
  • Hi Pavlin,

    If you are seeing UVLO faults, please examine VM at the DRV8711 when the fault occurs using a scope.

    You problem may not be with the power supply, but may be associated with bulk and local capacitance on the PCB.
  • To all 6 drivers in one?! Every drivers is located on a single pcb with his own bulk and decoupling capacitators! I`m seeing different faults and that is why I`m confused! And if there is a problem only with the active drivers, why the inactive drivers doesn`t start after the problem occur ? Look if it is in the supply or something with the capacitance I`ll find it! I`ll write again when I change the power supply and change the charge tanks!
  • Hi Pavlin,

    Sometimes it best to examine a single failure and fix it first. Trying to find the reason for all faults can create confusion. You should not be experiencing UVLO, so that is why I suggested it. If you can determine the reason for the UVLO, the other faults may disappear.

    Depending on the reason for UVLO, changing the IDRIVE settings per page of the datasheet may help.
  • Hi! I decreased the TOFF time to 20us and now I`m receiving STALL detected (bit 6) and latch stall detected (bit 7). Now I remembered I didn`t set the stall register in my init code. I just don`t know what values to set there and I left it on default! Can you help me here? As I said I`m using Nema 17 (1.7A) stepper motors and 0.22ohms sense resistor! May be the SMPLTH should be changed?! I`m receiving these errors without any movement!

    Thanks!

    Could you provide little more info about selection of OCPTH and OCPDEG! I`m using IRF530 mosfets? Thanks!

  • Hi Pavlin,

    For now, may I suggest ignoring the STALL feature. This can be added later as it takes some time to dial in. You can set the device to use the external BEMF and the BEMF valid signal to monitor the output. This can help determine the settings.

    For OCP and OCP deglitch: The IRF350 FETs are listed as .16Ohm Rdson. At 1.7A this works out to 272mV. The OCP is typically used to detect something has gone wrong and could damage the FETs or the motor. By setting the OCP level to 500mV, this would indicate that you have >3A following through the motor for longer than the OCP deglitch time. Depending on the operating temperature of the FETs, you may need to increase the OCP value (at 130C, the Rdson is >2x the 25C value).

    More information can be found in section 7.3.11.1 of the datasheet (Overcurrent Protection).
  • Just a second! How can I ignore the stall faults? By switching to external stall?! I`ve connected Stall outputs to a microcontroller. Do I have to pass a value to the driver on the stall pin?! The datasheets says the stall pin direction is OD(I don`t know what this means).
    Do I have to ignore the fault pin of DRV8711?! My BEMF pins are connected to ADC pins of a controller, but I can use them as digital. But the BEMF is output so I don`t think I should pass value to BEMF.
    Thanks!
  • Hi Pavlin,

    The STALLn/BEMFVn and BEMF pins are information only. They have no effect on the operation of the device. It is up to the firmware to decide how to operate with this pin.

    The FAULTn pin should not be ignored. This pin affects the operation of the device.

    OD means the pin is open drain output. This configuration requires a pullup to the mcu voltage. The pullup can be external or internal to the mcu. Normally the pin is a logic high until the STALLn/BEMFVn or FAULTn becomes active. When active the open drain output will turn on, pulling the pin to a logic low.
  • Hi, Rick! I set the stall bit in CTRL register, but there is no effect! I`m receiving random stall faults(bits 6 and 7 are set in the status register!)! I`ve tried different values for Stall register - the same! I`m starting to think the problem is not in the register settings, but somewhere in the hardware! I`m commanding the DIR, RESET, SLEEP and SCS pins through 74ls373 octal buffers. I have 10k pull up resistors on SLEEP and DIR pins! I thought this is correct because the datasheet says only in external pwm mode there is internal pull-down on DIR pin. Or I understood it so. Is there a chance there should be a pull-down resistor(or non resistor) in spite of pull-up? If the level on DIR pin is not stable this could cause multiple reversing on the motor! I think so! Do I have to add filter caps on the command pins -DIR, STEP, SLEEP, RESET?!
    Any other suggestions?
    Thanks!
  • Hi Pavlin,

    Pavlin Stoyanoff said:
    I`m commanding the DIR, RESET, SLEEP and SCS pins through 74ls373 octal buffers. I have 10k pull up resistors on SLEEP and DIR pins! I thought this is correct because the datasheet says only in external pwm mode there is internal pull-down on DIR pin. Or I understood it so. Is there a chance there should be a pull-down resistor(or non resistor) in spite of pull-up

    The datasheet wording about the internal pulldowns can be confusing. If the Pin Function states internal pulldown, there is an internal pulldown at the input. The pulldown is not dependent on the mode.

    Pavlin Stoyanoff said:
    If the level on DIR pin is not stable this could cause multiple reversing on the motor! I think so!

    Yes, if DIR is not stable this can cause reversals. Reversals can also be caused by other events.

    Pavlin Stoyanoff said:
    Do I have to add filter caps on the command pins -DIR, STEP, SLEEP, RESET?!

    You should not need filter caps on the command pins. In some cases this cause additional problems with noise immunity.

    Let's focus on getting the motor operating properly. What is the biggest problem you have right now?

    Until you have solved your biggest problem, I suggest you set the stall bits to EXSTALL = 1, VDIV to 00, SDCNT to 11, and SDTHR to 00. Do not use the BEMFVn signal or read the BEMF voltage while you debug the other problems.

    Once the motor is operating properly, the last step is configuring the stall detection.

  • Hi, Rick! Today I tested a lot of the options - I don`t have problems with the pin control and the drivers` settings. For me there are only 3 options left - bad GND, depletion of the charge tank group of a driver and dv/dt di/dt!
    I don`t have a polygon on my PCB. Sometimes it helps, sometimes it doesn`t and I wasn`t sure...
    When my TOFF is around 20us the faults are generated in a few minutes of work. I added extra bridges for the GND and increased the TOFF to 100us. So now the PCB is working correctly. I`ll make more test these days!
    The second option is probable, too. I have a 330 uF cap close to every driver and there are not with low ESR. I can add extra 1000uF low ESR caps if you think this is going to help. I`m not sure what value to use for these caps. Is 1000uF for every driver enough to be sure there is no depletion of the bank?!
    If the problem is dv/dt di/dt the increased TOFF is the solution because the disturbances are on more rear periods.
    Thanks!
  • Rick, is it possible the cable length to the motors to be a problem? My cables are around 2m long?!
  • Hi Pavlin,

    Is it possible to provide current waveforms at the point of faults?

    If minutes are required before a fault, this may be a heat related issue.

    Have you looked at the DRV8711EVM for examples of how to lay out your PCB? The 330uF capacitor should be close to the H-bridges driving the motor. There should be a .01uF ceramic cap close to the DRV8711 between VM and GND.

    You can also try reducing your IDRIVE settings. This can help with dv/dt issues on the gates of the FETs.
  • Hi Pavlin,

    It is unlikely the cable length is causing the problem. If you believe this may contribute, can you reduce the length of the cable as an experiment?
  • Rick, may I ask a stupid question? How long is the probable delay before reversing the turning direction? I`ve noticed I`d forgotton to add delay between movement in different directions! So now my delay is only the time for command transfer and movement calculation - approximately 10-15ms!  

  • Hi Pavlin,

    The time depends on the speed the motor is running when changing directions. If the motor is running slowly, 10 to 15 ms is enough. If the motor is running too fast, changing directions quickly can cause a loss of steps or the motor to stall. In general, it is best to decelerate to stop then accelerate in the opposite direction.

    Some motor manufacturers provide this information in the datasheet.
  • I usually decelerate to 1kHz but I`ve notice when I pass commands to 2 of my motors, which has big load, for turning forward and backward very fast on the 3-4th command they stall! So I suppose the motor load has to be added to equation! I`ll add 100ms delay before changing directions and see what going to happen!
  • Rick, you were right! There is no need of delay! I finally found the problem - it seems my acceleration coefficient was too big and sometimes(on short distances it caused stall). I decreased it and now everything is just fine! Thanks!

    After a few hour of work one of my drivers I think I damaged  one of my drivers. It suddenly started to return channel B overcurrent shutdown! I`ve changed the stepper motor and the settings of the driver - no effect! It wasn`t hot - no overheat! So is this come kind of defect or I`ve done something wrong?

    I`m using 0.22 resistor, IRF530, torque current 1.44A. I think those values should be ok! Is there anything I`ve missed and made my pcb vulnerable to some kind of damage?!

    Thanks!

  • Hi Pavlin,

    A channel B overcurrent implies there is a difference of voltage across the FET. You may need to adjust the OCPTH setting in the DRIVE register. The voltage across the FET may be higher than the OCP threshold after the FET heats up.

    Have you removed the motor on the suspect device and confirmed device operation? Are the outputs active?

    If the outputs are not working, please check the charge pump and other signals around the DRV8711 to determine the cause.

  • Hi, Rick!

    It seems I have a short circuit between A2HS and A2LS! I removed both MOSFETs connected there in attempt to fix this, but without any luck! It seems the short circuit is inside the DRV8711! Is it burnt ? Are these ic so fragile?! Am I doing anything wrong?

    Thanks!

  • Hi Pavlin,

    Normally, device damage is caused by a voltage spike outside the absolute maximum voltages.

    Do you have a local ceramic capacitor at the VM pin of each device?
    There should be no problem with the device under normal operating conditions.

    Can you provide your schematic?
  • Here is my schematic -<url=http://dox.bg/files/dw?a=c279d4d758> Click</url>

    I`m running the drivers on 12V! I don`t think it`s about voltage spice because I have 6 drivers in total on the same power supply and only this one is damaged! I have cap on VM pin as you can see in the file!

    Thanks!

  • Hi Pavlin,

    I was able to examine the file. The schematic looks good, although there can be issues with the layout.

    Where was the damaged device located with respect to the power supply and the other drivers (first in line, middle, or end of the line)? Knowing this can provide hints.
  • Hi, Rick! All drivers are not connected in line! There are in parallel - every with it`s own wires to the power supply! There are not garland style connected!