Delay a pulses freq. by x% (5v, 50%, variable frequency)

Guest
Hello,

I'm looking for advise on how to delay a pulse that may vary in
frequency.
Would like to delay its frequency by a specific percentage (ideally
adjustable delay percent).

Are there any simple circuit schematics I could follow to do this ?

I'm looking for a simple, cheap, and small way to do this.

Thanks for any help!
 
On Thu, 9 Oct 2008 11:56:17 -0700 (PDT), got2go@msn.com wrote:

Hello,

I'm looking for advise on how to delay a pulse that may vary in
frequency.
---
Delay it with respect to what?
---

Would like to delay its frequency by a specific percentage (ideally
adjustable delay percent).
---
You can the increase the pulse frequency, and you can lower it, but you
can't "delay it" without respect to a certain instant in time.

Are you perhaps looking for a way to vary the width of the pulse as its
frequency varies?
---

Are there any simple circuit schematics I could follow to do this ?
---
Maybe, if you can describe what you want, or your application,
accurately.

JF
 
On Thu, 9 Oct 2008 14:08:06 -0700 (PDT), got2go@msn.com wrote:

On Oct 9, 1:45 pm, John Fields <jfie...@austininstruments.com> wrote:
On Thu, 9 Oct 2008 11:56:17 -0700 (PDT), got...@msn.com wrote:
Hello,

I'm looking for advise on how to delay a pulse that may vary in
frequency.

---
Delay it with respect to what?
---

Would like to delay its frequency by a specific percentage (ideally
adjustable delay percent).

---
You can the increase the pulse frequency, and you can lower it, but you
can't "delay it" without respect to a certain instant in time.

Are you perhaps looking for a way to vary the width of the pulse as its
frequency varies?
---

Are there any simple circuit schematics I could follow to do this ?

---
Maybe, if you can describe what you want, or your application,
accurately.

JF

Hi John,

Sorry for the lack of details here.

Delay it in respect to the original frequency.
Basically, decrease the frequency by a given percent.

Basically, if I have a pulse train at 500Hz, I would like to be able
to change that by, say, 10%, so the output would then be 450Hz.

And, as the frequency of that pulse train changes coming into the
circuit, it would always output 10% lower than the incoming frequency.

I hope that explains it a little better.
---
Yes, it does, but there's still no information on the frequency range of
the input signal, the range of frequency translation, and how accurate
you need the translated output to be.

I assume that the "50" in the subject line refers to the duty cycle of
the input and output; if so, how close does the output have to be to
50%?

BTW, what you want to do is called "frequency translation" or "frequency
shifting", not pulse delay. :)

Anyway, for a 50% duty cycle in and a 10% translation down, input here's
one way to do it:

1. Use an up-counter to continuously determine the half-periods of the
incoming signal.

2. As each edge comes in, store the accumulated count in a register
(let's call it CNT1) and reset the counter so it'll start counting
again from zero.

3. Divide the contents of CNT1 by ten, add that number to CNT1 and store
the sum in CNT2.

4. Load a down-counter with the contents of CNT2 and have it count down
using the same clock as the up-counter. When it gets to zero have it
toggle a "D" type flip-flop and reload itself with the contents of
CNT2


That way CNT1 will refresh itself on its own terms, as will CNT2, the
down-counter will generate half cycles which will be 10% longer than the
input's and the flip-flop will automatically assemble a square wave
which will be 10% lower in frequency than the input signal.


JF
 
On Oct 9, 1:45 pm, John Fields <jfie...@austininstruments.com> wrote:
On Thu, 9 Oct 2008 11:56:17 -0700 (PDT), got...@msn.com wrote:
Hello,

I'm looking for advise on how to delay a pulse that may vary in
frequency.

---
Delay it with respect to what?
---

Would like to delay its frequency by a specific percentage (ideally
adjustable delay percent).

---
You can the increase the pulse frequency, and you can lower it, but you
can't "delay it" without respect to a certain instant in time.

Are you perhaps looking for a way to vary the width of the pulse as its
frequency varies?
---

Are there any simple circuit schematics I could follow to do this ?

---
Maybe, if you can describe what you want, or your application,
accurately.

JF
Hi John,

Sorry for the lack of details here.

Delay it in respect to the original frequency.
Basically, decrease the frequency by a given percent.

Basically, if I have a pulse train at 500Hz, I would like to be able
to change that by, say, 10%, so the output would then be 450Hz.

And, as the frequency of that pulse train changes coming into the
circuit, it would always output 10% lower than the incoming frequency.

I hope that explains it a little better.

Thanks!
 
On Thu, 09 Oct 2008 17:49:26 -0500, John Fields
<jfields@austininstruments.com> wrote:

On Thu, 9 Oct 2008 14:08:06 -0700 (PDT), got2go@msn.com wrote:

On Oct 9, 1:45 pm, John Fields <jfie...@austininstruments.com> wrote:
On Thu, 9 Oct 2008 11:56:17 -0700 (PDT), got...@msn.com wrote:
Hello,

I'm looking for advise on how to delay a pulse that may vary in
frequency.

---
Delay it with respect to what?
---

Would like to delay its frequency by a specific percentage (ideally
adjustable delay percent).

---
You can the increase the pulse frequency, and you can lower it, but you
can't "delay it" without respect to a certain instant in time.

Are you perhaps looking for a way to vary the width of the pulse as its
frequency varies?
---

Are there any simple circuit schematics I could follow to do this ?

---
Maybe, if you can describe what you want, or your application,
accurately.

JF

Hi John,

Sorry for the lack of details here.

Delay it in respect to the original frequency.
Basically, decrease the frequency by a given percent.

Basically, if I have a pulse train at 500Hz, I would like to be able
to change that by, say, 10%, so the output would then be 450Hz.

And, as the frequency of that pulse train changes coming into the
circuit, it would always output 10% lower than the incoming frequency.

I hope that explains it a little better.

---
Yes, it does, but there's still no information on the frequency range of
the input signal, the range of frequency translation, and how accurate
you need the translated output to be.

I assume that the "50" in the subject line refers to the duty cycle of
the input and output; if so, how close does the output have to be to
50%?

BTW, what you want to do is called "frequency translation" or "frequency
shifting", not pulse delay. :)

Anyway, for a 50% duty cycle in and a 10% translation down, input here's
one way to do it:

1. Use an up-counter to continuously determine the half-periods of the
incoming signal.

2. As each edge comes in, store the accumulated count in a register
(let's call it CNT1) and reset the counter so it'll start counting
again from zero.

3. Divide the contents of CNT1 by ten, add that number to CNT1 and store
the sum in CNT2.

4. Load a down-counter with the contents of CNT2 and have it count down
using the same clock as the up-counter. When it gets to zero have it
toggle a "D" type flip-flop and reload itself with the contents of
CNT2


That way CNT1 will refresh itself on its own terms, as will CNT2, the
down-counter will generate half cycles which will be 10% longer than the
input's and the flip-flop will automatically assemble a square wave
which will be 10% lower in frequency than the input signal.
---

Even simpler:


Vin>--+---------A _
| EXNOR Y--[R]--+--[Y = MX + B]--+--[VCO]--+-->Vout
+--[R]-+--B | | |
| | | |
[C] [C] | |
| | | |
GND>---------+-------------+----------------+---------+-->GND

JF
 
On Thu, 09 Oct 2008 19:04:58 -0500, John Fields
<jfields@austininstruments.com> wrote:

On Thu, 09 Oct 2008 17:49:26 -0500, John Fields
jfields@austininstruments.com> wrote:

On Thu, 9 Oct 2008 14:08:06 -0700 (PDT), got2go@msn.com wrote:

On Oct 9, 1:45 pm, John Fields <jfie...@austininstruments.com> wrote:
On Thu, 9 Oct 2008 11:56:17 -0700 (PDT), got...@msn.com wrote:
Hello,

I'm looking for advise on how to delay a pulse that may vary in
frequency.

---
Delay it with respect to what?
---

Would like to delay its frequency by a specific percentage (ideally
adjustable delay percent).

---
You can the increase the pulse frequency, and you can lower it, but you
can't "delay it" without respect to a certain instant in time.

Are you perhaps looking for a way to vary the width of the pulse as its
frequency varies?
---

Are there any simple circuit schematics I could follow to do this ?

---
Maybe, if you can describe what you want, or your application,
accurately.

JF

Hi John,

Sorry for the lack of details here.

Delay it in respect to the original frequency.
Basically, decrease the frequency by a given percent.

Basically, if I have a pulse train at 500Hz, I would like to be able
to change that by, say, 10%, so the output would then be 450Hz.

And, as the frequency of that pulse train changes coming into the
circuit, it would always output 10% lower than the incoming frequency.

I hope that explains it a little better.

---
Yes, it does, but there's still no information on the frequency range of
the input signal, the range of frequency translation, and how accurate
you need the translated output to be.

I assume that the "50" in the subject line refers to the duty cycle of
the input and output; if so, how close does the output have to be to
50%?

BTW, what you want to do is called "frequency translation" or "frequency
shifting", not pulse delay. :)

Anyway, for a 50% duty cycle in and a 10% translation down, input here's
one way to do it:

1. Use an up-counter to continuously determine the half-periods of the
incoming signal.

2. As each edge comes in, store the accumulated count in a register
(let's call it CNT1) and reset the counter so it'll start counting
again from zero.

3. Divide the contents of CNT1 by ten, add that number to CNT1 and store
the sum in CNT2.

4. Load a down-counter with the contents of CNT2 and have it count down
using the same clock as the up-counter. When it gets to zero have it
toggle a "D" type flip-flop and reload itself with the contents of
CNT2


That way CNT1 will refresh itself on its own terms, as will CNT2, the
down-counter will generate half cycles which will be 10% longer than the
input's and the flip-flop will automatically assemble a square wave
which will be 10% lower in frequency than the input signal.

---

Even simpler:


Vin>--+---------A _
| EXNOR Y--[R]--+--[Y = MX + B]--+--[VCO]--+-->Vout
+--[R]-+--B | | |
| | | |
[C] [C] | |
| | | |
GND>---------+-------------+----------------+---------+-->GND

---
Even simpler:

Vin>---[PIC]--->Vout

JF
 
On Thu, 9 Oct 2008 21:08:22 -0700 (PDT), got2go@msn.com wrote:

On Oct 9, 5:04 pm, John Fields <jfie...@austininstruments.com> wrote:
On Thu, 09 Oct 2008 17:49:26 -0500, John Fields



jfie...@austininstruments.com> wrote:
On Thu, 9 Oct 2008 14:08:06 -0700 (PDT), got...@msn.com wrote:

On Oct 9, 1:45 pm, John Fields <jfie...@austininstruments.com> wrote:
On Thu, 9 Oct 2008 11:56:17 -0700 (PDT), got...@msn.com wrote:
Hello,

I'm looking for advise on how to delay a pulse that may vary in
frequency.

---
Delay it with respect to what?
---

Would like to delay its frequency by a specific percentage (ideally
adjustable delay percent).

---
You can the increase the pulse frequency, and you can lower it, but you
can't "delay it" without respect to a certain instant in time.

Are you perhaps looking for a way to vary the width of the pulse as its
frequency varies?
---

Are there any simple circuit schematics I could follow to do this ?

---
Maybe, if you can describe what you want, or your application,
accurately.

JF

Hi John,

Sorry for the lack of details here.

Delay it in respect to the original frequency.
Basically, decrease the frequency by a given percent.

Basically, if I have a pulse train at 500Hz, I would like to be able
to change that by, say, 10%, so the output would then be 450Hz.

And, as the frequency of that pulse train changes coming into the
circuit, it would always output 10% lower than the incoming frequency.

I hope that explains it a little better.

---
Yes, it does, but there's still no information on the frequency range of
the input signal, the range of frequency translation, and how accurate
you need the translated output to be.

I assume that the "50" in the subject line refers to the duty cycle of
the input and output; if so, how close does the output have to be to
50%?

BTW, what you want to do is called "frequency translation" or "frequency
shifting", not pulse delay. :)

Anyway, for a 50% duty cycle in and a 10% translation down, input here's
one way to do it:

1. Use an up-counter to continuously determine the half-periods of the
  incoming signal.

2. As each edge comes in, store the accumulated count in a register
 (let's call it CNT1) and reset the counter so it'll start counting
  again from zero.

3. Divide the contents of CNT1 by ten, add that number to CNT1 and store
  the sum in CNT2.

4. Load a down-counter with the contents of CNT2 and have it count down
  using the same clock as the up-counter.  When it gets to zero have it
  toggle a "D" type flip-flop and reload itself with the contents of
  CNT2

That way CNT1 will refresh itself on its own terms, as will CNT2, the
down-counter will generate half cycles which will be 10% longer than the
input's and the flip-flop will automatically assemble a square wave
which will be 10% lower in frequency than the input signal.  

---

Even simpler:

Vin>--+---------A  _
      |      EXNOR Y--[R]--+--[Y = MX + B]--+--[VCO]--+-->Vout
      +--[R]-+--B          |                |         |
             |             |                |         |
            [C]           [C]               |         |
             |             |                |         |
GND>---------+-------------+----------------+---------+-->GND

JF

Hi John,

Thanks again for your continued assistance.

Would it be possible for you to post the components you recommend to
do this with the least amount of parts ?
---
Yeah, sure, as soon as you post your requirements for input signal
frequency range, input-to-output frequency ratio range, resolution, and
accuracy, and input-to-output duty cycle fidelity.
---

I'm looking to build this in a small footprint (small as practical).
(I am more familiar with analog components than digital.)
---
For the smallest footprint, you need to abandon your dependency on
analog and go digital.

JF
 
On Oct 9, 5:04 pm, John Fields <jfie...@austininstruments.com> wrote:
On Thu, 09 Oct 2008 17:49:26 -0500, John Fields



jfie...@austininstruments.com> wrote:
On Thu, 9 Oct 2008 14:08:06 -0700 (PDT), got...@msn.com wrote:

On Oct 9, 1:45 pm, John Fields <jfie...@austininstruments.com> wrote:
On Thu, 9 Oct 2008 11:56:17 -0700 (PDT), got...@msn.com wrote:
Hello,

I'm looking for advise on how to delay a pulse that may vary in
frequency.

---
Delay it with respect to what?
---

Would like to delay its frequency by a specific percentage (ideally
adjustable delay percent).

---
You can the increase the pulse frequency, and you can lower it, but you
can't "delay it" without respect to a certain instant in time.

Are you perhaps looking for a way to vary the width of the pulse as its
frequency varies?
---

Are there any simple circuit schematics I could follow to do this ?

---
Maybe, if you can describe what you want, or your application,
accurately.

JF

Hi John,

Sorry for the lack of details here.

Delay it in respect to the original frequency.
Basically, decrease the frequency by a given percent.

Basically, if I have a pulse train at 500Hz, I would like to be able
to change that by, say, 10%, so the output would then be 450Hz.

And, as the frequency of that pulse train changes coming into the
circuit, it would always output 10% lower than the incoming frequency.

I hope that explains it a little better.

---
Yes, it does, but there's still no information on the frequency range of
the input signal, the range of frequency translation, and how accurate
you need the translated output to be.

I assume that the "50" in the subject line refers to the duty cycle of
the input and output; if so, how close does the output have to be to
50%?

BTW, what you want to do is called "frequency translation" or "frequency
shifting", not pulse delay. :)

Anyway, for a 50% duty cycle in and a 10% translation down, input here's
one way to do it:

1. Use an up-counter to continuously determine the half-periods of the
  incoming signal.

2. As each edge comes in, store the accumulated count in a register
 (let's call it CNT1) and reset the counter so it'll start counting
  again from zero.

3. Divide the contents of CNT1 by ten, add that number to CNT1 and store
  the sum in CNT2.

4. Load a down-counter with the contents of CNT2 and have it count down
  using the same clock as the up-counter.  When it gets to zero have it
  toggle a "D" type flip-flop and reload itself with the contents of
  CNT2

That way CNT1 will refresh itself on its own terms, as will CNT2, the
down-counter will generate half cycles which will be 10% longer than the
input's and the flip-flop will automatically assemble a square wave
which will be 10% lower in frequency than the input signal.  

---

Even simpler:

Vin>--+---------A  _
      |      EXNOR Y--[R]--+--[Y = MX + B]--+--[VCO]--+-->Vout
      +--[R]-+--B          |                |         |
             |             |                |         |
            [C]           [C]               |         |
             |             |                |         |
GND>---------+-------------+----------------+---------+-->GND

JF
Hi John,

Thanks again for your continued assistance.

Would it be possible for you to post the components you recommend to
do this with the least amount of parts ?

I'm looking to build this in a small footprint (small as practical).
(I am more familiar with analog components than digital.)
 
---
Yeah, sure, as soon as you post your requirements for input signal
frequency range, input-to-output frequency ratio range, resolution, and
accuracy,  and input-to-output duty cycle fidelity.
---
Hi John,

Thanks again.
And sorry for not supplying all the info you need.

Input freq range would be from 0-1500Hz.
The output should be from 0-20% less than input freq.
Resolution, accuracy, and in/out fidelity should be as good as
possible/realistic.
Ideally, the out would be the same as in, except just the change in
freq.

For the smallest footprint, you need to abandon your dependency on
analog and go digital.
Agreed, that is why I am here picking your brain for help :)

Thanks!
 
On Thu, 9 Oct 2008 23:41:41 -0700 (PDT), got2go@msn.com wrote:

---
Yeah, sure, as soon as you post your requirements for input signal
frequency range, input-to-output frequency ratio range, resolution, and
accuracy,  and input-to-output duty cycle fidelity.
---


Hi John,

Thanks again.
And sorry for not supplying all the info you need.

Input freq range would be from 0-1500Hz.
---
Can't be zero, there has to be a lower bound higher than that.
---

The output should be from 0-20% less than input freq.
---
What's 20% less than DC? ;)
---

Resolution, accuracy, and in/out fidelity should be as good as
possible/realistic.
---
I don't know what that means; you're the one who has to write the spec.

10%? 1%? $1000?, $10?
---

Ideally, the out would be the same as in, except just the change in
freq.
---
Is the input a square (50% duty cycle) wave?

JF
 
Hi John,
Sorry for the delay in replying to your post.
I'll try below...

Input freq range would be from 0-1500Hz.

---
Can't be zero, there has to be a lower bound higher than that.
The frequency will come from a rotating wheel generating the pulses.
The wheel will vary in speed from stopped (=0) to higher speeds
(=1500).
I guess the circuit somehow needs to be able to handle this.

The output should be from 0-20% less than input freq.

---
What's 20% less than DC? ;)
In this case, perhaps the circuit just stops pulses on the output.
Same as the input.
No pulses in, no pulses out.

Resolution, accuracy, and in/out fidelity should be as good as
possible/realistic.
---
I don't know what that means; you're the one who has to write the spec.

10%? 1%? $1000?, $10?
---
Well, basically as good as possible while ralistic.

Ex:
10% = 5 parts and $30
But
1% = 30 parts and $180

Then I'll take 10%

But,for example if the difference between 10% and 1% is just a matter
of higher tolerance parts and minimal price difference, then I would
go for the 1% design (or less %)


Ideally, the out would be the same as in, except just the change in
freq.

---
Is the input a square (50% duty cycle) wave?

Yes, it would be 50% duty cycle.



Thanks John!
Sorry again for trying your patience with the lack of info you need.
 

Welcome to EDABoard.com

Sponsor

Back
Top