# How do I use an Arduino to switch another IC's pin (reset) to ground?

I'm a releative newbie. I'm using an Arduino to control a Cowlacious audio board that uses the ISD1700 chipcorder series of chips. Periodically, I need to pull the reset pin on the chipcorder to ground to reset it to it's original state. It seems to me that with the low currents involved I should be able to do this directly, but I'm not having luck. Using an Arduino pin set to digital out and leaving it HIGH except when switching doesn't work (I assume the chipcorder doesn't like the voltage when it's high). How can I get this to work?

P.S. I know I could use a transistor as a switch, or some sort of relay, but do I need to do that?

The ISD1700 reset pin is active low with an interal 600K pullup resistor, so pulling the pin low with an output pin of the Arduino should work I would guess.

Some things to double check:

• Are the ground pins of the Arduino and the Cowlacious audio board connected?
• Did you configure the pin on the Arduino to be an output? (pinMode command)

What is the voltage of the reset pin when the Arduino pulls it low? If it is zero, then that part is working. What is the voltage of the pin when the arduino sets it high? If the Cowlicous board and the Arduino have different HIGH voltages then this might cause a problem. In this case you could try leaving the pin as in input except when you pull the pin low. e.g.

pinMode(X, INPUT);
....
digitalWrite(X, LOW);
pinMode(X, OUTPUT);
delay(100);
pinMode(X, INPUT);


or like you say, use a FET to switch it.

• Well, I'd have sworn I had the ground pins connected, BUT I had the ground of the Arduino connected to the a Voltage Trigger pin on the Cowlacious board, which is NOT tied to ground. Once I ran them off the same power supply (quickest way to tie grounds I had), it worked like a charm (using the approach of having the Arudino pin as an INPUT when not resetting). The ISD chip is running at 5V (just a bit under between Vin and Ground), but the Reset Pin to Ground seems to be between 2 and 3 volts, so it seemed better not to put out 5V when not resetting. Thanks to geometrikal and stevenh! Oct 9, 2012 at 3:20
• Ahh yea, oh how many times I've spent days (even weeks) trying to solve a problem when it was something simple. Oct 9, 2012 at 3:48

geometrical mentions an internal pull-up resistor for the reset pin, but I could not find any reference to it in the datasheet. The schematics do show only a switch to ground, however, so the pull-up is probably there indeed. (Should have been indicated in the datasheet!)

I don't see an immediate reason why your approach doesn't work. What you could do is emulate an open-drain output from the Arduino: make it output low to assert reset, but switch it to input to de-assert it, instead of driving it actively high. This is closer to the operation of the pushbutton shown in the schematics.

• An earlier version of the datasheet has it. Not sure why they would remove the note? datasheet4u.net/download.php?id=558465 Oct 8, 2012 at 11:31
• @geometrikal - Yeah, that's odd. Usually they would add information they forgot in earlier versions, not remove it. Unless it was incorrect, but the schematics suggest there's indeed a pull-up. Thanks for the feedback. Oct 8, 2012 at 11:45