Using a micro in place of an injector driver?

I'm trying to replace some old, custom PN marked fuel injector driver ICs for a project. The drivers use CMOS triggering, so input is easy. The driver pulses a boost voltage at the start of the injection sequence, then uses battery voltage to hold the injector open.

The other inputs to the driver are a pin to monitor the MOSFET driver voltage per sequence, and another pin that monitors the return voltage from the injector. I believe these are both for fault protection; shut down the injector if a short is detected, not 100% sure yet.

This driver is all 5v in, 5v out.

I'm thinking this should be easily do-able for a micro as simple as a 328. I haven't yet put a scope to all this (I have a 2 channel scope, but I think I will need at least a 4 channel) to fully reverse engineer the operation, but I don't expect anything for major surprises. There is no "communication" to anything else, it just accepts the input to run an injection sequence.

Thoughts? Anything I may be overlooking?

So, you don't think accepting input is "communication"?


As in it isn't connected to a CAN bus or anything where I need to decode the language and commands.

In my experience, peak and hold injector drivers are intended for injectors with very low impedance (typ <1.5ohm). The driver saturates the injector by allowing ~4A (or so) to flow (peak) and then reducing the current to <1A (hold) to maintain the injector open for the IPW.

You might be able to approximate something timing-wise with an AVR using OC trickery but you wouldn't have feedback to control the currents. You'd have to experiment to determine when the injector saturates to know when to switch to PWM. And you'd then have to experiment with different frequencies to effectively modulate the injector current.

Can you do it for more than one cylinder on an engine operating at high RPM? A Mega might have the timer resources but you'd have to experiment.

There are P/H drivers around. For example, TI's LM1949 (see Digikey P/N LM1949N/NOPB-ND). Might be better to use a dedicated IC rather that trying to emulate it in firmware.