MSK 1875H 4x load driverI got an interesting scrapped avionics board a while back, with this giant hybrid module (and a spot for a 2nd):


The CAGE code 19623 is for GE Aviation, and the date codes look pretty recent (2020s, if I'm reading them correctly?) but it's all pretty simple stuff, could've been designed 30 years ago for all I know: a couple MOSFETs, some relays & through-hole passives, etc.

Let's open the lid of the hybrid module:

Damn, that's cool.
You can see that there's 4 roughly identical sections, one in each corner. Each one has a very large power MOSFET, plus a current sense resistor and some diodes.

Looking at the circuitry inside the module in more detail, it also fits the theme of "simple design that could've been done 30 years ago". The 4 ICs in the common section down the middle are, in order, a CD4001 quad NOR gate, a 74HC03 quad NAND gate (with open-collector outputs), a CD4030B quad XOR gate, and an LM139 quad comparator.




Each of the 4 repeated sections also has an MC14538 dual monostable timer, and a 74ALS00 quad NAND gate, plus a mystery 3-terminal IC - by its connections, I'm 99% sure this is some kind of 5V regulator, a 78L05 equivalent:



Now, what's the actual circuitry doing?

We can see that this is a load driver, meant for turning on and off valves, heavy-duty contactors, fixed-speed DC motors, or other similar things. Each of the 4 channels has 2 redundant DC power inputs, which are diode-OR'ed together, and then switched by the power MOSFET (Q3). The power path is highlighted in red.
The only way in which the 4 almost-identical channels differ, is that one of the channels doesn't have the redundant-power diodes.Basic operationEach channel is enabled through a combination of 3 NAND gates (U5), with one used as an inverter. I can't figure out a specific pattern to this, but I assume it provides flexibility similar to the active-high and active-low enable pins on the
MC14538, for example. When the load is supposed to be enabled, the output of U5D goes high, and this turns on Q2, which pulls down the gate of Q3 (P-channel power MOSFET) and turns on the load.
Output state sensingU4B and associated circuitry senses the output voltage, and provides an "output on" sense. This gets XOR'ed with the "output enable" signal from U5D by U3C, so that U3C's output goes high when there's a mismatch: the load is turned on when it's not supposed to (power stage has failed short) or the load is turned off when it's not supposed to (shorted output, or power stage has failed open).
Over-current protectionThe other source of faults is from the current sense, highlighted in blue at the top-left. Q5 and Q5 act kind of as a sensing current mirror, where the voltage across current sense resistor R20 is divided by R23 to set a current through Q4, which is then level-shifted through a cascode (Q6) and down to ground-level to create a voltage through R29. I've seen this scheme used in LED drivers, as it's a nice simple way to level-shift small analog signals that are sensed on the high-side. However, R25 and R24 make this a little more complicated: they "steal" current from Q4's emitter, and therefore make the sensed current look smaller than it actually is.
I'm not sure what their values are, as it's impossible to measure all this accurately in-circuit: so it's possible that R24 & R25 are so large as to be negligible in normal operation and just act as a pull-down in edge cases. But if they do sink significant current away from Q4, then the combination of R24 & R25, and Q7's Vbe threshold, acts as a threshold for the over-current detection. If so, then R24 & R25 actually form a voltage-dependent over-current threshold: the larger the DC supply voltage, the more current sunk by R24 & R25, and so the higher the load current has to be to trigger the over-current detection.
Once an over-current is detected by Q7 turning on, this triggers timer U6B. The connection from U6B's output to its "Clk+" input (or "A" input, in the datasheet) prevents it from being re-triggered while the timer is running. When U6B's time expires, it triggers U6A, which has the same type of "anti-re-triggering" connection. While U6A is on, it turns on Q1, which turns off Q2 and therefore forces the power switch off.
I think U6A provides an automatic "back-off timing" for the over-current protection, where an over-current causes it to turn off for XXX ms and wait, before trying to turn back on again. I don't understand what U6B is doing, though: U6A isn't triggered until U6B is done, which made me think it might be a "minimum over-current time" discriminator (as in, an over-current has to be present for > XX ms before the fault is triggered), but once U6B is triggered, there's no way to prevent U6A from triggering. So I have no idea what the dual-timer setup here is supposed to be doing.
Fault output indicatorThe NOR gate (U1B) takes in both over-current-timer outputs, and so its output is high (normal state) only if both timers are off (no over-current is active).
The outputs from this "over-current combination" gate (U1B) and the "output state doesn't match output command" gate (U3C) are both fed to a NAND gate (U2D). All this circuitry is duplicated on the other 3 channels, and the outputs of all the NAND gates are connected together (as they're all open-collector) to provide some kind of common "fault indicator" output on pin 21.
Another thing I don't understand, though, is how this fault logic operates. The output of U3C is high only in the case of a fault, but the output of U1B is low only in the case of a fault. This means that the output states of U2D don't make sense in any coherent way, either with an active-high or active-low fault output.
I double-checked all the connections here & IC part numbers but couldn't find any issues. The only thing I can think of is that maybe U3, labeled "CD4030B" on the metal layer, is actually a CD4077 X
NOR gate with a mis-labeled metal mask. (For low-speed stuff like this I'd expect both the XOR and XNOR to use the same doping masks, but slightly different metal layers to add an optional inversion at the output)
Control power
Nothing exciting here: the digital logic common to all channels shares an external supply pin, while the LM139 has its own supply pin for some reason. The per-channel 74ALS00 and MC14538 are powered from their own independent 5V regulator, with one per channel. This is the mystery IC, labeled "LM148D-5", which seems like a generic 3-terminal fixed linear regulator.
One final note: if you look at the board again, you can see the two bridge rectifiers which provide the 2 redundant DC power supplies for the load driver channels. Having 2 redundant power buses is pretty normal in commercial aircraft, I believe. (If you're wondering why there's only 3 connections to the bridge rectifier, I think the small through-hole diodes on the board are used together with these to provide some kind of weird rectification scheme I haven't bothered tracing out yet)

Anyways, hope you enjoyed, and let me know if you have any insights on the weirdness of the fault logic.