How to delay one signal of tens of nanoseconds ?

The place to ask all those likely daft questions!
Post Reply
sporniket
Posts: 181
Joined: Sat Sep 26, 2020 9:12 pm
Location: France
YOUTUBEURL: https://www.youtube.com/channel/UCiQFiA ... MTPAh7ZTAw
Contact:

How to delay one signal of tens of nanoseconds ?

Post by sporniket » Thu Apr 22, 2021 5:06 pm

Hello,

A little bit of context : for my project to replace the ACIAs, I assessed that I needed to use the Enable signal from the 68000 to switch on/off the level translator. And that the switch off should happen between 10ns and 50ns after Enable goes low, according to the MC6850 datasheet.

So I am vaguely remembering that a way to get this delay is to use series of "NOT" gates to accumulate the propagation delays of those gates and obtains the result. I thus plan to use this one (an hex shmitt-triggered inverter) https://www.mouser.fr/ProductDetail/STM ... 2BiQ%3D%3D . I choosed the Schmitt triggered instead of a classic inverter for the histeresys.

and so I have 2 questions :
  • Is it the appropriate way to get such delay ?
  • The datasheet hints that the propagation delay is dependent to the capacitance of the trace, with 2 datapoints at 15pF (typ. 5.5 ns) and 50pF (typ. 7ns). My traces will be short, especially where I feed one gate output into the input of the next one. Should I plan to add a capacitance (say around 20pF) on each chained output to be sure of the actual delay ?
(I have no oscilloscope and it is out of budget for me, otherwise I could find out the answer to question 2 myself)

User avatar
PaulJ
Trusted Guru
Trusted Guru
Posts: 1508
Joined: Sun Apr 08, 2018 1:14 am
Location: USA

Re: How to delay one signal of tens of nanoseconds ?

Post by PaulJ » Thu Apr 22, 2021 5:14 pm

Out of curiosity why are you replacing 6850's and if so with what? Just something to see if you can do it or you have a specific purpose? :coffee:

sporniket
Posts: 181
Joined: Sat Sep 26, 2020 9:12 pm
Location: France
YOUTUBEURL: https://www.youtube.com/channel/UCiQFiA ... MTPAh7ZTAw
Contact:

Re: How to delay one signal of tens of nanoseconds ?

Post by sporniket » Thu Apr 22, 2021 5:28 pm

PaulJ wrote:
Thu Apr 22, 2021 5:14 pm
Out of curiosity why are you replacing 6850's and if so with what? Just something to see if you can do it or you have a specific purpose? :coffee:
I want to replace both 6850s with a single ESP32 to connect bluetooth devices (keyboards, mices, game controller and bluetooth midi) instead of the IKBD (and eventually have a bluetooth IKBD as well, but the later is not a priority for me).

The hardware delay is because : I found out that the latency of GPIO interrupt is too high (2 us), even with a workaround that someone has found (50ns). The workaround is fine for reading the bus, but when writing to the bus, the timing constraint to stop driving the bus at most 50ns after E goes low cannot be done by the firmware. Thus I realized that using a delayed E to drive the enable pin of the level translator should do the trick.

User avatar
exxos
Site Admin
Site Admin
Posts: 14848
Joined: Wed Aug 16, 2017 11:19 pm
Location: UK
YOUTUBEURL: https://www.youtube.com/user/exxosuk
Contact:

Re: How to delay one signal of tens of nanoseconds ?

Post by exxos » Thu Apr 22, 2021 5:44 pm

Use a 100MHz clock to add 10ns delays.

Use a couple of slow inverters in series.

Use a RC delay.
https://www.exxoshost.co.uk/atari/ All my hardware guides - mods - games - STOS
https://www.exxoshost.co.uk/atari/store2/ - All my hardware mods for sale - Please help support by making a purchase.
viewtopic.php?f=17&t=1585 Have you done the Mandatory Fixes ?

cmorley
Posts: 224
Joined: Tue May 28, 2019 5:46 pm

Re: How to delay one signal of tens of nanoseconds ?

Post by cmorley » Thu Apr 22, 2021 6:42 pm

If interfacing though a PLD (or CPLD) you can route through a spare pin to get extra delay. e.g. an ATF22V10 pinnode is ~10ns IIRC

Post Reply

Return to “NOOB QUESTIONS”