Close

One-Shots Soldered... now for the "fun"-part... & 5V TTL at 3.6V

A project log for sdramThing4.5 "Logic Analyzer"

An AVR, 128MB SDRAM DIMM, old laptop LCD, and a handful of TTL chips -- 30+MS/s 32-channel logic-analyzer interface for an analog 'scope

eric-hertzEric Hertz 02/11/2015 at 10:501 Comment

Soldered up the one-shot circuitry. I'm now calling this sdramThing3.5, as it is no longer backwards-compatible with the old code without removing the chips from their sockets and jumpering some pins...

There are two types of one-shots necessary:

The Chip-Select pins and the DQM pins...

Chip-Select needs to be active for one clock-cycle, whereas DQM needs to be *inactive* for one clock-cycle. It's just a matter of switching the AND gate with an OR gate, and swapping a couple other pins.

Which reminds me, The end-result is using a 7474 rather than a 74574 (or '374), because the '74 has a !Q output, which saves me from needing a separate inverter. AND, the '74 has Asynchronous Set/Reset inputs, which can be used for my "bypass One-Shot" mode. Nice.

Still, in all, it's 4 additional TTL chips, and I'll possibly be adding a '574 to help with synchronization. (e.g. put a delay before and after the gates so we know the end-result will output with the edge of a clock pulse).

As it stands, I'm just trying to get it working in "bypass" mode, which is basically the old code with the addition of the new "one-shot-enable" pin being explicitly disabled. And... it's not working. The DQM circuitry seems to work in bypass-mode, but the Chip-Select does not. In fact, it does *seem* to work, viewing it with the 'scope. But the system doesn't function.

So, a few things:

I've only got 5V TTL chips of the variety I need ('74, AND, OR, also a counter to divide the clock-frequency for the AVR, but that's NYI). And, surprisingly, they seem to work much better than I feared with 3.6V. There's been some experimenting: The 74xx series seems to work best, the 74Sxx series next, then the 74LSxx series... (I've been using the LS series as LVDS drivers for quite some time, but that's an *entirely* different set of limit-stretching, not only 3.6V supply, but also driving a heavy load that forces TTL outputs to swing less than 1V p-p).

The logic adds a non-insignificant delay, of course, and that may be furthered by the use of these old chips out of their voltage-range.

OTOH, I tried again with 8MHz, which is *much* shorter than the additional delay, and it's still not working with the AND gate installed (physically bypassing it, however, works... strange).

So, obviously, there's still a bit to be done. Might have to add some delays in the code...

I had a few days' down-time, and now that I'm on it, it's hard to stop... In fact, it's been pretty much non-stop until I exhausted all my hardware-testing options... The only thing now is to look into adding software-delays, and doing-so is a bit daunting. There's a lot of code I haven't really looked-into for quite some time. Probably take an hour or so to start to refamiliarize myself, but then I'd be back to non-stop. So, at 3AM, it's probably a good stopping-point. Just aggravating to leave it unknown like this. And, obviously, it's taking quite a bit more time than I planned, which is also somewhat frustrating.

Discussions

Eric Hertz wrote 02/11/2015 at 19:38 point

And... it's gone from fun and promising to annoying.

One time, out of over a half-dozen, it worked at 8MHz... a backwards step, as 3.0'd been working at 20MHz. Of course, an end-goal could probably be furthered by faster chips. But, regardless, there's the necessity to verify the data written, as doing this "blind" is slow and unpredictable.

I've written the read-back/verify code, long ago, and could probably implement it again with little change, but then there's the *other* aspect, which is that if these delays are causing problems *writing* then they'll most certainly also cause problems *reading*. Further, as said before, read-back with full-speed is a bit more of an ordeal. I'm curious, but I'm definitely losing steam. This was supposed to be a plug-in add-on with a tiny bit of additional code, and instead it feels like it's turning into the early-days of sdramThing1.0, again. Guess I just have to wrap my head around its becoming that, and rekindle that old energy.

It is cool to see these ancient 5V TTL parts working, and working *together* at 3.6V. For low-speed glue-logic, LED inverters, whatnot, that's excellent. It's also excellent in the LVDS-driver scenario. They may even work in *this* scenario, if I can characterize the delays a bit. It may happen. Maybe today.

  Are you sure? yes | no