Pulse generator

For discussing the 65xx hardware itself or electronics projects.
Post Reply
User avatar
Ruud
Posts: 259
Joined: 12 Dec 2003
Location: Heerlen, NL
Contact:

Pulse generator

Post by Ruud »

Hallo allemaal,

I need a circuit that generates a pulse of about 20-30 ns. after every rising or falling edge of PHI2 after 200 ns. Has anybody an idea?
Many thanks in advance.

Code: Select all

    ___
   / __|__
  / /  |_/     Groetjes, Ruud 
  \ \__|_\
   \___|       URL: www.baltissen.org

User avatar
GARTHWILSON
Forum Moderator
Posts: 8774
Joined: 30 Aug 2002
Location: Southern California
Contact:

Post by GARTHWILSON »

That's not very clear. Can you make a timing diagram with ASCII.
User avatar
8BIT
Posts: 1787
Joined: 30 Aug 2002
Location: Sacramento, CA
Contact:

Post by 8BIT »

Assuming you are using a 1MHZ Clock for your PH2, you could built a 40MHz clock, run it through a counter to divide it down by 40 for PH2. You will have a 25ns pulse 200ns after PH2 hi to low by decoding the 8th pulse. You will have a 25ns pulse 200ns after PH2 lo to hi by decoding the 28th pulse.

Here is an example:

Code: Select all


 40Mhz   _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

/40  PH2 ________________________________________----------------------------------------___________

8&28     ______________--______________________________________--___________________________________

It would take up some hardware, or at least one CPLD, but would be very reliable.

Daryl
raccoon
Posts: 21
Joined: 05 Feb 2006
Location: The Netherlands

Post by raccoon »

Hallo, Ruud ;)

Functional diagram:
6502.org wrote:
Image no longer available: http://i1.tinypic.com/s4lvr8.gif
Omit A or B and the OR gate if it must be susceptible to one edge only.

I'm not a component availability expert, but there are plenty of suitable monostable multivibrators out there.
I trust my somewhat flawed English is comprehensible to all.
kc5tja
Posts: 1706
Joined: 04 Jan 2003

Post by kc5tja »

Use a XOR gate with some kind of delay line. Note that CMOS inverters in the 74AC family have a 4.5ns propegation delay. Therefore, 25ns/4.8ns = just over 5 inverters worth, or precisely what would fit in one chip. Therefore:

Code: Select all

                +----+     +----+   +----+     +----+   +----+     +----+   +---+
phi2  o-----*---| -1 |o---o| -1 |---| -1 |o---o| -1 |---| -1 |o---o| -1 |---|   |
            |   +----+     +----+   +----+     +----+   +----+     +----+   | ^ |--->
            +---------------------------------------------------------------|   |
                                                                            +---+
That should provide roughly 27ns pulses. If you need wider, use more inverters. Note that the pulses generated will be 4.5ns trailing the respective edge of Phi2.
bogax
Posts: 250
Joined: 18 Nov 2003

Post by bogax »

kc5tja wrote:
Use a XOR gate with some kind of delay line. Note that CMOS inverters in the 74AC family have a 4.5ns propegation delay. Therefore, 25ns/4.8ns = just over 5 inverters worth,
Could probably make do with just a resistor and the input capacitance
for the delay.

25ns / 5pf = ~5k

(I see 4.5 (typ)-10 (max) pf in the data sheets)
kc5tja
Posts: 1706
Joined: 04 Jan 2003

Post by kc5tja »

I suspect that the input capacitance of a gate isn't exactly "well defined" any more than the propegation delays are. In fact, I suspect that the *reason* propegation delays are not precisely defined is because of varying input capacitance on gates you connect to it.
bogax
Posts: 250
Joined: 18 Nov 2003

Post by bogax »

kc5tja wrote:
I suspect that the input capacitance of a gate isn't exactly "well defined" any more than the propegation delays are. In fact, I suspect that the *reason* propegation delays are not precisely defined is because of varying input capacitance on gates you connect to it.
I doubt if either way will be particularly accurate. I suspect a chain of
gates will be more consistant.

A single resistor has only one virtue and that's simplicity (if it works
for him)
In general it's probably not a good idea to drive CMOS with slow
changing RC circuits unless there's some hysteresis , but this wouldn't
be that slow. (I think) it'd be roughly like using a passive pull up.
I've never tryed it with 74AC though.
User avatar
Ruud
Posts: 259
Joined: 12 Dec 2003
Location: Heerlen, NL
Contact:

Post by Ruud »

raccoon wrote:
Hallo, Ruud ;)
I'm not a component availability expert, but there are plenty of suitable monostable multivibrators out there.
Hallo Raccon,

This is exactly what I already designed, ussing two 74LS221. The reason I asked this question is that I hoped somebody could come with a smaller design. OK, just two IC's and a couple resistors and capacitors is not big but still I had a hope that somebody could even make a smaller design than that.

Code: Select all

    ___
   / __|__
  / /  |_/     Groetjes, Ruud 
  \ \__|_\
   \___|       URL: www.baltissen.org

User avatar
Ruud
Posts: 259
Joined: 12 Dec 2003
Location: Heerlen, NL
Contact:

Post by Ruud »

8BIT wrote:
Assuming you are using a 1MHZ Clock for your PH2, you could built a 40MHz clock, run it through a counter to divide it down by 40 for PH2.
Hallo Daryl,

I have thought about that solution too. But I need a replacement for a circuit that is found in http://www.baltissen.org/images/6502c.p ... /6502c.png , three 74LS221 parts found in the middle and bottom of the PNG.
I had hoped for even a smaller design. But your solution needs at least three IC's. Thank you anyway for your input.

Code: Select all

    ___
   / __|__
  / /  |_/     Groetjes, Ruud 
  \ \__|_\
   \___|       URL: www.baltissen.org

bogax
Posts: 250
Joined: 18 Nov 2003

Post by bogax »

Ruud wrote:
.. I need a replacement for a circuit that is found in http://www.baltissen.org/images/6502c.p ... /6502c.png , three 74LS221 parts found in the middle and bottom of the PNG.
I had hoped for even a smaller design. But your solution needs at least three IC's. Thank you anyway for your input.
Ack! TTL!

Looks (from the datasheet) like a single 74ls86 quad XOR gate
would do it, two for delay (2 x ~12ns typ) and two for output(s)
(double the fan out, good thing for clocks, at the cost of some
possible skewing)
Being TTL, it's asymetrical but (again from the datasheet)
looks like if you tie the delay inputs together, the HL and LH
delays will be similar.
ie

Code: Select all

                              __
--+------------------------+-|   \
  |                        | |    >--
  |                     +----|__ /
  |   __         __     |  |
  +--|   \   +--|   \   |  |  __
  |  |    )--+  |    >--+  +-|   \
  +--|__ /   +--|__ /   |    |    >--
                        +----|__ /
bogax
Posts: 250
Joined: 18 Nov 2003

Post by bogax »

bogax wrote:
Being TTL, it's asymetrical but (again from the datasheet)
looks like if you tie the delay inputs together, the HL and LH
delays will be similar.
Heck! Darn! (other obscenities as required)

I miss read the datasheet.

looks like tieing one input low gives the most similar
delays so:

Code: Select all

                            __
--+----------------------+-|   \
  |                      | |    >--
  |                   +----|__ /
  |                   |  |
  |   __              |  |  __
  +--|   \     __     |  +-|   \
     |    )---|   \   |    |    >--
  +--|__ /    |    >--+----|__ /
  |        +--|__ /
  |        |
  GND      GND  
but you still get 10 or 20 ns difference between
the HL and LH edges.
I suppose the difference in delay between tieing the
inputs high and tieing them low could give you a choice
of pulse widths
User avatar
Ruud
Posts: 259
Joined: 12 Dec 2003
Location: Heerlen, NL
Contact:

Post by Ruud »

bogax wrote:

Code: Select all

                            __
--+----------------------+-|   \
  |                      | |    >--
  |                   +----|__ /
  |                   |  |
  |   __              |  |  __
  +--|   \     __     |  +-|   \
     |    )---|   \   |    |    >--
  +--|__ /    |    >--+----|__ /
  |        +--|__ /
  |        |
  GND      GND  
Hallo Bogax,

I have seen using a 86 in this way before but didn't think of it. And I'm quite sure I'm going to use it, although in a slightly different way. Many thanks for your input!

Code: Select all

    ___
   / __|__
  / /  |_/     Groetjes, Ruud 
  \ \__|_\
   \___|       URL: www.baltissen.org

Post Reply