Question about Normally Closed Transistors

Hello,

I have a motor controller with a few different settings that are controlled by shorting various pins on the controller to ground. For example, if I want to change the direction of the motor, I can short the DIR pin on the controller to ground. If I want the opposite direction, I can either set the pin high or leave it floating. In my controller's spec sheet, the manufacturer has this illustration where you can see that the H/L, Enable, and On/Off pins on the controller behave in a similar way.

For these four pins, I would like them to be shorted to ground under normal conditions, except when the Arduino tells them otherwise (technically, I'm using an ESP32 on the Arduino platform, but I don't think that makes a difference here). I was thinking of using a depletion type transistor to serve as a normally-closed transistor in this circuit. Using the DIR pin again as an example, I'd have DIR connected to the collector while the emitter is connected to ground. I'd like to open and close the gate with a GPIO pin on the microcontroller.

From what I'm seeing from other forum posts, it looks like depletion-type transistors are not frequently used, but I'm wondering if my example is a valid use case for them or not. For example, I was looking at this transistor: DN2535N5-G Microchip Technology | Discrete Semiconductor Products | DigiKey. If I understand that spec sheet correctly, I should be able to drive it with a 3.3V GPIO pin, and the current/voltage passing through the component shouldn't be great enough to damage the component. Are there downsides to this approach that I'm missing? I've used relay modules in the past to implement normally-closed circuits, but, in those cases, I was controlling things like lightbulbs that consume far more power than this application. If I don't need the extra bulk of a relay module, I'd like to avoid it, if possible.

1 Like

Why? Just use an NPN bipolar transistor. Don't forget the base resistor, and make sure that the collector is rated for 50V or higher.

An Open Collector Transistor should work. (The pull-up resistor will be built-into the motor controller.)

Note that this is an inverting connection. A voltage on the transistor base (base-emitter voltage) turns the transistor on and pulling-down the collector (like turning the button/switch on).

It only takes about 0.7V to saturate a transistor (to turn it fully-on). You'll need a current limiting resistor in series with the transistor base. 200-1000 Ohms should work.

We don't really know how much current the transistor has to handle but it's probably insignificant.

The safe state is high/open. Low should be applied only by a working controller. You can use any kind of N type transistor (NPN BjT, N channel logic level MOSFET) to pull the pins low, controlled by the Arduino.

Thanks for the replies - I just realized that I titled this "Normally Open" transistor when I meant normally closed. Sorry for the confusion. What I'm trying to do is essentially keep the Pump Controller shorted to ground in all cases except when the microcontroller signals the transistor. I've done similar things with relays before, but I was hoping to accomplish this with a much smaller transistor, if possible. Over the weekend, I got a a J112 JFET transistor, which seems to function as a normally-closed transistor (which is what I want). This seems to work when I use the following circuit. However, I've seen a couple references online to JFETs not being regularly used anymore. I was wondering what the drawback is to JFETs, as I haven't come across a clear answer so far.

For "nomally closed" operation, one approach is to use an NPN transistor and bias it ON with an appropriate base resistor to an available power source.

The Arduino can turn it off if the base is connected to a digital output set to LOW. Set pinMode(pin, INPUT) to keep the transistor on.

V+ should not exceed Arduino Vcc for the simple circuit below.

Edit: safer circuit:
Capture

This circuit will kill either the Arduino output or transistor. A current limiting resistor should sit between the output pin and base. The pullup resistor should go to the pin.

In your revised circuit, why do you want to replace in my proposed circuit 1 additional resistor by 2 additional diodes?

I have never seen your circuit mentioned for driving BJT from a GPIO pin. It may be favorable in an integrated circuit, where diodes are cheaper than resistors, but not in discrete circuits.

Only if the output is set HIGH. Replaced with safer circuit.

Because the "1 resistor" idea won't necessarily work. That forms a voltage divider with the bias resistor, when the output is LOW. The diode switch shown above is standard.

Thanks! I'll try that circuit and let you know what happens. Out of curiosity though, why is an NPN transistor favored over the JFET in my example above? I tried a JFET since I was hoping to minimize the number of components. I'm definitely open to adding the diodes and resistors, but I'm curious as to why this is favored over a single JFET?

You don't see many designs for JFETs because they are not so simple to use. I believe these days, they are primarily used as linear amplifiers rather than switches. Look up designer guides and you will see why.

A bipolar NPN switch is trivial to design and performs very well.

I have, many, many times. And I use it.

The design is quite standard, but probably not on the Arduino forum. It goes at least as far back as TTL logic gates:

Which can be interpreted as:

Explanation: https://www.allaboutcircuits.com/textbook/digital/chpt-3/ttl-nor-and-or-gates/

Right, TTL logic chips were designed like that. But the TTL era ended decades ago, we're in the FET era now.

Such logic gates have no use when it comes to driving power transistors by GPIO pins where all logic is done inside the µC. The circuits still work but are outdated.

The diode switch circuit I posted is a popular design, works great, meets the OP's requirements, and does not load the MCU output at all when that output is set to HIGH.

With this design, the MCU does not drive the transistor. An additional benefit of this design is that the MCU can be safely connected in this way to an unpowered module.

And that argument reveals legacy compatibility with TTL outputs which can not source much current in HIGH state. Such arguments are moot with nowadays symmetric MOSFET outputs which can source 100 times (40mA) what TTL circuits could do (0.4mA).

But instead of an endless debate the OP can judge himself which is the easiest, cheapest and most performant circuit.

Your pick of a DN2535N is interesting and probably will work but you need some negative voltages and additional circuitry to control it. I am assuming the Arduino will not always have power when the UIM243XXB has power. The UIM24C04 has a +5V reference output I believe we can use that to power the interface chip. If you drive the inputs with a 74LS03, or 74HCT03 (interface chip) you can then use the 3V3 output of the ESP microprocessor to drive them high. The 74xx03 has a 2V minimum for a logic 1. The second inputs can be connected together and connected to the ESP32 3V3 power supply. This will guarantee the inputs to the motor controller will be low if you lose power. The inversion in this gate will allow your software to write a logic 1 to turn it on. The interface chip also does your logic conversion and is available in SMD packages if wanted.

1 Like

Thanks again for all the replies. I tried the circuit in post #6, and it seems to work. My logic is flipped right now on the ESP : My GPIO pin is set to HIGH when I want the pump to run and LOW when I want it to stop, but I believe that flipping those two should resolve the issue.

I'll admit I don't know enough about TTL vs FET debate to weigh in on that.

Yeah, I realized afterwards that the J112 JFET that I purchased would probably work better for what I'm trying to do than the DN2535N. It seems to works since it functions as a "normally closed" switch, but, if I understand correct, this isn't its intended purpose, which is why I was second-guessing the reliability of this circuit.

Ideally, it will, but I want to avoid a scenario where the pump motor runs continuously if the ESP fails for some reason.

I really like the idea of using this chip as a NAND gate. I'll order one and let you know what happens

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.