Close
0%
0%

8085 SBC

In which I attempt to use up my retro 8085 CPUs

Similar projects worth following
I found that I had a dozen 8085 CPUs in my parts box. I don't remember where I got them from, certainly not old PCs as those have 8088s. Perhaps I dismantled many embedded controllers. Anyway I've decided to put them to use.

A short history of the 8080 and Z80 8-bit CPUs

First came the 8080. This required 3 power supplies and had a cumbersome set of clock pins, so much so that there was a separate chip available, the 8224, to drive it. Intel realised that this was putting designers off so they produced the 8085 which only required a +5V power supply and simpler clock circuitry. However the Z80 with its far more capable instruction set eclipsed the 8080/8085 in personal computers. Although software like CP/M and apps mostly stuck to the 8080 subset of instructions for complete coverage. The 8085 was used in many embedded controllers. It did have the advantages of a serial interface and prioritised interrupts.

I have quite a few 8085 chips in my collection so I decided to put them to use. This time though I didn't design the circuit but adopted the Minimax 8085 design by Sergey Kiselev. (I have linked to the Retrobrew Computers wiki page, which has working download links, but Sergey's original page has code samples.)

Goals of this project

  1. Get acquainted with ordering PCB fabrication over the Internet
  2. Learn about using GALs, as this SBC uses one to implement the glue logic
  3. Attempt to port the SDCC to generate the 8080 instruction setI have decided to assign this to its own project as it's quite an undertaking

  • Assembled a board

    Ken Yap07/19/2019 at 13:59 0 comments

    Spurred by interest by readers I finally got off my backside and soldered one board. Then I did an inspection of the joints with a magnifying glass in case there were any missed or bad joints. I did a short circuit test between adjacent pins of the sockets. I also did a continuity test from the IC sockets to the pads. I found one pin bent under the socket. Fortunately I was able to reach under with the soldering iron tip and deposit enough solder to join the bent pin with the pad. Better a little effort now than troubleshooting later.

    To start with I will use a 28256 32kB EEPROM so that I can modify the firmware easily. The board also accepts 16kB EPROMs with a change of jumpers.

    I have installed a 62256 32kB SRAM. A 6264 8kB SRAM could also be used. The difference is that for the top 2 address pins, A14 goes to NC, and A13 goes to Enable 2, which means that the 8kB will appear at both [0xA000,0xBFFF] and [0xE000,0xFFFF]. So it's just a matter of placing the RAM area the firmware uses in the appropriate 8kB interval.

    I have to verify the GAL. I think I used the image for 6.144 MHz crystal but it's easy to burn the right one if I didn't.

    Instead of using a MAX232A RS-232 level converter chip, I have elected to use a USB to TTL converter, readily available for a dollar or two. So I have soldered leads directly to the appropriate holes of the MAX232A.

    The RAM backup is optional and won't be used.

    I soldered a two pin header for the reset pins to which I can plug a lead to a NO push button switch.

    Instead of using a barrel connector for power, I have soldered power supply leads. I don't understand this obsession with barrel connectors for 5V power. A more logical choice would be a micro USB connector which can take a cable from a 5V USB power supply. Many people have spare phone chargers which can be turned into project power supplies. Did you know that micro USB connectors are rated for a large number of insertions, think of all the times people plug their phone to charge, so are quite sturdy?

    Look at the age of those chips! So now I have to work up the courage to connect up a LED, fetch the blink program, burn it into the EEPROM, and power up.

  • Programmng the GAL

    Ken Yap03/17/2019 at 10:56 0 comments

    No no, not your wife/partner/girlfriend, you can't program those, they have minds of their own. Actually this is not even my joke, it's in the GALasm documentation, see further down.

    The GAL used is a 16V8 which is way way obsolete but still readily obtainable for a dollar or two. Here's an old tutorial on how to use them. Really I don't know why people don't use them more to replace a whole bunch of TTL or CMOS logic. For one thing if you make a logic error you only need to fix the equations and reprogram, not rework a whole bunch of ICs and connects. For more complicated logic there are CPLDs and FPGAs which are used by many projects on Hackaday.

    One thing though, to program these GALs you need a hardware programmer. The popular TL866 programmer, besides doing (E)EPROMs, and many MCUs, also handles the 16V8.

    A compiler takes logic equations and generates JEDEC files which are written into the GAL. You don't need a compiler if the project supplies precompiled JEDEC files. But I wanted to learn to use such a tool for future reference. The compiler I used is the open source GALasm at Github. I found and fixed some issues with the code that provoked warnings from recent gcc versions and submitted a pull request, which the current maintainer gracefully accepted.

    I have successfully programmed and verified a GAL. So that's the second goal accomplished. But bear in mind, I have not soldered a single joint or powered up anything yet. The true test is yet to come.

  • Getting the PCB fabricated

    Ken Yap03/17/2019 at 10:35 0 comments

    This was quite easy because as I mentioned, I didn't design the circuit but took an existing design. But this step took about 3 weeks mainly because of the shipping time. You can see pictures of the product on this page; it's quite good. So that's the first goal accomplished.

View all 3 project logs

Enjoy this project?

Share

Discussions

Søren Møller Dath wrote 08/06/2019 at 07:43 point

I'm also very interested in building the minimax8085 sbc. And especially to play around with some old GAL16V8 for other projects that I have lying around. Do you have a short step by step guide to use the GALasm, I have very limited knowledge about GCC. Can you point me in a good direction?

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates