• Contemplations on CMOS/TTL interfacing/hacks

    01/05/2017 at 09:56 0 comments

    Discussion with @Ted Yapo and @jaromir.sukuba over at one of my project's logs wound 'round to the concept of level-shifting for various CMOS voltage-supplies and TTL... and it got me thinking.

    The basic gist of that conversation was:

    3.3V CMOS outputs can typically drive TTL inputs, but cannot be relied on to drive 5V CMOS inputs. Similarly, it's not reliable to feed a 5V TTL output into a 5V CMOS input.

    Thus, there's the 74xCT series (ACT, HCT, etc.).

    Basically, if you want to interface a TTL output signal to a 5V CMOS input, you should use the HCT or ACT series, rather than the HC or AC series, at that juncture in the circuit.

    And, as I understand, that same series can be used to interface a 3.3V CMOS output to a 5V CMOS input.

    There should be plenty of info about this 'round the web, and surely more reliably-documented than anything I could come up with. Look for "level-shifting" and check out the datasheets for these series.


    This "page" is mostly about hacks. These concepts should *NOT* be used in products, without *carefully* looking into the details that I won't be going into, here, to any extent except to throw out some ideas/experiences... for HACKS-SAKE.


    So, here are some of my experiences with the TTL series' running at 3.6V. We're talking e.g. the 7400, 74S00, 74LS00, and 74F00. They're only spec'd down to 4.5V, but I have had some luck using TTL at 3.6V, and you might too.

    • For #sdramThing4.5 "Logic Analyzer", as regular-ol' glue-logic, a MUX, a latch, and some boolean-logic. There were definite performance-hits, but it was functional. I eventually "upgraded" to the HC series and, of course, the system was able to run faster. But. "It worked" with lowered-expectations, and a lot of experimentation, 'scoping, etc. with TTL's running at 3.6V.
    • For that system, as well as my AVR-based LVDS-LCD controller: https://sites.google.com/site/geekattempts/home-1/drive-an-old-laptop-display-from-an-avr I've used 74LS86's (alternatively 74LS00's, and 74LS32's) running at 3.6V to drive the LVDS signals into old laptop displays. (much slower than normal FPD-Link... 16-128Mbps). Note that LVDS has a differential voltage of something like 0.1-0.3V, and has a 100ohm load at the end, which just happened to work out darn-near perfectly when directly-driven by the LS86's. Again, a lot of experimentation went into this! But the key, here, is that "it worked" *way* out of specs, and surprisingly reliably (two systems running 24/7 for over a year!).

    Again, Neither of these experiences should be *expected* to work for you just because I happened to luck-out. But, for hack's sake don't be deterred from giving it a try (and expect it to be flakey!).


    Why? Mostly because those were the supplies I had on-hand.

    Actually, the LS->LVDS system went through *many* iterations involving better-suited systems before settling on the (simplest) direct-driving via 74LS86. Another attempt used AHC parts, an inverter and a buffer. These are CMOS, rated for 3.3V, quite a bit faster, and most importantly (for LVDS) have much higher drive-strength, thus requiring series-resistors to keep the voltage low-enough.


    The recent discussion with Jaromir, as I said, got me thinking a bit about the xC vs xCT series. As I understand, the xCT series is basically identical to the xC series *except* that its inputs are rated for TTL-signals.

    So... does that mean that the internal circuitry is identical, exclusive of the inputs?

    The thing is: I've access to a bunch of ACT parts, but not so many AC. Similarly for HCT and HC. Others might run into the same when working on a project at a hacker-space, hackathon, convention, etc.

    So, why the question...? Because ACT and HCT are *only* specified for 4.5-5.5V, just like TTL. But, if internally they're identical to the AC and HC series, then maybe...

    Read more »

  • 40107 Ch2 - The Saga Continues

    12/04/2016 at 19:26 0 comments

    See Chapter 1 over at: https://hackaday.io/page/2303-40107


    When I first signed up for this account I was like "oh yeah! I'm a pretty cool part-number!" And then I realized the part-number I thought I was was actually the 40106.

    The other day I stumbled upon another 40107:

    This guy was sitting in my "unsorted ICs" bin, which mostly came from old motherboards, etc.

    (I was sorting through it trying to find cool uCs/CPUs to use for the 1k Challenge).

    But, this guy... This guy... Oh man, I remember this guy!

    How cool is it that it has my user-number?!

    'Cause, when I was 15, I built an LCD controller... The biggest TTL project I'd ever attempted, and amongst my first microcontroller projects:


    And a HUGE part of designing that circuit was reverse-engineering that friggin' LCD display... for which there was basically no data, and despite having somewhat standard row/col drivers (whose datasheets took *weeks* to locate in the early-internet-era), those were driven by an unknown programmable-logic device.

    So, some guy was awesome enough to respond to a forum-post with a schematic of the motherboard this was originally connected to (where he got it? Boggles my mind):

    From this I was able to figure out the missing pieces regarding what to feed that PLD, and obviously, the much-needed pinout (nevermind contrast, -20V, etc.).

    So, obviously, this image is somewhat-deeply ingrained in my brain... And stumbling upon that 40107 chip marked "AMSTRAD", this image popped into my head... and I was like "Whoa, this is the character-set ROM for my LCD project!"

    .... yeah... no. That's the 40109.

    But it was a pretty cool moment, anyhow. And pretty funny, looking back on it. And even funnier when you consider I did similar with the 40106 CMOS chip.


    So I did some searching, and it turns out the 40107 is a BIOS ROM, I think, from that same machine... One of two (for the 16-bit bus?).

    And a little bit more searching resulted in a page where someone had listed all the ROM chips used in Amstrad computers, and another page where these ROMs are actually referenced in the source-code in a project on Github... Weird? (Emulator?)

    It's pretty wild how much info is out there...


    The machine these came from... that's another story, but let's just say the Amstrad PPC640 was a pretty groovy "portable" (read: luggable all-in-one) PC-compatible that I used to carry around with me, coding in Basic, and playing old games, even during the early Pentium era:

    And I feel a bit ridiculous for having taken *two* of them apart (who gave me these, anyhow?! And did I really have *two* at one point?! I definitely have two *screens*. Weird.)


    Ahhh the ridiculous rabbit-holes...

    Anyways, I suppose I might try to think of something to do with that 40107 to go along with my other 40107's (I think I ordered two)... So now I've got a ROM and some NANDs... 'spose I *could* use that ROM's randomish-data as something like a "character-generator" or "sprites"... or...?

  • Gerald Goertzel introduces esot.eric to Jackson Pollock

    10/23/2016 at 18:35 5 comments

    It's *just now* come to my attention that maybe, at times, my coding-style can be a bit like a Jackson Pollock painting.

    First and foremost, there's a previous page wherein I explain that the screenname "esot.eric" chose me, not the other way around, so I won't go into those details here except to say it took a long time to become aware of and accept that as my fate, and I'm still doing a shitton to defeat it.

    Alright, I'll admit... there was a time, once, one time, ONE TIME, where I was high-enough to see something interesting in a Pollock-esque painting... But, frankly, it's always been just a jumble to me, and his methods... I mean... did he really *intend* anything by his work other than the intention of being as obscure as possible? (Remember the "F*cking Lady Friend" in The Big Lebowski?). Alright, maybe, that's a bit extreme, I mean, I can sorta make something out, if I cross my eyes like a Magic-Eye poster... And if I'm *really tired* and can't focus on anything else, I suppose it ain't so bad... akin to staring at the contours of a rock, or marble... More akin to staring at linoleum, being man-made and all... but alright, it's not *so* bad... But if you'd've asked me 10-15 years ago I'da said what I said earlier, "nothing more than a jumble, how's a guy get famous doing that sh*t? Kids fingerpaint better than that!"

    Anyways, it's *just now* come to my attention that maybe, at times, my coding-style can be a bit like a Jackson Pollock painting.

    @agp.cooper's #Spectrum Analyser Code caught my attention because, frankly, it's a rare-occasion I hear of others who've even heard of the Goertzel Algorithm, let alone make use of it.

    I used it back in the day for an undergraduate-research project wherein we attempted to detect the dielectric properties of materials via fringing-electric-field sensors... Basically, we made really simple capacitive-touch-screens that could, plausibly, one day, act similar to a CT-scan, or at the very least determine whether a bag of chips had gone stale. And... doing-so, in the lab, meant a *lot* of lab-equipment, so my "job" was to turn all that equipment into an embedded-device.

    Sheesh, this is turning into a really long story.

    So, the Goertzel Algorithm... basically... it's like a spectrum-analyzer... Probably everyone here has heard of that, and the Fourier Transform, but I want to post a picture... of, yahknow, one of those things people used to pay *big bucks* to have attached to their stereos... and now we carry around in our pockets.

    Except, unlike a graphic-equalizer/spectrum-analyzer/Fourier-Transform, the Goertzel-Algorithm only looks at *one* specific frequency... ONE of those vertical bars.

    Why? Because it's much faster, if you *know* what frequency you're looking for, to look *only* at that frequency, than to look at *all* the frequencies going-on simultaneously. An embedded-system of my undergraduate-era (or at least the ones within my skillset) could handle that, but might've struggled quite a bit with looking at "all the frequencies". (Going back only a few years prior, a few Goertzel Algorithms running simultaneously might've been used somewhat regularly to decode DTMF, yahknow touch-tone phones).

    Oy. WTF am I doing, here...?

    My least-favorite class in college was Technical Communications, despite having had a bit of a crush on the teacher the second time I took it... (and despite the fact I spend a shitton of time writing technical bullsh*t in my code and on the interwebs). The big thing they kept harping on was "who is your audience?" I'd never been good at drawing, but somehow drew the most detailed drawing of students being whipped through flaming hoops during that class... One of the best drawings I've ever done, I'd say... I coulda been a cartoonist!

    So... who the H-E-Double-Hockey-Stick...

    Read more »