Reading A3959 Datasheet


Was reading this datasheet for a DC H-Bridge PWM motor controller, and i'm having some trouble understanding it. All help would be appreciated.

There's the PDF. I chose this chip in particular because i'm trying to run a 1.4 A bilge motor, with a stall current of 1.8 A. And it's going to be in a sealed, potted box, so the L298 is out of the question.

Problem is, it's got its own internal PWM timer, and while I can use the external PWM function (Arduino), I simply cannot figure out from the data sheet how to do so.

What i'm trying to do - Arduino is outputting PWM and direction. A3959 to use that PWM to drive a motor and direction.

From what I read. Pins to what if I want a Externally applied PWM, with slow decay mode.

| CP1/CP2 | To each other with ceramic 0.22 microFarad Capacitor | | - | - | | CP | Small capacitor to Load Supply | | NCs | Not connected Anywhere | | PHASE | High in one direction, Low the other | | ROSC | Shorted to ground | | Enable pin | to External PWM | | PFD1/PFD2 | Both PFD pins to ground, as i'm using a external PWM | | BLANK/VREF | Not a flipping clue. Some help would be appreciated. | | EXT MODE | From what I can tell, a low EXT MODE pin means that i'll be using locked anti-phase PWM, and a high EXT MODE means slow decay, normal PWM. So i'll stick EXT MODE to ground. | | OUTA/OUTB | Motors | | Load Supply | 12 volts | | SLEEP | 5 Kiloohm to 5 volts | | VReg | 0.22 microFarad ceramic capacitor to ground |

It's a really, really, really long data sheet, and that's actually an amalgam of tons of questions, but, well, any clarification would be great, and I swear I tried my best to comprehend that datasheet :-[


ROSC Shorted to ground

Why not use a resistor pullup to Vdd as suggested in the datasheet? The typical value of 51k gives an internal clock of 4 MHz, which seems what the part was designed for.

BLANK/VREF Not a flipping clue. Some help would be appreciated.

Depends on how inductive your motor is. "Blanking" basically means "ignore the current" for a short period of time after the driver turns on (or when it changes direction of current). Reason being that there is a short current spike which can exceed the set-point of the current you set with the SENSE pin, but this doesn't mean there is an overcurrent's just a transient spike. The BLANK pin controls how long this "ignore the current" period lasts.

The VREF pin controls the current limiting. The current limit is set to I=Vref/Rs where Rs is the sense resistor you hook up to the SENSE pin.

-- The Rugged Motor Driver: two H-bridges, more power than an L298, fully protected

Ah, okay, I see.

Doesn't the datasheet say VRef/ 10 * Rs instead of just VRef / Rs? So if I want a current limit of 2.5, and VRef is going to be at 5 volts, Rs will be 0.2 ohms?

And, well, ROSC's for the internal oscillator, which i'm not using if i'm using the external PWM. Correct me if i'm wrong.


Yes, you're right it is Vref/10*Rs.

The external PWM does not affect the internal oscillator. Think of it this way. With ENABLE=0, the internal transistors are definitely off. With ENABLE=1, the internal transistors switch on and off to maintain the current set by Vref/10*Rs. You can therefore achieve currents in between 0 and Vref/10*Rs by pulse-width modulating the ENABLE pin.

-- The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, light sensor, potentiometers, pushbuttons

Ah, I see.

So it's a current limiting device. When Enable's 0, the current limit is at 0, and at 1, the current is limited at 2.5. Cheers.

Where on earth am I supposed to find a 0.2 ohm resistor? 5 parallel 1 ohms? And is it possible to bind all the VREFs of 8 A3959s to one 0.2 ohm resistor?

Where on earth am I supposed to find a 0.2 ohm resistor?

Here's one possibility:

And is it possible to bind all the VREFs of 8 A3959s to one 0.2 ohm resistor?

No! Each A3959 must have its own sense resistor connected close by to its pins (distance matters on this trace else parasitic inductance will give you nasty spikes and nasty results). Moreover the resistor sets maximum current. If you have 8 pumps at ~2A each that's 16A going through one resistor so it will need to be 0.2/16=12.5milliohms to get the same reference voltage as 0.2ohms and 2A, but if only some of the pumps are on then they will be allowed way too much current.

-- The Quick Shield: breakout all 28 pins to quick-connect terminals

Cool, thanks.

I just bought a few ceramic 0.2 ohm resistors used for current sensing. They’re a bit bulky, but they’ll do the job.

One final question, hopefully. Then my deluge of silly questions will stop.

My motor’s a huge inductive load. When running, it draws 2.6 Amps of startup current, then falls to around 1.7 amps. However, when switching off, my DMM measures 10.47 amps maximum for a split second as the back emf rushes through it.

I was hoping that the diodes in the A3959 could handle it, but is it recommended to solder extra schottkeys outside?

So CAN the A3959 diodes handle it?

I doubt your DMM is responsive enough to measure the true current and the 10.47A number is not really true. If the motor is carrying 1.7A when it's running then at switch-off the current will still be 1.7A and in the same direction (being an inductive load).

The back emf is just that: emf, meaning: voltage. That's the problem with inductive loads, the large VOLTAGE that results when they turn off.

I think the A3959 diodes should be fine with a single turn-off event. The voltage supply you're using is 12V and the absolute maximum input voltage of the driver is 50V, so unless those internal diodes turn on really really slowly the voltage will be clamped to just above 12V in short order.

-- The Rugged Motor Driver: two H-bridges, more power than an L298, fully protected

Okay, done.

It seems that A3959s just ran out in the stock :stuck_out_tongue:

Well, i’ll go to another IC I found by trawling through their catalogue

Surprisingly, I understood every iota of that datasheet, even if it isn’t really going inside. Thanks for all the help, i’ll be back soon with silly currents.