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.

DRV8843 Problem

Other Parts Discussed in Thread: DRV8843

Hello,

I am using the DRV8843 for controlling two DC motors simultaniously. The motors consume 0.1mA with no charge, each one. 

When testing the driver just with a simple PWM, the motors consumptions are OK, but when we aplly a proportional speed control to the motors, they consume 0.5mA each, with no charge, which is unacceptable.

Is there any reason for that? 

Beyond that, is there another way, instead of reseting the driver, for deal with the current limitation of 2.5A (that is less than the necessary for the motor to start running)?

Thanks

  • Hi Leonardo,

    A few questions to clarify what you are asking.  Are you basically using the page 2 Function Block Diagram from http://www.ti.com/lit/ds/symlink/drv8843.pdf

    Where are you measuring the current?  The current limitation for DRV8843 is rated at 2.5A and up to 24V for the motors or " The DRV8843 can supply up to 2.5-A peak or 1.75-A RMS output current (with proper
    heatsinking at 24 V and 25°C) per H-bridge " meaning per motor for the 2.5A limit.

    Also what are you doing to pins for nSLEEP and DECAY as they can cause errant issues.

    Answers to these will assist in assisting you,

    Eric

  • Hi Eric,

    Thanks for the answer.

    I am using exactly the same block diagram. I am measuring this current by the sense resistor with an ADC. 

    0.5A per motor, without charge, is so much current (for the motor model - a Faulhaber dc micromotor 2342), and I presume it has some relation with the driver functioning. The pins nSLEEP and nDECAY are beeing hold in high always. What should be the decay mode interference in that?

    About the 2.5A limit. That's an excelent value, as 1.75A also is, but just during the continuous functioning of the motors. When they need an acceleration, for example when start running, the drivers stop and the aplication becomes useless, unless we keep reseting the driver (which I assume is not a good idea).

    Any tips?

    Thanks!

  • I would look at two things, the pdf pages 9 and 10 for Decay Mode During Current Chopping and Table 2. H-Bridge Logic.  The first thing to try is have nDecay float rather than tied either to ground or power and to try logic 11 on both bridge sets to see if the motors stop and lower the current draw when not used.  With Table 2. H-Bridge Logic ( Page 8) logic 00 for stopping makes both sides of the motor " Z " as opposed to logic 11 making both sides of the motor logic " L ".  Just me personally, i try and have motors stop at power ground in case someone is poking at them with the circuit live. 

    I have to assume that page 9 formula for sense current and " If the current regulation feature is not needed, it can be disabled by connecting the xISENSE pins directly to
    ground and connecting the xVREF pins to V3P3. " may not apply as you are trying to limit the current with the formula Ichop=Vref/(5*RiSense)

    ( edited to add this question) Also, are both ISENA and ISENB connected then to the same resistor?

    Other than remove connection to anything for the nDecay and trying with logic highs I am kind of stumped to what else may be causing the errant power drain.  With the size of the motors in question, i do have to assume that the final product is going to be very small and will need as much mAH as it can get from a battery.

    Hope this helps,

    Eric

  • Hi Leonardo and Eric,

    Sorry I took so long to join the conversation. Here is a wild theory based on personal observation and a lack of information on how the application is currently configured.

    When you start a DC motor, current spikes up in order to get the motor moving and to charge up parasitic components (inductances and capacitances). If the motor is enabled for a long time, long enough to counteract both of thes effects, you will see the "no load" current, which is oftern rather small (depends on the motor of course). Once you start loading the motor, then you should see current increase directly proportional with load and according to the motor characteristics.

    We have not been told what is the PWM frequency or the duty cycle but I can see feasible that if the frequency is low enough, and/or the duty cycle is small enough, then the system will always be fighting inertia and parasitic effects and you will end up with a current which is larger than the rated "no load".

    With regards to the 2.5A current limit, this is only put in place after taking in consideration the typical heating the device will suffer from with said power dissipation. That is, the RMS for 2.5A RMS is about 1.8A and that multiplied by the RDSon and the typical system thermal impedance will take you to the Thermal Shutdown Point. What this means is that if you were to keep the system cool enough, you could go past 2.5A and as high as 3A. At this point in time, you would hit the Over Current Protection which is a protection set point which cannot be removed or bypassed.

    What you can do to limit the current the motor see is modulate VREF so ITRIP events occur at the maximum current you want to see. For example, say you don't want the motor to see more than 200 mA, you could set your VREF, along with your SENSE resistor, so current is regulated at 200 mA. It may take longer for the motor to start, but current will not go above 200 mA. Conversely, you could control acceleration and deceleration profiles by modulating the VREF input accordingly. For example, you would want maximum current to be available during startup (but not more than 2.5A) and then you can decrease VREF in order to limit the current while you regulate speed.  You can modulate the VREF input with a DAC output or a timer through an RC filter.

    Do note that on this scheme (using current chopping by modulating VREF) you do not want to apply a PWM signal at the INx pins as this would be a PWM signal on top of the current chopping PWM signal. The result would be a loss of control at the outputs, as both PWM control schemes would be fighting each other. 

    I personally prefer to control speed by applying my own PWM, but in this case you need to make ITRIP much larger than what you expect to see. You can either tie VREF to 3.3V or tie the SENSE input to GND. Do note that if current reaches OCP, the device will shut down in order to protect itself.

    For the decay pin, this only plays a role if you are using current chopping. If you disable current regulation, then you can ignore DECAY as it will not do anything. Decay only determines what the H Bridge will do once an ITrip event has taken place. It does not determine what the H Bridge will do when you disable it through the INx pins. What the H Bridge does when articulating the INx pins is 100% related to what the INx pins are doing.

    If your device is shutting down and you need to recycle power, then chances are you have too much capacitance on the motor and the current needed to start the motor is going past the OCP level. TSD does not shutdown the device.

    Hope the info helps. Best regards,

    Jose Quinones

  • Jose,

    Thanks for the reply.

    You were right about the PWM frequency. As we have increased it, the consumption decreased to the normal rate. But the current chopping is still having problems...

    Just for explain again what is happening: The motors we are using are 4 Faulhaber micro dc motors 2342, which are excellent motors with maximum rms current allowed of 1.4A. But the motors are being used in a omnidirectional robot controlled by a camera vision system. The current supllied by the driver is totally sufficient for the continuous movement of the robot, but, when it changes direction or start moving, the current required is high, and the driver shutsdown. We found an intermediary solution by calculating the motor's plant for tune a PI controller that could considerate a current saturation of 1.8A. But for it, it is necessary that the driver limits the current at 1.8A. But the chopping is not working at 1.8A  The configuration was: VREF = 3.3V (unchangeable), SENSE RESISTOR = 0.1 Ohms or 0.22 Ohms or 0.15 Ohms. The best is 0.15 => ichop = 1.672 (when 38%). But it doesn't control the current at 1.672A, it actually stays at an average of 0.6. We suppose that by the variant electromagnetic behavior of the motor, the driver is chopping on the pikes. Or frankly speaking, we have no idea on how the driver is responding to the motor.

    Summarizing, we don't understand how can a such intelligent driver works so badly with a so efficient motor.

    Any idea of what could be wrong in the process, or any other idea of how to deal with it?

    Thanks a lot for the help. Sorry the long explanation.

  • Hi Leonardo,

    When the Current Chopping is engaged, are you still applying your own PWM? As I explained on the previous email, you cannot use current regulation while you PWM the inputs as what you will get is a chaotic mixture of both, for which it is pointless to try and make any sense of. The reason for this is the DRV8843's current regulation will be asynchronous to your PWM and unless you are monitoring the current chopping and adjusting your PWM accordingly (which is too complicated in my opinion), it will not work well.

    If you want to use your PWM at all times, then you will need to regulate current yourself so that your PWM output is a factor of the PID loop command and the current regulation limit. If you decide to do this, which some people do, you can look at the SENSE voltage and adjust the PWM accordingly. For example, you would be able to code your PID loop to correct the error only if the current is in between certain range. If the current is too high, then the PWM must be used to limit current unitl the external stimulil has been dealt with properly. 

    Now, if you are getting the current regulation while you are not applying a PWM, then the average current you are getting can be a factor of whether you are using fast decay or slow decay. In Fast decay, you will get larger current ripple and average current will be less. For brushed DC motors, it is always recommended to use slow decay as you get the best torque response.

    Do note that with the values you provided, the ITRIP is set to much higher than 3A. The ITRIP equation is VREF / (5*RSENSE). With the 0.22 Ohms, the ITRIP is set to 3A. At 0.1 Ohms, we are dealing with an ITRIP equal to 6.6A which of course will never be engaged as the OCP will kick in first. Are you using the AINx pins to control a current percentage? This is intended for steppers, and my recomendation is to make both AINx inputs LO so you get 100% current and then scale down VREF or select a SENSE resistor.

    Hopefully some of these items steer you in the right direction. Best regards,

    Jose Quinones