Delay without affecting pulse width

B

BR

Guest
Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.

Thanks


Ben

--
 
On Mon, 07 Mar 2005 12:15:30 -0600, BR <slackin@nonsense.comcast.net>
wrote:

Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.
---
Can you provide a timing diagram to show what you mean or verbally
explain what you mean by "delay"?

--
John Fields
 
"BR" <slackin@nonsense.comcast.net> skrev i melding
news:Xns9612685AA1E27hatespam@216.196.97.136...
Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.
The only thing I can think of right now, is to couple several TTL-inverters
in series. Each one of them works as a delay line. The only thing you need
to know is the delay of each one of them. A typical IC would be an 7404.

Hope this helps : )
 
John Fields <jfields@austininstruments.com> wrote in
news:kbdp211k5pm4367ap70l7jjcaah5ivinjk@4ax.com:

On Mon, 07 Mar 2005 12:15:30 -0600, BR
slackin@nonsense.comcast.net> wrote:

Hello,

Is there a circuit that can delay a pulse train without
affecting its width? The pulse width is about 1.5ms to 2ms,
every 20ms (RC servo signals). The delay needed is less than
that, perhaps up to 1 ms. It would be convenient if it were
variable.

---
Can you provide a timing diagram to show what you mean or
verbally explain what you mean by "delay"?
The best I can do is give a description of the apparatus. It
involves three RC servos mounted on a rotating ring used to form a
gripper system. Each gripper pad is located equidistant about the
outside rim of a small 5" dia. hemispherical bowl containing water.
The opening of the 5" bowl must be in full view. The 5" bowl is
floating in a larger bowl filled with water. All three servos are
connected to one signal output of an EZ servo 1 chip (a pre-
programed controller). A problem occurs when the bowl is released.
The gripper releases the bowl as fast as it can when the signal
pulse width changes abruptly from 1725ľs to 1650ľs. However, the
differences between servos always causes the bowl to drift slowly
away from the lagging servo. This is determined by releasing the
bowl while the ring is stationary. Adjusting the servo mounting hw
only reduces the problem. So, I'm looking for a way to fine tune
the release and minimize linear motion of the bowl. If this can't
be done with delay lines I would appreciate any suggestions.


Ben

--
 
John Fields <jfields@austininstruments.com> wrote:

On Mon, 07 Mar 2005 12:15:30 -0600, BR <slackin@nonsense.comcast.net
wrote:

Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.

---
Can you provide a timing diagram to show what you mean or verbally
explain what you mean by "delay"?
I assumed he meant this:
http://www.terrypin.dial.pipex.com/Images/PulseTrainDelay.gif

--
Terry Pinnell
Hobbyist, West Sussex, UK
 
BR wrote:
John Fields <jfields@austininstruments.com> wrote in
news:kbdp211k5pm4367ap70l7jjcaah5ivinjk@4ax.com:

On Mon, 07 Mar 2005 12:15:30 -0600, BR
slackin@nonsense.comcast.net> wrote:

Hello,

Is there a circuit that can delay a pulse train without
affecting its width? The pulse width is about 1.5ms to 2ms,
every 20ms (RC servo signals). The delay needed is less than
that, perhaps up to 1 ms. It would be convenient if it were
variable.

---
Can you provide a timing diagram to show what you mean or
verbally explain what you mean by "delay"?


The best I can do is give a description of the apparatus. It
involves three RC servos mounted on a rotating ring used to form a
gripper system. Each gripper pad is located equidistant about the
outside rim of a small 5" dia. hemispherical bowl containing water.
The opening of the 5" bowl must be in full view. The 5" bowl is
floating in a larger bowl filled with water. All three servos are
connected to one signal output of an EZ servo 1 chip (a pre-
programed controller). A problem occurs when the bowl is released.
The gripper releases the bowl as fast as it can when the signal
pulse width changes abruptly from 1725ľs to 1650ľs. However, the
differences between servos always causes the bowl to drift slowly
away from the lagging servo. This is determined by releasing the
bowl while the ring is stationary. Adjusting the servo mounting hw
only reduces the problem. So, I'm looking for a way to fine tune
the release and minimize linear motion of the bowl. If this can't
be done with delay lines I would appreciate any suggestions.
Here's one way you might do it:

Trigger a monostable on both edges of the input pulse. Clock the input
into a D-type flip-flop on mono timeout. Exclusive-OR the flip-flop
output with the input to make a trigger pulse for the mono. The
flip-flop output is also your delayed pulse.

It sounds like you're trying to compensate for small differences in
servo response time. It might require constant fiddling and tweaking
to counteract ageing or changes in temperature.
 
Geir Klemetsen wrote:
"BR" <slackin@nonsense.comcast.net> skrev i melding
news:Xns9612685AA1E27hatespam@216.196.97.136...

Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.


The only thing I can think of right now, is to couple several TTL-inverters
in series. Each one of them works as a delay line. The only thing you need
to know is the delay of each one of them. A typical IC would be an 7404.
At about 10ns each, it would take 100,000 of them to get 1 ms delay;
still, with six per package it would only be 16,667 ics.

--
john
 
"Andrew Holme" <ajholme@hotmail.com> wrote in
news:1110282525.174548.111790@f14g2000cwb.googlegroups.com:

BR wrote:
John Fields <jfields@austininstruments.com> wrote in
news:kbdp211k5pm4367ap70l7jjcaah5ivinjk@4ax.com:

On Mon, 07 Mar 2005 12:15:30 -0600, BR
slackin@nonsense.comcast.net> wrote:

Hello,

Is there a circuit that can delay a pulse train without
affecting its width? The pulse width is about 1.5ms to 2ms,
every 20ms (RC servo signals). The delay needed is less than
that, perhaps up to 1 ms. It would be convenient if it were
variable.

---
Can you provide a timing diagram to show what you mean or
verbally explain what you mean by "delay"?


The best I can do is give a description of the apparatus. It
involves three RC servos mounted on a rotating ring used to
form a gripper system. Each gripper pad is located equidistant
about the outside rim of a small 5" dia. hemispherical bowl
containing water. The opening of the 5" bowl must be in full
view. The 5" bowl is floating in a larger bowl filled with
water. All three servos are connected to one signal output of
an EZ servo 1 chip (a pre- programed controller). A problem
occurs when the bowl is released. The gripper releases the bowl
as fast as it can when the signal pulse width changes abruptly
from 1725ľs to 1650ľs. However, the differences between servos
always causes the bowl to drift slowly away from the lagging
servo. This is determined by releasing the bowl while the ring
is stationary. Adjusting the servo mounting hw only reduces the
problem. So, I'm looking for a way to fine tune the release and
minimize linear motion of the bowl. If this can't be done with
delay lines I would appreciate any suggestions.

Here's one way you might do it:

Trigger a monostable on both edges of the input pulse. Clock
the input into a D-type flip-flop on mono timeout. Exclusive-OR
the flip-flop output with the input to make a trigger pulse for
the mono. The flip-flop output is also your delayed pulse.

It sounds like you're trying to compensate for small differences
in servo response time. It might require constant fiddling and
tweaking to counteract ageing or changes in temperature.
Thanks for the suggestion. I'll try it with some old CMOS 4000. I
assume some variable adjustment is possible with the timing
resistor on the mono, but the max delay is less than the pulse
width, is that correct?

Ben

--
 
BR wrote:
"Andrew Holme" <ajholme@hotmail.com> wrote in
news:1110282525.174548.111790@f14g2000cwb.googlegroups.com:


BR wrote:
John Fields <jfields@austininstruments.com> wrote in
news:kbdp211k5pm4367ap70l7jjcaah5ivinjk@4ax.com:

On Mon, 07 Mar 2005 12:15:30 -0600, BR
slackin@nonsense.comcast.net> wrote:

Hello,

Is there a circuit that can delay a pulse train without
affecting its width? The pulse width is about 1.5ms to 2ms,
every 20ms (RC servo signals). The delay needed is less than
that, perhaps up to 1 ms. It would be convenient if it were
variable.

---
Can you provide a timing diagram to show what you mean or
verbally explain what you mean by "delay"?


The best I can do is give a description of the apparatus. It
involves three RC servos mounted on a rotating ring used to
form a gripper system. Each gripper pad is located equidistant
about the outside rim of a small 5" dia. hemispherical bowl
containing water. The opening of the 5" bowl must be in full
view. The 5" bowl is floating in a larger bowl filled with
water. All three servos are connected to one signal output of
an EZ servo 1 chip (a pre- programed controller). A problem
occurs when the bowl is released. The gripper releases the bowl
as fast as it can when the signal pulse width changes abruptly
from 1725ľs to 1650ľs. However, the differences between servos
always causes the bowl to drift slowly away from the lagging
servo. This is determined by releasing the bowl while the ring
is stationary. Adjusting the servo mounting hw only reduces the
problem. So, I'm looking for a way to fine tune the release and
minimize linear motion of the bowl. If this can't be done with
delay lines I would appreciate any suggestions.

Here's one way you might do it:

Trigger a monostable on both edges of the input pulse. Clock
the input into a D-type flip-flop on mono timeout. Exclusive-OR
the flip-flop output with the input to make a trigger pulse for
the mono. The flip-flop output is also your delayed pulse.

It sounds like you're trying to compensate for small differences
in servo response time. It might require constant fiddling and
tweaking to counteract ageing or changes in temperature.


Thanks for the suggestion. I'll try it with some old CMOS 4000. I
assume some variable adjustment is possible with the timing
resistor on the mono, but the max delay is less than the pulse
width, is that correct?
Yes. If you wanted a longer delay, you might consider using two
monostables - one for each edge, but then you'd have to make sure both
delays were exactly the same. This might even reduce the chip count,
since you can get dual monos in a single DIL package. A more exotic
solution might be to use a bucket-brigade delay line - the type of
thing normally used for audio delay / echo effects.
 
BR wrote:
"Andrew Holme" <ajholme@hotmail.com> wrote in
news:1110282525.174548.111790@f14g2000cwb.googlegroups.com:


BR wrote:
John Fields <jfields@austininstruments.com> wrote in
news:kbdp211k5pm4367ap70l7jjcaah5ivinjk@4ax.com:

On Mon, 07 Mar 2005 12:15:30 -0600, BR
slackin@nonsense.comcast.net> wrote:

Hello,

Is there a circuit that can delay a pulse train without
affecting its width? The pulse width is about 1.5ms to 2ms,
every 20ms (RC servo signals). The delay needed is less than
that, perhaps up to 1 ms. It would be convenient if it were
variable.

---
Can you provide a timing diagram to show what you mean or
verbally explain what you mean by "delay"?


The best I can do is give a description of the apparatus. It
involves three RC servos mounted on a rotating ring used to
form a gripper system. Each gripper pad is located equidistant
about the outside rim of a small 5" dia. hemispherical bowl
containing water. The opening of the 5" bowl must be in full
view. The 5" bowl is floating in a larger bowl filled with
water. All three servos are connected to one signal output of
an EZ servo 1 chip (a pre- programed controller). A problem
occurs when the bowl is released. The gripper releases the bowl
as fast as it can when the signal pulse width changes abruptly
from 1725ľs to 1650ľs. However, the differences between servos
always causes the bowl to drift slowly away from the lagging
servo. This is determined by releasing the bowl while the ring
is stationary. Adjusting the servo mounting hw only reduces the
problem. So, I'm looking for a way to fine tune the release and
minimize linear motion of the bowl. If this can't be done with
delay lines I would appreciate any suggestions.

Here's one way you might do it:

Trigger a monostable on both edges of the input pulse. Clock
the input into a D-type flip-flop on mono timeout. Exclusive-OR
the flip-flop output with the input to make a trigger pulse for
the mono. The flip-flop output is also your delayed pulse.

It sounds like you're trying to compensate for small differences
in servo response time. It might require constant fiddling and
tweaking to counteract ageing or changes in temperature.


Thanks for the suggestion. I'll try it with some old CMOS 4000. I
assume some variable adjustment is possible with the timing
resistor on the mono, but the max delay is less than the pulse
width, is that correct?

Ben

--
Hi, BR. You might want to try using a 74C14, a resistor and a cap,
like this (view in fixed font or M$ Notepad):


` 2/6 74C14
` Servo In 200K
` ___ ___ |\ |\ Servo Out
` o---|___|--o-|___|--o--|H>O--|H>O-----o
` 20K | A | |/ |/
` | | | about 1ms delay
` | | ---
` '---' ---
` .01uF|
` |
` ==` GND
created by Andy´s ASCII-Circuit v1.24.140803 Beta www.tech-chat.de

The built-in hysteresis of the C14, along with the R and C, act as a
digital delay line. Your 0 to 1 logic transitions will be delayed
almost exactly as much as the 1-to-0 transistions.

This is because the hysteresis of the 74C14 (and the 74HC14) is
centered on 1/2 Vcc. This doesn't work for the 7414, 74LS14, and other
TTL versions of this chip for several reasons.

Once you know the right value for your application, just substitute a
fixed resistor for the pot, and you're good to go.

Good luck
Chris
 
"BR" <slackin@nonsense.comcast.net> wrote

The best I can do is give a description of the apparatus. It
involves three RC servos mounted on a rotating ring used to form a
gripper system. Each gripper pad is located equidistant about the
outside rim of a small 5" dia. hemispherical bowl containing water.
The opening of the 5" bowl must be in full view. The 5" bowl is
floating in a larger bowl filled with water. All three servos are
connected to one signal output of an EZ servo 1 chip (a pre-
programed controller). A problem occurs when the bowl is released.
The gripper releases the bowl as fast as it can when the signal
pulse width changes abruptly from 1725ľs to 1650ľs. However, the
differences between servos always causes the bowl to drift slowly
away from the lagging servo. This is determined by releasing the
bowl while the ring is stationary. Adjusting the servo mounting hw
only reduces the problem. So, I'm looking for a way to fine tune
the release and minimize linear motion of the bowl. If this can't
be done with delay lines I would appreciate any suggestions.
Perhaps an easier approach would be to play with the voltage on the
servos. Higher voltages result in faster servo action (to a reasonable
point anyway).

I would use a PIC chip for precision and repeatability. 1uS precision
is a piece of cake with virtually any PIC, 100nS is just as easy with a
faster chip and crystal.
 
BR wrote:
The best I can do is give a description of the apparatus. It
involves three RC servos mounted on a rotating ring used to form a
gripper system. Each gripper pad is located equidistant about the
outside rim of a small 5" dia. hemispherical bowl containing water.
The opening of the 5" bowl must be in full view. The 5" bowl is
floating in a larger bowl filled with water. All three servos are
connected to one signal output of an EZ servo 1 chip (a pre-
programed controller). A problem occurs when the bowl is released.
The gripper releases the bowl as fast as it can when the signal
pulse width changes abruptly from 1725ľs to 1650ľs. However, the
differences between servos always causes the bowl to drift slowly
away from the lagging servo. This is determined by releasing the
bowl while the ring is stationary. Adjusting the servo mounting hw
only reduces the problem. So, I'm looking for a way to fine tune
the release and minimize linear motion of the bowl. If this can't
be done with delay lines I would appreciate any suggestions.
You are going to try to slow down the signals to each individual servo,
I'm guessing, using some kind of RC delay. That sounds like a tuning
nightmare. The RC delay will probably be temperature dependent. Anthony
Fremont already pointed out that the servos may be voltage dependent,
which means that they could be interacting in funny ways if they are all
powered from the same battery.

I wonder if somehow slowing down the servo action would work? It is
probably the quick snap which is imparting energy to the bowl. The
energy that is imparted by the faster servos is damped by the final servo.

Another possibility would be to use a clear string (like fishing line)
to hold the bowl in place. The servos would hold the line, rather than
the bowl itself. If the line had no tension on it (it was just used to
anchor the bowl in place), it would not be possible for the servos to
impart any energy on the bowl by releasing it (depending on their
position, they may splash the water, causing motion). The line would be
invisble in the water (hopefully).

On the other hand, a simple delay using a microprocessor would be easy
to cook up. Using the internal clock of a PIC, for example, you could
easily get repeatable delays of 1 ms within about 40us. A single $2
microprocessor could sequence the three servos in arbitrary and
repeatable ways, using trimmers to set the relative delay (so you can
tweak it in the field). I can do this for you if you are still
interested in persuing the delay scheme. email me if you are interested.

rc<surname>@comcast.net (replace <surname> with my last name)

--
Regards,
Robert Monsen

"Your Highness, I have no need of this hypothesis."
- Pierre Laplace (1749-1827), to Napoleon,
on why his works on celestial mechanics make no mention of God.
 
On Mon, 07 Mar 2005 19:44:21 -0600, BR wrote:

....A problem occurs when the bowl is released.
The gripper releases the bowl as fast as it can when the signal
pulse width changes abruptly from 1725ľs to 1650ľs. However, the
differences between servos always causes the bowl to drift slowly
away from the lagging servo. This is determined by releasing the
bowl while the ring is stationary. Adjusting the servo mounting hw
only reduces the problem. So, I'm looking for a way to fine tune
the release and minimize linear motion of the bowl. If this can't
be done with delay lines I would appreciate any suggestions.
You need to either fix your servos, i.e. get three exactly identical
servos, or mechanically couple just one servo to the three fingers.

Anything else would be a klooge, and as others have noted, a nightmare to
tune.

You could also look at slowing down that "abrupt" change from 1725 to
1650, to make it a little smoother. One of the things you'll never ever
tune out is sticktion in a given servo. (i.e., the time from the pulse
change until it actually moves, overcoming standing friction.)

Good Luck!
Rich
 
"John O'Flaherty" <quiasmox@yahoo.com> skrev i melding
news:39601tF5ujsraU1@individual.net...
Geir Klemetsen wrote:
"BR" <slackin@nonsense.comcast.net> skrev i melding
news:Xns9612685AA1E27hatespam@216.196.97.136...

Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.


The only thing I can think of right now, is to couple several
TTL-inverters
in series. Each one of them works as a delay line. The only thing you
need
to know is the delay of each one of them. A typical IC would be an 7404.

At about 10ns each, it would take 100,000 of them to get 1 ms delay;
still, with six per package it would only be 16,667 ics.
Ok, forget that. What about using a delay line, such as those used in older
televisions instead?

Now the only thing i cannot help with is the pinouts for such one thing and
the delay it provides...
 
Geir Klemetsen wrote:
"John O'Flaherty" <quiasmox@yahoo.com> skrev i melding
news:39601tF5ujsraU1@individual.net...

Geir Klemetsen wrote:

"BR" <slackin@nonsense.comcast.net> skrev i melding
news:Xns9612685AA1E27hatespam@216.196.97.136...


Hello,

Is there a circuit that can delay a pulse train without affecting its
width? The pulse width is about 1.5ms to 2ms, every 20ms (RC servo
signals). The delay needed is less than that, perhaps up to 1 ms. It
would be convenient if it were variable.


The only thing I can think of right now, is to couple several

TTL-inverters

in series. Each one of them works as a delay line. The only thing you

need

to know is the delay of each one of them. A typical IC would be an 7404.

At about 10ns each, it would take 100,000 of them to get 1 ms delay;
still, with six per package it would only be 16,667 ics.


Ok, forget that. What about using a delay line, such as those used in older
televisions instead?

Now the only thing i cannot help with is the pinouts for such one thing and
the delay it provides...
I think those things were in the microsecond range, and weren't really
for clean digital signals. You'd probably have to use some active
circuit like a one-shot to get to the millisecond area.

--
john
 
On Semiconductor still shows dual 64 bit shift registers. Stack up 512
bits, clock at 500KHz and get 1mS delay with 2 uSec resolution. Or, did
someone say PIC?
GG
 
On Tue, 08 Mar 2005 23:29:46 -0600 in sci.electronics.basics, John
O'Flaherty <quiasmox@yahoo.com> wrote msg
<397fubF5ubqv3U1@individual.net>:

Ok, forget that. What about using a delay line, such as those used in older
televisions instead?

Now the only thing i cannot help with is the pinouts for such one thing and
the delay it provides...

I think those things were in the microsecond range, and weren't really
for clean digital signals. You'd probably have to use some active
circuit like a one-shot to get to the millisecond area.
I remember using crystal delay lines, and you're right, they were in the
microsecond range and were used on RADAR synchronizers. I've seen them
in ATE, as well.

There are sophisticated trigger delay devices available, but such things
are costly. Depending on the OP's budget on building this
servomechanism, I would highly recommend using one. You feed the
trigger signal in, and can tap off one or more programmable delays. If
you get one with one output for each servo (or if your sync signal is
one of the servos), you can digitally program each one separately. The
digital alignments and separate synchronization should make a well
behaved machine.

--
Al Brennan
 
On 9 Mar 2005 21:02:25 -0800 in sci.electronics.basics,
stratus46@yahoo.com wrote msg
<1110430945.494805.255750@o13g2000cwo.googlegroups.com>:

On Semiconductor still shows dual 64 bit shift registers. Stack up 512
bits, clock at 500KHz and get 1mS delay with 2 uSec resolution. Or, did
someone say PIC?
I don't think there's a system clock involved. The delay has to be
triggered by the event that is to be delayed. Have I got that right?

--
Al Brennan
 
Not what I had in mind, no. The OP wants a delay on both the leading
and trailing edge, I.E. maintain the original pulse width, just delay
it. Think of this as a 1 bit digitizer and the shift register is the
memory. If your clock is good, no temperature variations, very
predictable and pretty simple. Take the output from different bit
counts and/or vary the clock rate for different/multiple delays.
GG
 
On 10 Mar 2005 21:32:34 -0800 in sci.electronics.basics,
stratus46@yahoo.com wrote msg
<1110519153.984390.183960@g14g2000cwa.googlegroups.com>:

Not what I had in mind, no. The OP wants a delay on both the leading
and trailing edge, I.E. maintain the original pulse width, just delay
it. Think of this as a 1 bit digitizer and the shift register is the
memory. If your clock is good, no temperature variations, very
predictable and pretty simple. Take the output from different bit
counts and/or vary the clock rate for different/multiple delays.
I guess I didn't explain myself clearly. I don't think there is a
system clock, so to use this approach, a system clock has to be
developed and synchronized to the release pulse.

--
Al Brennan
 

Welcome to EDABoard.com

Sponsor

Back
Top