Led "computer"

Thread Starter

k1ng 1337

Joined Sep 11, 2020
960
Good Day,

Having been inspired by Ben Eater's YouTube series "8 bit breadboard computer", I am now cooking up one of my own. This topic is to gather general information. My vision is to program an extremely simple instruction set that replicates the output of an Arduino project I previously designed. I have many ideas how to program the code but am lost on which hardware to select.

Subject to change ;), the computer will start at the first address of memory (written in binary by me on PC) whose 8 bits correspond to LEDs in a room. Upon each clock cycle the memory address will increment and the LEDs will change periodically.

What components might you recommend for this project? I am content with using basic ICs such as logic gates and of course memory but favor simplicity and understanding over convenience. The devices of most interest for this topic are memory as well as how to increment addresses as I am overwhelmed with choices. Specifically I don't need many addresses < 1000 nor will I write to the chip often < 100.

Processor concept:

A quartz Pierce oscillator < 1/10hz drives an 8 bit counter incrementing the address in memory by 1.

Regards,
 

Ian0

Joined Aug 7, 2020
9,817
About forty years ago I published this circuit in Electronics Today International. Mine drove triacs to switch mains lamps, because LED in those days weren't any good for anything other than panel indicators.
What you need is a parallel EPROM (2716, 2764 etc) and a binary counter (74HC4024, 4040 etc) connected to the address lines.
Connect OE and CS to 0V to enable the outputs permanently. It's that simple!
(If you want to be really retro, get an 82S135 bipolar PROM - unfortunately you can only program it once!)
If you use a 32.768kHz crystal and a 74HC4060 as the oscillator you will get 2 clocks a second. You may want to divide it down further.
The clock in my circuit was triggered by the a microphone which picked up the bass-beat of the music.
 

AlbertHall

Joined Jun 4, 2014
12,346
Many, many moons ago, we were asked to create a test system for the company's product. Much the simplest way to that was to use a microprocessor - I was competent at Z80 assembler. But the company clearly didn't feel confident with that so we did it an EEPROM look up table and a whole lot of logic. It worked, but it wasn't long before we were using PET computers, programmed in basic) to control test systems.
 

AlbertHall

Joined Jun 4, 2014
12,346
I remember the PET. How did you interface to it?
IEEE488 directly to IEEE488 equipped test equipment, with a bought in box with that interface which could hold our own made plug-in cards. The box decoded the IEEE488 to provide effectively a parallel interface to our cards.
 

Ian0

Joined Aug 7, 2020
9,817
IEEE488 directly to IEEE488 equipped test equipment, with a bought in box with that interface which could hold our own made plug-in cards. The box decoded the IEEE488 to provide effectively a parallel interface to our cards.
I remember IEEE488 (or HPIB) test equipment, but I didn't remember that a PET could interface to it.
 

ericgibbs

Joined Jan 29, 2010
18,849
Remember the TS' s Topic request..

What components might you recommend for this project? I am content with using basic ICs such as logic gates and of course memory but favor simplicity and understanding over convenience. The devices of most interest for this topic are memory as well as how to increment addresses as I am overwhelmed with choices. Specifically I don't need many addresses < 1000 nor will I write to the chip often < 100.
 

Ian0

Joined Aug 7, 2020
9,817
If you use a static ram instead of an EPROM and switch OE off to set the data lines as inputs, you can program the data in situ using switches on the Data lines and pulling WE briefly low to write. Then use another switch instead of the oscillator to advance the counter. You can use a lithium coin cell to keep the data when it loses power.
 
Back in the early 1980s. The 8008 ERA for an EE lab we decided to build a microcoded hardware sorter using TTL logic. A computer of sorts. It could be "Programmed" to sort numbers in acending or descending order. We developed a 16 bit wide 16 word deep microcoded instruction set. The numbers were 4 bit. The program counter was 4 bit.

One partner built the memory subsystem. The other partner built the compare/swap logic and I got stuck with the program counter. I know first hand why the PC (Program Counter) needs to point to the next instruction.
A branch basically loaded 4 bits of the microcode to the PC.
I should still have my lab notebook and I have been wanting to put it on the web somewhere.

You also needed the run/stop, load memory, single step etc


Usually microcode is really wide. e.g. 128 bits.

I think the PC used a 555 timer. There were instructions for compare, branch, stop and swap as I remember. We may have implemented a NO OP instruction.
 
There is the Dallas RAM. A battery/RAM combo and ferro RAM which does not require a battery.

If you want to implement branching or even different start addresses, you will need a loadable program counter.
 

dl324

Joined Mar 30, 2015
16,921
The devices of most interest for this topic are memory as well as how to increment addresses as I am overwhelmed with choices.
Use SRAM for the main memory so you don't have to worry about refresh. You'll need some non-volatile memory for your instruction decoder (NOR FLASH, NVRAM, EEPROM, EPROM - or something newer like FRAM).

Ben Eater used TTL and IIRC he had a bad habit of just tacking LEDs on signal lines without regard to loading outputs.

I'd use CMOS (he used TTL which is expensive these days). Use synchronous counters (don't know what Ben used).
 

AnalogKid

Joined Aug 1, 2013
11,044
What you need is a parallel EPROM (2716, 2764 etc) and a binary counter (74HC4024, 4040 etc) connected to the address lines.
Connect OE and CS to 0V to enable the outputs permanently. It's that simple!
ONLY if you have an old EPROM programmer and the software to create the HEX file. I do, but it's not always about me.

The TS was unclear about loading the data pattern into the memory array. If he wants to use SRAM and some kind of programming interface, that is actually more difficult than the basic project of playing back a data pattern.

ak
 

Ian0

Joined Aug 7, 2020
9,817
[/QUOTE]
ONLY if you have an old EPROM programmer and the software to create the HEX file. I do, but it's not always about me.
I assumed that's what he meant by "written in binary on the pc by me" - I could be wrong.
If he wants to use SRAM and some kind of programming interface, that is actually more difficult than the basic project of playing back a data pattern.
I've also done that in a different project.
8 toggle switches connected to the data lines via a 74HC541 tristate buffer. A "write mode" switch takes /OE(RAM) high and /OE(HC541) low, disconnects the clock and connects a pushbutton to the counter, and - through a capacitor - zeroes the counter.
A second pushbutton connects to /WE(RAM)
I'm sure I don't need to tell you the rest.
CS(RAM) is connected to a voltage comparator which shuts it down when the power supply voltage falls.
 
Top