Interfacing

Hi guys,

Probably a daft question, I have another microcontroller sending information to an arduino. I need to delay it turning on, can I use a an npn transistor controlled by the arduino to do this without any issues or damage to the other controller?

Thanks

Using an NPN transistor is not likely to work, because you normally put the load in the collector of the transistor, and the emitter to ground, hence the ground of the other device is not connected to the ground of the Arduino

You may be able to do it using a PNP device.

I should have been more clear. The transistor would be in the low side, from the controller to gnd. Just want to know if there is any possibility of damaging the microcontroller?

spol: I should have been more clear. The transistor would be in the low side, from the controller to gnd. Just want to know if there is any possibility of damaging the microcontroller?

Yes, there is.

Care to elaborate?

spol:
Care to elaborate?

Presumably there’s other things connected to the microcontroller, it’s a bit pointless otherwise.

“Other things” means there’s other sources of power and/or other paths to GND through the microcontroller’s pins. You don’t know what will happen if you cut the ‘official’ path to GND.

Yes, it's a daft question.

This is clearly something you want to do in software, not in hardware. As always here, you really need to describe what this "other microcontroller" is, what sort of software it is running (in other words, did you write it, and if not, why not) and what its purpose it, so that all means of approaching the situation can be investigated.

What you have described is a more general flow control problem - not only do you need to be concerned about the start-up phase, but you have the much greater concern of the "other microcontroller" sending more data than the Arduino can cope with at any particular time.

The cleanest way of inhibiting the "other microcontroller" from "turning on" until you are ready for it, is to have an NPN transistor with a pull-up on its base connected to an Arduino pin so that it is switched on until the Arduino pulls that low, with its collector connected to the ~reset line of the "other microcontroller".

Ok I'll be more thorough, I don't usually write long winded questions because in my experience people don't read them.

I'm planing on using an slc oem wideband module from here (http://www.14point7.com/products/slc-oem). That board has 20 pins broken out. 1 Vin, 1 gnd, 6 pins to the o2 sensor, 1 linear output, 1 pwm output and 7 I2C pins. There are 3 other pins that are supposed to be left floating.

The only one I will connecting to the arduino at this stage is the linear output.

I want to delay the board from turning on to prevent it heating the o2 sensor before the vehicle starts. I designed a pcb to house both the arduino and the other board, but knowing that I needed to control the heating of the sensor, I put an npn transistor in the boards line to gnd that I can control with the arduino.

After I had submitted my design to the board house I realized the error. Stupid mistake I know, but this was a last minute addition to a project I am working on.

Is this likely to damage the unit, switching it on like that? If so I will just bridge the pins where the transistor would be and avoid having the entire system running before the engine.

Im just trying to find info on the Uc right now, I know its from cypress but little else yet.

Thanks

Does the other microcontroller have a reset pin? This would likely be a better target for control. Simply connecting a capacitor from this to gnd will delay it's start up. With a big electrolytic you could likely delay it for hours.

Probably, but as far as I can see, the board only has those 20 pins I listed broken out

OK. Looking at the datasheet for the cy8c24894, it shows a XRES (apparently it's active high and has an internal pull down resistor) on pin 36. Best I can see from the picture, on your board this is connected to one end of R10. From there it appears to continue on to the edge of the board and wend it's way between the pads for Addr2 and Addr3 (how very odd?).

If you have this board to hand, you might try tracing it to see if there's a more convenient method of interacting with it.

You may have just solved my problem, I didn't notice the xres before, I'm fairly sure it goes to the xres pad up a bit further on the board.

I don't have anything at the moment, I'm working away.