Jaguar current sensing technical details?


The Black Jag uses an INA193AID current-sense chip across a 0.001 ohm shunt in the high side of the bridge. The INA193’s analog output is sent directly to an ADC pin in the Jag’s LM3S2616 microcontroller, without any hardware (RC) filtering. And it doesn’t appear that the INA193 itself is doing any low-pass filtering. The datasheet says its output bandwidth is 500KHz.

How does the the LM3S2616 firmware process this signal? Does it trigger the ADC samples to remain phase-locked with the bridge switching? Is it doing some sort of digital filtering?


Kevin Sevcik just posted this interesting information.

[edit] Kevin just deleted his excellent post. The reason given was he posted it to the wrong thread. I hope it re-appears somewhere else soon. It had some fascinating info in it. [/edit]


Kevin Sevcik couldn’t decide where to put that post. It’s now here.

The INA193AID has a gain of 20V/V, with a typical output error of ±0.75%.
The full-scale input voltage is 150mV. That means it can detect up to 150A, if the resistor could handle it. 150A * 0.0075 = 1.13A. In other words, they should have used a larger resistor. Say, a 3 miliOhm resistor would cap off the measurement at 50A, and create only 0.38 A of error once amplified.
(Also note that the maximum error is 2.2%)

With that information, I would blame most of the inaccuracy of the current measurements with the Jaguar on the op-amp.
However, it might be good to look at the accuracy of the resistor as well. I wouldn’t be surprised if these Jaguars have no factory-calibration.

Here’s the schematic for the Tan Jaguar:

Apparently it’s just on the low side of the gate driver, with a 0.5 miliOhm resistor, so it only senses the current of the motors, not the device itself.
The FAN4174IP5X seems to function purely as a buffer; it does not appear to amplify.

I’ve attached datasheets for the INA193AID and the FAN4174IP5X.

INA193AID.pdf (224 KB)
FAN4174IP5X.pdf (1.07 MB)

INA193AID.pdf (224 KB)
FAN4174IP5X.pdf (1.07 MB)

Marshal, your picture looks like the gray jaguar schematic (10/28/2008), while Ether’s looks like the black jaguar’s schematic (10/7/2009). Where did you find a November 2010 schematic?

Oh, oops.
I got it from the RDK-BDC page, not the RDK-BDC24 page.
That would explain it.

I looked at the date again, and it actually said November of 2008. However, the Firmware Development Package is from November of 2010. The Firmware Development Package is probably exactly the same as is on the RDK-BDC24 page

I was wondering why they were using a Fairchild part. I would think TI would avoid that if at all possible.
I’m going to go back and edit my post.

Two additional sources of error:

Brush commutation on the motor

The current shunt resistor is on the supply end of the H-bridge drivers; it is not subject to the motor impedance, because it is cut off from the motors when the FETs are in the OFF state.
What would the current through this resistor look like over a span of 200 us? (That is, 3 pulses at 15 khz)

Part of the answer to your questions above, Luminary Micro was not a part of TI when the Jag was under development. The series resistance also affects the max current that the bridge is capable of delivering to the load. Raising the value of the sense resistor opposes the lower “ON” resistance FETs that were chosen for this design.
In the case of the Tan Jags, high current on a CIM (say 100amps) develops a significant amount of power in the sense resistor. It is a 2 watt resistor trying to dissipate 5 watts. In sustained pushing matches, the resistor heats up a lot and in some cases desoldered itself from the board.

Hi Marshal,

A couple of observations and a question:

Two additional sources of error:

Brush commutation on the motor

The Brush resistance is in series with the current sense resistor so it shouldn’t cause error in the current sense resistor’s reading.

The current shunt resistor is on the supply end of the H-bridge drivers; it is not subject to the motor impedance, because it is cut off from the motors when the FETs are in the OFF state.

It’s on the high side in the Black Jag.

In the Tan Jag, it’s on the low side.

Either way, the current sense resistor is not in the current path during the OFF portion of the duty cycle. See attached images. For simplicity, I showed path through only one FET of each pair, and only for + currents. Green path is during ON portion. Blue path is during OFF portion (for high-side switching). Red path is during OFF portion (for low-side switching).

I don’t know if the Jags use high-side, or low-side, or some other switching method. Does anyone know, definitively, what switching method the Jags use? I’ve heard many different claims.

What would the current through this resistor look like over a span of 200 us? (That is, 3 pulses at 15 khz)

Good question. I’d like to see some actual data. I did a simulation with the Black Jag with a CIM with locked rotor (no back emf) and included the CIM’s resistance and inductance, and included the Zener diode voltage. I’d like to see how it compares to actual data.


From reference design source code, the Tan Jags pulse the high side FETs and leave the low side FETs on during a PWM cycle.

How does it do that?
Is it modulating the Output Disable pin?

Why yes, yes it is. Don’t ask me why, but that’s what the code in the tan jag does. They could just as easily modulate the pwm pin, but they don’t for some reason. Perhaps the driver doesn’t have adequate shoot through protection.

No, they can’t modulate the PWM pin. If they did, that would be locked antiphase, because the MOSFET driver would alternate between driving the low side and driving the high side.

Oooookay. Too much crosstalk that’s off-topic for this particular thread. I’m officially vetoing any further PWM control discussion in this thread and picking it back up in the Modeling motor control thread. I’ll see everyone over there.

Sure. I’ll refocus to the intent of this thread.

Why do you think the Jaguar has so much noise in its current measurement?
This graph from the INA193AID datasheet might help:

With a 0.001 ohm resistor, 1mv input equates to 1A.

Actually, I’d look move to pages 8 and 9 of the data sheet, on “Accuracy variations as a result of Vsense and common mode voltage”.

This amp is apparently most accurate at sense voltages >20mv. Which equates to 20A for us. There’s 3 operating cases in this range, and we’re not in the worst… So it could be worse? I’ve attached a snapshot of an example graph. What it boils down to is that the amp goes non-linear below 20mv, and eventually lands on some positive offset voltage at the output, instead of zero. They state the worst case zero offset at the output is 300mv. It looks less linear the closer you get to 0 Vsense, so that’s exciting too.

Oh yeah. And both Jags record a zero offset for the current ADC on power up, and then subtract that from current readings forever after. So if you end up with the worst case 300mv offset, then your readings above 20A will read 15A low. We’re probably not getting this worst-case scenario, but that’s obviously going to affect the accuracy of ALL the current readings. Better might be to just assume/hope that you have little absolute error in the ADC, and just use the zero offset as a linear correction below 20mv Vsense.

Maybe FIRST will let us modify the Jag firmware this year?

Yeah, you’re right. That’s never gonna happen.



But TI can modify it. Perhaps you could submit the change to them. Bonus points for sending code with the request.

Oh certainly. I’ll probably try playing with some of our jags sometime this season or after and see how trustworthy the current sense is and how good a fix my proposal is. My only concern would be that I’ll be modifying the reference firmware and this all might not apply to the FRC firmware. I’ll have to see if they’re willing to release that source code to interested parties.

Where did you find this datasheet? It’s certainly not the INA193AID one I attached.

The reason for the non linearity is the device’s inability to drive the output to zero volts. The specification is for a minimum of 3 mV typical but can be as high as 50 mV. The TI datasheet on page 4 has a very descriptive curve showing the errors. In applications where minimum errors are needed, designers would usually add a biplolar power supply to allow driving to zero volts.