Fred wrote:The UC can't drive more than 20mA PER 8 PINS yeah, really... not like ms1 which can do that per pin...
I've had mine lock up from excess current. It doesn't reset gracefully, it jams up hard with all pins in fixed state, perfect for frying coils and flooding engines. We need to be fairly cautious with pin current esp with regards CPU heat output if a lot of pins are used. Hence 1.6k is a good number.
Fred.
Don't forget that, when switching a FET, the maximum current will be for a very short period, that the switching frequency is quite low, and that you'll be switching only one pin at a time (assuming only sequential).
But even then, the FET driver looks like the way to go.
I haven't forgotten, but I think we should engineer it to survive rugged treatment. 1600 is sufficient to pump 5v into from all 8 connected to ground and not do any harm. It's also sufficient to switch any pre drivers reasonably IMO.
This is awesome. You can present a logical premise, ask for input and come to a reasonable consensus in 2 pages! If only it were like this other places. I expected jharvey and a couple others to chime in, but not yet. I wonder why.
IGBT's are kind of a two stage device. This increases the isolation voltage significantly, decreasing the chances that electrical spikes on the power side making it back to your CPU IO. Also the two stages typically decreases the input capacitance so they are often easier to drive with the dinky power of a CPU IO pin making it easier to drive with a CPU pin directly. However the IGBT tends to have long transitions times. This means they typically aren't great for fast frequency switching.
MOSFET's can come with additional technologies that allow for some nice extras. The PIP3104 has over voltage protection that trickles off power when about 60V is present from the source to drain. This removes the need for snubber caps or snubber diodes. It also increases the accuracy of your injector control slightly.
FreeEMS 1.0 is designed with a buffer that not only increases isolation voltage, and protects the CPU, it functions as power driver that then has increased capabilities to drive the power silicone. The short inrush of a lower impedance circuit can cause mini brown outs of the main power in the CPU, causing erratic code, and problems. Using an external driver as a buffer, puts those types of power supply issues where you can see them with a scope (great for finding them), as well it prevents erratic code from running in the CPU.
If you have an IGBT, you likely don't need the buffer. However you sacrifice some other possible technologies. So we designed it for both technologies. I'd still recommend the buffer with IGBT's because it's cheap, doesn't add problems, and increases your CPU protection.
That's a quick overview, it's general purpose, and vague. I'm also sure there are exceptions to the above.
I just checked the path I had put down for the power silicone. I see the power silicone is currently driven by the buffer, then 10k then 10k, then 1k. With a total of 21K. Oops, I think that's a bit high. On a good note, at least it's only holes and component values. I just added it to the TODO list. Should be done on the next release. I seem to recall I also wanted to look into using TVS diodes for transient suppression as well. That may require some extra holes.