Challenge:  two coils, fast, arbitrary timing

I need to control two circuits which switch coils. The pulses need to be arbitrary, over a range, in length, duty cycle, and overlap.

I suspect someone may already have done this. As yet I am still looking.

The two circuits control cored coils with current above 3 amps per circuit.

I plan to use molex peripheral connections from the computer running the arduino to supply the two circuits.

I have already modified the Blink sample to provide two pulses controlled as needed. But the available speed range, down to 1 millisecond, is not enough. I need shorter pulses. :frowning:

Is this possible? :-/

It would be helpful if you could be more sepecic than

The pulses need to be arbitrary, over a range, in length, duty cycle, and overlap.

That is so wide, that it is almost impossible to give accurate help.

Lets break this into parts.

There is a delay called delayMicroseconds() which would allow you to have faster pulses.

You can do it in software, but there will be a bit of jitter (variability in pule duration) if you use the standard Arduino libraries because they steal a tiny bit of time to keep updating the clock used by delay, millis() etc..
How much jitter can you tolerate?

Making pulses upto 8MHz is feasible.

The Arduino chip ATmega168/Atmega328/whatever, has internal hardware timers which are as accurate as the clock (usually a few 10's of parts per million of a 16MHz crystal)
How much error and drift can you tolerate?

The timers will give some flexibility in setting the duty cycle.
What does a pulse train look like? Is every pulse likely to be different or is there some repetition?

How much current does each of the two coil-switching circuits need to control them?

HTH
GB-)

Thank you very much for weighing in.

I am using various FETs so switching current need varies by device.

The less jitter the better. How much can be tolerated is unclear.

Other parties are using PICaxe and other PICs and they are having issues.

I would prefer to use the world's most popular microcontroller - you know which.

I do not as yet know just what the fastest I need is. Hazarding a guess, I believe it will be under 1 MhZ, possible under 500 Hz.

I believe the Arduino can supply 40 milliamp for switching. I need to switch at least 3 amps and would like to do more. I believe with the right choice of FET, this is no big deal.

Thank you for cluing me in about microdelay.

My usergroup is roughly 300 people and we all need these switching solutions.

I very much appreciate your help. Should you have any other advice, please do post further.

The pulse train at the most basic level is overlapping square waves.

It appears that greater granularity in wave shape may harbor advantages that we would like to explore. So arbitrary wave generation would be great.

We are studying magnetic transactions in the group I mentioned previously.