Technology has this weird way of messing with you ! You expect something dumb to be easy and you find out it's the contrary...
Board One of this project is a manual/user bus controller : a HEX keypad lets you enter data and a few rows of hexadecimal 7 segment digits show the results. That is so DUMB that I was shocked it couldn't be made out of dirt-cheap, easy-to-use SOIC chips, like "one chip per digit" to keep timings and routing simple.
To be fair, you can find CD4511 in SOIC for $0.1.
Some 74xx4X chips work similarly and are covered extensively on web tutorials. But they are "BCD" converters, not "binary" or "hexadecimal". So this is the mess you get :
Let me put this in perspective : the boards will use SMD devices on flexible Kapton PCB, should be pretty compact, cheap and energy-conscious (because one board is nice but the power budget could be largely exceeded when all the boards run together, I hope it to run off a USB port...).
The first board will have at least 15 hex digits, and more if possible !
- 1 digit : SND address
- 4 digits : SND data
- 1 digit : SI4 address
- 4 digits : SI4 data
- 1 digit : Result address
- 4 digits : Result data
If possible :
- 4 digits for PC address
- 4 digits for NPC address
- 4 digits for current instruction
Did I mention that I couldn't find ultra-flat LED 7-segments displays ? Should I use 0603 SMD LEDs ? (They cost 10$ for 1Kpc so it's in the project's spirit, "a ton of dirt cheap parts to do fun things" and they can be driven by a HT1632 matrix controller)
I don't want to have to use a microcontroller but it looks like it is a necessary evil :-( I can't use a fistful of TIL311, they are expensive, obsolete, through-hole, power-hungry, thick and large...
A MCU will also solve the issue of timings, keypad input, sending the keypad data to the right output... But it will spoil the magic of not needing ANY program to drive/run the rest of the boards :-/
HELP !
Edit (2016) : solved ;-) see #DYPLED
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Go really old-school with 4-to-16 line decoders and a mess of SMD diodes in a diode-ROM with driver MOSFETs after.
or
GAL16V8's are cheap on ebay since they're discontinued. They're power-hungry, and I'm not sure if using programmable logic violates the "no-program" restriction. You can easily make a 4-bit to 7-segment hex decoder in them; I've done it. You often see the DIP and PLCC, but there is supposedly an SOIC package, too.
That's all I got at the moment...
Are you sure? yes | no
You'll see that I have played with diode ROMs in this project and I've solved the other issues with the #DYPLED :-)
* Cheap, thin: one TSSOP drives 4 digits (and I've got some crazy good deals on eBay)
* Easy to program : no PAL programming tool needed, just a plain Flash programmer that you load with C-generated data (PAL programming tools are a mess... and totally obsolete, no need to recover a 20-years old Windows antique to burn a dozen of chips)
* Low power
Are you sure? yes | no
Oh, I get it now. I was just late to the party...
Are you sure? yes | no
BEtter late than never :-) have a seat and enjoy !
Are you sure? yes | no
https://www.fairchildsemi.com/datasheets/MM/MM74C922.pdf
Too bad the new parts are relatively expensive (~$20 range) and kind of hard to find. There are a few cheap sources on aliexpress.
Alternatively, you could use a parallel FLASH chip as an 16:4 encoder and may be a 555 and some feedback to make a state machine for debouncing.
Back in first year University, I built a 3 digits BCD DAC with a display and a parallel keypad interface. I used 4017 as a state machine to advance to the next digit. It even have a blinking cursor and I used /RESET input as the erase. Can't remember the details of how I did it, but it has a lot of discrete and CMOS 4000 parts.
Are you sure? yes | no
Hi !
A long time ago, I have chosen the Parallel Flash route and it's all being developped as #DYPLED for now :-)
A simplified version will be used for the display board.
Are you sure? yes | no
Hey Yann,
I actually struggle a bit trying to understand the architecture.
I gather its a stack CPU rather than a Load/Execute/Save or is it something else?
Can you clarify?
AlanX
Are you sure? yes | no
Hi Alan !
the YASEP architecture uses 5 register-mapped memory ports. In this case (and quite a few others implementations), 2 pairs of registers are respectively mapped to 2 independent address spaces. The last interface maps to the instruction memory.
Think of it like a modified CDC6600 where, instead of having registers dedicated to memory read and write, all the accesses can be read and write.
More details are explained at http://archives.yasep.org/yasep2014/#!doc/reg-mem
Are you sure? yes | no
@Dave Vandenbout
The 4014 are here and I play with them: https://hackaday.io/project/8121-discrete-yasep/log/27617-hexadecimal-7-segments-display-continued
Think about it next time you add a digit display to your PCB :-)
Are you sure? yes | no
Thanks, those look good.
Are you sure? yes | no
ICM7218 : interesting and it could more or less work but I would need 4 of them and they are not as cheap as a dumb HC part.
MM74C917N : same deal. Interesting but I would need 4 of them...
MC14494, MC14495 : rare, not SOIC available...
D346D : this board haz it : http://www.nostalcomp.cz/cpu1802.php but nobody else...
How many diodes will it take to decode this code ? :-D That would be in the spirit of this project but i am concerned about the required surface. Overall I need 3 decoders, I would use SMD diodes so it will not look like this https://hackaday.io/project/6668-aytabtu-discrete-computer/log/21252-a-4-to-16-decoder-board but not far...
Time to find some existing conversion matrices on google image.
Are you sure? yes | no
34 diodes ! There is a trick though :-P
Are you sure? yes | no
Of course :) There'll be switches for halt/run/single step, reset, clock speed selection and so on
Are you sure? yes | no
I can't wait to see it working !
The architecture and programming handbook must also be written and published ;-)
Are you sure? yes | no
The DM9368 is available on ebay, also what about the ICM7211 - too big?
Are you sure? yes | no
DM9368 : very obsolete, not available in SOIC, not really cheap and nobody can tell how long the brokers will stock it.
ICM7212(M) looks interesting, it's bulky but I might give it a try for the first proto board. I'm OK with a $8 chip for the first proto but I'm looking for something cheaper and SMT for "the real system".
BTW what did you come up with for the "console" of your T-1 ? :-)
Are you sure? yes | no
ICM7212 : beware of not using a "A" variant (not hexadecimal).
It's also "common anode", I wanted to select/drive the 6 rows with a N-MOSFET so I must find P-MOSFETs
I'm not sure how to drive multiple rows without flicker, the timing could become too complex. The "nibble" interface requires an external MUX chip and more scheduling...
HT1632C could work but 1) there is no 7 segments decoder 2) the interface is serial, not nibble or bytes...
Are you sure? yes | no
Just LEDs to display the register data, but mounted in a laser-etched acrylic panel (some colour scheme suitably 60s-70s) and I'll build a discrete uart for console i/o.
Are you sure? yes | no
That sounds awesome ! Will you add switches too ? ;-) who can resist toggle switches ? Not me :-D
Are you sure? yes | no
The LED segments issue is now considered solved. Dave, you're welcome to use that trick in your next boards too ;-)
But the 7 segments binary converter is still an issue... (I want it to be CMOS, SOIC, fixed-function and cheap)
Are you sure? yes | no
Found it !
Thank you Dave, I tweaked the search parameters and found a "3014" LED format in the search results. Almost there !
According the my caliper, it's 4mm long so I tried 4014. Bingo !
http://www.lumileds.com/products/luxeon-mid-power/luxeon-4014
http://buyersguide.ledsmagazine.com/guangzhou-hongli-optoelectronic-co-ltd/p/smd-led-4014-02w-lm80.html
http://www.osram-os.com/osram_os/en/press/press-releases/led-for-automotive,-consumer,-industry/2014/extremely-low-profile-synios-e4014-leds-makes-it-easier-to-implement-design-ideas/index.jsp
etc.
I'll try to source a bunch of them and make a prototype ;-)
But the other question remains : how can I find bin->7 segments that does a correct hexadecimal conversion in SOIC ?
I'll probably end up using a diodes array :-D
Are you sure? yes | no
If you haven't found it already, here's something that looks similar:
http://www.aliexpress.com/item/5730-SMD-High-Bright-LED-for-bulb-lamps-cornLights-0-5W-55-60LM-3-3-4V/1980469977.html
They're about 6mm long and cost around $5 USD for 100.
These are high-brightness LEDs. They may be too bright for your application, but maybe you can find something dimmer with a similar form factor. Or use a big current-limiting resistor.
Are you sure? yes | no
Thanks for the link !
I've seen similar things on eBay, they have appeared on the market a few years ago.
However the ultra-narrow white LED must have been mass-produced for at least 6 years yet I've never seen them sold separately...
(I've gotten them on broken laptop screens 4 years ago, add 1 year of use and 1 year of fabrication/distribution latency...)
The LED hunt season is open !
Meanwhile I'll use more mundane methods...
Are you sure? yes | no
How 'bout this one:
http://www.lumileds.com/products/luxeon-mid-power/luxeon-4014
Are you sure? yes | no
Dave, that's the link I sent 20 minutes ago ;-)
Now I'm searching vendors...
Are you sure? yes | no
Yes, those look good! The problem with the 0603 LEDs I used is they are too "point-like".
Are you sure? yes | no
Now if I knew how to find those very narrow LEDs... I don't even know their format/package code/name :-(
Are you sure? yes | no
As for using 0603 LEDs for the 7-segment displays: I did that for the XSA-3S1000 Board (http://www.xess.com/shop/product/xsa-3s1000/) and it pretty-much looks like shit. You really need the diffusers over the LEDs to make an easy-to-read digit. The only advantage is the 0603 LEDs are so easy to get from anywhere.
Are you sure? yes | no
Thanks for the hints.
![](http://ygdes.com/~whygee/LED4015__IMG_7820.JPG)
This is going to be quite a challenge.
However there could be hope on the horizon...
Several years ago (2011 ?), I have discovered these LEDs while disassembling a laptop's LCD backlight :
These LED are almost perfect for my purpose.
The caliper says it's about 4.0 or 3.9mm × 1.5 or 1.4mm wide.
I can't find any source for "new" chips, I can desolder tens or a hundred of them but I'd rather find a good "new" source... Any hint ? Google is clueless...
BTW your "7 segments" display is actually "7 dots". The red SMT LEDs I intend to use would be paralleled, maybe 2 or 3 to make a small stick...
Cheers !
Are you sure? yes | no