Normally Closed Sink Transistor

Hey all,

I've been looking around the internet for a general purpose normally-closed transistor to sink the reset pin to ground on the Arduino, and thus open the connection (activating the ATMEGA chip) when a small positive voltage is applied to the base of the transistor.

I've looked into the 2N3906 but it cannot behave as a sink, only a source.

Does anyone know of a transistor of this type?

Thanks a lot!
Aakash

Aakash:
Hey all,

I've been looking around the internet for a general purpose normally-closed transistor to sink the reset pin to ground on the Arduino, and thus open the connection (activating the ATMEGA chip) when a small positive voltage is applied to the base of the transistor.

Your terminology is kind of strange. Transistor are never said to be normally open or normally closed. They can be used in circuits such that they can be switched between conduction or not conducting. Any NPN transistor can be used to control the reset pin on a arduino

I've looked into the 2N3906 but it cannot behave as a sink, only a source.

A 2N3904 is a NPN that would work, pulling the reset pin low when base current is supplied to the transistor. Wire the emitter to ground, the collector to the reset pin and wire the base to a properly sized resistor to a positive voltage when you want the transistor to turn on and pull the reset pin low.

Does anyone know of a transistor of this type?

Thanks a lot!
Aakash

Does anyone know of a transistor of this type?

The equivalent of that would be a npn with its base pulled up.

Hey all,

Thanks for the replies. I think I might have stated my purpose incorrectly (or I'm understanding what you said wrong)

I have two Arduinos, one is a "master" in a sense, the other a "slave". I would like the slave Arduino's ATMEGA chip to be inactive initially (reset connected to GND), even though it is on the same power supply as the master. My plan to activate the slave Arduino is to connect the transistor partially in the way that retrolefty has described (with emitter to GND and collector to the reset pin), but the base would be connected to an output on the master Arduino and activated by code when needed (opening the connection between reset and GND on the slave).

In other words, I would like the slave Arduino to remain inactive, even though it is powered, until activated by the master.

The way I understood your post, retrolefty, was to have the base connected to a positive voltage constantly through a resistor, bringing reset pin to a low state. However, I am not sure how to bring it back from that state using the master Arduino.

Any suggestions are welcome!

Thanks again,
Aakash

Aakash:
Hey all,

Thanks for the replies. I think I might have stated my purpose incorrectly (or I'm understanding what you said wrong)

I have two Arduinos, one is a "master" in a sense, the other a "slave". I would like the slave Arduino's ATMEGA chip to be inactive initially, even though it is on the same power supply as the master. My plan to activate the slave Arduino is to connect the transistor partially in the way that retrolefty has described (with emitter to GND and collector to the reset pin), but the base would be connected to an output on the master Arduino and activated by code when needed.

In other words, I would like the slave Arduino to remain inactive, even though it is powered, until activated by the master.

The way I understood your post, retrolefty, was to have the base connected to a positive voltage constantly through a resistor, bringing reset pin to a low state. However, I am not sure how to bring it back from that state using the master Arduino.

That would work fine. Wire an output pin from the master arduino through a series 500 ohm resistor to the base of the NPN transistor on the slave arduino. Also be sure there is a shared ground wire run between the master and slave boards. So when the master outputs a HIGH on the digital output pin the slave will be forced into reset state and stay there until you output a LOW on the digital output pin.
Lefty

Any suggestions are welcome!

Thanks again,
Aakash

retrolefty,

Thanks for that. The thing is that the master has a modified bootloader (based on the original, but waits longer for serial programmers) on it that takes much longer to load through than the slave. So this will result in the slave booting up completely before the master has time to bring reset to HIGH or LOW. Using your suggestion of a 500 Ohm resistor in series with the base line on the transistor and an output pin on the master, what state will the reset pin be in while the master is in the bootloader?

Aakash

EDIT: I'm trying to prevent the slave from booting at all until the master gives it the go.

Why is a transistor needed? Just directly drive the reset line and give it a pull-down resistor to keep it activated by default?

Aakash:
retrolefty,

Thanks for that. The thing is that the master has a modified bootloader (based on the original, but waits longer for serial programmers) on it that takes much longer to load through than the slave. So this will result in the slave booting up completely before the master has time to bring reset to HIGH or LOW. Using your suggestion of a 500 Ohm resistor in series with the base line on the transistor and an output pin on the master, what state will the reset pin be in while the master is in the bootloader?

Aakash

EDIT: I'm trying to prevent the slave from booting at all until the master gives it the go.

Mark T has it correct.

Just forget the transistor. Wire a pull-down resistor of say 200 ohms from the slave's reset pin to ground and then also run a wire from slave's reset pin to a master's digital pin of your choice. Don't forget a ground to ground wire between master and slave. Slave will default and stay in reset condition until master makes it's digital pin an output pin and commands it high, which then will release the slave to begin running.

Lefty

what state will the reset pin be in while the master is in the bootloader?

It is in an unknown state, unless you have access to the bootloader's source code.

A better approach is to run the slave free, but wait for a hand-shake signal from the master.

dhenry:

what state will the reset pin be in while the master is in the bootloader?

It is in an unknown state, unless you have access to the bootloader's source code.

A better approach is to run the slave free, but wait for a hand-shake signal from the master.

Not so, - the AtMega reset pin has an internal pullup resistor (see DC characteristics in datasheet) to Vcc. That is it will start up in a predictable manner with nothing connected to the reset pin.