The Tiny 8088 - Page 1
Forum section: electronics / projects

author: nkeck72
author_rank: Contributor
timestamp: March 12, 2017, 04:12:21 am
content: Hi guys!It's been a while since I posted on here so I thought I would share with you a little project of mine that has been going on for a little over a month. I have been designing my own small-scale non-standard 8088 based microcomputer. It currently has built in serial out for interfacing with a terminal or a teletype (if you so desire) and a single 8-bit ISA slot, along with inputs for a +5 and +12v power supply. The board files (KiCAD format) are over at[size=78%]https://github.com/nkeck720/tiny-8088.Currently, I have not written a BIOS for the thing, so I cannot build the board to see if it works. I would like to ask however if I made any outstandingly bad design choices that have missed my eyes. This is the first PCB I have designed entirely by myself and I want to make sure I am doing it right so I don't look like an idiot!Will keep you posted with updates on here. Thanks a bunch!Also, I used KiCAD for the design process from schematic to PCB.Another update! I added serial level shifters here.

author: JoeO
author_rank: Frequent Contributor
timestamp: March 12, 2017, 02:25:48 pm
content: It will be easier for more people to review your design if you make a pdf of your schematic and include it on Github.

author: nkeck72
author_rank: Contributor
timestamp: March 12, 2017, 04:14:03 pm
content: Will do.

author: ChristofferB
author_rank: Frequent Contributor
timestamp: March 13, 2017, 01:06:59 am
content: That's a really neat little board! Have been thinking of doing something similar, not too many 8088 -diy machines (except that madman who did an entire diy XT motherboard!) - I can't really fault your design much, at a first glance, it looks very similar to what's in the 8086/8088 design handbook.You can't do what you-re doing, shorting 3 outputs together like that - U8A, B, and C - if one goes high while one is low, you have a direct short between 5V and GND - that'll kill the chip fast!I'd probably do memory decoding with a single 74LS138 - easier to bodge remap the memory later, since you have all the other 6 outputs.

author: ChristofferB
author_rank: Frequent Contributor
timestamp: March 13, 2017, 01:32:56 am
content: Another issue I just found, is- on the 8259 interrupt controller, you've shorted /CS, /RD, and /WR - /RD and /WR should go to their respective pins on the CPU, and /CS to your chip select line.- you're also running the 8259 directly off of the IO/MEM signal - that means any IO address will enable that chip - you should decode that, again, I recommend an 74LS138 3-to-5 decoder, just like you did your memory select.- you're shorting IO/MEM to /RD right at your 8088 - that'll make it unhappy! - and you're running that combined signal to /CS2 on your UARTI think I'm upwards toward 5 single board computers that i've goofed completelyhope yours will live!I'd look at those things as a first-off,cheers--Chris

author: mariush
author_rank: Super Contributor
timestamp: March 13, 2017, 02:21:09 am
content: I didn't go that deep.I see two linear regulators on the 12v and 5v inputs, a NCP1117 and a LM2931. Both are the kind of linear regulators that require a capacitor at the output with an ESR value within a particular range ( 0.1 ohm or higher, less than 1 ohm)..* seehttp://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=lm2931-n&fileType=pdf, figure 34* seehttps://www.onsemi.com/pub/Collateral/NCP1117-D.PDFpage 6, figure 12So you should be careful when choosing some electrolytic capacitors and don't use ceramic capacitors there if you decide to keep using those.In addition to that, as most linear regulators, they have dropout voltage. NCP1117 will drop in average about 0.8v at 1A of current, but could go as high as 1.2v if you have back luck, so your 12v would actually become around 11v.The LM2931 is better, at only about 0.2v typical voltage drop but I'd be concerned about being a TO-92 part in your design. They tend to overheat and they're good for low currents, maybe 50mA or so at most.There's plenty of better options in packages like dpak or sot-23 if you want surface mount, or to-220 if you can accept through hole. There's also much better linear regulators that can do less than 0.1-0.2v voltage drop at less than 1A and they're not expensive (and most aren't even picky about capacitors, so you could use a couple of 2-10uF ceramic capacitors in parallel on the output and save space on the pcb).And you should consider adding -12v to your circuit .. well, something as close as possible to -12v. There's charge pump regulator chips which can invert voltage or double it, or can be chained together (to invert and then double). Most are only up to 5.5v but some work with 12v as well, see for example TC7660 :http://www.digikey.com/product-detail/en/microchip-technology/TC7660SCPA/TC7660SCPA-ND/418702It will take 12v and output -12v and will output -10..-12v at up to 50mA.TC1044 is similar ... and plenty of others...

author: nkeck72
author_rank: Contributor
timestamp: March 13, 2017, 07:59:48 pm
content: Thanks for your suggestions!Mariush, I intended to use LM7805 and LM7812 regulators with this particular design but had to change them out last minute because the footprints that came with KiCAD didn't map the pins out correctly so I had to find some equivalents and didn't even think twice about it otherwise. I probably wouldn't have noticed my mistake if you hadn't have pointed that outI will look into adding some caps in then. I also meant to lay out the board with both of the regulators as TO-220 packages, I wall have to go back and double check to see if I got that right. As for the -12v rail, I sort of skipped over it in anticipation of finishing everything else first and then forgot about it.ChristofferB, My intention in shorting those pins was to allow full read/write capability when the 8088 signaled it was accessing an IO address, but then only have it respond when the A0 line on the chip was held high. I probably have that way wrong, since looking at the datasheet I now see that A0 is used to check the status of the 8088 chip when issuing an interrupt. Do I have that right or am I completely misunderstanding the datasheet?I'll look into using the 74LS138, It should help clean up some of the messy jellybean logic.Again, the intention of shorting IO/M to RD was to allow both conditions to turn on the CS2 line on the UART, but I now see what I was doing wrong. I will definitely fix that so I don't blow a precious 8088 during testing.Thanks for all of your suggestions!

author: nkeck72
author_rank: Contributor
timestamp: March 15, 2017, 08:40:20 pm
content: if you've downloaded the schematic at any point in time, please check the new one, as I have made some pretty drastic changes since the first one I posted. thanks!

author: mk_
author_rank: Regular Contributor
timestamp: March 15, 2017, 09:40:41 pm
content: Quote from: nkeck72 on March 15, 2017, 08:40:20 pmthe RS232 is still without levelshifter, so your 16450 will be destroyed from incomming negative voltages or much to high voltages from the DB9 socketMichael

author: nkeck72
author_rank: Contributor
timestamp: March 17, 2017, 12:26:41 am
content: I thought RS-232 used standard TTL logic levels? Does the 16450 output CMOS levels or something odd like that?EDIT:I should have RTFM. Will add in level shifters immediately.

author: nkeck72
author_rank: Contributor
timestamp: March 17, 2017, 01:39:40 am
content: I have added the level shifters.Also, I'm going to start building the BIOS soon, so the memory map shouldn't change much other than perhaps the addition of sockets for RAM chips to be added on by the user.

author: cyberfish
author_rank: Regular Contributor
timestamp: March 17, 2017, 03:54:10 pm
content: If you use a FT232R instead of MAX202, you get USB on the other end instead of RS-232. Unless you actually have RS-232 hardware, you'll need an adapter anyways to connect it to a computer.

author: nkeck72
author_rank: Contributor
timestamp: March 17, 2017, 05:48:29 pm
content: The point of the RS-232 port was to be able to connect it for the main means of user interface, so you can connect it to a terminal, teletype (if you feel like doing that), or a PC with a null modem cable. I don't much like the idea of putting USB on a board that is supposed to be similar in design to the Altair 8800 or the IBM PC; USB is just too new for that in my opinion.Now, designing a 8088 board with modern peripherals would definitely require a USB interface, along with something like a 8-bit version of the PCI bus instead of ISA. But as of right now, the intention of this board is to be period accurate with the hardware. (Technically, yes, the 16450 is a lot newer than the 8088, but I didn't want to muck around with 8250s, they were rather buggy from what I hear.)

author: cyberfish
author_rank: Regular Contributor
timestamp: March 17, 2017, 06:20:08 pm
content: Quote from: nkeck72 on March 17, 2017, 05:48:29 pmAh yes, if you will be connecting it to anything other than a PC it makes sense (or I suppose a very old PC with an actual serial port).

author: nkeck72
author_rank: Contributor
timestamp: March 17, 2017, 09:24:21 pm
content: My PC from 2010 has a serial port.I'll give you proof when I get a new phone (current one is bricked)

author: cyberfish
author_rank: Regular Contributor
timestamp: March 17, 2017, 09:27:34 pm
content: Quote from: nkeck72 on March 17, 2017, 09:24:21 pmIt's ok I believe you.There are still some new machines with serial ports, too, but AFAIK they are all for specialized applications or servers. It's been a while since consumer PCs last shipped with serial ports.

author: nkeck72
author_rank: Contributor
timestamp: March 17, 2017, 09:55:02 pm
content: I got a refurbished laptop in 2014 with a 56k modem. Just when you think something is obsolete, it just isn't. (Hence my choice of RS232.)

author: ChristofferB
author_rank: Frequent Contributor
timestamp: March 17, 2017, 10:07:24 pm
content: I'd go for RS232 over TTL serial all the way, as well. One day you may find a cool retro dumb terminal you want to hook it up to, or a thermal printer or what ever. It's probably the most versatile serial standard**I haven't checked this, but I assume

author: cyberfish
author_rank: Regular Contributor
timestamp: March 17, 2017, 11:59:43 pm
content: Quote from: nkeck72 on March 17, 2017, 09:55:02 pm56k modem I'm not surprised by. There are stillmillions of people using 56k(that's in the US, now consider less developed countries...).I would be surprised if more than a few tens of thousands of people still use RS232. I imagine most of them are doing legacy industrial control stuff controlling very old machines that are expensive and still working, so not getting replaced any time soon. And most of them are probably using a USB-to-RS232 adapter.According tothis random article, laptops stopped shipping with RS232 ports around 2005. It probably lived for a few years longer on desktops.

author: calexanian
author_rank: Super Contributor
timestamp: March 18, 2017, 12:31:11 am
content: Quote from: cyberfish on March 17, 2017, 11:59:43 pmTrue RS232 I would agree. It is no longer used in consumer applications. TTL compatible serial is a whole different situation. Lots of that still going on in many upon many products and that is simply RS232 without the extra signals and differential voltages.

author: cyberfish
author_rank: Regular Contributor
timestamp: March 18, 2017, 01:00:57 am
content: Quote from: calexanian on March 18, 2017, 12:31:11 amIt's still not exposed to consumers though (unlike USB or ethernet for example). It's only used for onboard communication for the most part. Consumers aren't usually expected to hook up UART connections.

author: nkeck72
author_rank: Contributor
timestamp: March 18, 2017, 09:54:54 pm
content: Finished the revision B board layout, and have committed it to GitHub. The BIOS work will begin soon, when I can make one of these boards up for testing and flash an EEPROM and etc.If there's any sort of interest in this board I may ship a few "prototype" boards to those who want to test if and when I get this thing together.