Just recently I added a new design to my library of cool driver boards to consider for your next project. This time, the dual H Bridge design revolves around a low voltage device better known as the DRV8833. This puppy is designed for battery operated applications and I bet there is a gazillion of those. In order to better understand what cool things you can do with the DRV8833 and the AE-DualusDC driver board, I decided to have an interview with the DRV8833 device where it explains not only how it works but what tricks can you pull from your sleeve as you best utilize it.
EBLDC: Hi DRV8833, first of let me thank you for allowing us some time to talk to you. I think the first question most of our readers is what kind of a device you are. What can we expect from you?
DRV8833: Well, I am an HTSSOP dual H Bridge driver with an INx interface. Each one of my H Bridges will work with voltages ranging from 2.5V to 10.8V so you will see I am fairly powerful when it comes to low voltage, as in battery operated, applications. As a result you can feel assured that you can use my innards to fully power a couple of your small DC motors, but even a small bipolar stepper as well.
Figure 1 A microcontroller driving a DRV8833. Simple stuff!
EBLDC: That definitely sounds interesting. But how about current?
DRV8833: Ahh! That is a nice question! Actually, most people would think that being so tiny I should not be able to handle a lot of current, but the truth is I am quite efficient (my RDSon is quite low) which allows me to easily drive currents like 1A continuous and even up to 2A peak per H Bridge. It is also important to realize I have an internal current regulation engine which is why I can drive a stepper motor. To use the current chopping engine, all you have to do is place a power resistor at my SENSE terminal and I will regulate current by disabling the respective H Bridge when the current reaches a value of:
ITRIP = 0.2V / SENSE_RESISTOR (ohms)
For example, if you build a system in which the H Bridge A’s SENSE resistor is equal to 200 milliohms, then you would see a current not much larger than 0.2V/0.2Ohms = 1A running through my H Bridge A. I would continuously regulate this current by chopping it at 50 KHz frequency. In other words, I am looking at current every 20 us and if I see the current reach the ITRIP point, I disable my H Bridge, enter slow decay current recirculation mode and wait until the next 20 us period to re-enable the H Bridge.
EBLDC: Impressive! Sounds like a lot is happening inside of you, indeed. I do have one concern, though. I am quite aware that you will look at current every 20 us, but isn’t there a period of TBLANK, equal to 3.75 us, at the beginning of each 20 us period and in which you are not looking at current? What happens if the current goes above ITRIP during this TBLANK? Heck, what happens if there is a short and current just want to go to infinity!
DRV8833: OK, that is more than one question, but I think they are all related, so let me tell you what happens. First off, you are right about TBLANK. Yes, every time I start a cycle I ignore current for about 3.75 us. If current happens to be above ITRIP during this time, I will definitely catch it as soon as I exit TBLANK, so no worries. Now, if there is a short, then it is clear current will go through the roof quite rapidly! Not to worry, though. As I also pack an Over Current Protection circuit specially designed for cases like this. If there is a short from output to output or any output to GND or VM, I will instantly enter a protection mode in which the H bridges are disabled completely, making sure my internal circuitry is protected against certain doom.
EBLDC: OK, wait! So you are telling me that if I have a short from output to output, and my voltage is 10V, since your RDSON is about 400 mOhms you would have a current as large as 25A, but somehow you will stop it from harming you?
DRV8833: Well, you didn’t take into consideration the battery’s internal resistance, but sure, just for kicks lets assume the battery’s internal resistance is 0 ohms in which case the current could go up to 25A. On a single H bridge, as soon as a current higher than 3.3A flows for 2.2 us, I will enter the protection mode and disable the H Bridge. I will try it again, however, 1.2 ms after the disablement.
EBLDC: Well, this is amazing! Thanks for catching the battery’s internal resistance thing, though. Any other protection mode that we should know about?
DRV8833: We should not forget the all time savior Thermal Shutdown Protection. Hopefully my users solder me into iron clad designed boards with enough thermal heat sinking to allow me to dissipate heat appropriately. But even then, if currents are large enough and the ambient temperature is on the hellish side, I will get hot. In that case my internal thermal protection would disable the H Bridges until I cool down. I start to feel like shutting down at about 150C, so there is plenty of headroom. You know, I am kind of awesome, but I am not beyond the laws of physics.
EBLDC: Well, we neither… But tell us about how an user would use you? For example, if I wanted to drive a DC motor with one of your H Bridges, what do I do?
DRV8833: It is very simple, actually! All you have to do is connect your DC motor to my output terminals (AOUT1 and AOUT2, per example) and then use the IN1 and IN2 terminal to control each output. I am a half H Bridge controller. Hence, whatever happens on the AIN1 input, correlates to what happens on the AOUT1 output. For example, a HI on the AIN1 input will signal the H Bridge to enable the high side FET which translates into the AOUT1 output being at the high voltage potential. If on the other hand the AIN1 input is made LO, then the low side FET is enabled which translates into the AOUT1 output being at ground potential.
Figure 2 Output relationship to inputs
So as you can imagine, by driving these two outputs into different values, one of them at high potential and the other one at low potential, you would get a current flow which would then polarize your motor into rotation. Which output is high and which output is low defines the rotation direction.
EBLDC: That definitely sounds easy! So I can control direction of rotation by selecting output polarity. But what if I want to control the speed? This is a must when driving a DC motor, right?
DRV8833: But of course! This can be easily done as well since my inputs can be PWM’d. Just apply a PWM signal to the driving input and my outputs will follow. For example, if you make AIN1 HI and AIN2 is being PWM’sd, then current will flow from AOUT1 to AOUT2 when the PWM signal is in the OFF state and I will enter slow decay mode when the PWM signal is at the ON state. You can do it backwards to. Make AIN1 LO and then I will conduct when AIN2 is HI and enter slow decay when AIN2 is LO.
EBLDC: Intriguing… So it seems we can only do slow decay then?
DRV8833: Ehh… That is not true actually! You can do fast decay if instead of a single PWM you have two of them. If both AIN1 and AIN2 are being PWM’d in such a fashion that they are always opposing each other, then I will be entering fast decay at all times.
EBLDC: Ahhh, cool! Well, this interview is getting quite long and there are still a few introductory questions I would like to formulate. For example, what about power consumption? If you are being driven by batteries, wouldn’t we want them to last as long as possible.
DRV8833: Heck yeah! And luckily I was designed with such a requirement in mind. There is an input called nSLEEP which allows me to take a nap. During sleep mode, I practically consume no current. It is actually not going to be anything larger than 2.5 uA. Is that good enough for you?
EBLDC: Well, yes! But, is there a way in which we can get rid of this mode in case we prefer not having to control this line? Say my microcontroller is limited in resources and I am not too worry about current consumption. If I want the device just to come up without needing a GPIO to take care of this, is there a way?
DRV8833: Yes, there is! Simply connect a 47K resistor from my nSLEEP pin to VM and I will take it from there. This is a feature the DualusDC module offers. You can either drive the signal throughout the connector, or you can solder a 47K resistor and disregard this control signal. Notice on Figure 1 there is a yellow block under this resistor? It is because the resistor is optional. You can have it and choose not to drive the pin. If you do not have the resistor, then you must drive the pin.
EBLDC: OK, one last question and then I’ll let you take a break. What if there is a problem with the device such as an Over Current event or a Thermal Shutdown? Is there a way of knowing any of this took place?
DRV8833: There is an open drain pin called nFAULT which I will assert when there is a problem. It is a great source for your microcontroller to read on. If you see a transition from HI to LO, something has happened and you should take care of the situation whether it is to decrease driving energy and let me cool down or remove a short present at the outputs. Do note it is an open drain output, so although I also place this resistor under the optional yellow square, you need to place a pull up resistor from this pin to your logic rail if you want to read the status. Some people choose to leave this pin disconnected, though, and this is perfectly fine as well!
OK, I am ready for that break now…
EBLDC: Wait! I just thought of one last question. Sorry! You mentioned a pull up resistor for nFAULT and a pull up resistor for nSLEEP if we want to override this fucntion. What other external components will I need to populate around you to make you workproperly?
DRV8833: Can we discuss this with a little bit of ice cold coke? OK, I’ll answer now… It is not that much, actually. You will need a 0.01uf cap for my charge pump. That one goes from VCP to VM so it should be at least 16V tolerant. Then a cap to filter out the internal regulator which goes from VINT to GND. It should be a 2.2 uf. Since this is a low voltage terminal, a 6.3V will do. The last cap I like to see at my terminals is the VM to GND 10 uf cap. I would make it ceramic and at least 16V.
When it comes to resistors, we have mentioned the SENSE resistors, but the truth is you can actually work without these if you want to override the current regulation. Do note, however, that once you do that you are on your own. I will not be able to regulate current so if current goes up too high, I may induce Over Current Protection. If you know current will never be that high, then it will all be OK. I would count out stepper driving, though, as most steppers do require current regulation. If you do find a stepper with enough resistance as to limit the current, then we are all good again.
So three caps is all I require at all times. Everything else is optional if you want to use the respective function.
EBLDC: Darn it! Thank you so much for answering all of these questions! Can we bring you back and ask you more advanced questions the next time?
DRV8833 : Sure! I will be driving two DC motors in the mean time. Have a nice weekend!