Maker Pro
Maker Pro

Reference pulse, how to extract it?

J

Jacques St-Pierre

I need your help, any suggestion swill be appreciate.

The problem: I need to find a way to extract the reference pulse from a
engine timing wheel. I do not know what is the simples way to proceed. More
info:

The engine use a timing wheel with 36 even space teeth with a 37e teeth
squeeze between two others that is the reference pulse (the zero). I engine
use a variable reluctance pickup to read the pulse.

I used a LM1815 to get the obtain a clean pulse from that sensor, it work
fine.

Now, I need to find a way to extract the 37e pulses from the other to
generate a reference pulse. So I will end up with one single pulse by wheel
turn.

How I do that?


Jacques St-Pierre
 
J

Jan Panteltje

I need your help, any suggestion swill be appreciate.

The problem: I need to find a way to extract the reference pulse from a
engine timing wheel. I do not know what is the simples way to proceed. More
info:

The engine use a timing wheel with 36 even space teeth with a 37e teeth
squeeze between two others that is the reference pulse (the zero). I engine
use a variable reluctance pickup to read the pulse.

I used a LM1815 to get the obtain a clean pulse from that sensor, it work
fine.

Now, I need to find a way to extract the 37e pulses from the other to
generate a reference pulse. So I will end up with one single pulse by wheel
turn.

How I do that?

I can think of many ways.
Perhaps, if the speed does not change extremely fast, you can use a micro
to count some reference clock pulses between the teeth.
Say you measure 100, 101, 103, 52, 52, 105
Then you know that the first 52 was the extra tooth, you also know the speed,
and you know it was speeding up.
 
J

Jacques St-Pierre

I can think of many ways.
Perhaps, if the speed does not change extremely fast, you can use a micro
to count some reference clock pulses between the teeth.
Say you measure 100, 101, 103, 52, 52, 105
Then you know that the first 52 was the extra tooth, you also know the
speed,
and you know it was speeding up.


That is the way we thought we will do it, but maybe we can find a more
simple way, a totally hardware method. The resulting pulse will be use to
generate an synchronization interrupt to a CPU.

Bye
Jacques
 
J

Jacques St-Pierre

What the heck is a "37e teeth squeeze between two others?"

It look a bit like this:

35 36 R 1 2 3
.... ____|~|____|~|__|~|__|~|____|~|____|~|____ ...

R = Reference (Zero) = 37e Pulse
That the one I need to extract to mark that the next pulse is 1
Note: The time between those pulses change with the engine speed

Bye
Jacques
 
N

nospam

Slick! Two sensors spaced 1/2 normal spacing... makes it trivial and
time/speed independent!

If they wanted to use two sensors they would not have put the index 'tooth'
in the middle of the others would they. The electronics or more likely
software required to figure it out with one sensor is cheaper and more
reliable than an second sensor.

--
 
N

nospam

bg said:
-
Even easier is to punch a hole thru the side of the gear and sense it
without the teeth interfering. I don't see why anyone would want to sense
an odd tooth like this, I must be missing something.

In the volumes engines are made the cost of an extra few bytes of ROM if
it's done in software or a few hundred transistors if it's done in an ASIC
would not even buy a hole for another sensor never mind the sensor and
cable and connector and extra unreliability.
--
 
J

Jacques St-Pierre

Would you prefer analog or digital? Looks like John Fields is
contemplating a digital (up/down counter) method, which I'm sure he
will whip out momentarily ;-)

If you want analog it will be late week-end before I get to it... I'm
working a critical project at the moment.

Normally I prefer digital circuit, but analog may also be acceptable if it
can be simpler or more reliable. I will try to draw some kind of digital
circuit myself using your suggestions, I am not very
good with analog. I will also try to do it by software, it may be a lot more
simple to use a low cost MCU to do the job than design a digital circuit or
use any ASIC.

Bye
Jacques
 
J

Jacques St-Pierre

What I'd do is measure the time between successive teeth, look at the
differences between them, and when there was a large positive
difference, the next tooth up would be #1.

Note that the time differences between the normal teeth will be
relatively small as the engine speeds up or slows down and they can
all therefore be rejected as tooth #1. However, the time difference
between between T35 and T36 will be so much greater than the time
difference between T34 and T35 that it can be used to signal that the
next tooth up will be #1.

What are the high and low speed limits of the engine?

We are talking around 500rpm at idle to 4500rpm at maximum. But we can
forget that speed is very low when starting the engine.

Bye
Jacques
 
J

Jacques St-Pierre

Use two sensors spaced to pickup #35 and #36. The output would be a 1 and
a
1 as the teeth pass. When #36E passes the output will be a 0 and a 1 - Do
the logic, change the space, whatever.


I wish I can do that, but we can not modified the mechanic involved. The
manufacturer install only one sensor and the describe encoder wheel, I must
work with what is there.

Bye
Jacques
 
J

Jacques St-Pierre

I don't understand. Does that mean you have to be able to detect the
Low RPM during crank. In my day that was around 18RPM that had to be
detected.

...Jim Thompson

Yes, I need to read the pulse at crank time, I need to inject fuel at proper
time for the engine to start.

Bye
Jacques
 
W

whit3rd

The engine use a timing wheel with 36 even space teeth with a 37e teeth
squeeze between two others that is the reference pulse (the zero). I engine
use a variable reluctance pickup to read the pulse.

I used a LM1815 to get the obtain a clean pulse from that sensor, it work
fine.

Now, I need to find a way to extract the 37e pulses from the other to
generate a reference pulse.

A suitable method might be to phase-lock to the 36-tooth signal,
and discriminate on the phase detector output (which will
glitch at the extra tooth). Or, you could run your phase-locked
loop at a higher frequency (5x) and only trigger when
the midcount (from 2 to 3) coincides with a pulse output
from the LM1815.
 
R

Rich Grise

It look a bit like this:

35 36 R 1 2 3
... ____|~|____|~|__|~|__|~|____|~|____|~|____ ...

R = Reference (Zero) = 37e Pulse
That the one I need to extract to mark that the next pulse is 1
Note: The time between those pulses change with the engine speed

Would you please re-post this, but in a fixed-width font?

It looks like pulse "R" comes between pulse "36" and "1", but
during the three quick ones, the pulses don't line up any more.
Are you saying that 1-36 are one interval, then then 36-1 would
be the same interval, with the "R" pulse nestled between them,
or should I take your diagram at face value, and assume that
each rotation is ~180 degrees out of phase with the last?

Thanks,
Rich
 
That is the way we thought we will do it, but maybe we can find a more
simple way, a totally hardware method. The resulting pulse will be use to
generate an synchronization interrupt to a CPU.

Frequency to voltage converter (such as charging/discharging a
capacitor) feeding a differentiator?

I really like the software method though - compare the most recent
inter-pulse time to the average of the last 5 inter-pulse times.
If it's less than say 70% of the average, consider it to be the extra
tooth. Can also easily add things like disable below a certain
RPM, etc, consistency checking by counting pulses since the last extra
tooth detection (should equaly one revolution's worth of pulses
regardless of speed), etc. Small OTP micros are pretty cheap. But I
bet you could do it in your main processor with some care in
programming.
 
J

Jacques St-Pierre

What IS your minimum crank RPM specification?

Not sure, I will have to ask the engine expert guy.

In the mean time, we will try to do it by software at the beginning of next
week. We are actually assembling a small prototype kit to test the method.

Bye
Jacques
 
J

Jacques St-Pierre

Would you please re-post this, but in a fixed-width font?

It looks like pulse "R" comes between pulse "36" and "1", but
during the three quick ones, the pulses don't line up any more.
Are you saying that 1-36 are one interval, then then 36-1 would
be the same interval, with the "R" pulse nestled between them,
or should I take your diagram at face value, and assume that
each rotation is ~180 degrees out of phase with the last?


Space between all tooth is constant (1 to 36 & 36 to 1), the 37th teeth is
nested in the middle of the time between 36 and 1. My drawing is not really
exact, using the characters to draw graphic is far than precise, sorry.

Bye
Jacques
 
F

Frithiof Andreas Jensen

Normally I prefer digital circuit, but analog may also be acceptable if it
can be simpler or more reliable.

You could lock a PLL to the teeth and clock a state machine (modula 4
counter) with it and XOR the output from the state machine at State 0, where
the normal teeth are, with the sensor signal. That way the reference slot
should show up as a 1 every cycle.
 
P

Phil Hobbs

Jim said:
Phase lock to a 300:1 speed variation? Bwahahahahahahaha ;-)

...Jim Thompson

You can do that. I built a lock-in once that used a VCO with an
exponential frequency vs voltage curve, plus loop filters based on
operational transconductance amps whose bias current came from a F-V
converter. All the poles tracked the operating frequency, so the loop
dynamics were very nearly constant over a 1000:1 frequency range.

You wouldn't do it that way nowadays, but it was fun at the time.

Cheers,

Phil Hobbs
 
R

Rich Grise

Space between all tooth is constant (1 to 36 & 36 to 1), the 37th teeth is
nested in the middle of the time between 36 and 1. My drawing is not really
exact, using the characters to draw graphic is far than precise, sorry.

If you compose them in a fixed-width font (either set your newsclient
for "courier", or compose it in, say, Notepad and copy/paste it.

As far as sensing them, I"d be tempted to do a timer capture and
simply count intervals - when you get 2x 1/2 time in a row, that's
your syne pulse.

Or any one of a billion other ways. ;-)

Good Luck!
Rich
 
Top