Tech Support > Computer Hardware > Microprocessors > hardware triggerable one-shot with 80c167
hardware triggerable one-shot with 80c167
Posted by Uwe Hercksen on March 1st, 2004


Hello,

the very old timer intel 8253 and 8254 could be used in mode 1 as a
hardware triggerable one-shot with programmable pulse length.

Now I am using the infineon 80c167 and need a one-shot with programmable
pulse length and hardware triggering too.
There are a lot of counters T1 to T8 and there is the Capture/Compare
unit too, but I found nothing about one-shots in the user's manual.
Some timers could be gated with external signals, but only with gate
levels and not with gate edges (rising or falling)

Any idea how to do this?

I need a programmable pulse length of about 10 to 100 microseconds and
the delay between hardware trigger and the leading edge of the pulse
should be less than about 2 microseconds.

Thanks a lot and bye

Posted by Gary Pace on March 2nd, 2004


Many ways I guess.

This is a bit rusty to me now, but if I remember correctly, you might want
to consider these ideas :

Idea 1 :

- Set one of the CAPCOM timers to clock from an external source.
- Connect a compare register to this clock, with a compare value of 1
- Set the timer to zero, waiting to count to 1 when the trigger event occurs
- The trigger event will immediately increment the count to 1 and set the
output
- In the ISR triggered by the compare event, set a new compare event to the
required time and set the timer to free run.
- When the new value is hit, the pulse will ne terminated and the ISR
entered again.
- In the ISR, reset the registers to be waiting for a new trigger

It'd take a bit more thought if you needed the pulse to be re-triggerable.

It should be real easy to meet your timings with the above scheme - but be
careful about fitting the interrupts into your priority scheme.

Idea 2 :
Another way would be to set the trigger to compare mode, and PEC a timer
run value to a CAPCOM timer control register. You could then set a double
compare event to generate your output edges on a pin, use the interrupt on
the second compare event to run an ISR that disables and resets the timer.

This is maybe a better way.

There are certainly better ways to do this.




"Uwe Hercksen" <hercksen@mew.uni-erlangen.de> wrote in message
news:404339BB.8000602@mew.uni-erlangen.de...


Posted by Uwe Hercksen on March 2nd, 2004




Gary Pace schrieb:

thanks a lot Gary for the ideas. I don't need retriggerable pulses.
It was very inspiring to mee.

Bye


Posted by Sauli Porttila on March 2nd, 2004


I would probably use PWM channel 2 or 3 in single shot mode. You still need
to use an interrupt from the trigger pulse to start the PWM, so the worst
case delay from the trigger pulse to the output depends on the interrupt
priority and any time you have the interrupts globally disabled. Since the
interrupt service is very simple - just set the PWM run bit - you can assign
it to the highest priority. The PWM:s also have a good resolution.

Sauli

"Uwe Hercksen" <hercksen@mew.uni-erlangen.de> wrote in message
news:404339BB.8000602@mew.uni-erlangen.de...



Similar Posts