Continuity Short/OKAY/Failure solution with High-Side Power Monitor

The Rocketry Forum

Help Support The Rocketry Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

Goof512

Member
Joined
Jun 20, 2023
Messages
9
Reaction score
12
Location
Southeast USA
Hey all, I'm relatively new here,
I'm working on an ejection channel driver, and I realized that most continuity check systems in commercial dual-deploy systems would give a false positive on a short-circuit failure.
This was kinda concerning to me, as I know wiring is rarely perfect, and I could foresee myself making a stupid mistake sometime. So here's what I came up with:


PAC1952-1x High-side current sense circuit. - Now I despite the name, the PAC1952 is actually a voltage measuring ADC, that just happens to usually be used in a current-sense application with a fixed value sense-resistor.
It has a sensitivity of 1.5uV, meaning that we can measure single-ohm resistive loading at micro-amps of current.


So in this configuration, I'm thinking I can properly separate between shorted loads, properly installed devices, and uninstalled / failed devices.

Capture.JPG

PYRO_POWER is up around 12V-18V, depending on raw battery voltage, and the PYRO_POWER channel is safed using an arming plug. The DMC3071LVT is a N,P pair MOSFET, capable of 20A burst loading.
 
That looks good to me, though you should not take that as worth a whole lot.

I've got a similar concept, aimed at a lunch controller for clusters sitting on a piece of white breadboard. It uses four-wire resistance measurement at safe, low current and an instrumentation amplifier to go into an Arduino. I need the four-wire arrangement because of the cable resistance between the controller and the pad, and because I'm trying to sense the difference between, say, four good igniters in parallel and three good but one failed. You probably don't need that much precision, since you're just looking for open, short, or in between. But, if you ever try to fire two pyros at once then you might consider something of the sort.
1687540489095.png
The output of the amplifier gives me the voltage across the igniter(s). The ratio of that to the sense resistor voltage gives me the igniter(s) resistance to the accuracy of the sense resistor value. I either need to get a high precision resistor or measure the actual resistance and use that in the software. The software has a bunch of scaling anyway so using measured rather than nominal resistance for the reference is not issue if I'm making one; if I ever decide to make a few then I'll get precision resistors so the software doesn't have to be tweaked for each one.

I've left out details like the gain setting resistor for the amplifier, overvoltage protection at the µC inputs, maybe some other little stuff.
 
Last edited:
Great concept, I been thinking about something similar but need to collect more data before I can adequately design a solution. I don't have the time at the moment to calculate your sensitivity to resistance. You need at the bare minimum to accurately detect 0.1 ohms which probably means reading in the .05 ohms or better. With a sample size of 1 shorting a igniter gave a change of 0.8Ω If you need more sensitivity you can add a differential instrumentation amp across the sense resistor to add gain to the system.

Also You need to know how long it takes to blow a igniter. The PFET is your limiting part with a maximum rating on -10A for 380µs. I have a feeling it takes longer than that. There should be some sort of protection to prevent over currenting the FETS. this is one of the things where when everything works it works but the one time the igniter ends up shorting you will end up burning traces up or blowing your FETs. Worst case the FETS' fail closed and you have beefy traces and now you have a dead short across your battery.

The one real issue I see is how you are driving the FET's. One of the FET's will always be conducting. You would need to invert the gate for the NFET for the output to follow the IgnitionA signal.
IgnitionANFETPFET
LowONOFF
HighOFFON
 
Great concept, I been thinking about something similar but need to collect more data before I can adequately design a solution. I don't have the time at the moment to calculate your sensitivity to resistance. You need at the bare minimum to accurately detect 0.1 ohms which probably means reading in the .05 ohms or better. With a sample size of 1 shorting a igniter gave a change of 0.8Ω If you need more sensitivity you can add a differential instrumentation amp across the sense resistor to add gain to the system.

Also You need to know how long it takes to blow a igniter. The PFET is your limiting part with a maximum rating on -10A for 380µs. I have a feeling it takes longer than that. There should be some sort of protection to prevent over currenting the FETS. this is one of the things where when everything works it works but the one time the igniter ends up shorting you will end up burning traces up or blowing your FETs. Worst case the FETS' fail closed and you have beefy traces and now you have a dead short across your battery.

The one real issue I see is how you are driving the FET's. One of the FET's will always be conducting. You would need to invert the gate for the NFET for the output to follow the IgnitionA signal.
IgnitionANFETPFET
LowONOFF
HighOFFON


Thank you so much for saving me from a stupid revision on this board. You were entirely correct to point that out, like an idiot I left the inverter BJT across both inputs, not just the PFET input, as I had meant to.

Here is the updated schematic:

Capture.JPG

Your point about resistance sensitivity is very astute. I calculated the original circuit's sensitivity to 20LSB/Ω. While that might be sufficient, giving a resolution of around 0.048Ω, I decided to reduce the series resistors to 22kΩ, thus doubling the current, and the voltage across the igniter. That should give around a 0.022Ω resolution.

I think that this will be sufficient for most purposes.

I also checked the FETs and I agree on the power rating on second thought. I'm moving to the DMC3016LDC whose continual current rating should be more than sufficient, let alone its pulse power rating. I know on a 3.3V drive line, I might not hit full conductance on the NFET, but looking at the Amp curves, it should be sufficient.


Here's an animated example on Falstad, BTW, for anyone that's interested in it: Simulation

Just remember, SPICE lies, and that isn't really indicative of the real currents/voltages on a PCB.
 
Last edited:
Measuring low resistance is fraught with problems. @jqavins mentioned 4-wire measurements upthread, which is the traditional way it is done accurately. The device you selected also has merit I think.

The lead resistance of the igniters might confound the measurement of the igniter filament, but you may be able to calibrate it out in firmware.
 
Measuring low resistance is fraught with problems. @jqavins mentioned 4-wire measurements upthread, which is the traditional way it is done accurately. The device you selected also has merit I think.

The lead resistance of the igniters might confound the measurement of the igniter filament, but you may be able to calibrate it out in firmware.
yeah, the whole "low resistance" thing does really confound the design process. As it is, I am going to be susceptible to noise across the 3.3v rails, the igniter leads, and changes in resistance due to strain/thermal effects.


And yeah, @jqavins' schematic is probably a more robust way to do this, but I kinda was wanting to just experiment as see how this works. Plus, it works off of a i2c connection, so I don't have any additional wires cluttering the schematic. Yeah that might be a lazy reason to choose an IC, but I'm trying to build on a 4 layer 25x65mm footprint with 8 servos and 4 pyros, so space is a HUGE contstraint.

I'm finishing the flight computer schematic right now, so I'll be able to report back in a few weeks with some test results. If the results don't look good, I might end up just going with the usual direct short/open check.
 
Yeah that might be a lazy reason to choose an IC, but I'm trying to build on a 4 layer 25x65mm footprint with 8 servos and 4 pyros, so space is a HUGE contstraint.
As I said, the device has merit. It might actually work well, especially if you help it with some clever firmware and reliable connections to the igniter. The trick is to eliminate, or measure and calibrate out, the variable things.
 
Last edited:
And yeah, @jqavins' schematic is probably a more robust way to do this, but I kinda was wanting to just experiment as see how this works. Plus, it works off of a i2c connection, so I don't have any additional wires cluttering the schematic. Yeah that might be a lazy reason to choose an IC, but I'm trying to build on a 4 layer 25x65mm footprint with 8 servos and 4 pyros, so space is a HUGE contstraint.
And remember, my concept was for a launch controller. For a flight system the priorities and trad-offs will be different. For instance, I have a simple push button for launching, which is not an option for you.
 
I like the idea of using that IC but there is a caveat. The PAC195X series data sheet lists under absolute maximum ratings a differential voltage between sense lines of 500mV. Without any additional circuitry this will be exceeded when the igniter gets fired. The answer might be as simple as current limiting resistors on the sense inputs, but that's not clear from a quick look at the data sheet.

Reinhard
 
@Reinhard Awesome catch. I'll have to add a parallel diode, and a series resistor to avoid that. that will reduce my sensitivity by a tiny bit, due to leakage current voltage drop, but the loss seems to not be too significant, around 2-5%

@jqavins - I'll probably end up using a CDBQR0130R, 350mV V_f, and I should be able to fit in an 0402 part between the sense lines. I estimate a max loading in the microwatt range, (Open igniter) so it should be more than sufficient.
 

Latest posts

Back
Top