POC Computer Version One
Posted: Tue Oct 20, 2009 2:07 am
For activity related to POC V1.2, please go here.
For activity related to POC V1.3, please go here.
For activity related to POC V1.4, please go here.
For activity related to POC V1.4.1, please go here.
———————————————————————————————————————————————————————————————
POC = Proof of Concept
I’ve been working with electronics since the late 1950s and on computer hardware since 1970. However, I’ve never scratch-built a computer. So here’s the first try.
Assuming this things actually flies, I will then work on developing a more ambitious system that might actually be useful for something other than holding down my workbench (beats me what that something might be, though). However, I’m a firm believer in learning how to make a single-engine plane fly before building that four-engine jumbo jet.
The hardware consists of a W65C816S MPU, 52K of addressable RAM, 8K of addressable ROM, an NXP 2692 dual ACIA (aka “DUART”) talking with a MAX238 line driver, and a Dallas Semi DS1511 real-time clock. The latter has a watchdog timer, as well as a TOD clock, calendar and NVRAM. The watchdog can be arranged to generate periodic interrupts, with a period as short as 10ms. This would make it a natural source for a jiffy IRQ in a multitasking system...in a later design, of course.
The 2692 ACIA has two independent channels, each of which can be run at speeds up to 115.2 Kbps if desired. TIA-232 (aka RS-232) outputs are presented at a dual 8P8C jack wired to conform with the arrangement used with Equinox SST serial interface units. This hookup will permit me to attach one of my old WYSE 60 terminals to serial port A to act as a console. Serial port B can be used to talk with another machine, e.g., my UNIX software development system.
The SRAM is actually a 128KB × 8 piece that is fast (12ns) and inexpensive. Obviously, I’m “wasting” over half of the address space, but so be it. I’m also “wasting” ROM space, as I’m using a 32Kb by 8 EPROM (I have a bunch laying around). However, I’m sure the ROM won’t complain.
There’s no rocket science in this design and, at least on paper, it seems it should work. All glue logic is 74AC to keep gate propagation delays from sabotaging timing. To assure a strong clock with real sharp rise and fall time, I’m feeding an HCMOS oscillator into a flip-flop and using the flop’s outputs to produce the actual clock.
Initial testing will be done with a 2 MHz oscillator to produce a 1 MHz Ø2 clock, as well as a NOP generator. Once the logic probe and ’scope confirm that the thing is upright with a pulse, I’ll insert a faster oscillator. Based upon my timing analysis, it should be stable beyond 8 MHz (16 MHz oscillator), although the 2692 DUART may have trouble at this speed (NB: such proved to be the case, and I subsequently replaced it with the faster NXP 26C92). I will try running it faster, of course, just to see what might happen.
Here are the schematics to this mess:
I plan to build this thing on a four-layer PCB, using ExpressPCB’s ProtoPro service. The four-layer design does a lot to reduce noise and crosstalk, and also allows for greater density due to not having to run power and ground everywhere. The board measures 5-3/4" by 3-1/2", well under the 21 square inch limit for the ProtoPro product.
Comments? Please be gentle.
————————————————————————————————————————
Edit 2010/03/23: the schematics displayed by the above links are out of date. I’ll fix that as soon as I can.
Edit 2010/05/25: the schematics are now up to date.
Edit 2017/03/20: retitled this series to differentiate between the original POC and version two.
Edit 2019/12/18: POC V1.2 designed.
Edit 2021/05/23: POC V1.3 designed.
Edit 2022/08/18: POC V1.4 designed.
Edit 2022/10/22: Updated some old links.
Edit 2024/03/23: I’ve been reformatting some of my old posts to improve readability and, in some cases, fix typos and/or bogus links.
Edit 2024/09/05: POC V1.5 designed.
Edit 2025/12/24: POC V1.5 design abandoned, V1.4.1 designed and in process.
For activity related to POC V1.3, please go here.
For activity related to POC V1.4, please go here.
For activity related to POC V1.4.1, please go here.
———————————————————————————————————————————————————————————————
POC = Proof of Concept
I’ve been working with electronics since the late 1950s and on computer hardware since 1970. However, I’ve never scratch-built a computer. So here’s the first try.
Assuming this things actually flies, I will then work on developing a more ambitious system that might actually be useful for something other than holding down my workbench (beats me what that something might be, though). However, I’m a firm believer in learning how to make a single-engine plane fly before building that four-engine jumbo jet.
The hardware consists of a W65C816S MPU, 52K of addressable RAM, 8K of addressable ROM, an NXP 2692 dual ACIA (aka “DUART”) talking with a MAX238 line driver, and a Dallas Semi DS1511 real-time clock. The latter has a watchdog timer, as well as a TOD clock, calendar and NVRAM. The watchdog can be arranged to generate periodic interrupts, with a period as short as 10ms. This would make it a natural source for a jiffy IRQ in a multitasking system...in a later design, of course.
The 2692 ACIA has two independent channels, each of which can be run at speeds up to 115.2 Kbps if desired. TIA-232 (aka RS-232) outputs are presented at a dual 8P8C jack wired to conform with the arrangement used with Equinox SST serial interface units. This hookup will permit me to attach one of my old WYSE 60 terminals to serial port A to act as a console. Serial port B can be used to talk with another machine, e.g., my UNIX software development system.
The SRAM is actually a 128KB × 8 piece that is fast (12ns) and inexpensive. Obviously, I’m “wasting” over half of the address space, but so be it. I’m also “wasting” ROM space, as I’m using a 32Kb by 8 EPROM (I have a bunch laying around). However, I’m sure the ROM won’t complain.
There’s no rocket science in this design and, at least on paper, it seems it should work. All glue logic is 74AC to keep gate propagation delays from sabotaging timing. To assure a strong clock with real sharp rise and fall time, I’m feeding an HCMOS oscillator into a flip-flop and using the flop’s outputs to produce the actual clock.
Initial testing will be done with a 2 MHz oscillator to produce a 1 MHz Ø2 clock, as well as a NOP generator. Once the logic probe and ’scope confirm that the thing is upright with a pulse, I’ll insert a faster oscillator. Based upon my timing analysis, it should be stable beyond 8 MHz (16 MHz oscillator), although the 2692 DUART may have trouble at this speed (NB: such proved to be the case, and I subsequently replaced it with the faster NXP 26C92). I will try running it faster, of course, just to see what might happen.
Here are the schematics to this mess:
I plan to build this thing on a four-layer PCB, using ExpressPCB’s ProtoPro service. The four-layer design does a lot to reduce noise and crosstalk, and also allows for greater density due to not having to run power and ground everywhere. The board measures 5-3/4" by 3-1/2", well under the 21 square inch limit for the ProtoPro product.
Comments? Please be gentle.
————————————————————————————————————————
Edit 2010/03/23: the schematics displayed by the above links are out of date. I’ll fix that as soon as I can.
Edit 2010/05/25: the schematics are now up to date.
Edit 2017/03/20: retitled this series to differentiate between the original POC and version two.
Edit 2019/12/18: POC V1.2 designed.
Edit 2021/05/23: POC V1.3 designed.
Edit 2022/08/18: POC V1.4 designed.
Edit 2022/10/22: Updated some old links.
Edit 2024/03/23: I’ve been reformatting some of my old posts to improve readability and, in some cases, fix typos and/or bogus links.
Edit 2024/09/05: POC V1.5 designed.
Edit 2025/12/24: POC V1.5 design abandoned, V1.4.1 designed and in process.
