Simplest way to delay/retard a square wave?

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
Are you trying to delay a digital audio signal, or a digital signal in the audio frequency range?

Is this a clock signal or digital data?

You could use a series of latches, and adjust the delay by changing where you tap the signal from. This won't be practical for long delays unless you have an FPGA.

You might want to look at a microcontroller (AVR, PIC, etc.). They have a built in analog to digital converter for a potentiometer input.
 
If it is an "externally-produced" (i.e. not under your control) signal, then it seems like the easiest way to delay it would be to use a bunch of digital memory and make a buffer big enough to hold at least the maximum delay's-worth of signal.

Make the buffer "circular" and have two memory address "pointers", one for the write location and one for the read location, that both increment around the circular buffer, separated by your delay.

If the pulses are strictly binary information (i.e. just "a pulse" or "not a pulse"), then the hardware could be almost trivial.

But if you need to also keep the amplitude information, then you'll have to have an analog-to-digital converter for the input and a digital-to-analog converter for the output, and use bytes of memory for each sample instead of bits, and maybe sample much more often, and worry about some other stuff, too.

My lab partner and I did one just like that, for audio signals, in an EE lab course, back around 1976 or so. But my lab partner had just made his own microprocessor system from scratch (for fun), and I think he pretty-much "carried me" on that particular project. :)

Good luck.

- Tom Gootee

http://www.fullnet.com/~tomg/index.html
 
oh , u guys make it sound complicated :D
its not a digital audio signal , got nothing to do with audio ...:)
its a simple square wave in audio freq range .
i dont want to use memory ,this makes it complicated.
what if i'll need to delay the rising edge only , can it be done without memory?
thanx again.
 
sss said:
oh , u guys make it sound complicated :D
its not a digital audio signal , got nothing to do with audio ...:)

It sounds complicated because we're still playing 20 questions trying to figure out what you're asking for. If you won't answer the questions and won't explain what you're trying to do, all anyone can do is guess at what you need. If you want a clear answer, you have to provide clear information on EXACTLY what you need the circuit to do.

its a simple square wave in audio freq range .
i dont want to use memory ,this makes it complicated.
what if i'll need to delay the rising edge only , can it be done without memory?

There are two ways to answer this. The short answer is YES. Now go build it. This is not a very useful response, is it? It is about as useful as your responses have been to narrow down what you want the circuit to do.

The long answer is "it depends".
What do you want to drive with the output? Logic ICs? Relays? Motors? Toilet flush levers? What sort of voltage swing or current sink capability do you need? Are the rise and fall times critical for your app? What are the acceptable limits? What is the delay range you want to set? Do you need the delay applied to rising edge or falling edge, or both? What is the required precision in the delay setting? Over what temperature range does this thing have to work?
How much error in the delay timing (jitter) can the system tolerate?

Audio fanatics may be more sensitive than your average Joe-Sixpack, but most aren't telepathic. You are more likely to get a good answer once you formulate a good question. Until then, expect every wild-*** scheme anyone has ever used to generate any sort of delay for any possible purpose. I am fond of compression springs and suction cups for generating delays, but until I know more about what you're doing, I can't tell if they are applicable to your situation.

If you can't formulate an answerable question, it is because you have not thought about the problem enough. Go do your homework then come back and ask questions that make sense. Explain the input signal in detail, and explain the required output signal, in detail, and explain any adjustments you want to be able to make in detail. Details are CRITICAL.

I_F
 
ok , sorry mate , what i want to do is to retard the ignition timing on my motor .
its a high performance motorcycle engine , the timing is advanced at high rpm with a mechanical sprocket...
i need to retard the timing electronically for the lower rpm range.
hope that helps .
thanx again
 
sss said:
ok , sorry mate , what i want to do is to retard the ignition timing on my motor .
its a high performance motorcycle engine , the timing is advanced at high rpm with a mechanical sprocket...
i need to retard the timing electronically for the lower rpm range.
hope that helps .
thanx again

Now you have qualified it somewhat, but there are still many unanswered questions. If you had said this in the first place you would have saved a lot of people a lot of time.

It is very difficult to design electronics to work on engines. There is a very wide operating temperature, unstable power supply, high levels of noise, tight performance requirements. I suggest you go with some sort of commercial solution. Chances of finding someone with both engine control and electronics expertise on a DIY audio forum are pretty slim. There is a real possibility of damage to the engine if the device isn't just right.

Aren't these sort of adjustments usually handled by tweaking the program in the ignition control computer?

I_F
 
I_Forgot said:


Now you have qualified it somewhat, but there are still many unanswered questions. If you had said this in the first place you would have saved a lot of people a lot of time.

It is very difficult to design electronics to work on engines. There is a very wide operating temperature, unstable power supply, high levels of noise, tight performance requirements. I suggest you go with some sort of commercial solution. Chances of finding someone with both engine control and electronics expertise on a DIY audio forum are pretty slim. There is a real possibility of damage to the engine if the device isn't just right.

Aren't these sort of adjustments usually handled by tweaking the program in the ignition control computer?

I_F
i know that:) i allready got some circuits that i made in there.
actually , i can make the circuit that i need , but it wont be as simple as i want it to be :) it will use too much parts , so i was wondering maybe someone here knows some circuits for that porpuse , guess not , thanx anyway.
 
Unfortunately there is no simple delay that i know of that would work.
It might be best to design a whole new ignition system with a magnet/coil trigger or even an encoder fixed to the crankshaft. With multiple pots for adjusting multiple rpm ranges independently.
If you have the time to fiddle i am sure you could get some pretty big gains.

Edit: I would be careful, inductive kick from the coil could cause damage to sensitive circuits.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.